Skip to content

Conversation

@ot0tot
Copy link
Contributor

@ot0tot ot0tot commented Nov 12, 2025

To address recent questions regarding GPIO usage, current limiting resistors, and adherence to best design practices.

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Nov 12, 2025

Walkthrough

Added Draft 2.0 "GPIO usage clarifications" and editorial updates to the manufacturer design guidelines: introduced a 100Ω maximum for GPIO current-limiting resistors, clarified PINIO/BITBANG/DShot/TIMER/DMA guidance and timer naming, standardized UART/SPI naming, and strengthened I2C guidance for barometer/magnetometer.

Changes

Cohort / File(s) Summary
Documentation updates
docs/development/manufacturer/manufacturer-design-guidelines.md
Added Draft 2.0 "GPIO usage clarifications"; added subsection 3.1.5 with 100Ω max for GPIO current-limiting resistors and notes for motor/LED pins; clarified PINIO, BITBANG/DShot, TIMER/TIM naming and DMA/resource guidance; standardized UART/SPI naming; tightened SPI RX cautions; emphasized I2C for BARO/MAG and updated 4.x reference tables; editorial and wording refinements across sections 3.1–4.x.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

  • Single-file, primarily editorial with a few technical constraints.
  • Areas needing attention:
    • Precise wording and implications of the 100Ω current-limiting resistor rule for motor/LED pins.
    • Consistency of TIM/TIMER naming, BITBANG/DShot and DMA/resource guidance across MCU families.
    • SPI RX cautions and references to alternative ESC firmware/ecosystems.

Possibly related PRs

Suggested reviewers

  • haslinghuis
  • nerdCopter
  • VitroidFPV

Pre-merge checks and finishing touches

✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed The PR title 'GPIO usage clarifications' accurately reflects the main change of introducing GPIO usage guidance and current limiting resistor specifications.
Description check ✅ Passed The PR description mentions GPIO usage, current limiting resistors, and best design practices, which align with the substantive changes documented in the changeset.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

Tip

📝 Customizable high-level summaries are now available!

You can now customize how CodeRabbit generates the high-level summary in your pull requests — including its content, structure, tone, and formatting.

  • Provide custom instructions to shape the summary (bullet lists, tables, contributor stats, etc.).
  • Use high_level_summary_in_walkthrough to move the summary from the description to the walkthrough section.

Example:

"Create a concise high-level summary as a bullet-point list. Then include a Markdown table showing lines added and removed by each contributing author."


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.

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: 3

🧹 Nitpick comments (4)
docs/development/manufacturer/manufacturer-design-guidelines.md (4)

146-146: Tighten verbose phrasing.

The phrase "with respect to" is unnecessarily wordy. Consider shortening to "for" or restructuring the sentence to be more concise.

- When asked to review hardware our first action will be to review schematics/layouts against the application notes for the applicable data sheets. The specifics of how the hardware is interconnected is of course going to be driven by a number of constraints, such as recommended pinouts, as outlined below, but is it essential that good design practices are followed with respect to providing good quality power regulation, appropriate use of ground/power planes, decoupling component positioning etc. 
+ When asked to review hardware our first action will be to review schematics/layouts against the application notes for the applicable data sheets. The specifics of how the hardware is interconnected is of course going to be driven by a number of constraints, such as recommended pinouts, as outlined below, but it is essential that good design practices are followed for good quality power regulation, appropriate use of ground/power planes, and decoupling component positioning. 

339-341: New GPIO current limiting resistor guidance is a valuable addition.

The new section on current limiting resistors provides useful, practical guidance that addresses recent GPIO usage questions. The recommendation to limit resistors to 100 ohms maximum is clear and well-motivated (protecting marginal signal levels on motor and LED pins).

Consider hyphenating "Current-limiting" for terminology consistency with technical writing standards.

- #### 3.1.5 Current Limiting Resistors
+ #### 3.1.5 Current-Limiting Resistors

484-484: BLHeli_32 deprecation guidance is appropriately updated.

The new guidance clarifying that BLHeli_32 ceased operations in 2024 and recommending AM32 and ESCape32 as alternatives is timely and practical. This addresses a real shift in the ESC ecosystem and steers manufacturers toward actively maintained firmware.

- BLHeli_32 ceased operations in 2024. No new licenses have been issued, and users are no longer able to flash firmware. Manufacturers should no longer be shipping BL32 ESCs.
+ BLHeli_32 ceased operations in 2024. No new licenses have been issued, and users can no longer flash firmware. Manufacturers should no longer be shipping BLHeli_32 ESCs.

Note: "are no longer able to" is slightly more formal than "can no longer," and the change to "BLHeli_32" (full product name) instead of "BL32" (abbreviation) improves clarity throughout.


492-492: Firmware alternatives for 8-bit ESCs clarified.

The addition of Bluejay and JESC as explicitly supported alternatives for 8-bit ESC firmware provides valuable guidance for manufacturers. Fix hyphenation on "8 Bit" to "8-bit".

- ### 3.4.2 For 8 Bit ESCs (BLHeli_S)
+ ### 3.4.2 For 8-bit ESCs (BLHeli_S)
📜 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 904e3ab and 58faf97.

📒 Files selected for processing (1)
  • docs/development/manufacturer/manufacturer-design-guidelines.md (12 hunks)
