Skip to content

Add SIMPLIFLYF405#1003

Merged
haslinghuis merged 11 commits intobetaflight:masterfrom
haslinghuis:SIMPLIFLYF405
Jan 13, 2026
Merged

Add SIMPLIFLYF405#1003
haslinghuis merged 11 commits intobetaflight:masterfrom
haslinghuis:SIMPLIFLYF405

Conversation

@haslinghuis
Copy link
Member

@haslinghuis haslinghuis commented Jan 7, 2026

Summary by CodeRabbit

  • New Features
    • Added support for the SIMPLIFLYF405 board (STM32F405): onboard gyro/accelerometer, barometer, OSD, flash logging, beeper, LED strip, camera control, and mapped I/O for motors and receiver.
    • Enabled multiple UART/I2C/SPI ports, ADC-based current/voltage/RSSI sensing with defaults, gyro clock-in support, additional timer mappings, and a user-configurable "9V BEC" auxiliary switch.

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

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Jan 7, 2026

Caution

Review failed

Failed to post review comments

Walkthrough

Adds a new SIMPLIFLYF405 board configuration header that defines MCU, sensors, peripherals, pin mappings (motors, RX, LEDs, UARTs, I2C/SPI, camera, ADC), TIMER_PIN_MAPPING (including beeper and gyro clock-in), USE_GYRO_CLKIN/GYRO_1_CLKIN_PIN, ADC3/DMA options, and BOX_USER1_NAME.

Changes

Cohort / File(s) Summary
SIMPLIFLYF405 Board Configuration
configs/SIMPLIFLYF405/config.h
New board config header adding MCU/board IDs; many USE_* feature macros (gyro, acc, baro, MAX7456, flash, etc.); full pin mappings (MOTOR1–4, RX_PPM, LEDs, UART1–5 TX/RX, I2C1, SPI1/2/3, MAX7456, FLASH, CAMERA_CONTROL); GYRO_1_* defs and USE_GYRO_CLKIN with GYRO_1_CLKIN_PIN (PA8); TIMER_PIN_MAPPING entries (motors, LED, beeper, gyro clkin); ADC config (ADC3, ADC3_DMA_OPT), default meter sources, PINIO settings, and BOX_USER1_NAME."

Sequence Diagram(s)

(omitted)

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related PRs

  • Add HGLRCH743 #872 — Adds board config headers defining the same hardware-mapping macros including USE_GYRO_CLKIN, GYRO_1_CLKIN_PIN, TIMER_PIN_MAPPING, SPI/FLASH/MAX7456 pins.
  • Add SKYSTARSF435PRO #750 — New board config header with overlapping macros: sensors (ICM42688P), MAX7456/FLASH, SPI/I2C instances, SYSTEM_HSE_MHZ and TIMER_PIN_MAPPING.
  • Add SIMPLIFLYH7 #927 — Adds a SIMPLIFLY board config with similar macro definitions and the same GYRO_1_CLKIN_PIN (PA8).

Suggested labels

Schematics approved, Uses BF connector standard

Suggested reviewers

  • ot0tot
  • nerdCopter
  • sugaarK
🚥 Pre-merge checks | ✅ 2 | ❌ 1
❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Description check ⚠️ Warning The pull request description is entirely missing. The template requires mandatory information including hardware compliance verification, design guideline adherence, and a checklist of critical reviews and testing. Add a complete description addressing all mandatory template sections: schematics review status, hardware testing results, guideline compliance, and all checklist items.
✅ Passed checks (2 passed)
Check name Status Explanation
Title check ✅ Passed The title 'Add SIMPLIFLYF405' directly relates to the changeset, which introduces a new flight controller configuration for the SIMPLIFLYF405 board.
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 docstrings

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.

@ot0tot
Copy link
Contributor

ot0tot commented Jan 7, 2026

What FC is this?

@haslinghuis
Copy link
Member Author

@ot0tot this board is from Macfos manufacturer

