Hello,
I am currently developing a new custom board based on the STM32H743XHI6 (240 + 25 BGA package).
My hardware design includes a dedicated IO MCU, the STM32F103C8T6, similar to other ArduPilot-based boards.
I have modified both hwdef.dat and hwdef-bl.dat to match my board design and successfully flashed them. However, I am encountering several issues.
1. ArduPilot does not start when IOMCU is enabled
When IOMCU is enabled, ArduPilot does not start at all. The board remains completely unresponsive.
When IOMCU is disabled, ArduPilot boots normally:
-
The boot sound is audible
-
The NTF LED and heartbeat LED operate correctly
This behavior raises the question of whether IOMCU is supported with the STM32H743XHI6.
For reference, I do not see this issue on boards using the STM32H743VIT6, which work correctly with IOMCU enabled.
2. USB and UART do not function even with IOMCU disabled
Even when booting with IOMCU disabled, Windows does not detect any USB device. No USB enumeration occurs.
Additionally, MAVLink output is not present on the FMU UART port.
This is not a soldering or hardware routing issue. I verified the physical connections by running separate test firmware that toggles the USB OTG and UART pins using GPIO, and the signals behave as expected.
Once again, the same design works correctly on a board using the STM32H743VIT6.
3. USB Full-Speed vs High-Speed considerations
I reviewed the hwdef configuration of other boards using the same MCU, including the CUAV X7.
That board uses USB High-Speed, which requires an external USB HS PHY.
However, USB High-Speed is not required for my application.
My question is:
Is USB Full-Speed supported by ArduPilot on the STM32H743XHI6, or is USB HS with an external PHY required?
I have attached my board’s hwdef.dat and hwdef-bl.dat for reference.
Any guidance on IOMCU compatibility, USB configuration, or MCU-specific limitations would be greatly appreciated.
Thank you.
hwdef.zip (3.6 KB)