Skip to content

Add OXBOT_FLOW_AIO45 target#1058

Open
Michael-GGG wants to merge 3 commits intobetaflight:masterfrom
Michael-GGG:oxbot_flow_aio45
Open

Add OXBOT_FLOW_AIO45 target#1058
Michael-GGG wants to merge 3 commits intobetaflight:masterfrom
Michael-GGG:oxbot_flow_aio45

Conversation

@Michael-GGG
Copy link
Contributor

@Michael-GGG Michael-GGG commented Mar 20, 2026

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

Summary by CodeRabbit

  • New Features
    • Added support for the OXBOT FLOW AIO45 flight controller: enabled IMU (SPI ICM42688P), barometer, external gyro clock, onboard flash, OSD, LED strip and beeper.
    • Mapped UART/I2C/SPI/ADC peripherals, motor outputs, timer channels, and set sensible defaults for blackbox, DShot/telemetry, current/voltage meters, and serial port roles.

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Mar 20, 2026

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 3f2dc544-33fc-43e1-a13e-0d5cab332764

📥 Commits

Reviewing files that changed from the base of the PR and between 00488c3 and 5e122a9.

📒 Files selected for processing (1)
  • configs/OXBOT_FLOW_AIO45/config.h
✅ Files skipped from review due to trivial changes (1)
  • configs/OXBOT_FLOW_AIO45/config.h

Walkthrough

Adds a new Betaflight board configuration header for OXBOT_FLOW_AIO45 defining MCU, board identifiers, enabled peripherals, pin and timer mappings, sensor/SPI/I2C instances, and default runtime/telemetry settings.

Changes

Cohort / File(s) Summary
OXBOT_FLOW_AIO45 Board Configuration
configs/OXBOT_FLOW_AIO45/config.h
New board header: sets FC_TARGET_MCU, BOARD_NAME, MANUFACTURER_ID; enables accelerometer/gyro (including ICM42688P SPI variants), barometer (DPS310), flash (W25Q128FV), external gyro clock, MAX7456 OSD; declares motor, UART, I2C, SPI, ADC, LED, beeper, PINIO1 pins; defines TIMER_PIN_MAPPING, DMA/beeper/HSE macros, sensor SPI/I2C instance selections, gyro alignment, PINIO metadata, and default runtime/telemetry options (blackbox device, DShot bitbang/telemetry, current/voltage meter sources/scaling, UART routing).

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related PRs

  • Add AIRBRAINH743 #924 — Adds a similar AT32F435G board config header with matching macros (pins, sensors, TIMER_PIN_MAPPING, SPI/I2C instances).
  • Add ZEX_ATHENA_MINI #888 — Adds a near-duplicate board config header that declares the same sensor/flash/baro flags and default UART/meter settings.
  • Add HUMMINGBIRD_AIO255 #806 — Adds another AT32F435G board configuration header with overlapping pin/instance and sensor definitions.

Suggested labels

Schematics approved, Awaiting prototype samples, Uses BF connector standard

Suggested reviewers

  • haslinghuis
  • blckmn
  • nerdCopter
🚥 Pre-merge checks | ✅ 2 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Description check ⚠️ Warning The pull request description provides only a checklist without the mandatory descriptive text or details about the hardware, design, or rationale required by the template. Add a detailed description of the OXBOT_FLOW_AIO45 hardware, design rationale, and compliance details beyond the checklist. Include sections explaining the board features, hardware design, and any relevant notes.
✅ Passed checks (2 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly and specifically describes the main change: adding a new Betaflight board configuration for the OXBOT_FLOW_AIO45 target.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ 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.

Tip

You can customize the tone of the review comments and chat replies.

Configure the tone_instructions setting to customize the tone of the review comments and chat replies. For example, you can set the tone to Act like a strict teacher, Act like a pirate and more.

@Michael-GGG
Copy link
Contributor Author

We'll send samples next week.

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.

Warning

CodeRabbit couldn't request changes on this pull request because it doesn't have sufficient GitHub permissions.

Please grant CodeRabbit Pull requests: Read and write permission and re-run the review.

👉 Steps to fix this

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@configs/OXBOT_FLOW_AIO45/config.h`:
- Around line 79-84: The TIMER_PIN_MAPPING has incorrect timer indices: update
the entry for MOTOR3_PIN in TIMER_PIN_MAPPING (currently using TIMER_PIN_MAP
with timer 1) to use timer 2 instead, and update the entry for GYRO_1_CLKIN_PIN
(currently using timer 3) to use timer 1 so the mappings for MOTOR3_PIN and
GYRO_1_CLKIN_PIN match the AT32F435 pin-to-timer mappings; adjust the two
TIMER_PIN_MAP calls accordingly in the TIMER_PIN_MAPPING macro.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 2dd52d6d-6d58-493a-9e5f-e922c8dbec4f

📥 Commits

Reviewing files that changed from the base of the PR and between edb8a26 and 3a92859.

📒 Files selected for processing (1)
  • configs/OXBOT_FLOW_AIO45/config.h

Comment on lines +79 to +84
#define TIMER_PIN_MAPPING TIMER_PIN_MAP(0, MOTOR1_PIN, 1, 1) \
TIMER_PIN_MAP(1, MOTOR2_PIN, 1, 2) \
TIMER_PIN_MAP(2, MOTOR3_PIN, 2, 3) \
TIMER_PIN_MAP(3, MOTOR4_PIN, 2, 4) \
TIMER_PIN_MAP(4, LED_STRIP_PIN, 1, 5) \
TIMER_PIN_MAP(5, GYRO_1_CLKIN_PIN, 1, -1)
Copy link
Member

@haslinghuis haslinghuis Mar 20, 2026

Choose a reason for hiding this comment

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

LS conflicts with M2 and GYRO_CLKIN

Pin Resource 1 2 3 Preferred
PB6 M1 TIM4-CH1 1
PB9 M2 TIM2-CH2 TIM4-CH4 TIM11-CH1 2
PB1 M3 X TIM3_CH4 X 2
PB0 M4 X TIM3_CH3 X 2
PB11 LS TIM2-CH4 TIM5-CH4 2
PA2 GC TIM2-CH3 TIM5-CH3 TIM9-CH1 3
Suggested change
#define TIMER_PIN_MAPPING TIMER_PIN_MAP(0, MOTOR1_PIN, 1, 1) \
TIMER_PIN_MAP(1, MOTOR2_PIN, 1, 2) \
TIMER_PIN_MAP(2, MOTOR3_PIN, 2, 3) \
TIMER_PIN_MAP(3, MOTOR4_PIN, 2, 4) \
TIMER_PIN_MAP(4, LED_STRIP_PIN, 1, 5) \
TIMER_PIN_MAP(5, GYRO_1_CLKIN_PIN, 1, -1)
#define TIMER_PIN_MAPPING TIMER_PIN_MAP(0, MOTOR1_PIN, 1, 1) \
TIMER_PIN_MAP(1, MOTOR2_PIN, 2 2) \
TIMER_PIN_MAP(2, MOTOR3_PIN, 2, 3) \
TIMER_PIN_MAP(3, MOTOR4_PIN, 2, 4) \
TIMER_PIN_MAP(4, LED_STRIP_PIN, 2, 5) \
TIMER_PIN_MAP(5, GYRO_1_CLKIN_PIN, 3, -1)

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.

2 participants