🧰 Additional context used
🧠 Learnings (2)
📚 Learning: 2025-09-24T21:10:42.055Z
Learnt from: VitroidFPV
Repo: betaflight/betaflight.com PR: 567
File: src/components/VersionInfo/VersionInfo.tsx:5-14
Timestamp: 2025-09-24T21:10:42.055Z
Learning: Betaflight firmware and configurator are transitioning from semantic versioning (SemVer) to calendar versioning (CalVer). The new format will be 2025.12.0 instead of the traditional SemVer format. Version comparison logic in components like VersionInfo will need to be updated to handle this new format.

Applied to files:

  • docs/development/manufacturer/manufacturer-design-guidelines.md
📚 Learning: 2025-09-24T20:59:20.784Z
Learnt from: VitroidFPV
Repo: betaflight/betaflight.com PR: 567
File: docs/wiki/guides/current/SoftSerial.md:129-133
Timestamp: 2025-09-24T20:59:20.784Z
Learning: In Betaflight firmware 4.5.2, the correct CLI syntax for SoftSerial resources uses underscores: RESOURCE SOFTSERIAL_TX <index> <pin> and RESOURCE SOFTSERIAL_RX <index> <pin>, not the format without underscores (SOFTSERIALTX/SOFTSERIALRX) that appears in some release notes.

Applied to files:

  • docs/development/manufacturer/manufacturer-design-guidelines.md
🪛 LanguageTool
docs/development/manufacturer/manufacturer-design-guidelines.md

[style] ~146-~146: ‘with respect to’ might be wordy. Consider a shorter alternative.
Context: ...that good design practices are followed with respect to providing good quality power regulation...

(EN_WORDINESS_PREMIUM_WITH_RESPECT_TO)


[grammar] ~292-~292: Use a hyphen to join words.
Context: ...sers to select constant-on or transistor switched behavior, particularly if locat...

(QB_NEW_EN_HYPHEN)


[grammar] ~339-~339: Use a hyphen to join words.
Context: ...g. to drive an LED). #### 3.1.5 Current Limiting Resistors Current limiting res...

(QB_NEW_EN_HYPHEN)


[grammar] ~341-~341: Use a hyphen to join words.
Context: ....1.5 Current Limiting Resistors Current limiting resistors on GPIOs, if used, sh...

(QB_NEW_EN_HYPHEN)


[style] ~484-~484: As a shorter alternative for ‘able to’, consider using “can no longer”.
Context: ...ew licenses have been issued, and users are no longer able to flash firmware. Manufacturers should no...

(BE_ABLE_TO)


[grammar] ~486-~486: Use a hyphen to join words.
Context: ...open-source community. ### 3.4.2 For 8 Bit ESCs (BLHeli_S) Betaflight will con...

(QB_NEW_EN_HYPHEN)


[grammar] ~533-~533: Ensure spelling is correct
Context: ...bility may require lowering looprate to 2kHz *** No new SPI RX solutions will be a...

(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)


[grammar] ~538-~538: Ensure spelling is correct
Context: ...e BMI270 lowers the gyro loop rate from 8kHz to 3.2kHz and therefore may be advantag...

(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)

🪛 markdownlint-cli2 (0.18.1)
docs/development/manufacturer/manufacturer-design-guidelines.md

112-112: Link text should be descriptive

(MD059, descriptive-link-text)

⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: deploy
🔇 Additional comments (9)
docs/development/manufacturer/manufacturer-design-guidelines.md (9)

40-40: New version entry for GPIO usage clarifications.

The addition of Draft 2.0 with the new GPIO usage clarifications entry follows the established versioning format correctly and updates the documentation version registry appropriately.


100-101: Policy strengthening via bold mandatory language is appropriate.

The emphasized requirement text ("Before submitting... may result in automatic rejection") clarifies the mandatory nature of compliance with design guidelines, which is a reasonable policy clarification that improves communication of expectations to manufacturers.


362-362: Motor resource allocation guidance clarified.

The update to line 362 ("M1-M4 are required...") strengthens the guidance on optimal GPIO port allocation for motor pins, which aligns with the "BITBANG" default resource strategy described in the surrounding context.


373-373: DSHOT BITBANG DMA guidance expansion is beneficial.

The expanded note clarifying that advanced timers (TIM1/TIM8) use DMA to drive GPIO signals directly (bypassing timer AF modes) provides important technical clarity for hardware designers implementing bitbanged DShot configurations.


406-406: F7 resource guidance refined.

The wording clarification for F7 resource selection ("at least one of these timers must be available") reinforces the flexibility of F7 MCUs compared to F4 constraints, and is an appropriate refinement.


526-536: SPI RX deprecation policy is clearly communicated.

The updated guidance on lines 535–536 explicitly deprecating new SPI RX solutions and explaining the ecosystem rationale (ExpressLRS 4.0+, FrSky, etc.) is a major policy clarification that manages manufacturer expectations and reduces future support burden. The rationale is well-documented.

Note minor formatting inconsistencies with terminology: The table headers show "UART RX" and "SPI RX" but the surrounding text uses "SPI Rx" in some places. Consider standardizing the terminology throughout (recommend "SPI RX" for consistency with common usage and the table headers).

Verify terminology consistency for "SPI RX" vs "SPI Rx" throughout the document. Current table headers (lines 526, 528) use "UART RX" and "SPI RX" (uppercase), but surrounding text may use mixed case. Consistent terminology improves clarity.


538-538: BMI270 deprecation guidance appropriately clarified.

The note clarifying that BMI270 may lower gyro loop rate requirements (3.2 kHz instead of 8 kHz) and provides a potential advantage for F411 designs is useful context. However, this conflicts with the earlier warning (lines 540–546) that BMI270 is no longer recommended. Ensure the messaging is consistent or clarify the conditional scenarios where BMI270 might still be acceptable.

Reconcile the statements about BMI270: line 538 suggests it "may be advantageous for F411 designs," while lines 540–546 state "BMI270 is no longer recommended." Clarify whether BMI270 is: (a) completely deprecated, or (b) conditionally acceptable for F411 only. If deprecated, remove line 538 commentary.


593-593: I2C barometer recommendation is now explicit.

The addition of explicit guidance to "strongly recommend I2C for barometer connections" (vs. SPI) improves clarity and aligns with best practices discussed earlier. This is a valuable clarity enhancement.


616-616: I2C magnetometer recommendation is now explicit.

Similar to barometer guidance, explicitly recommending I2C for magnetometer connections improves manufacturer awareness of best practices and reduces configuration errors. This change is appropriate.

ot0tot and others added 4 commits November 12, 2025 14:39
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
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 (5)
docs/development/manufacturer/manufacturer-design-guidelines.md (5)

146-147: Simplify wordy phrase.

Line 146 uses "with respect to" which is unnecessarily verbose. Consider a more concise alternative.

- When asked to review hardware our first action will be to review schematics/layouts against the application notes for the applicable data sheets. The specifics of how the hardware is interconnected is of course going to be driven by a number of constraints, such as recommended pinouts, as outlined below, but is it essential that good design practices are followed with respect to providing good quality power regulation, appropriate use of ground/power planes, decoupling component positioning etc.
+ When asked to review hardware our first action will be to review schematics/layouts against the application notes for the applicable data sheets. The specifics of how the hardware is interconnected is of course going to be driven by a number of constraints, such as recommended pinouts, as outlined below, but is it essential that good design practices are followed for providing good quality power regulation, appropriate use of ground/power planes, decoupling component positioning etc.

341-343: Fix hyphenation of compound adjective.

"Current limiting resistors" should be hyphenated as "current-limiting resistors" when used as a compound adjective modifying the noun.

- #### 3.1.5 Current Limiting Resistors
-
- Current limiting resistors on GPIOs, if used, should not exceed 100 ohms. This is especially true for motor and LED signal pins, where signal levels are marginal to begin with.
+ #### 3.1.5 Current-Limiting Resistors
+
+ Current-limiting resistors on GPIOs, if used, should not exceed 100 ohms. This is especially true for motor and LED signal pins, where signal levels are marginal to begin with.

408-410: Reconcile MCU naming inconsistency.

The section header references "AT32F435" but line 410 refers to "F435" without the "AT32" prefix. Ensure consistent naming throughout the section.

- G4, H7, and F435 series MCUs include a DMAMUX, which allows for flexible DMA stream allocation. Therefore, only timer conflicts between motor outputs and other outputs need to be avoided.
+ G4, H7, and AT32F435 series MCUs include a DMAMUX, which allows for flexible DMA stream allocation. Therefore, only timer conflicts between motor outputs and other outputs need to be avoided.

484-484: Simplify "are no longer able to" phrase.

The phrase can be more concise and direct.

- BLHeli_32 ceased operations in 2024. No new licenses have been issued, and users are no longer able to flash firmware. Manufacturers should no longer be shipping BL32 ESCs. There are several alternatives, including AM32 and ESCape32 that can be flashed to the same hardware and are fully supported by the open-source community.
+ BLHeli_32 ceased operations in 2024. No new licenses have been issued, and users can no longer flash firmware. Manufacturers should no longer be shipping BL32 ESCs. There are several alternatives, including AM32 and ESCape32 that can be flashed to the same hardware and are fully supported by the open-source community.

486-486: Fix hyphenation of compound adjective in section header.

"8 Bit ESCs" should be hyphenated as "8-bit ESCs" when used as a compound adjective.

- ### 3.4.2 For 8 Bit ESCs (BLHeli_S)
+ ### 3.4.2 For 8-bit ESCs (BLHeli_S)
📜 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 58faf97 and b26576d.

📒 Files selected for processing (1)
  • docs/development/manufacturer/manufacturer-design-guidelines.md (12 hunks)
🧰 Additional context used
🧠 Learnings (6)
📓 Common learnings
Learnt from: VitroidFPV
Repo: betaflight/betaflight.com PR: 567
File: docs/wiki/guides/current/SoftSerial.md:129-133
Timestamp: 2025-09-24T20:59:20.784Z
Learning: In Betaflight firmware 4.5.2 and higher, the correct CLI syntax for SoftSerial resources uses underscores: `RESOURCE SOFTSERIAL_TX <index> <pin>` and `RESOURCE SOFTSERIAL_RX <index> <pin>`. The release notes in docs/wiki/release/Betaflight-4-5-Release-Notes.md incorrectly show the format without underscores (SOFTSERIALTX/SOFTSERIALRX) and should be corrected to match the authoritative CLI syntax documented in docs/development/Serial.md.
📚 Learning: 2025-09-24T20:59:20.784Z
Learnt from: VitroidFPV
Repo: betaflight/betaflight.com PR: 567
File: docs/wiki/guides/current/SoftSerial.md:129-133
Timestamp: 2025-09-24T20:59:20.784Z
Learning: In Betaflight firmware 4.5.2 and higher, the correct CLI syntax for SoftSerial resources uses underscores: `RESOURCE SOFTSERIAL_TX <index> <pin>` and `RESOURCE SOFTSERIAL_RX <index> <pin>`. The release notes in docs/wiki/release/Betaflight-4-5-Release-Notes.md incorrectly show the format without underscores (SOFTSERIALTX/SOFTSERIALRX) and should be corrected to match the authoritative CLI syntax documented in docs/development/Serial.md.

