Skip to content

Releases

v0.2.1: both halves build from this repo

Choose a tag to compare

@John-ODell John-ODell released this 28 Oct 00:46
4f35fb7

Both halves from one tree. The GEEK companion firmware now lives in this repo under dongle/ (GPL-3.0 like the rest), and scripts/build_release.sh builds the T-Deck and the dongle together. The firmware itself is the same as v0.2.0 on both boards; this release exists so the dongle image is built from source anyone can clone.

T-Deck Plus: flash tdeck-plus-v0.2.1-merged.bin at 0x0 (scripts/flash.sh, or esptool). The -app.bin is app-only (0x10000) for Launcher/OTA.

GEEK dongle (Waveshare ESP32-S3-GEEK): hold BOOT while plugging it in, then flash tdeck-dongle-v0.2.1.bin at 0x0:

uvx esptool --chip esp32s3 write-flash 0x0 tdeck-dongle-v0.2.1.bin

It is a factory image, so the GEEK comes up in pairing mode; pair it from the T-Deck's Keyboard app. A GEEK already running the dongle can be reflashed without losing the pairing with dongle/tools/geekflash.py.

From a browser: tdeck-plus-v0.2.1-manifest.json and tdeck-dongle-v0.2.1-manifest.json are ESP Web Tools manifests. Host each next to its image on a web site (GitHub release downloads cannot be fetched cross-site) and give it an <esp-web-install-button>; Chrome or Edge on a computer.

Checksums are in the two .sha256 files. Link protocol version 2 on both ends.

