Skip to content

feat: Add SUIT-verified update example - #17

Open
jhirschler wants to merge 3 commits into
ariel-os:mainfrom
COLORADIO-Project:suit-updatable
Open

feat: Add SUIT-verified update example#17
jhirschler wants to merge 3 commits into
ariel-os:mainfrom
COLORADIO-Project:suit-updatable

Conversation

@jhirschler

Copy link
Copy Markdown
Contributor

This PR adds an example showing how a wasm capsule can be updated over CoAP using a signed SUIT manifest.

The SUIT handling is built on dress-up. The example integrates it with the updatable-async update flow and documents the commands needed to build and send a signed update.

I’d be very interested in feedback on this.

Copy the existing updatable-async example as a baseline for a SUIT-based
variant.

Signed-off-by: Jakob Hirschler <jakob.hirschler@posteo.de>
Extend the updatable async example with SUIT manifest verification.

Add demo signing material and README instructions to use them.

Signed-off-by: Jakob Hirschler <jakob.hirschler@posteo.de>
@anlavandier
anlavandier self-requested a review August 3, 2026 15:53
@anlavandier

Copy link
Copy Markdown
Contributor

Hey, sorry I never got any notifications for this so I just now discovered the existence of this PR.
I'm going to review this and give you feedback before tomorrow evening

@anlavandier anlavandier 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.

Thanks a lot for this great contribution. Everything looks good from my side. Just for readability I would prefer if you moved the VmControl related code to another file for readability.

Comment thread examples/suit-updatable/src/main.rs Outdated
Signed-off-by: Jakob Hirschler <jakob.hirschler@posteo.de>
@jhirschler

Copy link
Copy Markdown
Contributor Author

No worries about the delay!
I extracted the vm-control related bits.

@anlavandier
anlavandier self-requested a review August 11, 2026 14:43

@anlavandier anlavandier 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.

See the comments below.

I was able to test this on the hardware I had available namely the dfrobot-firebeetle-esp32-c6 and the rpi-pico2-w. After this round I think that this will be ready to be merged.

Thanks a lot for this contribution !

Comment on lines +145 to +155
#[ariel_os::task(autostart)]
async fn coap_task() {
let control = VmControl::new();

let handler = new_dispatcher()
.at_with_attributes(&["vm-control"], &[], control)
.with_wkc();

info!("Starting CoAP handler");
coap_run(handler).await;
}

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.

Sorry, I should have been more precise, I wanted the same thing that you did with the coap client and suit code where the ariel_os::task stays in main.rs

apps:
- name: suit-updatable
context:
- espressif-esp32-c6-devkitc-1

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.

Suggested change
- espressif-esp32-c6-devkitc-1
- espressif-esp32-c6-devkitc-1
- dfrobot-firebeetle2-esp32-c6
- rpi-pico2-w


This example has been tested on the following boards:

- ESP32-C6-DevKitC-1

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.

Suggested change
- ESP32-C6-DevKitC-1
- `espressif-esp32-c6-devkit-c1`
- `dfrobot-firebeetle2-esp32-c6`
- `rpi-pico2-w`

Putting the laze builders here make testing simpler by using the name of the boards that are known to Ariel OS.

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