Skip to content

Conversation

@sugaarK
Copy link
Member

@sugaarK sugaarK commented Nov 23, 2025

new brand and targets added
see target team channel in discord

Checklist (✓/✕, or y/n)

  • [ ✓] passed Betaflight team's schematics review
  • [✓ ] passed hardware samples testing
  • [✓ ] follows guidelines
  • follows connector standards
  • flight tested
  • comments/issues resolved

Summary by CodeRabbit

  • New Features
    • Added support for two new AcroSky flight controller targets (STM32F405 and STM32H743) with complete hardware, sensor, motor, servo, UART/I2C/SPI and peripheral mappings.
  • Documentation
    • Expanded manufacturer list to include AcroSky.

✏️ Tip: You can customize this high-level summary in your review settings.

new brand and targets added
see target team channel in discord
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Nov 23, 2025

Walkthrough

Registers manufacturer ASKY/AcroSky and adds two new board configs: ACROSKYF405 (STM32F405) and ACROSKYH743 (STM32H743), introducing many feature flags, pin mappings, timer mappings, DMA options, and default peripheral/device selections.

Changes

Cohort / File(s) Change Summary
Manufacturer Registry
Manufacturers.md
Added new manufacturer entry: ASKY / AcroSky (contact field left empty).
ACROSKYF405 Hardware Configuration
configs/ACROSKYF405/config.h
New board config: FC_TARGET_MCU = STM32F405, BOARD_NAME = ACROSKYF405, MANUFACTURER_ID = ASKY; enables sensors/peripherals; defines ~60+ macros for motors/servos, UART/I2C/SPI, ADC pins, LEDs/beeper, CS/EXTI pins, TIMER_PIN_MAPPING, DMA opts, device instances, box names, default blackbox/current/voltage meter sources, and gyro alignment.
ACROSKYH743 Hardware Configuration
configs/ACROSKYH743/config.h
New board config: FC_TARGET_MCU = STM32H743, BOARD_NAME = ACROSKYH743, MANUFACTURER_ID = ASKY; enables sensors/peripherals (including ACCGYRO_BMI270); defines ~80+ macros for up to 8 motors, many UARTs, I2C/SPI pins, ADC/external ADC pins, LEDs/beeper, CS/EXTI pins, TIMER_PIN_MAPPING, DMA opts, device instances, default blackbox/current/voltage meter selections and current meter scale, and gyro alignment.

Sequence Diagram(s)

(omitted — changes are declarative hardware configurations without control-flow updates)

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

  • Areas needing extra attention:
    • Consistency of MANUFACTURER_ID = ASKY and BOARD_NAME strings.
    • Potential pin conflicts across UART/I2C/SPI/ADC/timer assignments.
    • Correctness and ordering of TIMER_PIN_MAPPING entries and DMA option numbers.
    • SPI/I2C/EXTI instance and CS pin pairings for gyros/flash/MAX7456.

Possibly related PRs

  • betaflight/config#881 — Adds an STM32H743 board config header with similar macro patterns and timer/pin mappings.
  • betaflight/config#911 — Adds a manufacturer row to Manufacturers.md (same file and change type).
  • betaflight/config#844 — Adds a manufacturer entry to Manufacturers.md (related registry edits).

Suggested labels

New manufacturer, Schematics approved

Suggested reviewers

  • KarateBrot
  • haslinghuis
  • blckmn
  • ot0tot

Pre-merge checks and finishing touches

