Skip to content

Add BETAFPVH725 #752

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

Open
wants to merge 13 commits into
base: master
Choose a base branch
from
Open

Conversation

haslinghuis
Copy link
Member

@haslinghuis haslinghuis commented Apr 13, 2025

f80fb08d-88c4-4df4-8f0b-2325f1c0edda

Summary by CodeRabbit

  • New Features

    • Added support for the BETAFPVH725 flight controller board, including configuration for sensors, peripherals, and hardware interfaces.
  • Chores

    • Introduced a new configuration file to map all relevant hardware resources and device settings for the BETAFPVH725 board.

@haslinghuis haslinghuis force-pushed the betafpvh725 branch 2 times, most recently from 58f71e7 to a3a9ccf Compare May 7, 2025 11:17
@haslinghuis haslinghuis requested a review from SteveCEvans May 9, 2025 16:14
Copy link

coderabbitai bot commented Jun 19, 2025

Walkthrough

A new configuration header file for the BETAFPVH725 flight controller board has been added. This file defines the hardware abstraction layer, specifying MCU type, board identifiers, enabled peripherals, pin assignments, timer mappings, ADC/I2C/SPI/UART configurations, and default device settings for various sensors and interfaces.

Changes

File(s) Change Summary
configs/BETAFPVH725/config.h Added new board configuration header for BETAFPVH725, defining MCU, peripherals, pin mappings, and hardware resource assignments.

Sequence Diagram(s)

sequenceDiagram
    participant User
    participant Firmware
    participant BETAFPVH725 Board

    User->>Firmware: Build with BETAFPVH725 target
    Firmware->>BETAFPVH725 Board: Initialize hardware using config.h
    BETAFPVH725 Board->>Firmware: Provide pin mappings and peripheral settings
    Firmware->>BETAFPVH725 Board: Enable peripherals (Gyro, ACC, Baro, Flash, OSD, etc.)
    Firmware->>BETAFPVH725 Board: Assign UART, SPI, I2C, ADC, and Timer resources
    Firmware->>BETAFPVH725 Board: Set default device and meter sources
    Note over Firmware,BETAFPVH725 Board: Board operates with configured hardware abstraction
Loading

Possibly related PRs

  • Add New Target DAKEFPVH743Pro #793: Adds a new configuration header for a different STM32H7-based flight controller board, with similar peripheral and pin assignment definitions.

Suggested reviewers

  • ot0tot

📜 Recent review details

Configuration used: .coderabbit.yaml
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between baf6767 and 4fb9894.

📒 Files selected for processing (1)
  • configs/BETAFPVH725/config.h (1 hunks)
🔇 Additional comments (8)
configs/BETAFPVH725/config.h (8)

1-23: Standard header and pragma structure looks good.

The copyright header and include guard follow standard Betaflight conventions.


24-27: Board identification is properly configured.

MCU target, board name, and manufacturer ID are correctly defined for the BETAFPVH725.


29-37: Peripheral enable macros are comprehensive.

Good coverage of essential flight controller peripherals including gyro (ICM42688P), accelerometer, barometer (DPS310), flash memory (M25P16), and OSD (MAX7456).


63-64: Pin conflict resolved successfully.

The critical pin conflict mentioned in past reviews has been resolved. PA15 is now only assigned to UART7_TX_PIN, and MAX7456_SPI_CS_PIN has been moved to PB12, eliminating the hardware conflict.

Also applies to: 90-90


94-99: Timer pin mapping is consistent and well-structured.

The timer assignments properly map motors and LED strip to appropriate timer channels, with logical sequencing (motors 1-4 on timers 1-4, LED strip on timer 0).


109-120: Conditional UART assignments are logically structured.

The conditional compilation blocks for GPS, OSD display port, and serial receiver are well-designed, providing appropriate defaults while supporting OSD HD configurations.


122-131: Default configurations and SPI instance assignments are appropriate.

Good default values for blackbox device (flash), current meter scale (750), and proper SPI instance separation (SPI1 for gyro, SPI2 for MAX7456, SPI3 for flash) to avoid conflicts.


