Skip to content

Releases: RetiaLLC/badge-launcher

Badge Launcher v2.0.0 "Touch"

Choose a tag to compare

@skickar skickar released this 10 Jul 05:43

The flagship badge experience: one flash, one SD card, seven firmwares.

Hold UP + tap RESET → menu → pick what your badge becomes:

  • 📡 MeshCore touch messenger (pre-installed) — full-color touch UI, on-screen keyboard, badge↔badge encrypted messaging over LoRa
  • 📡 Meshtastic MUI touch + classic standard/low-power builds
  • 🕸 Reticulum RNode — the badge as an RNS LoRa radio for MeshChat/Sideband/NomadNet (one-time rnodeconf provisioning; hardware-verified badge↔badge)
  • 🎮 Anemoia NES emulator + 37 validated homebrew games (/roms on the card)
  • 🌈 WLED pride rainbow on the ear NeoPixels

⚠ Requires a FAT-formatted micro-SD card (this is true of launcher v1 as well).

Install

  1. esptool --chip esp32s3 --port <PORT> write-flash 0x0 launcher-v2.factory.bin — or flash from your browser at scriptkitty.sh
  2. Unzip sd-card-apps-v2.zip onto the card (required)
  3. Unzip sd-card-games-v2.zip onto the card (optional, adds the NES library)

Every firmware keeps its own private slice of flash — identities, contacts, settings, and saves survive switching. Un-brickable by construction: the launcher lives in a never-rewritten factory partition.

Want DOOM? That's Launcher v1 "Classic" — its resident WADs need the flash space v2 spends on the touch apps.

⚠ v1 and v2 SD bins are built for different partition tables — don't mix them.

Hardware-verified on the bench: install/boot/swap of all seven firmwares, settings persistence across the full swap matrix, and badge↔badge RF for all three mesh stacks.

🤖 Generated with Claude Code

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