Merge accidental master PRs into maintenance-9.x#11247
Merge accidental master PRs into maintenance-9.x#11247sensei-hacker merged 10 commits intomaintenance-9.xfrom
Conversation
Quite similar to NEXUSX, but with FrSky built-in receiver
Apparently DSHOT_DMAR can only work with max 4 timers. With the previous timer setup this caused a limit of 7 motors. The new setup increases it 9. However, it costs some flexibility. The new default config sets up TIM1 as MOTOR by default, creating sane defaults for platforms with 1 or 4 motors.
This enables automatic pre-release builds when commits are pushed to the maintenance-9.x branch, providing complete firmware artifacts for RC releases.
RADIOLINKF722: add w25q128 flash
Add maintenance-9.x to nightly build workflow
New target: FrSky/Rotorflight Vantac RF007
PR Compliance Guide 🔍All compliance sections have been disabled in the configurations. |
| #define W25N01G_SPI_BUS BUS_SPI3 | ||
| #define W25N01G_CS_PIN PD2 | ||
|
|
||
| #define M25P16_SPI_BUS BUS_SPI3 | ||
| #define M25P16_CS_PIN PD2 | ||
|
|
||
| #define USE_BLACKBOX | ||
| #define USE_FLASHFS | ||
| #define USE_FLASH_M25P16 | ||
| #define USE_FLASH_W25N01G |
There was a problem hiding this comment.
Suggestion: Resolve a resource conflict by disabling one of the two flash chip drivers (USE_FLASH_M25P16 or USE_FLASH_W25N01G), as both are configured to use the same SPI bus and chip select pin. [possible issue, importance: 9]
| #define W25N01G_SPI_BUS BUS_SPI3 | |
| #define W25N01G_CS_PIN PD2 | |
| #define M25P16_SPI_BUS BUS_SPI3 | |
| #define M25P16_CS_PIN PD2 | |
| #define USE_BLACKBOX | |
| #define USE_FLASHFS | |
| #define USE_FLASH_M25P16 | |
| #define USE_FLASH_W25N01G | |
| #define W25N01G_SPI_BUS BUS_SPI3 | |
| #define W25N01G_CS_PIN PD2 | |
| #define M25P16_SPI_BUS BUS_SPI3 | |
| #define M25P16_CS_PIN PD2 // Or a different, unused pin | |
| #define USE_BLACKBOX | |
| #define USE_FLASHFS | |
| // #define USE_FLASH_M25P16 // Disable one flash type to resolve conflict | |
| #define USE_FLASH_W25N01G |
| #define USE_UART1 // clashes with I2C1 | ||
| #define UART1_TX_PIN PB6 | ||
| #define UART1_RX_PIN PB7 // pin labelled "SBUS" |
There was a problem hiding this comment.
Suggestion: Resolve a pin conflict on PB6 and PB7 by disabling USE_UART1 by default, as these pins are also configured for timer outputs in target.c. [possible issue, importance: 7]
| #define USE_UART1 // clashes with I2C1 | |
| #define UART1_TX_PIN PB6 | |
| #define UART1_RX_PIN PB7 // pin labelled "SBUS" | |
| //#define USE_UART1 // clashes with I2C1 and PWM outputs on PB6/PB7 | |
| #define UART1_TX_PIN PB6 | |
| #define UART1_RX_PIN PB7 // pin labelled "SBUS" |
| void targetConfiguration(void) | ||
| { | ||
| // default "ESC" pin to be a motor | ||
| timerOverridesMutable(timer2id(TIM1))->outputMode = OUTPUT_MODE_MOTORS; | ||
| } |
There was a problem hiding this comment.
Suggestion: timer2id() can return (uint8_t)-1 when TIM1 is not found; guard the returned id (and resulting pointer) before dereferencing to prevent out-of-bounds/NULL access and apply a safe fallback. [Learned best practice, importance: 6]
| void targetConfiguration(void) | |
| { | |
| // default "ESC" pin to be a motor | |
| timerOverridesMutable(timer2id(TIM1))->outputMode = OUTPUT_MODE_MOTORS; | |
| } | |
| void targetConfiguration(void) | |
| { | |
| // default "ESC" pin to be a motor | |
| const uint8_t timId = timer2id(TIM1); | |
| if (timId == (uint8_t)-1) { | |
| return; | |
| } | |
| timerOverride_t *override = timerOverridesMutable(timId); | |
| if (!override) { | |
| return; | |
| } | |
| override->outputMode = OUTPUT_MODE_MOTORS; | |
| } |
PR Type
Enhancement, New Target
Description
Add new FrSky/Rotorflight VANTAC RF007 flight controller target
Add maintenance-9.x branch to nightly build workflow
Add M25P16 flash support to RADIOLINKF722 target
Diagram Walkthrough
File Walkthrough
target.h
VANTAC RF007 board hardware configurationsrc/main/target/VANTAC_RF007/target.h
UART3 sharing
target.c
Timer hardware and servo output mappingsrc/main/target/VANTAC_RF007/target.c
SBUS
config.c
Default motor timer configurationsrc/main/target/VANTAC_RF007/config.c
CMakeLists.txt
CMake build configurationsrc/main/target/VANTAC_RF007/CMakeLists.txt
README.md
Target documentation and pin configuration guidesrc/main/target/VANTAC_RF007/README.md
assignments
nightly-build.yml
Add maintenance-9.x to nightly builds.github/workflows/nightly-build.yml
branch
target.h
Add M25P16 flash memory supportsrc/main/target/RADIOLINKF722/target.h