ArduPilot / ArduPilot/MissionPlanner

support AP_Periph fw load from firmware.ardupilot.org

Open
#2,236 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
C#
Stars
2.4k
Forks
2.9k
Avg merge
19h 16m
Merged PRs (30d)
4

Description

AP_Periph UAVCAN firmwares are now auto-built on firmware.ardupilot.org, in this folder:
http://firmware.ardupilot.org/AP_Periph/
They are also in the manifest.json file, like this:
{
"mav-type": "CAN_PERIPHERAL",
"vehicletype": "AP_Periph",
"mav-firmware-version-minor": "0",
"format": "bin",
"url": "http://firmware.ardupilot.org/AP_Periph/latest/f103-GPS/AP_Periph.bin",
"mav-firmware-version-type": "DEV",
"mav-firmware-version-patch": "0",
"mav-autopilot": "ARDUPILOTMEGA",
"platform": "f103-GPS",
"mav-firmware-version": "1.0.0",
"git-sha": "15f709e6ab31007c4f42113f2d1d791e5b3a6bcc",
"mav-firmware-version-major": "1",
"latest": 1
},
That is for the bin file. The more useful entries are for the apj files, like this:
{
"board_id": 1000,
"mav-type": "CAN_PERIPHERAL",
"vehicletype": "AP_Periph",
"mav-firmware-version-minor": "0",
"format": "apj",
"url": "http://firmware.ardupilot.org/AP_Periph/latest/f103-GPS/AP_Periph.apj",
"mav-firmware-version-type": "DEV",
"mav-firmware-version-patch": "0",
"mav-autopilot": "ARDUPILOTMEGA",
"USBID": [
"0x0483/0x5740"
],
"platform": "f103-GPS",
"mav-firmware-version": "1.0.0",
"bootloader_str": [
"f103-GPS-BL"
],
"git-sha": "15f709e6ab31007c4f42113f2d1d791e5b3a6bcc",
"mav-firmware-version-major": "1",
"latest": 1
},
mostly importantly that gives the board_id, which matches the HardwareVersion major/minor in UAVCAN NodeInfo. The major is board_id>>8 and minor is board_id&0xff.
This should allow MissionPlanner to find apj files that match a particular hardware config for a UAVCAN peripheral. The process would be:
- download manifest.json
- look for entries with CAN_PERIPHERAL for mav-type
- look for format=apj
- find the list of firmwares that matches the major/minor HardwareVerson from NodeInfo
- offer that list of firmwares to the user to upload
- when selected, either unpack the apj file to get the bin or fetch the corresponding bin file from the firmware server

For now AP_Periph only has 'latest' firmwares. In the future it will have beta and stable releases, just like other vehicle types.

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by downloading manifest.json and inspecting the CAN_PERIPHERAL AP_Periph entries, especially the apj records, board_id, and matching firmware URLs. Done means Mission Planner can match a UAVCAN peripheral's HardwareVersion, offer the matching APJ firmware, and provide the corresponding BIN for upload.

Written by the indexing model from the issue text.

Assessment

Tech stack
csharp
Domain
desktop, embedded-iot
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.