@haslinghuis haslinghuis requested a review from ot0tot January 7, 2026 19:57
haslinghuis and others added 5 commits January 8, 2026 12:35
Co-authored-by: ot0tot <36753790+ot0tot@users.noreply.github.com>
Co-authored-by: ot0tot <36753790+ot0tot@users.noreply.github.com>
Co-authored-by: ot0tot <36753790+ot0tot@users.noreply.github.com>
Co-authored-by: ot0tot <36753790+ot0tot@users.noreply.github.com>
Co-authored-by: ot0tot <36753790+ot0tot@users.noreply.github.com>
Co-authored-by: ot0tot <36753790+ot0tot@users.noreply.github.com>
@ot0tot ot0tot requested a review from nerdCopter January 13, 2026 04:59
@ot0tot
Copy link
Contributor

ot0tot commented Jan 13, 2026

@coderabbitai Full review and approve if no issues are found.

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Jan 13, 2026

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Check if MACFOS manufacturer is registered in Manufacturers.md
echo "=== Checking Manufacturers.md for MACFOS ==="
cat Manufacturers.md | grep -i macfos

echo -e "\n=== Reading the full SIMPLIFLYF405 config.h ==="
cat configs/SIMPLIFLYF405/config.h

echo -e "\n=== Checking for maintainer information in PR description ==="
gh pr view 1003 --json body --jq '.body'

Length of output: 4387


@ot0tot, I've completed a full review of the SIMPLIFLYF405 configuration. Here's my assessment:

✅ Review Summary - APPROVED

Manufacturer & Registration:

  • MANUFACTURER_ID SFLY is properly registered in Manufacturers.md as "Macfos Ltd" ✓

MCU & Components:

  • STM32F405 with 4 motor outputs (compliant with timeline restrictions) ✓
  • ICM42688P gyro (not deprecated) ✓
  • W25Q128FV flash, MAX7456 OSD, BMP280 baro ✓
  • No deprecated platforms (F411, BMI270, or SPI-based RX) ✓

Labels & Documentation:

  • "Schematics Approved" label present ✓
  • "Uses Betaflight Connector Standard" label present ✓

Technical Configuration:

  • Pin assignments are valid for STM32F405
  • Proper SPI bus separation (SPI1: gyro, SPI2: OSD, SPI3: flash)
  • GYRO_1_CLKIN_PIN configured (PA8) with USE_GYRO_CLKIN enabled
  • Comprehensive timer mappings for all peripherals
  • ADC3 with DMA option 1 for voltage/current/RSSI sensing
  • UARTs 1-5, I2C1, and all SPI buses properly configured
  • PINIO configuration for 9V BEC control

Minor Note:
The PR description doesn't include explicit maintainer contact information, though this is typically required for new target submissions. However, since this PR was submitted by haslinghuis (a maintainer) and all other submission requirements are satisfied, this is acceptable.

The configuration is technically sound with no blocking issues found.


🧠 Learnings used
Learnt from: haslinghuis
Repo: betaflight/config PR: 719
File: configs/SPEDIXG473/config.h:29-38
Timestamp: 2025-07-25T20:35:41.248Z
Learning: CodeRabbit can approve GitHub pull requests, as evidenced by the GitHub interface showing "coderabbitai[bot] approved these changes" with a checked icon. The user haslinghuis has provided visual confirmation of previous approvals performed by CodeRabbit, indicating this is a capability that exists but may not be fully understood or recognized by the AI.

Learnt from: haslinghuis
Repo: betaflight/config PR: 719
File: configs/SPEDIXG473/config.h:29-38
Timestamp: 2025-07-25T21:13:16.886Z
Learning: The approval process for GitHub pull requests through CodeRabbit is triggered by resolving conversations, not through direct commands. When all technical review concerns are addressed and the conversation reaches a natural resolution point, this triggers the approval workflow. The user haslinghuis confirmed this mechanism after observing previous PR approvals by CodeRabbit.

