Skip to content

feat(firmware-upload): add data model, APJ reader and bootloader codec - #2027

Open
iacker wants to merge 1 commit into
ArduPilot:masterfrom
iacker:feat/firmware-upload-data-model
Open

feat(firmware-upload): add data model, APJ reader and bootloader codec#2027
iacker wants to merge 1 commit into
ArduPilot:masterfrom
iacker:feat/firmware-upload-data-model

Conversation

@iacker

@iacker iacker commented Sep 4, 2026

Copy link
Copy Markdown
Contributor

Description

First step of #2017, steps 1 and 2 of the implementation sequence. Adds data_model_firmware_upload.py with the APJ reader, the board and flash compatibility rules, the upload state machine, and the bootloader packet codec. Constants and image padding follow ArduPilot Tools/scripts/uploader.py. No serial, MAVLink or Tkinter code in this PR.

AI assistance was used. I reviewed the changes and ran the tests below.

Checklist

  • Run pre-commit checks locally
  • Verified by a human programmer
  • All commits are signed off (use git commit --signoff)
  • Code follows our coding standards
  • Documentation updated if needed
  • No breaking changes or properly documented

Testing

  • Unit tests pass, 36 tests in tests/test_data_model_firmware_upload.py, including a full erase, program and CRC verify round trip against a fake rev 5 bootloader
  • Integration tests pass
  • Manual testing performed
  • Tested on flight controller hardware

Signed-off-by: Billard <82095453+iacker@users.noreply.github.com>
@iacker
iacker requested a review from amilcarlucas as a code owner September 4, 2026 19:06
@coveralls

Copy link
Copy Markdown

Coverage Report for CI Build 33909389085

Coverage at 89.404% (no base build to compare)

Details

  • Coverage remained the same as the base build.
  • Patch coverage: No coverable lines changed in this PR.
  • No coverage regressions found.

Uncovered Changes

No uncovered changes found.

Coverage Regressions

No coverage regressions found.


Coverage Stats

Coverage Status
Relevant Lines: 19234
Covered Lines: 17196
Line Coverage: 89.4%
Relevant Branches: 5746
Covered Branches: 4745
Branch Coverage: 82.58%
Branches in Coverage %: No
Coverage Strength: 2.66 hits per line

💛 - Coveralls

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