39-93: ```shell
#!/bin/bash

Inspect the top of the BETAFPVH725 config to identify MCU defines

echo "Head of configs/BETAFPVH725/config.h:"
sed -n '1,50p' configs/BETAFPVH725/config.h

echo -e "\nLooking for specific MCU-related defines in this config:"
rg -i "H725|STM32H7" configs/BETAFPVH725/config.h


</details>

</blockquote></details>

</details>
<!-- internal state start -->


<!-- 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= -->

<!-- internal state end -->
<!-- finishing_touch_checkbox_start -->

<details open="true">
<summary>✨ Finishing Touches</summary>

- [ ] <!-- {"checkboxId": "7962f53c-55bc-4827-bfbf-6a18da830691"} --> 📝 Generate Docstrings

</details>

<!-- finishing_touch_checkbox_end -->
<!-- tips_start -->

---

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.

<details>
<summary>❤️ Share</summary>

- [X](https://twitter.com/intent/tweet?text=I%20just%20used%20%40coderabbitai%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20the%20proprietary%20code.%20Check%20it%20out%3A&url=https%3A//coderabbit.ai)
- [Mastodon](https://mastodon.social/share?text=I%20just%20used%20%40coderabbitai%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20the%20proprietary%20code.%20Check%20it%20out%3A%20https%3A%2F%2Fcoderabbit.ai)
- [Reddit](https://www.reddit.com/submit?title=Great%20tool%20for%20code%20review%20-%20CodeRabbit&text=I%20just%20used%20CodeRabbit%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20proprietary%20code.%20Check%20it%20out%3A%20https%3A//coderabbit.ai)
- [LinkedIn](https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Fcoderabbit.ai&mini=true&title=Great%20tool%20for%20code%20review%20-%20CodeRabbit&summary=I%20just%20used%20CodeRabbit%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20proprietary%20code)

</details>

<details>
<summary>🪧 Tips</summary>

### Chat

There are 3 ways to chat with [CodeRabbit](https://coderabbit.ai?utm_source=oss&utm_medium=github&utm_campaign=betaflight/config&utm_content=752):

- Review comments: Directly reply to a review comment made by CodeRabbit. Example:
  - `I pushed a fix in commit <commit_id>, please review it.`
  - `Explain this complex logic.`
  - `Open a follow-up GitHub issue for this discussion.`
- Files and specific lines of code (under the "Files changed" tab): Tag `@coderabbitai` in a new review comment at the desired location with your query. Examples:
  - `@coderabbitai explain this code block.`
  -	`@coderabbitai modularize this function.`
- PR comments: Tag `@coderabbitai` in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
  - `@coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.`
  - `@coderabbitai read src/utils.ts and explain its main purpose.`
  - `@coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.`
  - `@coderabbitai help me debug CodeRabbit configuration file.`

### Support

Need help? Create a ticket on our [support page](https://www.coderabbit.ai/contact-us/support) for assistance with any issues or questions.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

### CodeRabbit Commands (Invoked using PR comments)

- `@coderabbitai pause` to pause the reviews on a PR.
- `@coderabbitai resume` to resume the paused reviews.
- `@coderabbitai review` to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
- `@coderabbitai full review` to do a full review from scratch and review all the files again.
- `@coderabbitai summary` to regenerate the summary of the PR.
- `@coderabbitai generate docstrings` to [generate docstrings](https://docs.coderabbit.ai/finishing-touches/docstrings) for this PR.
- `@coderabbitai generate sequence diagram` to generate a sequence diagram of the changes in this PR.
- `@coderabbitai resolve` resolve all the CodeRabbit review comments.
- `@coderabbitai configuration` to show the current CodeRabbit configuration for the repository.
- `@coderabbitai help` to get help.

### Other keywords and placeholders

- Add `@coderabbitai ignore` anywhere in the PR description to prevent this PR from being reviewed.
- Add `@coderabbitai summary` or `` to generate the high-level summary at a specific location in the PR description.
- Add `@coderabbitai` anywhere in the PR title to generate the title automatically.

### Documentation and Community

- Visit our [Documentation](https://docs.coderabbit.ai) for detailed information on how to use CodeRabbit.
- Join our [Discord Community](http://discord.gg/coderabbit) to get help, request features, and share feedback.
- Follow us on [X/Twitter](https://twitter.com/coderabbitai) for updates and announcements.

</details>

<!-- tips_end -->

@haslinghuis
Copy link
Member Author

@SteveCEvans any updates ?

Copy link

@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: 1

♻️ Duplicate comments (3)
configs/BETAFPVH725/config.h (3)

107-107: ESC sensor UART configuration is correct.

This addresses the previous review comment requesting SERIAL_PORT_USART1.


109-120: Conditional UART assignments are well-structured.

The logic properly handles GPS, OSD display port, and serial receiver based on compile-time flags, addressing previous review feedback.


80-82: SPI3 pin assignments are correct.

The SCK, SDI, and SDO pins are properly assigned, addressing the previous transposition issue.

📜 Review details

Configuration used: .coderabbit.yaml
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 96eebb9 and baf6767.

📒 Files selected for processing (1)
  • configs/BETAFPVH725/config.h (1 hunks)
🔇 Additional comments (5)
configs/BETAFPVH725/config.h (5)

1-20: Standard GPL license header looks good.

The copyright and license information is properly formatted and complete.


24-27: Board identification is properly configured.

The MCU target, board name, and manufacturer ID are correctly defined for the BETAFPVH725.


29-37: Peripheral enable macros are appropriate for this board.

The selected peripherals (ICM42688P gyro/accel, DPS310 barometer, M25P16 flash, MAX7456 OSD) are standard for modern flight controllers.


94-99: Timer pin mappings are correctly configured.

The timer assignments for motors and LED strip follow standard patterns and appear conflict-free.


122-126: Default device configurations are sensible.

Blackbox to flash, ADC-based metering, and current meter scale of 750 are appropriate defaults for this board.

@haslinghuis haslinghuis requested review from ot0tot and nerdCopter June 19, 2025 22:12
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