-
-
Notifications
You must be signed in to change notification settings - Fork 112
GPIO usage clarifications #595
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
GPIO usage clarifications #595
Conversation
WalkthroughAdded 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
Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes
Possibly related PRs
Suggested reviewers
Pre-merge checks and finishing touches✅ Passed checks (3 passed)
✨ Finishing touches🧪 Generate unit tests (beta)
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.
Example:
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. Comment |
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: 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
📒 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.
docs/development/manufacturer/manufacturer-design-guidelines.md
Outdated
Show resolved
Hide resolved
docs/development/manufacturer/manufacturer-design-guidelines.md
Outdated
Show resolved
Hide resolved
docs/development/manufacturer/manufacturer-design-guidelines.md
Outdated
Show resolved
Hide resolved
Co-authored-by: Osiris Inferi <[email protected]>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
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 (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
📒 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.
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: 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
📒 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
docs/development/manufacturer/manufacturer-design-guidelines.md
Outdated
Show resolved
Hide resolved
docs/development/manufacturer/manufacturer-design-guidelines.md
Outdated
Show resolved
Hide resolved
docs/development/manufacturer/manufacturer-design-guidelines.md
Outdated
Show resolved
Hide resolved
docs/development/manufacturer/manufacturer-design-guidelines.md
Outdated
Show resolved
Hide resolved
|
|
Preview URL: https://pr595.betaflight-com.pages.dev |
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
♻️ 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
📒 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.



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