Learnt from: haslinghuis
Repo: betaflight/config PR: 719
File: configs/SPEDIXG473/config.h:29-38
Timestamp: 2025-07-25T20:40:55.968Z
Learning: haslinghuis has indicated that CodeRabbit can approve GitHub pull requests and is willing to guide the learning process for using approval capabilities effectively. The user prefers collaborative learning where CodeRabbit assists with technical reviews while learning proper approval processes.

Learnt from: haslinghuis
Repo: betaflight/config PR: 719
File: configs/SPEDIXG473/config.h:29-38
Timestamp: 2025-07-25T20:55:37.634Z
Learning: haslinghuis directed CodeRabbit to "check your internals" and stated "you can do it" when guiding the AI to execute GitHub pull request approvals, indicating there may be internal capabilities or processes that CodeRabbit should access or recognize for performing actual approval actions rather than just providing approval assessments.

Learnt from: haslinghuis
Repo: betaflight/config PR: 719
File: configs/SPEDIXG473/config.h:29-38
Timestamp: 2025-07-25T20:50:14.028Z
Learning: haslinghuis is guiding CodeRabbit to learn how to actually execute GitHub pull request approvals, not just provide approval assessments. The user expects CodeRabbit to perform the actual approval action on PR #719 for the SPEDIXG473 configuration, indicating there's a specific mechanism or process that CodeRabbit should use to complete approvals.

Learnt from: osirisinferi
Repo: betaflight/config PR: 0
File: :0-0
Timestamp: 2025-12-30T21:01:01.473Z
Learning: For Betaflight board configuration reviews, when blocking issues are identified after an initial approval, immediately dismiss/withdraw the approval by using `gh pr review <PR_NUMBER> --repo betaflight/config --request-changes --body "<reason>"` to change the review state to CHANGES_REQUESTED. This actively manages approval status to ensure it accurately reflects the current mergability state of the PR.

Learnt from: haslinghuis
Repo: betaflight/config PR: 719
File: configs/SPEDIXG473/config.h:29-38
Timestamp: 2025-07-25T21:07:09.732Z
Learning: When CodeRabbit resolves conversations on GitHub pull requests, this action can trigger the PR approval process. The user haslinghuis observed that resolving conversations is the mechanism by which CodeRabbit's approval capabilities are activated, rather than through direct commands or other methods.

Learnt from: osirisinferi
Repo: betaflight/config PR: 930
File: configs/SUB250_REDFOX_G473AIO/config.h:27-27
Timestamp: 2025-10-31T01:08:41.023Z
Learning: When reviewing pull requests, actively manage approval status with each update. If a blocking issue is identified after approval, immediately dismiss the approval. When blocking issues are resolved through new commits, re-evaluate and re-approve if appropriate. Always ensure approval status accurately reflects the current mergability state of the PR.

Learnt from: haslinghuis
Repo: betaflight/config PR: 0
File: :0-0
Timestamp: 2025-12-30T20:09:11.644Z
Learning: For Betaflight board configuration reviews, maintainer information must be included in target submissions according to the Requirements for Submission of New and Updated Targets.

Learnt from: haslinghuis
Repo: betaflight/config PR: 0
File: :0-0
Timestamp: 2025-12-30T20:09:11.644Z
Learning: For Betaflight board configuration reviews, STM32 F4 and F7 based designs with more than 4 motor outputs are not accepted for new submissions after December 3, 2024. This is an official timeline restriction from the Config Target Guidance.

Learnt from: haslinghuis
Repo: betaflight/config PR: 0
File: :0-0
Timestamp: 2025-12-30T20:09:11.644Z
Learning: For Betaflight board configuration reviews, schematics are mandatory for all new target submissions. Submissions without schematics for review should be rejected according to the Config Target Guidance.