Applied to files:

  • docs/development/manufacturer/manufacturer-design-guidelines.md
📚 Learning: 2025-09-24T21:00:01.780Z
Learnt from: VitroidFPV
Repo: betaflight/betaflight.com PR: 567
File: docs/wiki/release/Betaflight-4-5-Release-Notes.md:364-364
Timestamp: 2025-09-24T21:00:01.780Z
Learning: VitroidFPV (project contributor) corrected that SOFTSERIAL_RX (with underscore) is the correct CLI format as of firmware 4.5.2, not SOFTSERIALTX/SOFTSERIALRX (without underscore) as shown in the release notes.

Applied to files:

  • docs/development/manufacturer/manufacturer-design-guidelines.md
📚 Learning: 2025-09-24T21:00:01.780Z
Learnt from: VitroidFPV
Repo: betaflight/betaflight.com PR: 567
File: docs/wiki/release/Betaflight-4-5-Release-Notes.md:364-364
Timestamp: 2025-09-24T21:00:01.780Z
Learning: The correct SoftSerial CLI syntax in Betaflight 4.5+ uses underscores: SOFTSERIAL_TX and SOFTSERIAL_RX, not SOFTSERIALTX and SOFTSERIALRX as incorrectly shown in the release notes.

Applied to files:

  • docs/development/manufacturer/manufacturer-design-guidelines.md
📚 Learning: 2025-09-24T20:59:20.784Z
Learnt from: VitroidFPV
Repo: betaflight/betaflight.com PR: 567
File: docs/wiki/guides/current/SoftSerial.md:129-133
Timestamp: 2025-09-24T20:59:20.784Z
Learning: In Betaflight firmware 4.5.2, the correct CLI syntax for SoftSerial resources uses underscores: RESOURCE SOFTSERIAL_TX <index> <pin> and RESOURCE SOFTSERIAL_RX <index> <pin>, not the format without underscores (SOFTSERIALTX/SOFTSERIALRX) that appears in some release notes.

Applied to files:

  • docs/development/manufacturer/manufacturer-design-guidelines.md
📚 Learning: 2025-09-24T21:10:42.055Z
Learnt from: VitroidFPV
Repo: betaflight/betaflight.com PR: 567
File: src/components/VersionInfo/VersionInfo.tsx:5-14
Timestamp: 2025-09-24T21:10:42.055Z
Learning: Betaflight firmware and configurator are transitioning from semantic versioning (SemVer) to calendar versioning (CalVer). The new format will be 2025.12.0 instead of the traditional SemVer format. Version comparison logic in components like VersionInfo will need to be updated to handle this new format.

Applied to files:

  • docs/development/manufacturer/manufacturer-design-guidelines.md
🪛 LanguageTool
docs/development/manufacturer/manufacturer-design-guidelines.md

[style] ~146-~146: ‘with respect to’ might be wordy. Consider a shorter alternative.
Context: ...that good design practices are followed with respect to providing good quality power regulation...

(EN_WORDINESS_PREMIUM_WITH_RESPECT_TO)


[grammar] ~341-~341: Use a hyphen to join words.
Context: ... drive an LED). ::: #### 3.1.5 Current Limiting Resistors Current limiting res...

(QB_NEW_EN_HYPHEN)


[grammar] ~343-~343: Use a hyphen to join words.
Context: ....1.5 Current Limiting Resistors Current limiting resistors on GPIOs, if used, sh...

(QB_NEW_EN_HYPHEN)


[style] ~484-~484: As a shorter alternative for ‘able to’, consider using “can no longer”.
Context: ...ew licenses have been issued, and users are no longer able to flash firmware. Manufacturers should no...

(BE_ABLE_TO)


[grammar] ~486-~486: Use a hyphen to join words.
Context: ...open-source community. ### 3.4.2 For 8 Bit ESCs (BLHeli_S) Betaflight will con...

(QB_NEW_EN_HYPHEN)


[grammar] ~538-~538: Ensure spelling is correct
Context: ...e BMI270 lowers the gyro loop rate from 8kHz to 3.2kHz and therefore may be advantag...

(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)

⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: deploy
🔇 Additional comments (5)
docs/development/manufacturer/manufacturer-design-guidelines.md (5)

40-40: LGTM! New version entry appropriately documents GPIO usage clarifications.

Draft 2.0 entry clearly indicates the purpose of this major update to the guidelines.


100-100: Strong enforcement mechanism for guideline compliance.

The explicit warning about guideline review before submission is a valuable safeguard to reduce rejections and improve hardware approval outcomes.


526-539: LGTM! Performance table updates and footnote clarifications are well‑articulated.

The revisions to the looptime/performance recommendations, particularly the clarification about F411 UART RX vs. SPI RX distinctions, and the deprecation of SPI RX solutions with updated ecosystem context, provide clear guidance to hardware manufacturers. The note about BMI270 being "advantageous" (rather than prescriptive) appropriately qualifies the recommendation.


593-593: LGTM! Barometer I2C recommendation is clear and well‑integrated.

