Skip to content

HAL_ChibiOS: add support for PilotGaeaSH7V1-bdshot#32416

Merged
tridge merged 3 commits into
ArduPilot:masterfrom
PilotGaea2001:pr/PilotGaea-support
Apr 20, 2026
Merged

HAL_ChibiOS: add support for PilotGaeaSH7V1-bdshot#32416
tridge merged 3 commits into
ArduPilot:masterfrom
PilotGaea2001:pr/PilotGaea-support

Conversation

@PilotGaea2001

Copy link
Copy Markdown
Contributor

Summary

Add board support for the PilotGaeaSH7V1-bdshot flight controller.

Testing (more checks increases chance of being merged)

  • Checked by a human programmer
  • Tested in SITL
  • Tested on hardware
  • Logs attached
  • Logs available on request
  • Autotest included

Description

This PR adds support for the PilotGaeaSH7V1-bdshot, a high-performance STM32H743-based flight controller designed for advanced drone applications.

Key Hardware Specifications:

  • MCU: STM32H743VIT6 (2MB Flash, 480MHz)
  • IMU: Dual ICM42688P (on SPI1 and SPI4) for redundancy.
  • Baro: DPS310 (on I2C2).
  • OSD: AT7456E.
  • PWM/DShot: 11 outputs total.
    • Motors 1-8: Assigned to dedicated DMA streams to ensure robust Bi-directional DShot (RPM telemetry) support.
  • Other Features: Dual camera switching via GPIO, integrated 8V VTX BEC control, and microSD support.

Test Environment & Results:

  • Firmware Version: Tested on latest master tag (Copter-4.6.3).
  • Hardware Verification:
    • Successfully flashed and connected to Mission Planner.
    • All onboard sensors (Dual IMUs, Barometer) initialized and calibrated correctly.
    • Verified DShot functionality on Motors 1-4.
    • Confirmed peripheral functions including Camera switching and VTX power control.

*Note: Bootloader binary files are included in Tools/bootloaders/ to satisfy the AP_BOOTLOADER_FLASHING_ENABLED requirement for the initial build validation.

@PilotGaea2001 PilotGaea2001 force-pushed the pr/PilotGaea-support branch 4 times, most recently from 8620f02 to f3e501b Compare March 11, 2026 09:08
@PilotGaea2001 PilotGaea2001 changed the title ChibiOS: Add hardware support for PilotGaeaSH7V1-bdshot HAL_ChibiOS: add support for PilotGaeaSH7V1-bdshot Mar 11, 2026
@PilotGaea2001

Copy link
Copy Markdown
Contributor Author

Hi everyone, I've fixed the linting and commit naming issues. The PR is now ready. Thank your!

@Hwurzburg Hwurzburg added the WikiNeeded needs wiki update label Mar 12, 2026
@Hwurzburg

Copy link
Copy Markdown
Contributor

needs commits split...one per library...ie Tools: add... and AP_HAL_ChibiOS:addd.....

@PilotGaea2001

Copy link
Copy Markdown
Contributor Author

Hi, I have split the commits as requested. One for HAL_ChibiOS and one for Tools. Ready for review, thanks!

@Hwurzburg Hwurzburg force-pushed the pr/PilotGaea-support branch from c3ad688 to 9fe05ca Compare March 15, 2026 13:03

@Hwurzburg Hwurzburg left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Preliminary review....wont even look at README until these are addressed/discussed:

  • CAN connector has USB power...almost assures bench setup failure due to excessive CAN device draws for most CAN units or failure of the CAN device...should be 5V
  • Your hwdef has superfluous comments...AND multiple redefintion of the outputs...luckily our CI and Waf configure actually accepts redefinition of those for some reason.... (we need to fix this hole in CI)....but remove them anyway
  • You have UART4 protocol as RCIN protocol, it should be DISPLAYPORT and you cant have two protocol 23 ports at the same time
  • You set the baud rates for serial ports...no need, remove
  • Since you want a serial LED setup....add the SERVO13_FUNCTION 120 in a defaults.parm file and add define DEFAULT_NTF_LED_TYPES 455 in hwdef
  • The GPS pad row does not have access to I2C or 4V5 convenient. I would swap UART1 and UART2 protocols in the hwdef and update the pinout images...better wiring and convenience
  • You could add booting from SD card to the bootloader def
  • Since you don't pin out UART3 you could replace it in SERIAL ORDER with EMPTY to avoid giving the user a SERIAL4 parm set that does nothing for him

