Skip to content

Add new target: AEDROXH7 (Airbot Systems AEDROX H7)#11586

Open
sensei-hacker wants to merge 3 commits into
iNavFlight:maintenance-9.xfrom
sensei-hacker:add-target-aedroxh7
Open

Add new target: AEDROXH7 (Airbot Systems AEDROX H7)#11586
sensei-hacker wants to merge 3 commits into
iNavFlight:maintenance-9.xfrom
sensei-hacker:add-target-aedroxh7

Conversation

@sensei-hacker
Copy link
Copy Markdown
Member

Summary

Adds INAV firmware support for the Airbot Systems AEDROX H7 flight controller (STM32H743), translated from the official Betaflight configuration.

Hardware

  • MCU: STM32H743
  • Gyro: ICM42688P on SPI2 (CW90°)
  • Baro: DPS310 on I2C2
  • Mag: Hardware present on I2C1 — enabled (was commented out in BF config)
  • Flash: W25N01G 1Gbit NAND on SPI3 — default blackbox storage
  • OSD: MAX7456 analog on SPI1 + HD MSP DisplayPort on UART8
  • Motors: 8 outputs — M1–M4 on TIM8 (PC6–PC9), M5–M8 on TIM1 (PE9/PE11/PE13/PE14)
  • UARTs: 1, 2, 3, 7 (RX only), 8 + VCP
  • CAN: DroneCAN on PD0/PD1

Default UART roles (config.c)

UART Role
UART2 GPS
UART3 SerialRX (CRSF)
UART7 ESC telemetry (RX only)
UART8 MSP DisplayPort (HD OSD)

Notes

  • SPI3 MOSI on PB2 requires explicit GPIO_AF7_SPI3 override — same pattern as JHEMCUH743HD
  • ICM42688P registered as DEVHW_ICM42605; driver distinguishes via WHO_AM_I at runtime
  • TIM8 channel order for M1–M4 follows board silkscreen (M1=PC7=TIM8_CH2, M2=PC6=TIM8_CH1), not sequential channel numbering

Testing

  • Built successfully for AEDROXH7 target — zero warnings, zero errors
  • Flashed via DFU and booted successfully on hardware
  • UART1 verified functional on hardware

Code Review

Reviewed with inav-code-review agent — critical issues addressed (USE_BARO_ALL, trimmed config.c includes, comment placement).

STM32H743 flight controller with ICM42688P gyro, W25N01G NAND flash,
DPS310 baro, MAX7456 analog OSD, HD OSD via MSP DisplayPort, and
8 motor outputs split across TIM1 and TIM8.

SPI3 MOSI on PB2 requires explicit GPIO_AF7_SPI3 override.
Magnetometer enabled on I2C1 (hardware present, not in BF config).
PD0/PD1 connect to the CAN transceiver (CANL/CANH pads visible on
board), not to a user-accessible UART4 header. Replace UART4 with
USE_DRONECAN defines. CAN standby pin TBD pending INAV syntax
confirmation.
@qodo-code-review
Copy link
Copy Markdown
Contributor

Qodo reviews are paused for this user.

Troubleshooting steps vary by plan Learn more →

On a Teams plan?
Reviews resume once this user has a paid seat and their Git account is linked in Qodo.
Link Git account →

Using GitHub Enterprise Server, GitLab Self-Managed, or Bitbucket Data Center?
These require an Enterprise plan - Contact us
Contact us →

@sensei-hacker
Copy link
Copy Markdown
Member Author

sensei-hacker commented May 25, 2026

  • Samples received
  • Flash firmware
  • Calibrate
  • Orientation matches
  • Gyro working
  • Accel working
  • Baro working
  • Blackbox
  • UART1
  • UART2
  • UART3
  • UART7
  • UART8
  • Buzzer working
  • DShot support on m1-4
  • Additional motor / servo outputs
  • Voltage sensor
  • Current sensor
  • I2C Bus
  • Analog Camera working
  • Video Out working
  • OSD working
  • LEDs working
  • PINIO1
  • PINIO2

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant