Skip to content

Updating the access point

github-actions[bot] edited this page Oct 27, 2026 · 3 revisions

Updating the access point

The AP is updated over the air. It keeps its labels, layouts and settings.

Take a backup first: esl_client.py backup ap.json (Backup and restore).

From the dashboard

When the web page has a newer release than the AP runs, an arrow next to the AP's version on the Dashboard sends the right image for your board. The dashboard warns if the image is the same or older, or made for another board.

From the terminal

python3 esl_client.py ota openesl-ap-<board>-<version>-ota.bin --wait

Use the -ota.bin file from the release, not the single .bin.

The C6 radio of an ESP32-S3 + C6

An ESP32-S3 with a C6 on a cable has a second chip to update: the C6 radio. Since 0.8.2 the S3 passes the radio's firmware on over the cable, from the dashboard (the Radio line under Firmware) or with esl_client.py ota openesl-ap-radio-esp32c6-<version>-ota.bin --wait. Update the S3 first, then the radio. A C6 flashed before 0.8.2 has to be flashed once more over USB first. Going back to an older radio firmware also needs the Flash AP tab over USB: older releases have no radio -ota.bin.

If something goes wrong

If the new firmware does not get onto WiFi or answer the API within three minutes, or crashes at start, the AP goes back to the old version by itself.

To go back on purpose, send the older release's -ota.bin the same way. If the newer release changed how the AP stores its data, restore from the backup afterwards.

Over USB instead

The Flash AP tab also keeps everything on an AP that runs OpenESL (Flashing the AP). Some releases need this once, for example to get room for more label models.

Clone this wiki locally