Hangar I/O board
Boards / ESP32-P4-Module, DroneCAN
The hangar I/O board does the dock I/O that the Rover board commands, and it has no authority of its own.
- Revision
- A draft
- Sheets
- 1
- Parts
- 177
- Location
- dock
- Bus
- DroneCAN, the dock bus to the Rover board
- Status
- Rev A draft: schematic only
What it does
The dock controller has three boards. An ArduPilot board that runs Rover has all the authority. This board does only the I/O that the Rover board tells it to do. The site node carries voice, cameras and the network.
The board generates the pulses for the four push bar steppers and the four pin servos. The Rover board holds the stepper enable line and the servo supply in hardware. A fault on this board thus cannot move a bar or a pin. The enable line STEP_EN is active high, so an unplugged lead or a dead Rover board disables the drivers.
The board is also the Modbus bridge to the RD6006 charger. It reads the lid drive current and the bay temperature and humidity. It drives two 12 V fans and a 12 V rail heat cable; the heat cable has its own fuse, so it cannot take the 12 V rail of the drivers down. Nothing on it touches mains. If it goes silent on DroneCAN, the Rover board counts a fault and stops the charge.
Since 2026-10-11 it also charges the aircraft’s 2S lighting battery, which used to charge on board until that charger proved too hot beside the LiPo. An isolated 15 V supply feeds a 2S charger that delivers 0.65 A, or 0.2 A for the final taper, to 8.38 V. The output goes to the dock’s two L springs, which meet the aft segments of the keel strips. The supply is isolated from the flight-pack charger and the dock ground, because the lighting battery’s negative is the aircraft’s ground. The Rover board decides when to charge, from the cell voltages the aircraft reports. This board passes its commands across the isolation through three optocouplers driven from an I2C expander. The expander’s pins come up as inputs after any reset, so a fault here leaves the charge off, or at the low current.
Where it sits
The board goes on the dock bay floor, beside the Rover board, on a printed PETG tray. Its budget is 120 x 90 mm and 40 mm high (th-hangar, 2026-10-06). Bay 12 V supplies it.
Main parts
| Part | Function |
|---|---|
| Waveshare ESP32-P4-Module | MCU; its WiFi chip is held in reset |
| 4 x TMC2209 | Push bar stepper drivers |
| TCAN330 | CAN transceiver |
| TPS54202 | 12 V to 3.3 V buck |
| SHT40 | Bay temperature and humidity |
| BSZ018N04LS6 | Rail heat switch, up to 5 A on its own fuse |
| Traco TMR 10-1213WI, LT3652 | Isolated 15 V supply and the lighting battery’s 2S charger |
| PCA9536, 3 x LTV-357T | I2C expander and optocouplers across the charger’s isolation |
Connections
| Connector | Type | To |
|---|---|---|
| J2 | XT30 | Bay 12 V in |
| J3 | VH-2 | Rover-switched servo rail |
| J4 | XH-2 | STEP_EN from the Rover board |
| J5, J6 | GH-4 | Dock DroneCAN in and out |
| J10 to J13 | XH-4 | Push bar steppers |
| J21 to J24 | 2.54 mm 3-pin | Pin servos |
| J30 | GH-4 | RD6006 TTL port |
| J31 | XH-3 | Lid drive current sense |
| J32 | GH-4 | Remote I2C sensor |
| J33, J34 | XH-4 | Fans with tach |
| J35 | VH-2 | Rail heat cable, 12 V, up to 5 A (60 W) on its own 5 A fuse F3 |
| J40 | XH-2 | Lighting-battery charge to the dock’s L springs: 1 L+, 2 L- |
| J1 | USB-C | Flash and console only |
Status
Rev A draft schematic, 2026-10-07 (EDA 7c648eb), with the lighting-battery charger added on 2026-10-11 (EDA 46293c0). ERC gives 0 warnings and 1 waived error (the charger’s timer pin tied to ground on purpose, for end of charge at a tenth of the current), and there is no layout. Before layout, the RD6006 TTL level (3.3 V assumed) and the P4 USB download pair must be confirmed. The stepper current of 0.6 to 0.8 A rms for each motor is an ESTIMATE.
Schematic and layout
Files
From the EDA repository at revision b201257 (2026-10-12). Open the files in KiCad 10 or later.
Comments
Comment on the whole page here, or on one section or step with the button beside it.