❌ Failed checks (1 warning, 1 inconclusive)
Check name Status Explanation Resolution
Description check ⚠️ Warning The PR description is largely incomplete and non-compliant with the template. It lacks proper housekeeping details, only partially fills the checklist with unclear formatting, and provides minimal information about the changes beyond referring to a Discord channel. Provide detailed description of changes (new manufacturer entry, two flight controller targets), explain the hardware/design details, confirm all checklist items with clear formatting, and ensure PR originates from a custom branch per guidelines.
Title check ❓ Inconclusive The title 'acrosky targets' is partially related to the changeset, referring to a real aspect of the change (adding AcroSky configurations), but it is vague and overly broad—it doesn't clearly convey the specific nature of the change or distinguish it from generic updates. Replace with a more specific title that clearly indicates new flight controller support, such as 'Add AcroSky F405 and H743 flight controller configurations' or 'Add ACROSKYF405 and ACROSKYH743 targets'.
✅ Passed checks (1 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

added SUPPORTED TARGET reference keys
Copy link
Contributor

@coderabbitai coderabbitai bot left a 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 (4)
configs/ACROSKYF405/config.h (2)

100-100: Remove unnecessary ADC1_DMA_OPT definition.

ADC1_DMA_OPT is set to 0, which is the default value. This definition can be removed.

Based on past review feedback indicating ADC1 is the default instance.

Apply this diff:

-#define ADC1_DMA_OPT                   0

103-103: Remove trailing whitespace.

Line 103 has trailing whitespace after I2CDEV_1.

Apply this diff:

-#define MAG_I2C_INSTANCE               I2CDEV_1 
+#define MAG_I2C_INSTANCE               I2CDEV_1
configs/ACROSKYH743/config.h (2)

24-24: Remove trailing whitespace.

Line 24 has trailing whitespace after the hash value.

Apply this diff:

-    REFERENCE: sha256_29c8274d08f851f432abb7d3fe370f5dda49693b138c3aea23bd8e6408a5c898 
+    REFERENCE: sha256_29c8274d08f851f432abb7d3fe370f5dda49693b138c3aea23bd8e6408a5c898

130-131: Add spacing for consistency.

Lines 130-131 are missing a space after the macro name for consistency with other definitions in the file.

Apply this diff:

-#define MAG_I2C_INSTANCE I2CDEV_1
-#define BARO_I2C_INSTANCE I2CDEV_2
+#define MAG_I2C_INSTANCE        I2CDEV_1
+#define BARO_I2C_INSTANCE       I2CDEV_2
📜 Review details

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 73b11b6 and 0142048.

📒 Files selected for processing (2)
  • configs/ACROSKYF405/config.h (1 hunks)
  • configs/ACROSKYH743/config.h (1 hunks)
🧰 Additional context used
🧠 Learnings (14)
📓 Common learnings
Learnt from: haslinghuis
Repo: betaflight/config PR: 879
File: configs/AIRBOTSUPERF4V2/config.h:42-45
Timestamp: 2025-08-22T17:08:23.283Z
Learning: In Betaflight board configurations, OSD feature flags like USE_OSD_SD (analog/MAX7456) and USE_OSD_HD (digital/MSP DisplayPort) are typically defined at build time by the build system, not in the individual board config.h files. Board configs can conditionally define OSD-related settings based on these build-time flags.
Learnt from: ot0tot
Repo: betaflight/config PR: 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.
Learnt from: ot0tot
Repo: betaflight/config PR: 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.
Learnt from: haslinghuis
Repo: betaflight/config PR: 656
File: configs/IFLIGHT_F745_AIO/config.h:31-35
Timestamp: 2025-07-28T16:44:59.686Z
Learning: In Betaflight board configurations, when a board design uses the same physical gyro socket but different sensor variants across production batches (e.g., MPU6000 in older batches, ICM42688P in newer batches), the correct approach is to enable both sensor drivers (USE_GYRO_SPI_MPU6000 and USE_GYRO_SPI_ICM42688P) in the same configuration. This allows runtime auto-detection of which sensor is actually present without requiring separate board configurations for each hardware variant.
Learnt from: haslinghuis
Repo: betaflight/config PR: 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.
Learnt from: haslinghuis
Repo: betaflight/config PR: 0
File: :0-0
Timestamp: 2025-07-03T15:17:30.040Z
Learning: In Betaflight configurations, when a target name suggests dual IMUs (like JHEF7DUAL) but specific hardware variants only have one gyro available, the preferred solution is to use DEFAULT_GYRO_TO_USE macro to specify which gyro to use by default rather than pruning gyro defines or creating redundant configurations. This approach maintains compatibility when the same target is used by multiple hardware variants from the same manufacturer.
Learnt from: haslinghuis
Repo: betaflight/config PR: 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.
📚 Learning: 2025-07-03T04:33:57.480Z
Learnt from: ot0tot
Repo: betaflight/config PR: 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/ACROSKYF405/config.h
  • configs/ACROSKYH743/config.h
📚 Learning: 2025-07-14T16:16:56.822Z
Learnt from: haslinghuis
Repo: betaflight/config PR: 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/ACROSKYF405/config.h
  • configs/ACROSKYH743/config.h
📚 Learning: 2025-07-03T04:33:57.480Z
Learnt from: ot0tot
Repo: betaflight/config PR: 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/ACROSKYF405/config.h
  • configs/ACROSKYH743/config.h
📚 Learning: 2025-06-23T18:43:31.746Z
Learnt from: haslinghuis
Repo: betaflight/config PR: 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/ACROSKYF405/config.h
  • configs/ACROSKYH743/config.h
📚 Learning: 2025-07-03T15:17:30.040Z
Learnt from: haslinghuis
Repo: betaflight/config PR: 0
File: :0-0
Timestamp: 2025-07-03T15:17:30.040Z
Learning: In Betaflight configurations, when a target name suggests dual IMUs (like JHEF7DUAL) but specific hardware variants only have one gyro available, the preferred solution is to use DEFAULT_GYRO_TO_USE macro to specify which gyro to use by default rather than pruning gyro defines or creating redundant configurations. This approach maintains compatibility when the same target is used by multiple hardware variants from the same manufacturer.

Applied to files:

  • configs/ACROSKYF405/config.h
  • configs/ACROSKYH743/config.h
📚 Learning: 2025-06-02T16:16:20.197Z
Learnt from: haslinghuis
Repo: betaflight/config PR: 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/ACROSKYF405/config.h
  • configs/ACROSKYH743/config.h
📚 Learning: 2025-08-22T17:08:23.283Z
Learnt from: haslinghuis
Repo: betaflight/config PR: 879
File: configs/AIRBOTSUPERF4V2/config.h:42-45
Timestamp: 2025-08-22T17:08:23.283Z
Learning: In Betaflight board configurations, OSD feature flags like USE_OSD_SD (analog/MAX7456) and USE_OSD_HD (digital/MSP DisplayPort) are typically defined at build time by the build system, not in the individual board config.h files. Board configs can conditionally define OSD-related settings based on these build-time flags.

Applied to files:

  • configs/ACROSKYF405/config.h
  • configs/ACROSKYH743/config.h
📚 Learning: 2025-08-28T20:45:36.652Z
Learnt from: haslinghuis
Repo: betaflight/config PR: 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/ACROSKYF405/config.h
  • configs/ACROSKYH743/config.h
📚 Learning: 2025-08-28T20:45:36.652Z
Learnt from: haslinghuis
Repo: betaflight/config PR: 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/ACROSKYF405/config.h
  • configs/ACROSKYH743/config.h
📚 Learning: 2025-08-20T02:54:58.596Z
Learnt from: ot0tot
Repo: betaflight/config PR: 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/ACROSKYF405/config.h
  • configs/ACROSKYH743/config.h
📚 Learning: 2025-09-01T19:58:52.049Z
Learnt from: haslinghuis
Repo: betaflight/config PR: 881
File: configs/GEPRC_TAKER_H743MINI/config.h:86-99
Timestamp: 2025-09-01T19:58:52.049Z
Learning: For STM32H743 PB0 in Betaflight, there are three timer options: TIM1_CH2N, TIM3_CH3, and TIM8_CH2N. Only TIM3_CH3 (timer index 2) is suitable for GYRO_CLKIN as the other two are complementary (N) channels. This is confirmed in timer_stm32h7xx.c.

Applied to files:

  • configs/ACROSKYF405/config.h
  • configs/ACROSKYH743/config.h
📚 Learning: 2025-05-28T15:42:05.402Z
Learnt from: haslinghuis
Repo: betaflight/config PR: 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/ACROSKYH743/config.h
📚 Learning: 2025-09-01T19:58:52.049Z
Learnt from: haslinghuis
Repo: betaflight/config PR: 881
File: configs/GEPRC_TAKER_H743MINI/config.h:86-99
Timestamp: 2025-09-01T19:58:52.049Z
Learning: For STM32H743 in Betaflight, PB0 has multiple timer options but only timer index 2 provides a non-complementary output suitable for GYRO_CLKIN functionality. The other timer options for PB0 are N channels (complementary outputs) which are not appropriate for CLKIN usage.

Applied to files:

  • configs/ACROSKYH743/config.h
🔇 Additional comments (3)
configs/ACROSKYF405/config.h (1)

32-33: LGTM! BOARD_NAME matches directory.

The BOARD_NAME correctly matches the directory name (ACROSKYF405), ensuring proper board identification.

configs/ACROSKYH743/config.h (2)

32-33: LGTM! BOARD_NAME matches directory.

The BOARD_NAME correctly matches the directory name (ACROSKYH743), ensuring proper board identification.


129-147: No changes needed. The review comment is incorrect.

Based on verification, the original review comment's suggestion contradicts the established codebase pattern:

  1. No board configs use DEFAULT_GYRO_ENABLED: A search of the betaflight/config repository shows zero board configurations define this macro. The 36 boards that use DEFAULT_GYRO_TO_USE GYRO_CONFIG_USE_GYRO_BOTH do not pair it with DEFAULT_GYRO_ENABLED.

  2. Firmware handles it automatically: The Betaflight firmware includes a fallback: if DEFAULT_GYRO_ENABLED is not defined, it automatically enables the first gyro. This is by design.

  3. Learning confirms the approach: Previous review feedback established that when DEFAULT_GYRO_TO_USE is set to GYRO_CONFIG_USE_GYRO_BOTH, the firmware automatically establishes necessary settings during initialization without requiring explicit definitions in board configs.

ACROSKYH743's current configuration with only DEFAULT_GYRO_TO_USE GYRO_CONFIG_USE_GYRO_BOTH is correct and consistent with the codebase standard.

Likely an incorrect or invalid review comment.

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.

3 participants