Skip to content

LimitlezzOS Alpha 0.41 — first public release

Pre-release
Pre-release

Choose a tag to compare

@ItsLimitlezz ItsLimitlezz released this 13 Jun 21:40
· 182 commits to main since this release

LimitlezzOS is a mesh-native handheld OS for the LilyGO T-Deck (ESP32-S3 + SX1262 LoRa + BlackBerry keyboard + trackball). It puts Meshtastic — and, soon, MeshCore — behind one clean, phone-like interface: a unified inbox, encrypted direct messages, a live node map of who's nearby, and a full settings/system experience. It's real LVGL firmware on the device and a desktop SDL2 simulator that shares the exact same UI code.

This is the first public Alpha. The core Meshtastic experience is genuinely usable on real hardware; a few things are still gated (called out below).


💬 Messaging

  • Encrypted direct messages (PKI) — true end-to-end 1:1 DMs using Meshtastic's X25519 + AES-256-CCM scheme, byte-for-byte interoperable with stock Meshtastic firmware. Keys are learned from NodeInfo, persisted across reboots, and a DM you send before you have someone's key is queued and delivered automatically once it arrives.
  • Delivery status — your sent DMs show green = sending, blue = delivered (real ROUTING acks), red = failed. Long-press a failed message to resend.
  • Channels — the LongFast primary broadcast channel: message everyone nearby.
  • Unified inbox — Direct / Channels tabs, All / Meshtastic / MeshCore filters, unread badges, network dots, and dimming for disabled networks.
  • Profiles from anywhere — tap a DM's name to open the contact's profile; long-press a sender in a channel to pull up theirs and start a DM or add them as a contact.

📡 Mesh & radio

  • Live Meshtastic stack on the SX1262 (LongFast: 906.875 MHz, SF11, BW 250 kHz, 22 dBm) with managed-flood rebroadcast, CSMA listen-before-talk, duplicate suppression, and airtime accounting.
  • Node manager — identity card + a virtualized node list that holds up to 250 nodes (matching the official device-ui) and only renders what's on screen, recycling rows as you scroll so a big mesh never runs the device out of memory. Each node shows SNR (color-coded), role, distance, and last-heard.
  • Two networks, one radio — time-division multiplexing round-robins the SX1262 between Meshtastic and MeshCore RF profiles. Both on → airtime splits 50/50; one on → it gets 100%; neither → idle.
  • MeshCore — the RF profile and Ed25519-signed ADVERT discovery are built and transmit, but receiving isn't wired up yet, so MeshCore is shown as "Coming soon" in this Alpha.

🔌 Companion bridge (USB)

  • Pair the official Meshtastic phone/desktop app over USB (Nodes tab → Companion mode). Full Stream-API handshake — device info, metadata, channel, node DB, config — then live send/receive through the T-Deck's own radio. Verified working on hardware. (Wireless BLE companion is the 0.5 beta.)

🔒 Lock screen & home

  • Lock-screen notifications — a centered new-message card; tap it to jump straight into the chat (and it clears once you've read it). "+N more" appears when several conversations are waiting.
  • Tap-to-wake, then tap-to-unlock — the first touch/key only lights the screen; a second one unlocks, so a bump in your pocket can't open it.
  • Home — an 8-app launcher (Messages, Meshtastic, MeshCore, Contacts, App Store, Terminal, Files, Settings) with trackball focus navigation.

⚙️ Settings, system & tools

  • iPhone-style dark UI — a status bar with the time on the left and signal bars + Wi-Fi + a white battery glyph on the right; grouped Settings cards with hairline dividers; enabled-network icons on the lock screen.
  • Wi-Fi — scan, connect (open / WPA2 / WPA3), save passwords, auto-connect, and forget networks; time syncs over Wi-Fi.
  • Time — DST-aware time zones (14 presets), manual date/time editor, and a 12/24-hour toggle.
  • Display & power — brightness slider, keyboard-backlight modes, screen-sleep timeouts, TX-power levels, power-saving.
  • System — battery ring (% + voltage + health), live CPU/RAM/flash/temperature, and uptime.
  • Touch calibration — a 3-point tap calibration that works on any T-Deck panel and is saved across reboots.
  • Terminal — a real serial/command console; Files — an SD-card browser.

🧱 Under the hood

  • LVGL 8.3.11, aggressively stripped (no themes/decoders), with baked fonts — flat, fast, tear-free double-buffered rendering via LovyanGFX.
  • One UI core, two targets — the native SDL2 simulator (for development + screenshot verification of all screens) and the ESP32-S3 T-Deck firmware build from the same code.
  • Identity, message history, keys, Wi-Fi credentials, node DB, and touch calibration persist to SD card.

📥 Install

Flash LimitlezzOS-Alpha-0.41-tdeck.bin to a LilyGO T-Deck (full image, write at offset 0x0). Because the T-Deck's native USB CDC doesn't tolerate a baud switch or the flasher stub, flash at 115200 with --no-stub:

esptool.py --chip esp32s3 --port /dev/cu.usbmodemXXXX --baud 115200 --no-stub \
  --before default_reset --after hard_reset write_flash 0x0 LimitlezzOS-Alpha-0.41-tdeck.bin

On first boot you'll be walked through naming your node, picking a short callsign, and choosing networks.

⚠️ Known limitations (Alpha)

  • MeshCore receive/messaging isn't live yet (the app + settings are gated "Coming soon").
  • BLE companion isn't here yet — pairing is USB-only for now.
  • Some UI surfaces are still being moved to the new iPhone look; a couple of screens (App Store, Files) are partly placeholder.