Which file do I want?
| File | Use it when | Keeps your identity & messages? |
|---|---|---|
tdeck_firmware.bin (4 MB) |
First install, or any time you want a clean device | No — sets up fresh storage |
tdeck_update.bin (2 MB) |
Updating a T-Deck that already runs this messenger | Yes |
tdeck_firmware.bin is the complete image. It works both ways — install it from an SD card
through M5Launcher, or flash it straight over USB with esptool. Same file for both; there is no
separate "Launcher version".
tdeck_update.bin is the app on its own, with no storage area attached, so installing it leaves
your identity, settings and message history exactly where they are. Install it the same way you
install anything else in the Launcher. It is an update only — it needs the messenger already on the
device, so use the full image first.
A. From an SD card, with M5Launcher (recommended)
- Copy
tdeck_firmware.binonto a microSD card. - Put the card in the T-Deck and start the Launcher.
- Find the file on the card and choose Install.
No cable, no drivers, no download-mode button combination. The Launcher stays on the device, so you
can keep other firmware alongside this one and switch between them. Switching the T-Deck off and on
again brings up the Launcher first, and the messenger starts by itself a couple of seconds later.
Don't have the Launcher yet? Get it from
github.com/bmorcelli/Launcher — it goes on over USB once,
and after that everything else installs from the SD card.
B. Over USB, with esptool
esptool --chip esp32s3 --port /dev/cu.usbmodem* write-flash 0x0 tdeck_firmware.bin
Hold the trackball button down while pressing reset to put the T-Deck into download mode first. Use
this for a brand-new T-Deck, or if you want the messenger on the device by itself with no Launcher.
tdeck_firmware.binreplaces the app's storage area, so the device comes up with a new
identity and an empty message history, whichever way you install it. Usetdeck_update.binto
update an existing device without losing anything.
Housekeeping note: M5Launcher keeps each installed firmware in its own slot, so updates sit
alongside older versions rather than replacing them. Do not delete the slot from your original
full install — the Launcher registers the storage area to whichever app first created it, and
deleting that app erases your identity and messages with it, even when a newer version is the one
using them. Deleting old update slots is fine; they own no storage.
What changed
It installs from the Launcher at all. The filesystem partition used to be declared as FAT, and
the Launcher shrinks any FAT partition to 448 KB and truncates what does not fit — which would have
quietly destroyed most of a 5 MB filesystem. It now declares littlefs, which is what the partition
has always actually contained, and the full 5 MB survives the install intact. Flashing over USB is
unaffected: the filesystem is found by name, not by that label.
Encryption no longer needs a helper file on the filesystem. Signing and verifying used to reach
full speed only by loading a separate module off the filesystem at start-up, which an SD-card install
cannot provide. That module is gone — the same code is now placed into the chip's fast internal
memory when the firmware is built. Measured on the device: signature verify 19.8 ms, sign
12.5 ms, key derivation 6.1 ms, key exchange 14.0 ms. That is roughly 74x faster than
the flash-resident fallback it replaces, so nothing was traded away to drop the file.
The firmware is 129 KB smaller. Splitting the crypto library into per-function pieces lets the
linker discard the two thirds of it this app never calls.
Updating no longer wipes your device. There is now a separate, smaller tdeck_update.bin that
carries just the app. Installing it leaves the storage area untouched, so your identity, your
settings and your message history all survive — previously every update started you from scratch.
Smaller download, and it leaves your device room. The firmware is a 4 MB file now instead of 8 MB.
The app's storage area was cut from 5 MB to 1 MB, which is still about three times more than it can
ever use: received photos and voice messages are deliberately never written to storage — they stay in
memory and are gone when the device restarts, so a lost T-Deck gives up no pictures or recordings.
That frees 4 MB for whatever else you keep installed alongside this.
Nothing was removed to make any of this fit: photos, voice messages, the page reader and the remote
shell are all still here.
Verified on hardware with M5Launcher 2.8.0: this exact image installs and boots, running from a
Launcher-created app slot alongside the Launcher itself. The app-only update path was verified
separately — installed over a running device, which kept its identity, settings and message history.
sha256 tdeck_firmware.bin d87e1f226679531bc9fa789ff94aad07516021a8db0fe24f32a98a4f43054e3f
sha256 tdeck_update.bin f2482ca32b14c81d3920c62bf01f989e49b2725507b4555b313021c5d0f375b4