-
Couldn't load subscription status.
- Fork 198
Add SATE EXELR8F722 target #772
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
base: master
Are you sure you want to change the base?
Conversation
Co-authored-by: Mark Haslinghuis <[email protected]>
Co-authored-by: Mark Haslinghuis <[email protected]>
WalkthroughAdds a single manufacturer entry (SATE) to Manufacturers.md and introduces a new EXELR8F722 board config header defining MCU, sensors, storage, pin mappings, timers, and runtime defaults (MANUFACTURER_ID SATE). Changes
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~25 minutes Possibly related PRs
Suggested reviewers
✨ Finishing Touches🧪 Generate unit tests
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
SupportNeed help? Create a ticket on our support page for assistance with any issues or questions. CodeRabbit Commands (Invoked using PR/Issue comments)Type Other keywords and placeholders
Status, Documentation and Community
|
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.
Actionable comments posted: 0
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
Manufacturers.md (1)
117-127: Duplicate SSAK row and out-of-order placement.SSAK appears twice; keep the one after SQRE and remove the earlier entry after SJET to maintain sort order.
-|SSAK|Dezhou Yingfei Intelligent Technology Co., Ltd.|| ... |SQRE|SEQURE|https://sequremall.com| |SSAK|Dezhou Yingfei Intelligent Technology Co., Ltd||
♻️ Duplicate comments (2)
configs/EXELR8F722/config.h (2)
29-36: Sensor enables look correct; DPS310 without USE_I2C is fine.USE_BARO_DPS310 present and no explicit USE_I2C required per prior investigations.
100-106: OSD/Flash/Gyro instances and GYRO_1_ALIGN look correct.BEEPER_INVERTED matches typical hardware; MAX7456 on SPI2 and Flash on SPI3 are standard; gyro align CW90_DEG matches prior suggestion.
🧹 Nitpick comments (2)
configs/EXELR8F722/config.h (2)
92-99: Default DSHOT via bitbang: consider disabling by default on F7.Hardware timers are available; bitbang ON increases CPU load. Suggest OFF unless required for specific wiring.
-#define DEFAULT_DSHOT_BITBANG DSHOT_BITBANG_ON +#define DEFAULT_DSHOT_BITBANG DSHOT_BITBANG_OFF
79-87: Remove unused PB8 timer mappingPB8 isn’t referenced by any pin macro in EXELR8F722—drop its TIMER_PIN_MAP entry or change it to a spare comment.
#define TIMER_PIN_MAPPING \ TIMER_PIN_MAP( 0, PA9 , 1, 0) \ TIMER_PIN_MAP( 1, PA8 , 1, 0) \ TIMER_PIN_MAP( 2, PC9 , 2, 0) \ TIMER_PIN_MAP( 3, PC8 , 2, 0) \ TIMER_PIN_MAP( 4, PB9 , 2, -1) \ TIMER_PIN_MAP( 5, PB0 , 2, -1) \ TIMER_PIN_MAP( 6, PB3 , 1, 0) \ - TIMER_PIN_MAP( 7, PB8 , 2, -1) + /* spare */Confirm DMA stream assignments for TIM2 (LED), TIM4 (PPM) and SPI on F7 to avoid conflicts.
📜 Review details
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
💡 Knowledge Base configuration:
- MCP integration is disabled by default for public repositories
- Jira integration is disabled by default for public repositories
- Linear integration is disabled by default for public repositories
You can enable these sources in your CodeRabbit configuration.
📒 Files selected for processing (2)
Manufacturers.md(1 hunks)configs/EXELR8F722/config.h(1 hunks)
🧰 Additional context used
🧠 Learnings (15)
📚 Learning: 2025-07-03T04:33:57.480Z
Learnt from: ot0tot
PR: betaflight/config#0
File: :0-0
Timestamp: 2025-07-03T04:33:57.480Z
Learning: Always verify that the BOARD_NAME define in each config.h matches the directory name it resides in (e.g., configs/AXISFLYINGF7AIO/config.h must have #define BOARD_NAME AXISFLYINGF7AIO). This check is required for all Betaflight board configuration reviews.
Applied to files:
configs/EXELR8F722/config.h
📚 Learning: 2025-07-03T04:33:57.480Z
Learnt from: ot0tot
PR: betaflight/config#0
File: :0-0
Timestamp: 2025-07-03T04:33:57.480Z
Learning: Always verify that the `BOARD_NAME` define in config.h files exactly matches the directory name where the config file is located. For example, if the config file is in configs/AXISFLYINGF7AIO/config.h, then the BOARD_NAME should be defined as "AXISFLYINGF7AIO". This ensures proper board identification and configuration loading in Betaflight.
Applied to files:
configs/EXELR8F722/config.h
📚 Learning: 2025-07-14T16:16:56.822Z
Learnt from: haslinghuis
PR: betaflight/config#835
File: configs/HDZERO_HALO_MPU6000/config.h:44-56
Timestamp: 2025-07-14T16:16:56.822Z
Learning: For Betaflight board configurations of boards already in production, pin assignments in config.h files reflect the actual hardware design and cannot be changed, even if they present potential conflicts with debug interfaces. The configuration must match the physical board layout, not ideal software design preferences.
Applied to files:
configs/EXELR8F722/config.h
📚 Learning: 2025-07-25T20:06:07.492Z
Learnt from: haslinghuis
PR: betaflight/config#719
File: configs/SPEDIXG473/config.h:29-38
Timestamp: 2025-07-25T20:06:07.492Z
Learning: BMP280 and DPS310 barometer drivers in Betaflight do not require USE_I2C to be explicitly defined in board configurations. Many existing boards successfully use USE_BARO_BMP280 and USE_BARO_DPS310 without defining USE_I2C, indicating that the I2C dependency is handled automatically by the build system or these sensors support alternative communication methods.
Applied to files:
configs/EXELR8F722/config.h
📚 Learning: 2025-07-25T20:06:07.492Z
Learnt from: haslinghuis
PR: betaflight/config#719
File: configs/SPEDIXG473/config.h:29-38
Timestamp: 2025-07-25T20:06:07.492Z
Learning: BMP280 and DPS310 barometer drivers in Betaflight do not require USE_I2C to be explicitly defined in board configurations. Out of 264 boards using these drivers, 259 (98%) work without USE_I2C defined, indicating that the I2C dependency is handled automatically by the build system.
Applied to files:
configs/EXELR8F722/config.h
📚 Learning: 2025-07-14T16:16:50.628Z
Learnt from: haslinghuis
PR: betaflight/config#835
File: configs/HDZERO_HALO_MPU6000/config.h:29-35
Timestamp: 2025-07-14T16:16:50.628Z
Learning: CW0_DEG is not a universal default gyro alignment setting in Betaflight configurations. Different boards use different gyro alignments (CW0_DEG, CW90_DEG, CW180_DEG, CW270_DEG, CW0_DEG_FLIP, etc.) based on their physical sensor mounting orientation.
Applied to files:
configs/EXELR8F722/config.h
📚 Learning: 2025-05-28T15:42:05.402Z
Learnt from: haslinghuis
PR: betaflight/config#792
File: configs/BEEROTORF4/config.h:30-30
Timestamp: 2025-05-28T15:42:05.402Z
Learning: The DEFAULT_GYRO_ENABLED macro with both gyros enabled (GYRO_MASK(0) | GYRO_MASK(1)) should only be added to board configurations that have DEFAULT_GYRO_TO_USE set to GYRO_CONFIG_USE_GYRO_BOTH. Boards without this setting should only get the GYRO_COUNT definition to specify the number of available gyros.
Applied to files:
configs/EXELR8F722/config.h
📚 Learning: 2025-05-28T15:42:05.402Z
Learnt from: haslinghuis
PR: betaflight/config#792
File: configs/BEEROTORF4/config.h:30-30
Timestamp: 2025-05-28T15:42:05.402Z
Learning: The DEFAULT_GYRO_ENABLED macro with both gyros enabled (GYRO_MASK(0) | GYRO_MASK(1)) should only be added to board configurations that have DEFAULT_GYRO_TO_USE set to GYRO_CONFIG_USE_GYRO_BOTH. Boards without this setting should only get the GYRO_COUNT definition.
Applied to files:
configs/EXELR8F722/config.h
📚 Learning: 2025-06-02T16:16:20.197Z
Learnt from: haslinghuis
PR: betaflight/config#0
File: :0-0
Timestamp: 2025-06-02T16:16:20.197Z
Learning: In STM32F405-based flight controller configurations, timer pin mappings must be carefully analyzed for DMA stream conflicts, especially between motor timers, LED strip timers, and SPI DMA assignments. Changes to TIMER_PIN_MAPPING should include verification that all required peripherals (motors, LED strip, blackbox SPI) can coexist without DMA conflicts.
Applied to files:
configs/EXELR8F722/config.h
📚 Learning: 2025-08-28T20:45:36.652Z
Learnt from: haslinghuis
PR: betaflight/config#888
File: configs/ZEX_ATHENA_MINI/config.h:0-0
Timestamp: 2025-08-28T20:45:36.652Z
Learning: In STM32H743 Betaflight configurations, PA15 maps to TIM2_CH1 (timer index 2) as defined in timer_stm32h7xx.c. When used for GYRO_CLKIN functionality, it's recommended to use the macro name GYRO_1_CLKIN_PIN in TIMER_PIN_MAPPING for consistency with other pin definitions.
Applied to files:
configs/EXELR8F722/config.h
📚 Learning: 2025-08-28T20:45:36.652Z
Learnt from: haslinghuis
PR: betaflight/config#888
File: configs/ZEX_ATHENA_MINI/config.h:0-0
Timestamp: 2025-08-28T20:45:36.652Z
Learning: In STM32H743 Betaflight configurations, PB0 can use multiple timer options including TIM1_CH2N, TIM3_CH3, and TIM8_CH2N as defined in timer_stm32h7xx.c. For CAMERA_CONTROL_PIN assignments, TIM3_CH3 (timer index 3) is the appropriate choice.
Applied to files:
configs/EXELR8F722/config.h
📚 Learning: 2025-08-20T02:54:58.596Z
Learnt from: ot0tot
PR: betaflight/config#872
File: configs/HGLRCH743/config.h:82-83
Timestamp: 2025-08-20T02:54:58.596Z
Learning: For Betaflight board configuration reviews, the definitive source for validating UART pin assignments is the serial_uart_{platform}.c file in the Betaflight codebase (e.g., serial_uart_stm32h7xx.c for STM32H7xx platforms), not generic MCU datasheets. These files contain the exact pin mappings that Betaflight supports for each UART peripheral.
Applied to files:
configs/EXELR8F722/config.h
📚 Learning: 2025-05-31T17:01:39.423Z
Learnt from: haslinghuis
PR: betaflight/config#798
File: configs/FURYF4OSD/config.h:88-88
Timestamp: 2025-05-31T17:01:39.423Z
Learning: For STM32F4xx platforms, PB1 pin timer definitions are:
1 = DEF_TIM(TIM1, CH3N, PB1, 0, 0)
2 = DEF_TIM(TIM3, CH4, PB1, 0, 0)
3 = DEF_TIM(TIM8, CH3N, PB1, 0, 0)
Timer instance 2 (TIM3, CH4) is the correct mapping for PB1 motor control on STM32F4xx platforms as defined in src/platform/STM32/timer_stm32f4xx.c
Applied to files:
configs/EXELR8F722/config.h
📚 Learning: 2025-07-14T15:41:14.364Z
Learnt from: ot0tot
PR: betaflight/config#834
File: configs/RADIOLINKF405/config.h:79-88
Timestamp: 2025-07-14T15:41:14.364Z
Learning: In STM32F405 configurations, PB1 typically maps to TIM3_CH4 and PC9 typically maps to TIM8_CH4. These are different timers and do not share DMA resources, so there is no conflict when both pins are used simultaneously (e.g., PB1 for LED_STRIP and PC9 for MOTOR4).
Applied to files:
configs/EXELR8F722/config.h
📚 Learning: 2025-06-23T18:43:31.746Z
Learnt from: haslinghuis
PR: betaflight/config#822
File: configs/AXISFLYINGH7MINI/config.h:29-37
Timestamp: 2025-06-23T18:43:31.746Z
Learning: In Betaflight configuration files, feature enablement macros like USE_MAG are build options that can be controlled at compile time, while hardware instance definitions like MAG_I2C_INSTANCE are predefined in board configurations to assist with hardware mapping when those features are enabled at build time.
Applied to files:
configs/EXELR8F722/config.h
🪛 markdownlint-cli2 (0.17.2)
Manufacturers.md
114-114: Bare URL used
(MD034, no-bare-urls)
115-115: Bare URL used
(MD034, no-bare-urls)
116-116: Bare URL used
(MD034, no-bare-urls)
🔇 Additional comments (7)
configs/EXELR8F722/config.h (5)
24-27: BOARD_NAME matches directory name — good.FC_TARGET_MCU and BOARD_NAME look consistent with the new target path configs/EXELR8F722/.
70-78: ADC/PINIO/CS/EXTI pins look good.VBAT/RSSI/CURR on PC0/PC1/PC2 are typical; CS/EXTI choices are conventional.
61-69: Verify SPI pin AF mappings
Manual confirmation needed that the chosen pins map to the correct alternate functions on STM32F7:
- SPI1: PA5/PA6/PA7 (AF5)
- SPI2: PB13/PB14/PB15 (AF5)
- SPI3: PC10/PC11/PB5 (AF6)
Ensure these match the STM32F7 SPI AF tables.
41-58: Validate UART pin assignments against Betaflight F7 UART map
Config sets UART1→PB6/PB7, UART2→PA2/PA3, UART4→PA0/PA1, UART5→PC12/PD2, UART6→PC6/PC7—confirm these exact pairs appear in src/platform/STM32/serial_uart_stm32f7xx.c of the main Betaflight repo.
39-40: Verify PB0 timer mapping for GYRO_1_CLKIN_PIN on STM32F7
Unable to locatetimer_stm32f7xx.cin this repo—please confirm that assigningGYRO_1_CLKIN_PIN = PB0selects TIM3_CH3 (option “2”) in your STM32F7 platform implementation.Manufacturers.md (2)
114-115: SATE entry correctly added and linked to MANUFACTURER_ID in config.Looks consistent with the new target.
114-114: URL spelling verified — “https://www.spaceandtech-engineerings.com/” is correct for Space & Tech Engineering LLP.
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.
Actionable comments posted: 0
🧹 Nitpick comments (1)
Manufacturers.md (1)
114-114: Consider wrapping the URL to satisfy MD034 (no-bare-urls).If markdownlint runs on changed lines, wrap the URL in angle brackets.
-|SATE|Space & Tech Engineering LLP|https://www.spaceandtech-engineerings.com/| +|SATE|Space & Tech Engineering LLP|<https://www.spaceandtech-engineerings.com/>|
📜 Review details
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
💡 Knowledge Base configuration:
- MCP integration is disabled by default for public repositories
- Jira integration is disabled by default for public repositories
- Linear integration is disabled by default for public repositories
You can enable these sources in your CodeRabbit configuration.
📒 Files selected for processing (1)
Manufacturers.md(1 hunks)
🧰 Additional context used
🪛 markdownlint-cli2 (0.17.2)
Manufacturers.md
114-114: Bare URL used
(MD034, no-bare-urls)
🔇 Additional comments (2)
Manufacturers.md (2)
114-114: LGTM: ID, placement, and table formatting look correct.
- 4-letter uppercase ID is unique.
- Sorted correctly between RUSH and SDRC.
- Pipe count and cell order are consistent.
114-114: Approve manufacturer entry
URL https://www.spaceandtech-engineerings.com/ returns HTTP 200 andMANUFACTURER_IDis correctly defined asSATEinconfigs/EXELR8F722/config.h.
SATEand targetEXELR8F722Summary by CodeRabbit
New Features
Documentation