The explicit statement "Betaflight strongly recommends I2C for barometer connections" in the defines section reinforces the guidance provided earlier in the document.


616-616: LGTM! Magnetometer I2C recommendation parallels barometer guidance.

Consistent framing of I2C recommendations across sensor types strengthens the overall design guidance.

haslinghuis
haslinghuis previously approved these changes Nov 12, 2025
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: 4

🧹 Nitpick comments (1)
docs/development/manufacturer/manufacturer-design-guidelines.md (1)

146-147: Clarified best practices requirement is substantive and good.

The explicit requirement for manufacturers to follow datasheets and industry best practices is a valuable addition. The phrasing could be slightly more concise (consider "with respect to" → "regarding"), but this is minor.

Consider tightening: "...is of course going to be driven by a number of constraints..." could become "...will be driven by constraints such as recommended pinouts..." to reduce verbosity slightly.

📜 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 b26576d and 1696324.

📒 Files selected for processing (1)
  • docs/development/manufacturer/manufacturer-design-guidelines.md (13 hunks)
🧰 Additional context used
🧠 Learnings (6)
📚 Learning: 2025-09-24T20:59:20.784Z
Learnt from: VitroidFPV
Repo: betaflight/betaflight.com PR: 567
File: docs/wiki/guides/current/SoftSerial.md:129-133
Timestamp: 2025-09-24T20:59:20.784Z
Learning: In Betaflight firmware 4.5.2 and higher, the correct CLI syntax for SoftSerial resources uses underscores: `RESOURCE SOFTSERIAL_TX <index> <pin>` and `RESOURCE SOFTSERIAL_RX <index> <pin>`. The release notes in docs/wiki/release/Betaflight-4-5-Release-Notes.md incorrectly show the format without underscores (SOFTSERIALTX/SOFTSERIALRX) and should be corrected to match the authoritative CLI syntax documented in docs/development/Serial.md.

Applied to files:

  • docs/development/manufacturer/manufacturer-design-guidelines.md
📚 Learning: 2025-09-24T21:00:01.780Z
Learnt from: VitroidFPV
Repo: betaflight/betaflight.com PR: 567
File: docs/wiki/release/Betaflight-4-5-Release-Notes.md:364-364
Timestamp: 2025-09-24T21:00:01.780Z
Learning: VitroidFPV (project contributor) corrected that SOFTSERIAL_RX (with underscore) is the correct CLI format as of firmware 4.5.2, not SOFTSERIALTX/SOFTSERIALRX (without underscore) as shown in the release notes.

Applied to files:

  • docs/development/manufacturer/manufacturer-design-guidelines.md
📚 Learning: 2025-09-24T21:00:01.780Z
Learnt from: VitroidFPV
Repo: betaflight/betaflight.com PR: 567
File: docs/wiki/release/Betaflight-4-5-Release-Notes.md:364-364
Timestamp: 2025-09-24T21:00:01.780Z
Learning: The correct SoftSerial CLI syntax in Betaflight 4.5+ uses underscores: SOFTSERIAL_TX and SOFTSERIAL_RX, not SOFTSERIALTX and SOFTSERIALRX as incorrectly shown in the release notes.

Applied to files:

  • docs/development/manufacturer/manufacturer-design-guidelines.md
📚 Learning: 2025-09-24T20:59:20.784Z
Learnt from: VitroidFPV
Repo: betaflight/betaflight.com PR: 567
File: docs/wiki/guides/current/SoftSerial.md:129-133
Timestamp: 2025-09-24T20:59:20.784Z
Learning: In Betaflight firmware 4.5.2, the correct CLI syntax for SoftSerial resources uses underscores: RESOURCE SOFTSERIAL_TX <index> <pin> and RESOURCE SOFTSERIAL_RX <index> <pin>, not the format without underscores (SOFTSERIALTX/SOFTSERIALRX) that appears in some release notes.

Applied to files:

  • docs/development/manufacturer/manufacturer-design-guidelines.md
📚 Learning: 2025-09-24T21:10:42.055Z
Learnt from: VitroidFPV
Repo: betaflight/betaflight.com PR: 567
File: src/components/VersionInfo/VersionInfo.tsx:5-14
Timestamp: 2025-09-24T21:10:42.055Z
Learning: Betaflight firmware and configurator are transitioning from semantic versioning (SemVer) to calendar versioning (CalVer). The new format will be 2025.12.0 instead of the traditional SemVer format. Version comparison logic in components like VersionInfo will need to be updated to handle this new format.

Applied to files:

  • docs/development/manufacturer/manufacturer-design-guidelines.md
📚 Learning: 2025-10-24T20:34:49.176Z
Learnt from: nerdCopter
Repo: betaflight/betaflight.com PR: 593
File: docs/wiki/guides/current/Betaflight-2025.12-CLI-commands.md:9-9
Timestamp: 2025-10-24T20:34:49.176Z
Learning: In Betaflight documentation files (particularly CLI reference documentation), code blocks containing Betaflight firmware CLI commands and output should use `text` or `plaintext` as the language identifier, not `bash`, since Betaflight CLI is a custom firmware interface, not a standard shell.

Applied to files:

  • docs/development/manufacturer/manufacturer-design-guidelines.md
🪛 LanguageTool
docs/development/manufacturer/manufacturer-design-guidelines.md

[style] ~96-~96: ‘prior to’ might be wordy. Consider a shorter alternative.
Context: ... PCB renders, and similar documentation prior to initial production provides opportuniti...