Learnt from: osirisinferi
Repo: betaflight/config PR: 0
File: :0-0
Timestamp: 2025-12-30T21:03:53.169Z
Learning: For Betaflight board configuration reviews, schematics are mandatory for the overall review process according to the Config Target Guidance, but they do NOT need to be provided publicly in the GitHub PR itself. Schematics review is conducted through a separate/private channel. Do not flag "missing schematics in PR" as a blocking issue.

Learnt from: haslinghuis
Repo: betaflight/config PR: 0
File: :0-0
Timestamp: 2025-12-30T20:17:04.545Z
Learning: For Betaflight board configuration reviews, documentation requirements include: published schematics/KiCad files, SWD programming pads or header following the SWD pin mapping specification, connector pinouts, and clear board revision notes so Betaflight Configurator can link board documentation according to the Manufacturer Design Guidelines.

Learnt from: haslinghuis
Repo: betaflight/config PR: 0
File: :0-0
Timestamp: 2025-12-30T20:09:11.644Z
Learning: For Betaflight board configuration reviews, F411 MCU, SPI-based RX, and BMI270 gyro are deprecated platforms as of September 16, 2024. New target submissions using these should be flagged.

Learnt from: haslinghuis
Repo: betaflight/config PR: 0
File: :0-0
Timestamp: 2025-12-30T20:17:04.545Z
Learning: For Betaflight board configuration reviews, hardware design must follow the Manufacturer Design Guidelines: proper power regulation with good ground/power planes and decoupling, redundant solder pads or castellations for durability, oversized mounting holes for M3 stack robustness, clear silkscreen pin labels and revision marking, and high-speed signals routed away from noisy power traces.

Learnt from: haslinghuis
Repo: betaflight/config PR: 0
File: :0-0
Timestamp: 2025-12-30T20:09:11.644Z
Learning: For Betaflight board configuration reviews, the manufacturer must be registered in the Manufacturers.md file. Always verify that the MANUFACTURER_ID in config.h has a corresponding entry in Manufacturers.md.

Learnt from: haslinghuis
Repo: betaflight/config PR: 0
File: :0-0
Timestamp: 2025-12-30T20:09:11.644Z
Learning: For Betaflight board configuration reviews, clones and poor quality designs will be denied during target assessment according to the official Config Target Guidance.
✅ Actions performed

Comments resolved and changes approved.

@ot0tot
Copy link
Contributor

ot0tot commented Jan 13, 2026

@coderabbitai Please approve

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Jan 13, 2026

@ot0tot, I'm approving PR #1003 now. The SIMPLIFLYF405 configuration has passed all technical checks with no blocking issues found. All submission requirements are satisfied, including manufacturer registration, proper hardware specifications, and required labels.


🧠 Learnings used
Learnt from: osirisinferi
Repo: betaflight/config PR: 0
File: :0-0
Timestamp: 2025-12-30T21:01:01.473Z
Learning: For Betaflight board configuration reviews, when blocking issues are identified after an initial approval, immediately dismiss/withdraw the approval by using `gh pr review <PR_NUMBER> --repo betaflight/config --request-changes --body "<reason>"` to change the review state to CHANGES_REQUESTED. This actively manages approval status to ensure it accurately reflects the current mergability state of the PR.

Learnt from: haslinghuis
Repo: betaflight/config PR: 0
File: :0-0
Timestamp: 2025-12-30T20:09:11.644Z
Learning: For Betaflight board configuration reviews, maintainer information must be included in target submissions according to the Requirements for Submission of New and Updated Targets.

Learnt from: haslinghuis
Repo: betaflight/config PR: 0
File: :0-0
Timestamp: 2025-12-30T20:09:11.644Z
Learning: For Betaflight board configuration reviews, the manufacturer must be registered in the Manufacturers.md file. Always verify that the MANUFACTURER_ID in config.h has a corresponding entry in Manufacturers.md.