I will review the README once the hwdef issues are resolved or discussed....clean up the hwdef of superfluous comments/lines

@PilotGaea2001

Copy link
Copy Markdown
Contributor Author

Thank you for the detailed feedback!
I completely understand the concerns regarding CAN power safety and the redundant definitions. I will update the hwdef.dat to swap UART1/2 for better GPS/I2C layout, clean up the superfluous comments, and fix the serial protocols/baud rates as suggested. I will also add the defaults.parm for the LED setup. I'll push the updates once I've addressed all points. Thanks!

Comment thread libraries/AP_HAL_ChibiOS/hwdef/PilotGaeaSH7V1-bdshot/hwdef.dat Outdated
Comment thread libraries/AP_HAL_ChibiOS/hwdef/PilotGaeaSH7V1-bdshot/hwdef.dat
Comment thread libraries/AP_HAL_ChibiOS/hwdef/PilotGaeaSH7V1-bdshot/hwdef.dat Outdated
Comment thread libraries/AP_HAL_ChibiOS/hwdef/PilotGaeaSH7V1-bdshot/hwdef.dat Outdated
Comment thread libraries/AP_HAL_ChibiOS/hwdef/PilotGaeaSH7V1-bdshot/hwdef.dat Outdated
@PilotGaea2001

PilotGaea2001 commented Apr 8, 2026

Copy link
Copy Markdown
Contributor Author

@Hwurzburg

Preliminary review....wont even look at README until these are addressed/discussed:

  • CAN connector has USB power...almost assures bench setup failure due to excessive CAN device draws for most CAN units or failure of the CAN device...should be 5V
  • Your hwdef has superfluous comments...AND multiple redefintion of the outputs...luckily our CI and Waf configure actually accepts redefinition of those for some reason.... (we need to fix this hole in CI)....but remove them anyway
  • You have UART4 protocol as RCIN protocol, it should be DISPLAYPORT and you cant have two protocol 23 ports at the same time
  • You set the baud rates for serial ports...no need, remove
  • Since you want a serial LED setup....add the SERVO13_FUNCTION 120 in a defaults.parm file and add define DEFAULT_NTF_LED_TYPES 455 in hwdef
  • The GPS pad row does not have access to I2C or 4V5 convenient. I would swap UART1 and UART2 protocols in the hwdef and update the pinout images...better wiring and convenience
  • You could add booting from SD card to the bootloader def
  • Since you don't pin out UART3 you could replace it in SERIAL ORDER with EMPTY to avoid giving the user a SERIAL4 parm set that does nothing for him

I will review the README once the hwdef issues are resolved or discussed....clean up the hwdef of superfluous comments/lines

In response to point 1 : Power distribution as per image. The CAN Bus connector mainly connects to the electronic compass. For USB-powered operation, 4.5V (VBUS via diode, actual 4.7-4.8V) is used for the CAN Bus. A redundant 5V CAN Bus path (parallel signals) is also reserved in the layout.
1
2

Comment thread libraries/AP_HAL_ChibiOS/hwdef/PilotGaeaSH7V1-bdshot/hwdef.dat Outdated
@PilotGaea2001

Copy link
Copy Markdown
Contributor Author

@Hwurzburg
Thank you for the comprehensive review. I have updated the hwdef.dat and added a defaults.parm to address all the points raised:
1.The CAN Power and the 4V5 rail:
image
The hardware design utilizes a Dual-Diode Power Path Management (as shown in the attached schematic).Use Schottky diodes to isolate the USB VBUS and the 5V Buck Converter output.This prevents potential back-powering issues.
2.Code Cleanup: Removed all redundant definitions and superfluous comments. The hwdef.dat is now much cleaner and follows the standard ArduPilot structure.
3.Corrected UART4 protocol to DISPLAYPORT and resolved the RCIN protocol conflict.
4.Removed unnecessary default baud rate settings for all serial ports.
5.Added define DEFAULT_NTF_LED_TYPES 455 to hwdef.dat.Created etc/defaults.parm with SERVO13_FUNCTION 120 and linked it in the hwdef.
6.Swapped UART1 and UART2 protocols to ensure the GPS pad row has convenient access to I2C/4V5.
7.Enabled SD card booting in the bootloader definition.
8.Updated SERIAL_ORDER to replace the un-routed UART3 with EMPTY to simplify the parameter list for users.completely removed the unused SPI3 (pins and bus definitions) to further free up DMA and CPU resources.
The CI build is green. Please take another look at the updated implementation.

@PilotGaea2001 PilotGaea2001 requested a review from andyp1per April 13, 2026 06:49
@Hwurzburg Hwurzburg self-requested a review April 13, 2026 11:41
Comment thread libraries/AP_HAL_ChibiOS/hwdef/PilotGaeaSH7V1-bdshot/hwdef.dat
@PilotGaea2001 PilotGaea2001 force-pushed the pr/PilotGaea-support branch 3 times, most recently from 0f940c0 to 408c177 Compare April 14, 2026 08:05

@andyp1per andyp1per left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

LGTM

Comment thread libraries/AP_HAL_ChibiOS/hwdef/PilotGaeaSH7V1-bdshot/README.md Outdated
Comment thread libraries/AP_HAL_ChibiOS/hwdef/PilotGaeaSH7V1-bdshot/README.md Outdated
Comment thread libraries/AP_HAL_ChibiOS/hwdef/PilotGaeaSH7V1-bdshot/hwdef.dat Outdated
Comment thread libraries/AP_HAL_ChibiOS/hwdef/PilotGaeaSH7V1-bdshot/README.md Outdated
Comment thread libraries/AP_HAL_ChibiOS/hwdef/PilotGaeaSH7V1-bdshot/README.md Outdated
Comment thread libraries/AP_HAL_ChibiOS/hwdef/PilotGaeaSH7V1-bdshot/README.md Outdated
Comment thread libraries/AP_HAL_ChibiOS/hwdef/PilotGaeaSH7V1-bdshot/README.md Outdated
Comment thread libraries/AP_HAL_ChibiOS/hwdef/PilotGaeaSH7V1-bdshot/defaults.parm
@PilotGaea2001 PilotGaea2001 force-pushed the pr/PilotGaea-support branch 3 times, most recently from 558b8f9 to 4359397 Compare April 17, 2026 02:14

@Hwurzburg Hwurzburg left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

0ne more nit, have approved since you respond so quickly, and added devcall label

Comment thread libraries/AP_HAL_ChibiOS/hwdef/PilotGaeaSH7V1-bdshot/README.md
@tridge tridge merged commit 0834aac into ArduPilot:master Apr 20, 2026
56 checks passed
@github-project-automation github-project-automation Bot moved this to Pending in 4.7 Backports Jun 1, 2026
@Georacer Georacer moved this from Pending to 4.7.0-beta6 in 4.7 Backports Jun 1, 2026
@Georacer Georacer mentioned this pull request Jun 2, 2026
1 task
@Georacer

Copy link
Copy Markdown
Contributor

This has been included in 4.7.0-beta6. Thanks!

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

Labels

Projects

Status: 4.7.0-beta6

Development

Successfully merging this pull request may close these issues.

7 participants