(EN_WORDINESS_PREMIUM_PRIOR_TO)


[style] ~146-~146: ‘with respect to’ might be wordy. Consider a shorter alternative.
Context: ...that good design practices are followed with respect to providing good quality power regulation...

(EN_WORDINESS_PREMIUM_WITH_RESPECT_TO)


[grammar] ~341-~341: Use a hyphen to join words.
Context: ... drive an LED). ::: #### 3.1.5 Current Limiting Resistors Current limiting res...

(QB_NEW_EN_HYPHEN)


[grammar] ~343-~343: Use a hyphen to join words.
Context: ....1.5 Current Limiting Resistors Current limiting resistors on GPIOs, if used, sh...

(QB_NEW_EN_HYPHEN)


[grammar] ~479-~479: Use a hyphen to join words.
Context: ...Dynamic Idle features. ### 3.4.1 For 32 Bit ESCs (e.g. BLHeli_32 and AM32) Beta...

(QB_NEW_EN_HYPHEN)


[style] ~484-~484: As a shorter alternative for ‘able to’, consider using “can no longer”.
Context: ...32 licenses have been issued, and users are no longer able to flash firmware. Manufacturers should no...

(BE_ABLE_TO)


[grammar] ~486-~486: Use a hyphen to join words.
Context: ...open-source community. ### 3.4.2 For 8 Bit ESCs (e.g. BLHeli_S, Bluejay) Betaf...

(QB_NEW_EN_HYPHEN)


[grammar] ~494-~494: Use a hyphen to join words.
Context: ...rectional DShot support, and ease of end user support for other functionality acr...

(QB_NEW_EN_HYPHEN)


[style] ~501-~501: Consider a more concise word here.
Context: ...users will be required to disable DShot in order to continue with operations. This situatio...

(IN_ORDER_TO_PREMIUM)


[grammar] ~501-~501: Use a hyphen to join words.
Context: ...his hardware will require additional end user configuration. However, these ESCs ...

(QB_NEW_EN_HYPHEN)


[grammar] ~538-~538: Ensure spelling is correct
Context: ...e BMI270 lowers the gyro loop rate from 8kHz to 3.2kHz and therefore may be advantag...

(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)

🪛 markdownlint-cli2 (0.18.1)
docs/development/manufacturer/manufacturer-design-guidelines.md

