Firmware build for PlaiiinLightOS v2.1.2.
Forms shipped
tower · wormhole · display · cube · rocket · strip
Every form ships for five SoCs: esp32 (Xtensa, no suffix), esp32s3
(Xtensa, -esp32s3 suffix), esp32c3 and esp32c6 (RISC-V, -esp32c3 /
-esp32c6 suffix) and esp32c5 (RISC-V, -esp32c5 suffix,
experimental — built with IDF v5.5, may be absent from a release),
e.g. tower-flash.bin vs tower-esp32s3-flash.bin vs
tower-esp32c6-flash.bin. Match the asset to your board's chip — a
lamp reports its own via GET /api/ota/info (target).
What's in each form
| File | Purpose | Flash to |
|---|---|---|
<form>-flash.bin |
USB first-flash (bootloader + partitions + OTA data + app) | offset 0x0 |
<form>-app.bin |
OTA payload — POST to /api/ota on a running lamp |
(OTA, no offset) |
<form>-effects.bin |
byForm SPIFFS image (effects + form-template) | offset 0x3C0000 |
<form>.manifest.json |
ESP Web Tools manifest for browser-based flashing | — |
(For a SoC variant, <form> is the suffixed stem, e.g. strip-esp32c3-flash.bin.)
DIY flash recipes
CLI (esptool) — pass the matching --chip. Every flash.bin is a merged
image starting at 0x0, so the write offset is 0x0 regardless of where the SoC's
ROM expects its bootloader (0x1000 esp32, 0x0 esp32c3, 0x2000 esp32c5):
# esp32 form (e.g. tower)
esptool.py --chip esp32 -p /dev/cu.usbserial-* write_flash 0x0 tower-flash.bin
esptool.py --chip esp32 -p /dev/cu.usbserial-* write_flash 0x3C0000 tower-effects.bin
# esp32c3 variant (e.g. strip / shrumLight)
esptool.py --chip esp32c3 -p /dev/cu.usbmodem* write_flash 0x0 strip-esp32c3-flash.bin
esptool.py --chip esp32c3 -p /dev/cu.usbmodem* write_flash 0x3C0000 strip-esp32c3-effects.bin
# esp32c5 variant
esptool.py --chip esp32c5 -p /dev/cu.usbmodem* write_flash 0x0 strip-esp32c5-flash.bin
esptool.py --chip esp32c5 -p /dev/cu.usbmodem* write_flash 0x3C0000 strip-esp32c5-effects.binBrowser (ESP Web Tools): point the install button at <form>.manifest.json
(e.g. tower.manifest.json or strip-esp32c3.manifest.json) — the manifest's
chipFamily selects the right target automatically.
Verification
See SHA256SUMS.