Add NEXUS target for RadioMaster Nexus (Original) flight controller#11324
Add NEXUS target for RadioMaster Nexus (Original) flight controller#11324joshperry wants to merge 1 commit intoiNavFlight:maintenance-9.xfrom
Conversation
Branch Targeting SuggestionYou've targeted the
If This is an automated suggestion to help route contributions to the appropriate branch. |
Review Summary by QodoAdd NEXUS target for RadioMaster Nexus flight controller
WalkthroughsDescription• Add NEXUS target for RadioMaster Nexus (Original) flight controller - STM32F722-based target with ICM-42688-P IMU on SPI1 - SPL06 barometer on I2C1, W25N01G 128MB blackbox flash on SPI2 - 5 servo/motor outputs (S1-S4 + M1) with expandable configuration - UART4 with TX/RX swap for CRSF receiver on Port A • Add USE_UART4_SWAP support in serial_uart_hal.c for UART4 pin swapping • Add Nix flake development environment for cross-compilation • Disable cmake auto-download of ARM toolchain on version mismatch Diagramflowchart LR
A["NEXUS Target<br/>STM32F722"] --> B["Hardware Config<br/>target.h"]
A --> C["Timer/PWM<br/>target.c"]
A --> D["Config Defaults<br/>config.c"]
B --> E["ICM-42688-P IMU<br/>SPI1 CW90"]
B --> F["SPL06 Baro<br/>I2C1"]
B --> G["W25N01G Flash<br/>SPI2"]
B --> H["UART4 Swap<br/>CRSF RX"]
C --> I["5 PWM Outputs<br/>TIM2/3/4/5/9"]
D --> J["Motor Mode<br/>Override TIM4"]
K["serial_uart_hal.c"] --> H
L["cmake checks"] --> M["Skip Toolchain<br/>Auto-download"]
N["flake.nix"] --> O["Dev Environment<br/>ARM Toolchain"]
File Changes1. src/main/target/NEXUS/target.h
|
Code Review by Qodo
1. Toolchain mismatch not handled
|
STM32F722-based target for the original (discontinued) Nexus, distinct from the Nexus-X/XR (NEXUSX target). Pin mapping derived from Rotorflight NEXUS_F7 dump and verified on hardware. Key hardware support: - ICM-42688-P IMU on SPI1 (CW90 alignment, EXTI PA15) - SPL06 barometer on I2C1 (PB8/PB9, separate from external I2C2) - W25N01G 128MB blackbox flash on SPI2 - 5 servo/motor outputs (S1-S4 + M1), expandable to 7 - UART4 with TX/RX swap for CRSF receiver on Port A - UART1 on PA9/PA10 (not PB6/PB7 as on Nexus-X/XR) Also adds USE_UART4_SWAP support in serial_uart_hal.c for the STM32 HAL advanced UART pin swap feature.
|
Addressed the qodo issues except for 3 because UART3 TX=PB11/RX=PB10 is correct per the Rotorflight dump, the OG Nexus has these swapped vs the default STM32 pinout. The INAV HAL configures based on the UART3_TX_PIN/UART3_RX_PIN defines directly, so no swap macro is needed. |
STM32F722-based target for the original (discontinued) Nexus, distinct from the Nexus-X/XR (NEXUSX target). Pin mapping derived from Rotorflight NEXUS_F7 dump and verified on hardware.
Key hardware support:
Also includes: