Skip to content

feat(docs): ufw-firmware flashing#27373

Open
Phil-Engljaehringer wants to merge 2 commits into
mainfrom
update(docs)-firmware-flashing
Open

feat(docs): ufw-firmware flashing#27373
Phil-Engljaehringer wants to merge 2 commits into
mainfrom
update(docs)-firmware-flashing

Conversation

@Phil-Engljaehringer
Copy link
Copy Markdown
Contributor

Solved Problem

The Firmware Update section of the DroneCAN docs did not reflect the firmware upload and flashing pipeline added in this PR: #27043

Solution

Expanded the ## Firmware Update section in index.md to document the staging directory, the boot-time migration flow, the FW.db tracking database, and the remote update workflow via upload_skynode.sh --ext-fw.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 18, 2026

💡 Commit messages could be improved

Not blocking, but these commit messages could use some cleanup.

Commit Message Suggestion
2e745300e1 Update docs for ufw-firmware update Missing conventional commit format (e.g. "feat(ekf2): add something")

See the commit message convention for details.


This comment will be automatically removed once the issues are resolved.

@Phil-Engljaehringer Phil-Engljaehringer changed the title Update docs for ufw-firmware flashing update(docs): ufw-firmware flashing May 18, 2026
@Phil-Engljaehringer Phil-Engljaehringer changed the title update(docs): ufw-firmware flashing feat(docs): ufw-firmware flashing May 18, 2026
@github-actions github-actions Bot added the kind:feature Request or change that adds new functionality. label May 18, 2026
Comment thread docs/en/dronecan/index.md Outdated

### Remote Update

Firmware can be delivered remotely by bundling `.bin` files into an update archive. An external update tool can extract the archive on the target and copy the CAN firmware files into `/fs/microsd/ufw_staging/`. They are then picked up on the next boot.
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

on the target sounds like it is extracted on the PX4 side, yet this is normally done on the host PC / SOM.

Comment thread docs/en/dronecan/index.md Outdated

### Remote Update

Firmware can be delivered remotely by bundling `.bin` files into an update archive. An external update tool can extract the archive on the target and copy the CAN firmware files into `/fs/microsd/ufw_staging/`. They are then picked up on the next boot.
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

It is a bit unclear what an update archive should be. Maybe link to upload_skynode.sh as an example of a working implementation.

Comment thread docs/en/dronecan/index.md

Before uploading, the tool can read `/fs/microsd/ufw/FW.db` to check which firmware is already installed and skip files that haven't changed, reducing transfer size.

`upload_skynode.sh` handles the bundling via the `--ext-fw` flag (repeatable for multiple nodes):
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

nodes is a bit hard to understand here. I would rather say (repeatable for multiple firmware files).

@alexcekay alexcekay requested a review from hamishwillee May 18, 2026 09:14
@github-actions
Copy link
Copy Markdown
Contributor

No broken links found in changed files.

Comment thread docs/en/dronecan/index.md
Comment on lines +333 to +334
A flat-file database at `/fs/microsd/ufw/FW.db` maps each board ID to the original firmware filename that was installed.
Stale entries are removed automatically on every boot.
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.

I'm trying to work out the workflow.

  • Does PX4 use this database to decide if it should install new firmware, or is this intended for the external tool?
  • You say "Stale entries are removed automatically on every boot." - when is it stale - every boot? Or if you update the firmware with some new file name, or something else?

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.

@Phil-Engljaehringer FYI I'm now out for a week. Will look at any responses then.

Comment thread docs/en/dronecan/index.md
122.bin=122-1.17.63eeff1a.uavcan.bin
```

### Remote Update
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.

@Phil-Engljaehringer I have subedited the sections above to remove some of the repetition in the intro and add a definition of what we consider a valid binary and APDescriptor (since I didn't know). Please check that.

I wasn't sure how to update this part of the doc because I wasn't clear what you were saying.

I think you're saying that

  • you have "some" update tool that might bundle a bin of firmware, and use the firmware database to determine what bin files are actually copied into the staging area
  • update_skynode.sh can be used as part of this in that it can copy a named firmware to the staging area (I assume that is what --ext-fw does?). So you could read the database and then call update_skynode.sh multiple times to deploy the desired firmware versions into the staging directory?

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

Labels

kind:feature Request or change that adds new functionality. scope:docs

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants