MeshCore Ninja
← All firmwares

MCLite

Fork

A lightweight off-grid communicator firmware for the LilyGo T-Deck Plus and T-Watch Ultra. Purpose-built for emergency and outdoor communication — no internet, no cell towers needed. SD card configuration, web flasher, and room server support. Compatible with MeshCore apps.

Fork of MeshCore (Official)

Maintainer
laserir ↗
Status
active
Maturity
beta
Lifecycle
active
Latest version
0.3.9
Released
2026-06-21
Runtime
Arduino · C++
Distribution
community
License
MIT

Capabilities

Transports

  • BLE
  • USB serial
  • Native TCP
  • Wi-Fi AP

Operations

  • Web flasher
  • OTA updates

Networking

  • Repeater
  • Room server
  • Observer
  • KISS modem

Hardware

  • GPS
  • Display
  • Sensors
  • Low-power RX

Protocol

  • MeshCore compatible

Node roles

companion

Features

  • Web flasher (Chrome/Edge)
  • SD card configuration (one person sets up, copies to everyone)
  • Room server support (up to 8)
  • On-screen keyboard
  • GPS support
  • No accounts, no pairing, no per-device setup

Project signals

popularity 2026-06-21 verification 2026-06-21
GitHub stars
17
Forks
2
Watchers
3
Open issues
2
Contributors
3
Release downloads
179
Latest downloads
6
Source available
Yes
Releases available
Yes
CI builds
Yes

Releases

