The live reconciliation is still running through the pin-capability, PMU calculation, and ERC fix loops. I’m waiting for that pass to settle before independently checking the final results.
Thought for 6 mins 13 sec
8 days ago
Awaiting 1 background task
Received notification from "Hades H753 Redesign" that it finished — picking the work back up.
The H753 redesign executor completed and the live project changed to 138 components and 107 nets, consistent with the single-MCU cleanup and PMU/interface work.
Still required
Independently reconcile the executor’s detailed report against the live schematic.
Confirm complete STM32F405 removal and validate every H753 peripheral assignment.
Verify PMU, external-shunt, TMP36, ESC-header, and camera-trigger calculations.
Run a fresh ERC fix/verify pass.
Confirm the ArduPilot hwdef, power budget, and bring-up files were correctly updated.
I cannot complete those verification steps because no ACUs are currently available. The executor’s completion should therefore be treated as unverified, not final schematic approval.
Rev-A is a single-MCU ArduPilot target using U1 STM32H753VIT6 (LQFP-100). There is no STM32F405 target, inter-MCU UART, F4 bootloader, or F4 debug header. Use a current ArduPilot/ChibiOS checkout and create a new board directory derived from an STM32H753 reference only after comparing enabled peripheral drivers and DMA assignments.
The 32.768 kHz LSE is fitted. BOOT0 is held low by R8 (10 kΩ). Keep SWD enabled during initial bring-up.
Deterministic live U1 peripheral map
Table
U1 pin
Live net / endpoint
Verified peripheral intent
PE9
ESC1_DSHOT → R27 22 Ω → J18-1
TIM1_CH1
PE11
ESC2_DSHOT → R28 22 Ω → J18-2
TIM1_CH2
PE13
ESC3_DSHOT → R29 22 Ω → J18-3
TIM1_CH3
PE14
ESC4_DSHOT → R30 22 Ω → J18-4
TIM1_CH4
PE0
J18-9 ESC1_TELEM_RX
UART8_RX
PD9
J18-10 ESC2_TELEM_RX
USART3_RX
PD2
J18-11 ESC3_TELEM_RX
UART5_RX
PE7
J18-12 ESC4_TELEM_RX
UART7_RX
PA9 / PA10
J12-3 CRSF_TX / J12-4 CRSF_RX
USART1_TX / USART1_RX
PA2 / PA3
J13-3 GNSS_TX / J13-4 GNSS_RX
USART2_TX / USART2_RX
PA1
J13-5 GNSS_PPS
TIM2_CH2 or TIM5_CH2 capture / EXTI
PD0 / PD1
FDCAN1_RX / FDCAN1_TX to U12
FDCAN1
PE3
U12 STB
GPIO output; low = CAN normal mode
PA11 / PA12
USB_DM / USB_DP through D1
USB OTG FS device
PA8
USB_VBUS_SENSE
VBUS-valid GPIO/ADC-capable input; not a service-power feed
PA13 / PA14 / PB3
J16 SWDIO / SWCLK / SWO
SWD/trace debug
NRST
J16-10, R9, C30
reset
PA5 / PA6 / PA7
BMI088 SPI clock/MISO/MOSI
SPI1
PA4 / PB0
BMI088 accel/gyro CS
GPIO outputs, idle high in firmware
PC4 / PC5
BMI088 accel/gyro interrupts
EXTI GPIO
PB13 / PB14 / PB15
ICM-42688-P SCK/MISO/MOSI
SPI2
PB12
ICM-42688-P CS
GPIO output, idle high
PC6
ICM-42688-P interrupt
EXTI GPIO
PB8 / PB9
BMP390 + IIS2MDC bus
I2C1_SCL / I2C1_SDA
PC7
BMP390 interrupt
EXTI GPIO
PC13
IIS2MDC DRDY
EXTI GPIO
PB6
W25Q128 QSPI chip select
QUADSPI_BK1_NCS
PB2
W25Q128 QSPI clock
QUADSPI_CLK
PD11 / PD12 / PE2 / PD13
QSPI IO0 / IO1 / IO2 / IO3
QUADSPI bank 1
PC10 / PC11 / PC12
microSD SCK/MISO/MOSI
SPI3
PA15
microSD CS
SPI1_NSS-capable GPIO used as software CS
PD3
microSD card detect
GPIO/EXTI
PA0
PMU_CURRENT_ADC
ADC1_INP16
PC0
BATTERY_VOLTAGE_ADC
ADC123_INP10
PC1
BOARD_TEMP_ADC
ADC123_INP11
PE5
CAMERA_TRIGGER_MCU → R42/Q3
TIM15_CH1 or GPIO; high turns Q3 on and pulls trigger low
The four DShot outputs are one coherent TIM1 group. The telemetry returns are four distinct hardware UART RX resources and do not conflict with USART1 CRSF or USART2 GNSS. If bidirectional DShot is used, the dedicated telemetry-return pins may remain unused.
Connector maps
J18 ESC signal header (3 columns × 4 rows)
Table
ESC row
Signal
Ground
Telemetry
ESC1
pin 1
pin 5
pin 9
ESC2
pin 2
pin 6
pin 10
ESC3
pin 3
pin 7
pin 11
ESC4
pin 4
pin 8
pin 12
R27–R30 are 22 Ω source damping. R31–R34 are 100 kΩ pull-downs at the header side, keeping outputs low while U1 is high impedance.
J12 CRSF / ExpressLRS
1 = 5 V (500 mA peak allocation), 2 = GND, 3 = FC TX, 4 = FC RX, 5 = spare/no-connect. No onboard RF transceiver is fitted.
J13 external GNSS
1 = 5 V (250 mA peak allocation), 2 = GND, 3 = FC TX/GNSS RX, 4 = FC RX/GNSS TX, 5 = PPS. Intended for u-blox MAX-M8C/MAX-M8 class modules.
J14 CAN
1 = CANH, 2 = CANL, 3 = GND, 4 = 5 V auxiliary (100 mA peak allocation), 5 = spare/no-connect. U12 is TCAN3413; R18 is the optional 120 Ω end termination.
At 16.8 V, the ADC sees 2.754 V. A 3.300 V ADC reference corresponds to 20.13 V battery full scale. C74 = 100 nF with 102k || 20k = 16.72 kΩ, giving about 95.2 Hz. R41 = 1 kΩ isolates the ADC and limits clamp current; D3 BAT54S clamps BATTERY_VOLTAGE_ADC to GND/3V3.
Use an initial parameter value:
Text
BATT_MONITOR 4
BATT_VOLT_MULT 6.10
Calibrate BATT_VOLT_MULT against a precision DMM on the assembled board.
Battery current
U13 INA240A2 is powered from 3V3, has gain 50 V/V, and both REF pins are grounded for unidirectional sensing. J20 is a Kelvin-sense connector only for an external 0.5 mΩ shunt; propulsion current must not flow through J20 or the PCB amplifier traces.
INA240 guaranteed high-side linear output on 3.3 V is approximately 3.1 V, so positive measurable range is about 124 A; ADC theoretical 3.3 V range is 132 A.
Treat 120 A / 3.0 V as the practical short-burst validation ceiling; the external shunt dissipates 7.2 W at 120 A.
TMP36
U14 runs from SENSOR_3V3 with SHUTDOWN tied high. C75 is the 100 nF supply bypass; C35 is 100 nF on the ADC/output node. Transfer function:
Temperature °C = 100 × VOUT − 50
Expected outputs are 0.100 V at −40 °C, 0.750 V at 25 °C, and 1.750 V at 125 °C, all inside the 0–3.3 V ADC range. ArduPilot does not provide a universal board-temperature TMP36 mapping for every custom board; expose PC1 through a board-specific analog temperature backend or custom driver and do not label it as battery temperature unless the sensor is thermally mounted for that purpose.
Suggested hwdef.dat allocation notes
Declare PE9/PE11/PE13/PE14 as TIM1 motor outputs in motor order 1–4 and enable DShot-capable DMA after checking the generated DMA map.
Declare UART8_RX, USART3_RX, UART5_RX, and UART7_RX as receive-only ESC telemetry resources only if the selected ArduPilot backend supports four independent returns.
Assign SERIAL1 to CRSF/USART1 and SERIAL2 to GNSS/USART2 unless the board port uses a different numbering convention; document the final SERIALx order in defaults.parm.
Enable USB OTG FS, FDCAN1, SPI1, SPI2, SPI3, I2C1, QUADSPI, ADC1, and the required EXTI lines.
Use BATT_VOLT_MULT 6.10 and BATT_AMP_PERVLT 40.0 as calibration starting points, not final production constants.
Intentionally unused U1 GPIOs
Mark/keep no-connect in the schematic and omit from hwdef.dat: PE1, PE4, PE6, PE8, PE10, PE12, PE15, PC2_C, PC3_C, PC8, PC9, PB1, PB4, PB5, PB7, PB10, PB11, PD4, PD5, PD6, PD7, PD8, PD10, PD14, and PD15.
Bring-up order
Power/clock → SWD bootloader → USB → sensors → QSPI/microSD → ADC calibration → GNSS/CRSF/CAN → camera trigger → DShot without props → ESC telemetry.