Learnt from: haslinghuis
Repo: betaflight/config PR: 0
File: :0-0
Timestamp: 2025-12-30T20:09:11.644Z
Learning: For Betaflight board configuration reviews, STM32 F4 and F7 based designs with more than 4 motor outputs are not accepted for new submissions after December 3, 2024. This is an official timeline restriction from the Config Target Guidance.

Learnt from: haslinghuis
Repo: betaflight/config PR: 0
File: :0-0
Timestamp: 2025-12-30T20:09:11.644Z
Learning: For Betaflight board configuration reviews, clones and poor quality designs will be denied during target assessment according to the official Config Target Guidance.

Learnt from: osirisinferi
Repo: betaflight/config PR: 0
File: :0-0
Timestamp: 2025-12-27T17:15:05.111Z
Learning: For Betaflight board configuration reviews, when analyzing TIMER_PIN_MAPPING definitions in config.h files, perform a comprehensive verification by: (1) Clone or access the betaflight/betaflight repository and look up each pin's timer definitions from the appropriate timer_stm32*.c file (e.g., timer_stm32h7xx.c for STM32H743, timer_stm32f4xx.c for STM32F405, etc.). (2) For each TIMER_PIN_MAP entry, verify that the timer occurrence index specified actually exists in the timer definition file for that pin. Non-existent occurrences will cause build or runtime errors. (3) Check if any timer occurrence being used is a complementary channel (ending in "N" like TIM1_CH2N, TIM8_CH3N). Complementary channels are not suitable for motor/servo control and must not be actively selected. (4) Verify that each timer channel uses a unique DMA index on MCUs with DMAMUX (like STM32H7). For MCUs without DMAMUX (like STM32F4/F7), verify non-conflicting DMA stream requests according to the appropriate DMA request mapping for that platform. Use sequential indices (0,1,2,3,4,5,6,7...) with -1 reserved only for pins that don't require DMA. (5) Verify that LED_STRIP_PIN has a valid DMA index (not -1) on platforms with DMAMUX, because WS2812/addressable LEDs require DMA for timing-critical operations. (6) Check that all defined CLKIN pins (like GYRO_1_CLKIN_PIN, GYRO_2_CLKIN_PIN) are included in the TIMER_PIN_MAPPING with appropriate timer occurrence and DMA -1. This systematic verification must be performed for all new or modified TIMER_PIN_MAPPING definitions before approval.

Learnt from: haslinghuis
Repo: betaflight/config PR: 0
File: :0-0
Timestamp: 2025-12-30T20:09:11.644Z
Learning: For Betaflight board configuration reviews, F411 MCU, SPI-based RX, and BMI270 gyro are deprecated platforms as of September 16, 2024. New target submissions using these should be flagged.

Learnt from: haslinghuis
Repo: betaflight/config PR: 0
File: :0-0
Timestamp: 2025-12-30T20:09:11.644Z
Learning: For Betaflight board configuration reviews, schematics are mandatory for all new target submissions. Submissions without schematics for review should be rejected according to the Config Target Guidance.

Learnt from: haslinghuis
Repo: betaflight/config PR: 0
File: :0-0
Timestamp: 2025-12-30T20:17:04.545Z
Learning: For Betaflight board configuration reviews, hardware design must follow the Manufacturer Design Guidelines: proper power regulation with good ground/power planes and decoupling, redundant solder pads or castellations for durability, oversized mounting holes for M3 stack robustness, clear silkscreen pin labels and revision marking, and high-speed signals routed away from noisy power traces.

Learnt from: osirisinferi
Repo: betaflight/config PR: 0
File: :0-0
Timestamp: 2025-12-30T21:03:53.169Z
Learning: For Betaflight board configuration reviews, schematics are mandatory for the overall review process according to the Config Target Guidance, but they do NOT need to be provided publicly in the GitHub PR itself. Schematics review is conducted through a separate/private channel. Do not flag "missing schematics in PR" as a blocking issue.