Since v0.2.0: the dongle source, board support and tools moved into dongle/ (#192), README leads with the two boards and has a Flash the GEEK section (#190).

v0.2.0: first release verified on hardware

Choose a tag to compare

@John-ODell John-ODell released this 28 Oct 00:21

First release that has run on hardware: in daily use on a T-Deck Plus since 2026-10-22, with channel text, direct messages, relaying and map tiles confirmed against stock Meshtastic nodes.

Flash: tdeck-plus-v0.2.0-merged.bin at 0x0 (scripts/flash.sh, or esptool). The -app.bin is app-only (0x10000) for Launcher/OTA. tdeck-plus-v0.2.0-manifest.json is an ESP Web Tools manifest: host it beside the merged image on a web site to flash from Chrome or Edge (GitHub release downloads cannot be fetched cross-site, so copy both files to the site). Checksums in the .sha256.

Dongle (Waveshare ESP32-S3-GEEK): tdeck-dongle-2808d40.bin is the dongle firmware built from ESP-Geek main at 2808d40 (2026-10-26, link version 2, lock-when-away included). Flash it at 0x0 with the GEEK held in the bootloader (BOOT pressed while plugging it in): esptool --chip esp32s3 write-flash 0x0 tdeck-dongle-2808d40.bin, or host tdeck-dongle-2808d40-manifest.json beside it for a browser install button. It is a factory image, so the GEEK comes up in pairing mode. Source: ESP-Geek firmware/tdeck-dongle.

Since v0.1.0 (every merged pull request, newest first):

  • Release: an ESP Web Tools manifest beside the merged image (#188)
  • License the firmware under GPL-3.0 (#185)
  • README: ready for a public repo, built around the T-Deck Plus and the GEEK dongle (#183)
  • Remove the T-Deck Pro code; it lives in lilygo-A7682E (#182)
  • T-Deck Pro keyboard and touch input (OS milestone 2) (#178)
  • T-Deck Pro e-paper driver and display task (OS milestone 1) (#175)
  • Board layer for the Plus and Pro, and a T-Deck Pro bring-up env (#172)
  • Keyboard: Lock when away setting and a Lock button, lock shortcut in Settings (#171)
  • Link: lock-when-away is a T-Deck setting sent to the dongle as LINK_LOCK_CFG (#169)
  • Link: BYE before going quiet on purpose, LOCK to have the dongle lock the computer (#167)
  • dongle/ is a pointer to ESP-Geek's firmware/tdeck-dongle (#165)
  • Keyboard: Forget joins the Pair and Sync row so nothing sits below the fold (#164)
  • Lock: taps are not activity, a hint when locked, no auto-lock while typing to a computer (#162)
  • Console: tap presses the screen at a pixel (#160)
  • Typing screen: Clear button instead of Close (#158)
  • Keyboard: a caret editor on the typing screen, tap to place it, Close button (#156)
  • Keyboard: cleaner setup page with a big Start typing button (#154)
  • Link: let WiFi modem-sleep while Bluetooth is up (#152)
  • Map: visible coverage outline, info line that fits (#150)
  • Map: a breadcrumb trail for nodes that move (#148)
  • Map: show where the tiles are (#146)
  • Sound: a distinct DM ring and a tone volume setting (#144)
  • Keyboard mouse: send clicks at once, drag by press and hold (#142)
  • Chat: start a DM from a node picker in Chat (#140)
  • Map: pull tiles from the GEEK's card (#137)
  • Docs: screenshots of both devices, a write-up, and a prompt for the website (#135)
  • Dongle link: recover after the WiFi or Spectrum app turns WiFi off (#133)
  • Dongle: capture the GEEK's screen over serial (#131)
  • Link: counter in PING, TAP and MOUSE so the dongle rejects replays (#128)
  • Mesh relay: forward a bounded backlog when the dongle comes back (#127)
  • Keyboard mouse: double-click toggles scroll mode instead of hold-and-roll (#126)
  • Keyboard mouse: fine movement when slow, hold-and-roll scrolls, press twice and hold drags (#124)
  • Keyboard: mouse gain doubled again (#122)
  • Keyboard app: ignore the touch screen, stop typing with a 3 s trackball hold (#121)
  • Dongle: its own USB name and product id, and a no-touch reflash (#118)
  • Keyboard: mouse gain four times higher and tied to the trackball speed setting (#117)
  • Keyboard: in mouse mode the trackball hold drags; tap the screen to stop typing (#115)
  • To-do: a line deleted on the computer stays deleted (#114)
  • Pushed files carry local time on the GEEK's card (#113)
  • Screen lock: keys do nothing while the screen is off, trackball hold locks and unlocks (#112)
  • Chat: a short tone on a new message, with a Settings switch (#110)
  • Notes: move notes left in flash onto the card (#109)
  • Files: list internal flash when there is no SD card (#108)
  • Compass: keep the trip across reboots and smooth the heading (#107)
  • Audio: queued tones fed from the main loop instead of a blocking beep (#105)
  • Music: find the track again after a rescan, log every early return, clock by the real rate (#104)
  • Labels: launcher tiles, chat title and WiFi rows in the proportional font (#103)
  • To-do: merge the card and flash copies of the list (#101)
  • Console: ls and cat for the SD card and internal flash (#100)
  • main builds and matches the tested union of the merged stack (#97)
  • Display: latch the panel's SPI mode before selecting it, drop the cover repaint (#95)
  • To-do: no header band, sync problems as toasts (#93)
  • Notes: no header band above the list (#92)
  • Notes editor built like the Keyboard typing screen (#89)
  • Repaint the screen shortly after an app opens (#88)
  • About: fit the screen in the theme's font (#85)
  • Settings: rows and fields in the proportional font (#84)
  • Lists: wrap rows in the proportional font instead of scrolling (#81)
  • Node detail: left/right across the buttons, text that fits (#78)
  • Chat: wider bubbles in the proportional font (#77)
  • GPS page: fit the screen in the theme's font (#76)
  • Music app: MP3 player on the speaker, playlists as folders, sync from the GEEK (#71)
  • Compass app: heading-up rose, trip counter and a way-back waypoint (#68)
  • Timer app: stopwatch and countdown with the speaker (#65)
  • To-do app synced with the computer through the GEEK's card (#62)
  • Files app: the GEEK's TF card as a shared drive (#58)
  • Mesh relay and notes sync over the dongle link (#56)
  • Ideas for using the GEEK and the T-Deck together (#52)
  • GEEK dongle build with status on its screen (#50)
  • USB keyboard dongle firmware for ESP32-S3/S2 (#46)
  • Keyboard app: Bluetooth HID and USB dongle link (#45)
  • Scroll long app names on launcher tiles (#44)
  • Trackball picks options in an open dropdown (#43)
  • Spectrum app: LoRa, WiFi and BLE waterfalls (#38)
  • cmatrix-style theme with digital-rain splash (#36)
  • Four-way grid navigation on the launcher (#35)
  • Trackball speed setting, step threshold and rate limit (#34)
  • Wait out Arduino's early WiFi scan timeout (#33)
  • Give chat text labels a measured width (#28)

v0.1.0

Choose a tag to compare

@John-ODell John-ODell released this 22 Oct 23:34

First flashable build. Not yet run on hardware. See "Not verified yet" in the README.

Flash: tdeck-plus-v0.1.0-merged.bin at 0x0 (scripts/flash.sh). The -app.bin is app-only (0x10000) for Launcher/OTA.

Checked before release:

  • Host tests: frequency slot 906.875 MHz, channel hash 0x08, nonce/header/protobuf, AES-CTR vs OpenSSL.
  • X25519 vs OpenSSL, plus the PKI round trip.
  • QEMU boot: no panic in 45 s.