484-484: Reversed link syntax
(AM32)[https://am32.ca/]

(MD011, no-reversed-links)


484-484: Reversed link syntax
(ESCape32)[https://github.com/neoxic/ESCape32}]

(MD011, no-reversed-links)


492-492: Reversed link syntax
(Bluejay)[https://github.com/bird-sanctuary/bluejay]

(MD011, no-reversed-links)

⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: deploy
🔇 Additional comments (4)
docs/development/manufacturer/manufacturer-design-guidelines.md (4)

40-40: Version entry is clear and appropriately dated.

The Draft 2.0 entry accurately captures the scope of changes (GPIO usage clarifications) with an appropriate revision date.


95-98: Improved guidance on design review process.

The addition of explicit emphasis on adhering to design guidelines before target submission (lines 95–98) provides helpful clarity and sets expectations appropriately.


526-536: Terminology standardization and SPI RX guidance are appropriate.

The updated terminology (UART RX vs SPI RX) and clarified footnotes about SPI RX deprecation provide important guidance. The note that new SPI RX solutions won't be accepted (line 535–536) reflects current ecosystem realities appropriately.


593-593: I2C recommendations for BARO/MAG are clear and helpful.

The additions emphasizing I2C preference for barometer and magnetometer connections provide important guidance that aligns well with the detailed I2C discussion in section 3.1.3.

Also applies to: 616-616

haslinghuis
haslinghuis previously approved these changes Nov 12, 2025
@sonarqubecloud
Copy link

@ot0tot ot0tot requested review from VitroidFPV, haslinghuis and osirisinferi and removed request for osirisinferi November 16, 2025 08:27
@github-actions
Copy link
Contributor

Preview URL: https://pr595.betaflight-com.pages.dev

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

♻️ Duplicate comments (1)
docs/development/manufacturer/manufacturer-design-guidelines.md (1)

408-410: Fix MCU family naming for accuracy and consistency.

The section heading (line 408) correctly references "AT32F435", but line 410 text abbreviates this to just "F435 series MCUs", which is ambiguous and inconsistent. Update line 410 to match the heading's full designation.

-G4, H7, and F435 series MCUs include a DMAMUX, which allows for flexible DMA stream allocation. Therefore, only timer conflicts between motor outputs and other outputs need to be avoided.
+G4, H7, and AT32F435 series MCUs include a DMAMUX, which allows for flexible DMA stream allocation. Therefore, only timer conflicts between motor outputs and other outputs need to be avoided.
🧹 Nitpick comments (3)
docs/development/manufacturer/manufacturer-design-guidelines.md (3)

341-343: Fix hyphenation in section heading and ensure consistency.

The heading on line 341 uses "Current Limiting Resistors" but should be "Current-Limiting Resistors" for proper compound adjective hyphenation. Line 343 correctly hyphenates the term within the body text. For consistency and grammar, update the heading.

The technical guidance itself (100Ω maximum for GPIO current-limiting resistors) is clear and well-motivated for motor/LED/UART signal integrity.

-#### 3.1.5 Current Limiting Resistors
+#### 3.1.5 Current-Limiting Resistors

64-64: Minor hyphenation issue in compound adjective.

Line 64 uses "cutting edge flight performance" which should be hyphenated as "cutting-edge flight performance" when used as a compound adjective modifying the noun "performance".

-The cutting edge flight performance achieved by Betaflight relies on proper hardware design, microcontroller resource allocation, and the ability of end-users to correctly configure the software with Betaflight.
+The cutting-edge flight performance achieved by Betaflight relies on proper hardware design, microcontroller resource allocation, and the ability of end-users to correctly configure the software with Betaflight.

471-471: Minor hyphenation issue: compound adjective needs hyphen.

Line 471 uses "PINIO type peripheral connections" which should be hyphenated as "PINIO-type peripheral connections" to properly modify the compound noun.

- For manufacturers providing configuration presets for flight controllers (strongly recommended), providing documentation of suggested locations to connect peripheral devices, match the provided preset menu selections can greatly assist end-users with proper configuration of their craft. These should include selecting appropriate PID loop rates, DShot data rates, IMU-specific Gyro Lowpass Filtering, Receiver installation (including options with the correct Port, protocol, SerialRX_Inversion, and SerialRX_HalfDuplex), HD FPV MSP port installation, VTX control (including protocol(s), port, and optional pit mode states), GPS (port and protocols), LEDs, and any PINIO type peripheral connections where applicable.
+ For manufacturers providing configuration presets for flight controllers (strongly recommended), providing documentation of suggested locations to connect peripheral devices, match the provided preset menu selections can greatly assist end-users with proper configuration of their craft. These should include selecting appropriate PID loop rates, DShot data rates, IMU-specific Gyro Lowpass Filtering, Receiver installation (including options with the correct Port, protocol, SerialRX_Inversion, and SerialRX_HalfDuplex), HD FPV MSP port installation, VTX control (including protocol(s), port, and optional pit mode states), GPS (port and protocols), LEDs, and any PINIO-type peripheral connections where applicable.
📜 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 1696324 and 4a5f465.

📒 Files selected for processing (1)
  • docs/development/manufacturer/manufacturer-design-guidelines.md (18 hunks)
🧰 Additional context used
🧠 Learnings (5)
📚 Learning: 2025-09-24T20:59:20.784Z
Learnt from: VitroidFPV
Repo: betaflight/betaflight.com PR: 567
File: docs/wiki/guides/current/SoftSerial.md:129-133
Timestamp: 2025-09-24T20:59:20.784Z
Learning: In Betaflight firmware 4.5.2 and higher, the correct CLI syntax for SoftSerial resources uses underscores: `RESOURCE SOFTSERIAL_TX <index> <pin>` and `RESOURCE SOFTSERIAL_RX <index> <pin>`. The release notes in docs/wiki/release/Betaflight-4-5-Release-Notes.md incorrectly show the format without underscores (SOFTSERIALTX/SOFTSERIALRX) and should be corrected to match the authoritative CLI syntax documented in docs/development/Serial.md.

Applied to files:

  • docs/development/manufacturer/manufacturer-design-guidelines.md
📚 Learning: 2025-09-24T21:00:01.780Z
Learnt from: VitroidFPV
Repo: betaflight/betaflight.com PR: 567
File: docs/wiki/release/Betaflight-4-5-Release-Notes.md:364-364
Timestamp: 2025-09-24T21:00:01.780Z
Learning: VitroidFPV (project contributor) corrected that SOFTSERIAL_RX (with underscore) is the correct CLI format as of firmware 4.5.2, not SOFTSERIALTX/SOFTSERIALRX (without underscore) as shown in the release notes.

Applied to files:

  • docs/development/manufacturer/manufacturer-design-guidelines.md
📚 Learning: 2025-09-24T21:00:01.780Z
Learnt from: VitroidFPV
Repo: betaflight/betaflight.com PR: 567
File: docs/wiki/release/Betaflight-4-5-Release-Notes.md:364-364
Timestamp: 2025-09-24T21:00:01.780Z
Learning: The correct SoftSerial CLI syntax in Betaflight 4.5+ uses underscores: SOFTSERIAL_TX and SOFTSERIAL_RX, not SOFTSERIALTX and SOFTSERIALRX as incorrectly shown in the release notes.

Applied to files:

  • docs/development/manufacturer/manufacturer-design-guidelines.md
📚 Learning: 2025-09-24T20:59:20.784Z
Learnt from: VitroidFPV
Repo: betaflight/betaflight.com PR: 567
File: docs/wiki/guides/current/SoftSerial.md:129-133
Timestamp: 2025-09-24T20:59:20.784Z
Learning: In Betaflight firmware 4.5.2, the correct CLI syntax for SoftSerial resources uses underscores: RESOURCE SOFTSERIAL_TX <index> <pin> and RESOURCE SOFTSERIAL_RX <index> <pin>, not the format without underscores (SOFTSERIALTX/SOFTSERIALRX) that appears in some release notes.

Applied to files:

  • docs/development/manufacturer/manufacturer-design-guidelines.md
📚 Learning: 2025-09-24T21:10:42.055Z
Learnt from: VitroidFPV
Repo: betaflight/betaflight.com PR: 567
File: src/components/VersionInfo/VersionInfo.tsx:5-14
Timestamp: 2025-09-24T21:10:42.055Z
Learning: Betaflight firmware and configurator are transitioning from semantic versioning (SemVer) to calendar versioning (CalVer). The new format will be 2025.12.0 instead of the traditional SemVer format. Version comparison logic in components like VersionInfo will need to be updated to handle this new format.

Applied to files:

  • docs/development/manufacturer/manufacturer-design-guidelines.md
🪛 LanguageTool
docs/development/manufacturer/manufacturer-design-guidelines.md

[grammar] ~64-~64: Use a hyphen to join words.
Context: ...g, programming, and flying. The cutting edge flight performance achieved by Beta...

(QB_NEW_EN_HYPHEN)


[style] ~96-~96: ‘prior to’ might be wordy. Consider a shorter alternative.
Context: ... PCB renders, and similar documentation prior to initial production provides opportuniti...

(EN_WORDINESS_PREMIUM_PRIOR_TO)


[style] ~130-~130: Consider a more concise word here.
Context: ...continuing support that may be required in order to keep the approved hardware working well...

(IN_ORDER_TO_PREMIUM)


[style] ~146-~146: ‘with respect to’ might be wordy. Consider a shorter alternative.
Context: ...that good design practices are followed with respect to providing good quality power regulation...

(EN_WORDINESS_PREMIUM_WITH_RESPECT_TO)


[style] ~199-~199: Consider a more concise word here.
Context: ... flown in representative flight regimes in order to replicate the EMI environment end-users...

(IN_ORDER_TO_PREMIUM)


[grammar] ~341-~341: Use a hyphen to join words.
Context: ... drive an LED). ::: #### 3.1.5 Current Limiting Resistors Current-limiting res...

(QB_NEW_EN_HYPHEN)


[grammar] ~471-~471: Use a hyphen to join words.
Context: ...port and protocols), LEDs, and any PINIO type peripheral connections where applic...

(QB_NEW_EN_HYPHEN)


[style] ~477-~477: Consider a more concise word here.
Context: ...ed on leveraging ESC RPM telemetry data in order to use RPM Notch Filters and Dynamic Idle ...

(IN_ORDER_TO_PREMIUM)


[style] ~484-~484: As a shorter alternative for ‘able to’, consider using “can no longer”.
Context: ...32 licenses have been issued, and users are no longer able to flash firmware. Manufacturers should no...

(BE_ABLE_TO)


[style] ~501-~501: Consider a more concise word here.
Context: ...users will be required to disable DShot in order to continue with operations. This situatio...

(IN_ORDER_TO_PREMIUM)


[grammar] ~533-~533: Ensure spelling is correct
Context: ...bility may require lowering looprate to 2kHz. *** No new SPI RX solutions will b...

(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)


[grammar] ~538-~538: Ensure spelling is correct
Context: ...e BMI270 lowers the gyro loop rate from 8kHz to 3.2kHz and therefore may be advantag...

(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)

⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: deploy
🔇 Additional comments (9)
docs/development/manufacturer/manufacturer-design-guidelines.md (9)

40-40: Version entry is clear and appropriate.

Adding Draft 2.0 with the date and summary provides clear documentation of this release's focus on GPIO usage clarifications.


95-98: Process guidance updates are well-structured.

The clarifications to the Discord channel setup and emphasis on reviewing the guidelines before submission are helpful administrative improvements.


362-364: Motor port allocation guidance is clear.

Lines 362–364 provide good clarity on optimal GPIO port allocation for bitbanged DShot (consolidating motors on fewer ports to minimize DMA stream requirements). Distinction between M1-M4 priority and overall 8-motor distribution is well-explained.


373-374: DSHOT BITBANG explanation is informative.

The clarification that DSHOT BITBANG uses timer DMA to drive GPIO signals directly without relying on timer AF modes is helpful for designers who may be confused about pin flexibility. Noting that TIM1 has inter-peripheral connectivity is a useful technical detail.


484-485: BLHeli_32 deprecation notice and alternatives are well-communicated.

The markdown links to AM32 and ESCape32 are correctly formatted. The explanation of BLHeli_32's EOL status and open-source alternatives is informative and well-integrated. Emphasizing that "users are no longer able to flash firmware" clearly motivates the recommendation for manufacturers to discontinue shipping BLHeli_32 ESCs.


492-494: Bluejay guidance and emphasis on end-user support is appropriate.

The markdown link for Bluejay is correctly formatted. The emphasis on Bluejay's PWM frequency adjustability, bidirectional DShot support, and ease of end-user support for AIO boards with pre-flashed firmware is well-positioned and practical.


526-536: F411 performance table and footnotes are clear.

The distinction between F411 with UART RX (4 kHz PID loop) and SPI RX (2 kHz) is well-documented in the table. Footnotes appropriately explain the rationale: UART RX resource overhead vs. SPI RX limitations and ecosystem deprecation. The note at line 536 that "no new SPI RX solutions will be accepted" clearly communicates the Betaflight project's position on forward compatibility.


593-594: I2C guidance for barometer is well-emphasized.

The addition of "Betaflight strongly recommends I2C for barometer connections" (line 593) aligns well with the earlier detailed I2C guidance in section 3.1.4.1 and improves clarity about preferred bus protocol for this sensor class.


616-617: I2C guidance for magnetometer is well-emphasized.

The addition of "Betaflight strongly recommends I2C for magnetometer connections" (line 616) provides clear direction consistent with the overall guidance on sensor bus selection and matches the barometer guidance above. This reinforces the I2C best practices documented earlier in the file.

@haslinghuis haslinghuis merged commit b76671f into betaflight:master Nov 16, 2025
9 checks passed
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