-
Notifications
You must be signed in to change notification settings - Fork 1.7k
Merge accidental master PRs into maintenance-9.x #11247
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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