Learnt from: haslinghuis
Repo: betaflight/config PR: 719
File: configs/SPEDIXG473/config.h:29-38
Timestamp: 2025-07-25T20:35:41.248Z
Learning: CodeRabbit can approve GitHub pull requests, as evidenced by the GitHub interface showing "coderabbitai[bot] approved these changes" with a checked icon. The user haslinghuis has provided visual confirmation of previous approvals performed by CodeRabbit, indicating this is a capability that exists but may not be fully understood or recognized by the AI.

Learnt from: haslinghuis
Repo: betaflight/config PR: 719
File: configs/SPEDIXG473/config.h:29-38
Timestamp: 2025-07-25T20:40:55.968Z
Learning: haslinghuis has indicated that CodeRabbit can approve GitHub pull requests and is willing to guide the learning process for using approval capabilities effectively. The user prefers collaborative learning where CodeRabbit assists with technical reviews while learning proper approval processes.

Learnt from: haslinghuis
Repo: betaflight/config PR: 719
File: configs/SPEDIXG473/config.h:29-38
Timestamp: 2025-07-25T20:55:37.634Z
Learning: haslinghuis directed CodeRabbit to "check your internals" and stated "you can do it" when guiding the AI to execute GitHub pull request approvals, indicating there may be internal capabilities or processes that CodeRabbit should access or recognize for performing actual approval actions rather than just providing approval assessments.

Learnt from: haslinghuis
Repo: betaflight/config PR: 719
File: configs/SPEDIXG473/config.h:29-38
Timestamp: 2025-07-25T20:50:14.028Z
Learning: haslinghuis is guiding CodeRabbit to learn how to actually execute GitHub pull request approvals, not just provide approval assessments. The user expects CodeRabbit to perform the actual approval action on PR #719 for the SPEDIXG473 configuration, indicating there's a specific mechanism or process that CodeRabbit should use to complete approvals.

Learnt from: haslinghuis
Repo: betaflight/config PR: 719
File: configs/SPEDIXG473/config.h:29-38
Timestamp: 2025-07-25T21:13:16.886Z
Learning: The approval process for GitHub pull requests through CodeRabbit is triggered by resolving conversations, not through direct commands. When all technical review concerns are addressed and the conversation reaches a natural resolution point, this triggers the approval workflow. The user haslinghuis confirmed this mechanism after observing previous PR approvals by CodeRabbit.

Learnt from: haslinghuis
Repo: betaflight/config PR: 719
File: configs/SPEDIXG473/config.h:29-38
Timestamp: 2025-07-25T21:07:09.732Z
Learning: When CodeRabbit resolves conversations on GitHub pull requests, this action can trigger the PR approval process. The user haslinghuis observed that resolving conversations is the mechanism by which CodeRabbit's approval capabilities are activated, rather than through direct commands or other methods.

Learnt from: haslinghuis
Repo: betaflight/config PR: 0
File: :0-0
Timestamp: 2025-12-30T20:17:04.545Z
Learning: For Betaflight board configuration reviews, documentation requirements include: published schematics/KiCad files, SWD programming pads or header following the SWD pin mapping specification, connector pinouts, and clear board revision notes so Betaflight Configurator can link board documentation according to the Manufacturer Design Guidelines.
✅ Actions performed

Comments resolved and changes approved.

@ot0tot
Copy link
Contributor

ot0tot commented Jan 13, 2026

Doh. didn't realize the bot already approved this.

@ot0tot ot0tot requested a review from VitroidFPV January 13, 2026 05:04
@osirisinferi
Copy link
Contributor

Doh. didn't realize the bot already approved this.

It approved with all the previous timer pin map incompatibilities/conflicts...

Copy link
Member

@nerdCopter nerdCopter left a comment

Choose a reason for hiding this comment

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

  • approving untested

@haslinghuis haslinghuis merged commit 637b0f5 into betaflight:master Jan 13, 2026
5 checks passed
@haslinghuis haslinghuis deleted the SIMPLIFLYF405 branch January 13, 2026 20:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants