LimitlezzOS Alpha 0.41 — first public release
Pre-releaseLimitlezzOS 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.