Skip to content

Add NWBLUE_PROH757 target#1108

Open
andyp1per wants to merge 1 commit into
betaflight:masterfrom
andyp1per:pr-nwblue-h757-pro
Open

Add NWBLUE_PROH757 target#1108
andyp1per wants to merge 1 commit into
betaflight:masterfrom
andyp1per:pr-nwblue-h757-pro

Conversation

@andyp1per
Copy link
Copy Markdown

@andyp1per andyp1per commented May 26, 2026

Summary

Adds a new community flight-controller target: NWBLUE_PROH757, a 30×30 multirotor FC built on the CubePilot CubeNode H757 module (STM32H757 dual-core; Betaflight runs on M7, M4 left halted).

  • New manufacturer NWBL (NWBLUE, https://nwblue.com/) registered in Manufacturers.md
  • New configs/NWBLUE_PROH757/config.h:
    • STM32H757 base target, 24 MHz HSE
    • ICM-45686 IMU on SPI3, DPS368 baro on SPI3, IIS2MDC mag on I2C3
    • SDIO2 4-bit SD card (default blackbox)
    • 8 motor outputs on TIM1/TIM3/TIM4, LED strip on TIM2
    • FDCAN1 broken out on PD0/PD1
    • UART map: ESC-telem on USART1 RX, RC RX on UART4, MSP DisplayPort/SmartAudio on USART6, TELEM1 on UART7, GPS on UART8

Test plan

  • CI config-build check passes for NWBLUE_PROH757
  • Locally verified with make CONFIG=NWBLUE_PROH757
  • IMU orientation confirmed (chip mounted upright; GYRO_1_ALIGN CW0_DEG)
  • Motors 1-8 verified on bench, DSHOT bitbang OFF default
  • SD-card blackbox tested

Summary by CodeRabbit

  • New Features
    • Added support for NWBLUE as a new supported manufacturer
    • Added support for NWBLUE PROH757 flight controller board, a 30x30 STM32H757-based multirotor controller with integrated sensors (gyro, accelerometer, barometer, magnetometer), SD card support, and configurable motor/LED outputs

Review Change Stack

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented May 26, 2026

Walkthrough

This PR adds support for the NWBLUE manufacturer and its PROH757 STM32H757-based 30×30 multirotor flight controller by registering the manufacturer ID in the supported list and providing complete hardware configuration for the board, including MCU, sensors, peripherals, pin mappings, and default settings.

Changes

NWBLUE Manufacturer and PROH757 Board Support

Layer / File(s) Summary
Manufacturer registry entry
Manufacturers.md
NWBL manufacturer ID registered with name NWBLUE and contact URL.
NWBLUE_PROH757 hardware configuration
configs/NWBLUE_PROH757/config.h
STM32H757 board definition specifying MCU, clock, CAN/SPI/I2C sensor pinouts (ICM-45686, DPS368, LIS2MDL), external GPS I2C, SD card SDMMC2, UART pin mappings, ADC channels with scaling defaults, LED/buzzer/USB VBUS detect pins, motor and LED-strip output assignments, timer-DMA mappings, and DShot/gyro defaults.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

Possibly related PRs

  • betaflight/config#983: Adds a new Betaflight board config.h header with similar peripheral and pin mapping definitions for a different target (ODDITYRCF405).
  • betaflight/config#843: Adds a new manufacturer ID to Manufacturers.md and introduces a corresponding new board config.h following the same pattern.
  • betaflight/config#1051: Updates Manufacturers.md with a new manufacturer entry and provides a corresponding board configuration that references the new manufacturer ID.

Suggested reviewers

  • haslinghuis
  • ot0tot
  • osirisinferi
🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Description check ⚠️ Warning The PR description provides a clear summary and test plan but does not address the mandatory review requirements template. Add a checklist confirming: schematics review by Betaflight team, hardware samples testing, adherence to guidelines/standards, and flight testing completion.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title 'Add NWBLUE_PROH757 target' clearly and concisely summarizes the main change: adding a new flight controller target.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

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

Copy link
Copy Markdown
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.

🧹 Nitpick comments (1)
configs/NWBLUE_PROH757/config.h (1)

161-190: 💤 Low value

Motor timer configuration looks good; consider clarifying MOTOR8 DMA limitation.

The TIMER_PIN_MAPPING is comprehensive and well-documented. Lines 187 and 189 correctly note that MOTOR6 and MOTOR8 lack dedicated DMA (hardware limitation of TIM4_CH4 and TIM3_CH4). Since the PR summary confirms bench testing with DSHOT bitbang OFF, this configuration is verified functional.

Minor enhancement: Line 189 (MOTOR8) could mirror line 187's comment style for consistency.

📝 Optional comment enhancement for consistency
-    TIMER_PIN_MAP( 7, MOTOR8_PIN,    2, -1) /* TIM3_CH4 (occ 2) */ \
+    TIMER_PIN_MAP( 7, MOTOR8_PIN,    2, -1) /* TIM3_CH4 (occ 2) - no DMA (UP shared) */ \
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@configs/NWBLUE_PROH757/config.h` around lines 161 - 190, The MOTOR8
TIMER_PIN_MAP comment should mirror MOTOR6's style to clarify the DMA
limitation: update the TIMER_PIN_MAPPING entry referencing MOTOR8_PIN
(TIMER_PIN_MAP index 7 / TIM3_CH4) to append a note like " - no DMA (UP shared)"
or equivalent so it matches the wording used for MOTOR6_PIN (TIMER_PIN_MAP index
5) and makes the lack of dedicated DMA for TIM3_CH4 explicit and consistent.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Nitpick comments:
In `@configs/NWBLUE_PROH757/config.h`:
- Around line 161-190: The MOTOR8 TIMER_PIN_MAP comment should mirror MOTOR6's
style to clarify the DMA limitation: update the TIMER_PIN_MAPPING entry
referencing MOTOR8_PIN (TIMER_PIN_MAP index 7 / TIM3_CH4) to append a note like
" - no DMA (UP shared)" or equivalent so it matches the wording used for
MOTOR6_PIN (TIMER_PIN_MAP index 5) and makes the lack of dedicated DMA for
TIM3_CH4 explicit and consistent.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 90109d1b-02b1-4ef2-b0d5-7655e493711d

📥 Commits

Reviewing files that changed from the base of the PR and between 096a8f8 and 2a0e443.

📒 Files selected for processing (2)
  • Manufacturers.md
  • configs/NWBLUE_PROH757/config.h

Comment on lines +75 to +76
#define USE_MAG
#define USE_MAG_LIS2MDL
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

To prevent duplicate define (USE_MAG is also a build option and already pulls in all mag drivers)

Suggested change
#define USE_MAG
#define USE_MAG_LIS2MDL
#ifndef USE_MAG
#define USE_MAG
#define USE_MAG_LIS2MDL
#endif

Comment on lines +186 to +189
TIMER_PIN_MAP( 4, MOTOR5_PIN, 1, 4) /* TIM4_CH3 */ \
TIMER_PIN_MAP( 5, MOTOR6_PIN, 1, -1) /* TIM4_CH4 - no DMA (UP shared) */ \
TIMER_PIN_MAP( 6, MOTOR7_PIN, 2, 5) /* TIM3_CH3 (occ 2) */ \
TIMER_PIN_MAP( 7, MOTOR8_PIN, 2, -1) /* TIM3_CH4 (occ 2) */ \
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Did you mean SERVOx_PIN, servo's do not use dma.

@sugaarK sugaarK added the Contact Betaflight Team cloudtargets@betaflight.com label May 28, 2026
@sugaarK
Copy link
Copy Markdown
Member

sugaarK commented May 28, 2026

is this for a commercial product?
if so please contact partnersprogram@betaflight.com

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Contact Betaflight Team cloudtargets@betaflight.com

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants