Skip to content

Badge Launcher v1.0.0

Choose a tag to compare

@skickar skickar released this 09 Jul 01:42

Badge Launcher v1.0.0

Dual-boot for the Retia 2024 DEF CON badge: hold UP, tap RESET, pick a firmware from the TFT menu, and it's running ~10 seconds later. No computer needed. Guarded by a cat.

Install

pip install esptool
esptool --chip esp32s3 --port <PORT> write-flash 0x0 launcher.factory.bin

One flash sets the badge up completely (⚠️ wipes existing settings): launcher + partition table + both Doom WADs + Meshtastic low-power pre-installed. Then unzip sd-card.zip onto a FAT micro-SD card (dedicated slot, under the D-pad) to get the full menu:

Menu entry What it is
doom-silent.bin PrBoom (DOOM shareware), quiet
doom-audio.bin Same, with piezo SFX (GPIO9 sigma-delta)
meshtastic-standard.bin Meshtastic 2.7.23, stock behavior
meshtastic-lowpower.bin Meshtastic 2.7.23, ~39% lower idle draw — the daily driver
wled-pride.bin WLED — boots the 10 ear NeoPixels straight into a Pride 2015 rainbow 🌈

Drop your own launcher-compatible .bin in /firmware/ on the card and it appears in the menu — see the README for the two-line PlatformIO recipe.

Meshtastic settings (owner, region, keys) survive every switch — the launcher never touches nvs/spiffs. The bundled WLED is built FS-less specifically so it doesn't clobber that storage either (verified: a Meshtastic owner survives a WLED round-trip). Interrupted installs can't brick the badge: the launcher lives in the factory partition and the bootloader falls back to it.

Not included: the Meshtastic MUI touch build (3.1 MB) — it cannot fit the shared app slot alongside the resident Doom WADs; flash it over USB from DefconBadge2026 instead.

Verified

All acceptance criteria hardware-tested on the bench (2026-07-08): install & boot each firmware from SD, 9.4 s Doom switch with resident WADs, settings intact across switches and 9 reboots, interrupted-install recovery + retry, hold-UP entry, zero added boot latency on normal power-on. WLED added and verified end-to-end (menu → install from SD → Pride rainbow; Meshtastic settings survive the round-trip).

🤖 Generated with Claude Code