Reticulum for the LilyGo T-Deck Plus, all-in-one. https://ratspeak.org
  • C++ 69.4%
  • C 30.2%
  • Python 0.2%
  • Makefile 0.2%
Find a file
2026-06-15 00:16:42 -06:00
.github/workflows rsdeck: prepare dual-mode 2.0 release 2026-06-13 17:33:00 -06:00
assets Rewrite README, add product photos 2026-03-08 04:37:38 -06:00
docs rsdeck: prepare dual-mode 2.0 release 2026-06-13 17:33:00 -06:00
launcher rsdeck: prepare dual-mode 2.0 release 2026-06-13 17:33:00 -06:00
lib/Crypto Reduce supply chain risk 2026-04-07 15:11:39 -06:00
partitions rsdeck: dual-boot launcher, RNode mode, build pipeline 2026-06-10 18:38:49 -06:00
src input: ignore wake key dispatch 2026-06-15 00:16:42 -06:00
tools rsdeck: ship DIO flash images (off-brand flash fails QIO at boot) 2026-06-10 20:17:23 -06:00
vendor/rnode_firmware rsdeck: prepare dual-mode 2.0 release 2026-06-13 17:33:00 -06:00
.gitattributes Remove the pesky 0.1% Python 2026-03-30 01:32:44 -06:00
.gitignore rsdeck: dual-boot launcher, RNode mode, build pipeline 2026-06-10 18:38:49 -06:00
LICENSE license: adopt AGPLv3 2026-05-08 14:48:25 -06:00
lv_conf.h rsdeck: prepare dual-mode 2.0 release 2026-06-13 17:33:00 -06:00
Makefile rsdeck: prepare dual-mode 2.0 release 2026-06-13 17:33:00 -06:00
merge_firmware.py rsdeck: prepare dual-mode 2.0 release 2026-06-13 17:33:00 -06:00
partitions_16MB.csv Initial release: Ratdeck v1.0.0 2026-03-06 12:40:34 -07:00
platformio.ini rsdeck: prepare dual-mode 2.0 release 2026-06-13 17:33:00 -06:00
README.md docs: clarify identity import files 2026-06-13 18:04:12 -06:00

rsDeck

Dual-mode Ratspeak firmware for the LilyGo T-Deck Plus.

Status License Version

Ratspeak | Docs | Downloads | rsReticulum


rsDeck turns a LilyGo T-Deck Plus into a two-mode Reticulum handheld. Standalone mode is an on-device Ratspeak/LXMF messenger. RNode mode makes the T-Deck a host-controlled radio for Ratspeak, Sideband, or another Reticulum client over BLE or USB serial.

Install

Use the Ratspeak web flasher: ratspeak.org/download.html.

Put the T-Deck Plus in download mode by holding the trackball while powering on, connect USB, then flash rsdeck-full. The standalone-only and RNode-only images are release artifacts for launcher users or focused testing.

Modes

On boot, the launcher lets you choose:

  • Standalone: a local Reticulum/LXMF messenger with identity management, contacts, peer discovery, messages, LoRa, and WiFi TCP access.
  • RNode: a host-controlled RNode-style radio target for Ratspeak or other Reticulum clients over BLE or USB serial.

RNode mode self-provisions the T-Deck RNode product/model/default config and running firmware hash on first boot, so users should not need a separate rnodeconf setup step for the bundled release images.

Basic Use

On first boot, Standalone mode generates a Reticulum identity and asks for a display name. Your LXMF address is the 32-character hex string you share with contacts.

  • Tabs: Home, Friends, Msgs, Peers, Setup.
  • Navigation: trackball movement and click/Enter.
  • Announce: press the trackball or Enter on the Home tab.
  • Add contacts: select a discovered peer, then open or save the chat.
  • Send messages: open a chat, type, and press Enter.
  • Delivery color: yellow while sending, green after delivery confirmation.
  • Identity import: place one raw 64-byte Reticulum identity file under /ratdeck/identity/ on the SD card, then use Setup -> Import Identity. Files named import.identity or import.key are preferred; otherwise rsDeck accepts exactly one non-reserved .identity or .key file in that folder. Ratspeak's encrypted .rsi backups are not imported on-device; from Ratspeak, export a Reticulum Identity File for rsDeck import.

Radio Presets

Long Fast is the compiled-in default. All radio parameters can also be tuned from Setup. Changes apply immediately.

Preset SF BW CR TXP Bitrate Link budget
Short Turbo 7 500 kHz 4/5 14 dBm 21.99 kbps 140 dB
Short Fast 7 250 kHz 4/5 14 dBm 10.84 kbps 143 dB
Short Slow 8 250 kHz 4/5 14 dBm 6.25 kbps 145.5 dB
Medium Fast 9 250 kHz 4/5 17 dBm 3.52 kbps 148 dB
Medium Slow 10 250 kHz 4/5 17 dBm 1.95 kbps 150.5 dB
Long Turbo 11 500 kHz 4/8 22 dBm 1.34 kbps 150 dB
Long Fast (default) 11 250 kHz 4/5 22 dBm 1.07 kbps 153 dB
Long Moderate 11 125 kHz 4/8 22 dBm 0.34 kbps 156 dB

You are responsible for operating within local laws and radio regulations.

WiFi Bridging

WiFi bridging is experimental. STA mode can connect to existing WiFi and reach remote Reticulum nodes such as rns.ratspeak.org:4242.

AP mode exposes a local TCP endpoint for a nearby Reticulum host:

[[rsdeck]]
  type = TCPClientInterface
  target_host = 192.168.4.1
  target_port = 4242

The bridging UI and interface behavior may change as Ratspeak's client release stabilizes.

Build From Source

git clone https://github.com/ratspeak/rsDeck
cd rsDeck
python3 -m pip install platformio esptool
make prep-tdeck
make package
make flash port=/dev/cu.usbmodem3101

Useful build targets:

make build-launcher      # launcher only
make build-standalone    # standalone messenger app
make build-rnode         # host-controlled RNode target
make full-image          # launcher + Standalone + RNode
make package             # release zips and launcher bins

Release artifacts are written to dist/:

dist/rsdeck-full.zip
dist/rsdeck-standalone.zip
dist/rsdeck-rnode.zip
dist/rsdeck-standalone-m5launcher.bin
dist/rsdeck-rnode-m5launcher.bin

Use the .zip files with the Ratspeak web flasher. The *-m5launcher.bin files are app images for M5Launcher/M5Burner-style launchers that boot Standalone or RNode directly from SD.

License

rsDeck standalone firmware, launcher, partition tables, and packaging tools are licensed under the GNU Affero General Public License v3.0 or later. See LICENSE.

Vendored third-party code keeps its own license notices, including vendor/rnode_firmware/ and lib/Crypto.