Releases: loznoc/dualboot
Release list
v.1.1
The Bruce settings fix
If your Bruce settings never survived a reboot — that was this launcher, not Bruce.
The partition table shipped without a LittleFS partition, which is where Bruce (and most other ESP32 firmware) saves its config. The mount failed, every save was silently dropped, and nothing on screen said so. There's now an 896 KB spiffs partition in the unused tail of the flash. No app slot moved, so nothing has to be reinstalled.
After updating, the first boot into Bruce sets up the fresh filesystem and writes a default config — set your settings one more time and from then on they stick.
Also new
- Screen mirror + remote control over Wi-Fi. The portal page shows the screen live at up to the full 320×170 and gives you working wheel and back buttons from a phone.
- Joins your own network instead of only hosting a hotspot, so your phone never has to switch. Reachable as
tembed.local. Optional start-at-boot — after the PIN, so the lock screen is never exposed. - Updates keep your settings now. The web flasher writes three parts at their own offsets instead of one image across the front of the flash, which used to wipe the PIN, theme and slot names every time.
Updating
Easiest is the web flasher. On a device already running the launcher, first go Settings → Power → Flash (web) → press, then Install. Leave the erase box unticked and your PIN, theme, slot names and installed firmware all survive.
With esptool instead:
esptool --chip esp32s3 write-flash 0x0 launcher.bin
Note this single image does reset the launcher's own settings — it writes across the NVS area. Installed firmware survives either way.
Only want the fix and nothing else? 3 KB, nothing else touched:
esptool --chip esp32s3 write-flash 0x8000 partitions.bin
Assets
| file | what it is | offset |
|---|---|---|
launcher.bin |
bootloader + partition table + launcher | 0x0 |
partitions.bin |
the fix on its own | 0x8000 |
v1.0.2
⚠️ Breaking: themes moved to /catcolor
Bruce uses /themes on the SD card for its own themes, so this launcher now reads
/catcolor instead. If you already made a theme, move the folder over — the format
is unchanged.
New
- Wi-Fi upload portal — the launcher hosts its own hotspot and serves an upload page.
Add firmware.binfiles and theme packs from a phone, no cable and no card reader.
Pick WiFi in the main menu; the screen shows the network, password and address. - Browser theme creator — https://loznoc.github.io/dualboot/theme.html
Colours with a live preview, replace any icon with your own image, and turn a GIF
into your boot animation. Runs entirely client-side; nothing is uploaded. - Theme packs — a theme can now carry its own icons and boot animation, not just
colours. Upload the.zipover Wi-Fi and it is unpacked on the device. - Per-slot app icons — each app slot has its own icon, chosen at install time or later
under Settings → Icons. 12 new icons: ghost, antenna, bug, skull, gamepad, chip, key,
shield, terminal, NFC, wrench, star. - LED brightness reaches 0 % (fully off).
- PIN lock is optional and off by default — no prompt unless you enable it.
Fixed
- Installs failing with “Install failed”. The installer assumed every
.binwas a full
flash image and always skipped the first 64 KB to find the app. Firmware published as a
bare app image (app at offset 0) was written 64 KB out of alignment and rejected. The app
is now located by reading the ESP32 image headers, so both layouts work. Only the image
itself is written, never trailing data — a merged multi-megabyte image now installs its
app correctly instead of being refused as too big. - Failures now say why: wrong chip, too big (with both sizes), not an ESP32
firmware, image rejected — instead of a dead end. - Installed apps showing as “Empty”. A slot whose app was never named through the
Install menu looked empty while still booting when selected. It now showsApp <n>;
only genuinely blank slots say Empty. - Themes silently not appearing. The Theme menu now explains an empty result, re-reads
the card when opened, and detects files Windows encrypted on copy (.PFILE/$EFS),
which previously looked identical to “no themes found”. - Charging indicator now tracks the charger being plugged and unplugged.
Under the hood
Adding Wi-Fi left only 3 KB free in the 1.5 MB launcher partition. The embedded artwork is
now properly compressed — the cat animations went from 113 KB to 3.5 KB, losslessly —
recovering 166 KB. No partition boundaries moved, so installed apps are untouched.
Install
Flash from the browser: https://loznoc.github.io/dualboot/ — or grab launcher.bin
below and write it at offset 0x0 with esptool.
v1.0.1
Dual-boot launcher for LilyGo T-Embed CC1101
Launcher-first firmware: custom 2nd-stage bootloader always returns to the launcher, installs any ESP32-S3 .bin from the SD card into one of three OTA slots, USB mass-storage drive mode, spectrum colour + SD-file themes, custom boot animation, wheel-PIN lock, battery/charging status.
Flash online
Flash directly from your browser (no software needed): https://loznoc.github.io/dualboot/
Manual flash
Download launcher.bin below and flash with your preferred tool (esptool, PlatformIO, etc.).