from GitHub · updated 2026-06-21
  1. v0.3.9 # Latest 2 hours ago · 2026-06-21 08:09 UTC

    Added

    • Step-wise admin permissions. Beyond the existing security.admin_enabled (global on/off for the Admin screen), a new permissions config block scopes what's reachable inside Admin: permissions.settings (full / restricted / none) — restricted keeps only the basics editable (brightness, auto-dim, dim brightness, keyboard brightness, theme) and shows everything else read-only (no chevron); none makes all settings read-only. permissions.companion (default on) hides the Companion group (WiFi/USB/Bluetooth) when off — configured services still run. permissions.conversation_management (default off) is reserved for a future release (on-device add/edit/remove of contacts/channels/rooms; they stay read-only views for now). All three are provisionable from the config tool. Defaults are fully permissive, so existing configs are unchanged.
    • Settings reorganised into per-section screens + Admin is now a pure hub. The on-device Admin screen no longer mixes settings, diagnostics and shortcuts — it's three labelled groups of links: Companion (WiFi / USB / Bluetooth), Conversations (Contacts / Channels / Rooms, read-only views), and Settings (Device, Radio, Display, Messaging, Sound, GPS, Battery, Security). Each section is its own screen mirroring the config tool, with all of its editable settings and its read-only diagnostics in one place (no more duplicated rows across Admin and Device Settings). Newly editable on-device: Radio (region preset picker — EU/UK/CH vs US/Canada — plus a TX-power slider and an advert-interval picker; frequency/SF/BW/CR/scope/path-hash stay read-only), Messaging (history, max-per-chat, location format, retries, telemetry request/badges/auto-refresh, canned messages, allow-mute), and GPS (enable, location-advert precision, timezone, clock offset, last-known max age). Offgrid mode and the live Heard-Adverts count now live at the top of the Radio screen. Each hub link carries an icon (gear for settings; @/#/R for contacts/channels/rooms; Wi-Fi/USB/Bluetooth for companion), and the 3rd-party licenses moved to an About block at the bottom of the hub. Radio/GPS changes reboot once on exit (same batched-save model as theme/language). The old single "Device Settings" screen is superseded by this layout.
    • Selectable UI themes. Choose a color palette — Dark (default), Light, Amber (a "military" night mode that preserves night vision), or High contrast — on-device (Admin → Theme, reboots to apply) or via display.theme in config. Custom palettes can be defined under display.themes (start from a built-in base, override any color with #RRGGBB). Default appearance is unchanged. On/off switches now use the theme accent colour too. Thanks @jason-s13r (#24).
    • Per-row Info + Map buttons on the Heard Adverts screen. Each heard node now has an explicit info (eye) button that opens its detail dialog, and — when the advert carries a location — a map button that opens the map centered on that node. Back now returns to the Admin screen. Thanks @jason-s13r (#15).
    • Map screen pan buttons + windowed chrome. The map gains an on-screen D-pad (up/left/centre/right/down) alongside the existing drag-to-pan. On the T-Deck the map now keeps the status bar visible and uses the standard lv_win header with a back button (the T-Watch stays full-screen). Thanks @jason-s13r (#22, supersedes #20/#21).
    • Uptime + last-charged in the Admin Battery section. Shows when the device booted (wall-clock + relative) and when charging last stopped (with the level at the time). Thanks @jason-s13r (#23).
    • On-device Device Settings. A new editable settings screen (Admin → Device Settings, behind the existing admin.enabled gate) for changing device n …
  2. v0.3.8 # 5 days ago · 2026-06-16 09:19 UTC

    Highlights

    Less advert spam, more location privacy.

    Added

    • Location-advert privacy precision. The location-advert setting (now gps.location_precision) can coarsen the position you broadcast: Off · Exact · ~100 m · ~750 m · ~3 km · ~12 km · ~50 km (Meshtastic-style grid snapping, centred in the cell). Only the broadcast advert is coarsened — telemetry replies to authorized contacts and the in-chat GPS insert always use your exact position. Default off; old location_advert: true/false configs are read automatically. Scheme adopted from @jason-s13r.
    • Zero-hop "Local" advert button on the Heard Adverts screen — announce yourself to immediate neighbours without flooding the whole mesh.

    Changed

    • No more periodic flood adverts by default (#13). MCLite previously flooded a mesh-wide advert every ~9 min; on a 110-repeater mesh one device generated ~half of all adverts. Now it sends a single flood advert on boot and otherwise advertises on demand — matching stock MeshCore clients. Thanks @stucamp and @jason-s13r.
    • Opt-in periodic advert — new radio.advert_interval_min field (config tool → Radio) re-enables periodic adverts for ad-hoc / SAR / private meshes. Default 0 = off; if set, enforced to ≥60 min (720 / 12 h recommended).
    • GPS button inserts your location into the message instead of a "Send Location?" confirm — append @ <coords> to the input, add context, send normally (byte-guarded against the 160-byte limit).

    Flash from the web flasher or grab the merged .bin below. T-Deck Plus: mclite-v0.3.8.bin · T-Watch Ultra: mclite-watch-v0.3.8.bin.

  3. v0.3.7 # 6 days ago · 2026-06-15 09:34 UTC

    MCLite 0.3.7 — tappable map coordinates, lv_win screen chrome, and on-device screenshots.

    Added

    • Tap a shared location to open it on the map. A received/sent message containing a GPS position — decimal lat, lon or MGRS/UTMREF — shows an underlined "Open in map" link under the bubble; tapping it opens the map centered there. Touch-only, shown only when map tiles are present on SD. Adds a reverse MGRS→lat/lon parser, unit-tested.
    • Screenshot to SD (debug aid, off by default). Enable debug.screenshots (config tool → Display) and capture the current screen to /screenshots/*.bmp (24-bit BMP, opens on any PC) — T-Deck: Shift+$; T-Watch: double-press the side (PEK) button. (Top-layer overlays like toasts/PIN/SOS aren't captured.)

    Changed

    • Heard Adverts screen now uses the standard lv_win chrome (back arrow + title + action buttons) — the first step of rolling consistent screen headers across the app (community PR #8, @jason-s13r).

    Removed

    • The non-functional Alt+L "insert location" keyboard shortcut (the chat GPS button already does this).

    Notes

    • Config tool: "Save screenshots" toggle (Display); Security section relayout (Lock + Auto Lock on one line, Admin Screen separate).
    • Both boards (T-Deck Plus, T-Watch Ultra) build; 246 native tests pass.
Show all 20 releases →

Device compatibility (2)

✓ 2 Supported
DeviceMCURadioStatusNotes
LilyGo T-Deckesp32-s3Semtech SX1262✓ SupportedT-Deck Plus — primary target with QWERTY keyboard, trackball, GPS.
LilyGo T-Watch S3esp32-s3Semtech SX1262✓ SupportedT-Watch Ultra — wrist-worn with AMOLED touchscreen.