Skip to content

loader: add ota#424

Open
gibix wants to merge 2 commits into
arduino:mainfrom
gibix:feat/ota
Open

loader: add ota#424
gibix wants to merge 2 commits into
arduino:mainfrom
gibix:feat/ota

Conversation

@gibix
Copy link
Copy Markdown
Member

@gibix gibix commented Apr 14, 2026

This is a first porting of portenta_ota and

The main "change" is that now the ota payload contains <llext loader + padding + user sketch>

Features

  • http
  • https
  • chunked http
  • lzss compression
  • example with ethernet
  • example with progress download
  • user callback for ota compleated

Boards

  • portentah7 (compile and tested)
  • opta
  • giga
  • c33

Step to reproduce

  • build extra/ota-pack
  • rebuild the core for you board
  • compile an example (blink) and save the .ota file from the output dir
  • run a simple http server python -m http.server 8000 in the directory that contains the sketch
  • flash the bootloader
  • flash the ota example sketch

@gibix gibix changed the title Feat/ota feat: ota Apr 14, 2026
@gibix gibix changed the title feat: ota feat: portenta ota Apr 14, 2026
@CLAassistant
Copy link
Copy Markdown

CLAassistant commented Apr 14, 2026

CLA assistant check
All committers have signed the CLA.

Wraps a sketch (and optionally the loader) in the 20-byte Arduino OTA
header and LZSS-compresses the payload. Invoked from postobjcopy hooks
in platform.txt.

Signed-off-by: Gilberto Conti <g.conti@arduino.cc>
@gibix gibix changed the title feat: portenta ota feat: ota May 14, 2026
@gibix gibix marked this pull request as ready for review May 14, 2026 10:25
@gibix gibix changed the title feat: ota loader: add ota May 14, 2026
On boot, install /ota:/UPDATE.BIN into the user_sketch partition when
the OTA_UPDATE_PENDING sentinel is present. Validates the sketch
header, bounds, and keeps the sentinel on post-erase failure for retry.

Signed-off-by: Gilberto Conti <g.conti@arduino.cc>
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