Skip to content

feat(FirmwareUpgrade): add AMOVLAB Flycore support - #14846

Open
amovlgf wants to merge 1 commit into
mavlink:masterfrom
amovlgf:pr/amovlab-flycore-board
Open

feat(FirmwareUpgrade): add AMOVLAB Flycore support#14846
amovlgf wants to merge 1 commit into
mavlink:masterfrom
amovlgf:pr/amovlab-flycore-board

Conversation

@amovlgf

@amovlgf amovlgf commented Aug 12, 2026

Copy link
Copy Markdown

Summary

  • Recognize the formally assigned AMOVLAB Flycore USB ID 0x1d50:0x61a0 as a Pixhawk-class device.
  • Map PX4 bootloader board_id 1218 to amovlab_flycore_default.
  • Add focused coverage for USB metadata, flash eligibility, and PX4 firmware URL generation.

Background

The Flycore USB PID was formally allocated through openmoko-usb-oui PR #79.

PX4 Flycore support has been merged in PX4-Autopilot PR #27407, and ArduPilot support has been merged in ArduPilot PR #33419.

Both PX4 and ArduPilot use hardware board_id 1218. The PX4 firmware target is amovlab_flycore_default.

The Flycore bootloader and runtime firmware use the same USB VID/PID. QGroundControl's existing Pixhawk bootloader detection checks whether the USB description contains BL, so a second USB entry is not required.

Implementation

  • Add the exact USB VID/PID entry:
    • VID: 0x1d50 (7504)
    • PID: 0x61a0 (24992)
    • Class: Pixhawk
    • Name: AMOVLAB Flycore
  • Add board_id 1218 to the PX4 firmware board-name map.
  • Add tests covering:
    • the unique Flycore USB entry;
    • Pixhawk classification;
    • flash eligibility;
    • absence of a broad AMOVLAB manufacturer fallback;
    • stable, beta, and developer PX4 firmware URLs.

No public API or Flycore-specific public board enum was added. Existing ArduPilot ChibiOS USB entries are unchanged.

Validation

  • USB board JSON parsing passed.
  • Qt resource compilation and loading passed.
  • All affected production and test translation units compiled successfully.
  • Changed C++ lines passed ClangFormat checks.
  • git diff --check passed.
  • The PX4 master firmware URL for amovlab_flycore_default.px4 returns HTTP 200.
  • Stable and beta URLs currently return 404 because Flycore has not yet been included in those release channels.

Hardware validation

  • PX4 bootloader automatic detection
  • PX4 .px4 flashing
  • ArduPilot .apj flashing through the same PX4 bootloader
  • Switching from ArduPilot back to PX4

@github-actions

Copy link
Copy Markdown
Contributor

Thanks for your first pull request! 🎉

A maintainer will review this soon. Please ensure:

  • CI checks pass
  • Code follows coding standards
  • Changes tested on relevant platforms

We appreciate your contribution to QGroundControl!

@codecov

codecov Bot commented Aug 12, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 25.00000% with 3 lines in your changes missing coverage. Please review.
✅ Project coverage is 33.59%. Comparing base (f29efd3) to head (57ee549).
⚠️ Report is 282 commits behind head on master.

Files with missing lines Patch % Lines
src/Comms/QGCSerialPortInfo.cc 25.00% 2 Missing and 1 partial ⚠️
Additional details and impacted files

Impacted file tree graph

@@            Coverage Diff             @@
##           master   #14846      +/-   ##
==========================================
+ Coverage   25.47%   33.59%   +8.12%     
==========================================
  Files         769      928     +159     
  Lines       65912    84103   +18191     
  Branches    30495    38869    +8374     
==========================================
+ Hits        16788    28255   +11467     
+ Misses      37285    36799     -486     
- Partials    11839    19049    +7210     
Flag Coverage Δ
unittests 33.59% <25.00%> (+8.12%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

Files with missing lines Coverage Δ
src/Comms/QGCSerialPortInfo.h 0.00% <ø> (ø)
.../Vehicle/VehicleSetup/FirmwareUpgradeController.cc 11.77% <ø> (+2.13%) ⬆️
src/Comms/QGCSerialPortInfo.cc 23.80% <25.00%> (+5.73%) ⬆️

... and 633 files with indirect coverage changes


Continue to review full report in Codecov by Harness.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 36e35b8...57ee549. Read the comment docs.

🚀 New features to boost your workflow:
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@github-actions

github-actions Bot commented Aug 12, 2026

Copy link
Copy Markdown
Contributor

Build Results

Platform Status

Platform Status Details
Linux Passed View
Windows Passed View
MacOS Passed View
Android Passed View

All builds passed.

Pre-commit

Check Status Details
pre-commit Failed (non-blocking) View

Pre-commit hooks: 2 passed, 75 failed, 7 skipped.

Test Results

linux-coverage-integration: 43 passed, 0 skipped
linux-coverage-unit: 130 passed, 0 skipped
linux-sanitizers-integration: 25 passed, 0 skipped
linux-sanitizers-unit: 130 passed, 0 skipped
Total: 328 passed, 0 skipped

Code Coverage

Coverage: 69.1%

No baseline available for comparison

Artifact Sizes

Artifact Size
QGroundControl 252.54 MB
QGroundControl-aarch64 176.47 MB
QGroundControl-installer-AMD64 137.90 MB
QGroundControl-installer-AMD64-ARM64 80.42 MB
QGroundControl-installer-ARM64 109.17 MB
QGroundControl-linux 84.47 MB
QGroundControl-mac 84.46 MB
QGroundControl-x86_64 188.67 MB
No baseline available for comparison

Updated: 2026-08-12 04:16:17 UTC • Commit: 57ee549 • Triggered by: Windows

@amovlgf
amovlgf marked this pull request as ready for review August 12, 2026 04:16
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.

1 participant