MeshCore Ninja
← All firmwares

Meck

Fork

A MeshCore companion firmware fork focused on enabling BLE and WiFi connectivity for the LilyGo T-Deck Pro, T-Deck Max, and T5 E-Paper S3 Pro. Features a full touch UI with on-device keyboard, games, voice notes over LoRa, web browser, SMS, and a configuration launcher with OTA updates.

Fork of MeshCore (Official)

Maintainer
pelgraine ↗
Status
active
Maturity
beta
Lifecycle
active
Latest version
1.12.2
Released
2026-06-16
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

companionrepeaterroom-server

Features

  • BLE and WiFi companion connectivity
  • Touch UI with on-device keyboard
  • Games (Sokoban, Pong, Snake)
  • Voice notes over LoRa
  • Web browser and IRC client
  • SMS and phone app (4G models only)
  • Per-channel notification preferences and custom tones
  • Config export/import
  • OTA firmware update
  • Lock screen and shutdown

Project signals

popularity 2026-06-21 verification 2026-06-21
GitHub stars
25
Forks
2
Watchers
0
Open issues
4
Contributors
99
Release downloads
381
Latest downloads
32
Source available
Yes
Releases available
Yes
CI builds
Yes

Releases

from GitHub · updated 2026-06-21
  1. v1.12.2 # Latest 5 days ago · 2026-06-16 21:13 UTC

    v1.12.2 is a small patch release on top of v1.12.1. It fixes a regression on the T-Deck Pro and T-Deck Max where pressing "q" (or "Q") during text entry was caught as a back/exit shortcut instead of being typed. This affected two screens -- the Notes editor and the WiFi password prompt -- so any note or WiFi password containing the letter "q" could not be entered. Both screens now accept "q"/"Q" as normal characters, with Shift+Backspace used to leave instead.

    What's Changed in v1.12.2

    Notes editor -- "q" now types instead of exiting

    Previously, pressing "q" while editing a note could exit the editor (when the buffer was empty or unchanged) rather than inserting the letter. "q"/"Q" are now entered like any other character. Shift+Backspace continues to save and exit.

    WiFi password entry -- "q" now types instead of jumping back

    In the WiFi password screen, "q"/"Q" were intercepted and sent you back to the network list, so passwords containing those letters could not be entered. They are now accepted as password characters. Shift+Backspace returns to the network list, and the on-screen footer now reads Enter:Connect Sh+Del:Exit.

    All other devices and features are unchanged from v1.12.1.

    First-Time Flashing

    Each build comes in two forms:

    • <name>-merged.bin -- bootloader, partition table, and firmware in a single image. Flash at address 0x0. Use this for a first-time flash, when coming from other firmware, or if a device will not boot after an update.

    • <name>.bin -- application firmware only. Use this to update an existing Meck install, including OTA updates from your phone (Settings -> OTA Tools).

    The partition layout supports dual OTA slots, so the previous firmware remains on the inactive partition as an automatic rollback target if a new image fails to boot.

    MeshCore Companion Apps

    BLE variants connect to the standard MeshCore companion apps:

    WiFi variants connect via TCP on port 5000:

  2. v1.12.1 # 10 days ago · 2026-06-10 23:01 UTC

    v1.12.1 is a small patch release on top of v1.12. It corrects the configured battery capacity for the T-Deck Max from 1500 mAh to 1400 mAh, matching the cell actually shipped in the device. This improves the accuracy of battery percentage and runtime estimates on the Max.

    What's Changed in v1.12.1

    T-Deck Max battery capacity -- 1500 -> 1400 mAh

    The Max's battery capacity was set to 1500 mAh; it is now 1400 mAh to reflect the real cell. No other behaviour changes.

    All other devices and features are unchanged from v1.12..

    Despite the LilyGO T-Deck Max readme reflecting 1500mAh, I've removed the battery from my Max (to put in a 2500mAh battery with a custom case) and can confirm my T-Deck Max battery was actually the same 1400mAh used in the T-Deck Pro.

    Screenshot 2026-06-11 at 8 56 44 amIMG_3378

    First-Time Flashing

    Each build comes in two forms:

    • <name>-merged.bin -- bootloader, partition table, and firmware in a single image. Flash at address 0x0. Use this for a first-time flash, when coming from other firmware, or if a device will not boot after an update.

    • <name>.bin -- application firmware only. Use this to update an existing Meck install, including OTA updates from your phone (Settings -> OTA Tools).

    The partition layout supports dual OTA slots, so the previous firmware remains on the inactive partition as an automatic rollback target if a new image fails to boot.

    MeshCore Companion Apps

    BLE variants connect to the standard MeshCore companion apps:

    WiFi variants connect via TCP on port 5000:

  3. v1.12 # 15 days ago · 2026-06-06 21:30 UTC

    v1.12 is a polish-and-power release across all three companion devices. The headline addition is an on-device Rx Log packet sniffer -- a live view of every packet your radio hears -- available on every build. Alongside it: an unread badge for the SMS inbox, a batch of T-Deck Max power, wake, and GPS fixes, and a set of channel and repeater refinements.

    What's New in v1.12

    Rx Log packet sniffer -- all devices

    A new on-device packet sniffer, mirroring the Rx Log in the MeshCore companion app. Open it from Settings -> Rx Log >>. It captures every packet the radio receives -- including relays destined for other nodes, since capture happens before filtering -- into a buffer of the most recent 100 packets, newest first. Each entry shows the route type (flood/direct) and payload type, the receive time and wire size, the packet hash, the hop path, and the channel hash/name (group messages) or the From/To node hashes (addressed packets). For channel messages your device can decrypt, the decoded "sender: message" line is attached too. The log is RAM-only and clears on reboot.

    A running RX packets count also appears on the radio details page on the home screen, just beneath the noise-floor reading. It counts flood and direct packets received since boot and resets on reboot or when you change radio parameters.

    SMS Inbox unread badge -- 4G and Max

    The SMS app's inbox entry now shows a count of unread received messages in brackets (e.g. SMS Inbox [3]), and the badge disappears once everything is read. Read state is stored per message on the SD card, so the count survives reboots and modem power-cycles. Opening a conversation marks it read.

    T-Deck Max power, wake, and GPS fixes

    • USB-C wake after shutdown -- after a full power-off, plugging in USB-C now reliably powers the Max back on. The Max uses the SY6970 charger (0x6A); its BATFET shutdown is now handled to match, so charger plug-in re-wakes the board.
    • GPS power -- GPS power on the Max is routed through the XL9555 I/O expander rather than a dedicated pin; powering it on and off now works correctly.
    • CPU frequency scaling -- idle / boost / low-power CPU management to trim current draw, with the low-power floor held at 80 MHz (40 MHz breaks I2C on the Max).
    • Idle BLE power -- the BLE controller now stays powered down until you first turn Bluetooth on, reclaiming its idle current in the standalone-first default. This applies to all ESP32 BLE builds, not just the Max.
    • Minesweeper -- grid alignment fixes and a larger 15x20 / 50-mine board sized to the Max e-ink panel.

    Channel and repeater refinements -- all devices

    • Region on incoming messages -- the message path-detail view now shows the resolved region for scoped channel messages it recognises.
    • Path detail -- the route line now reports hop count and bytes-per-hop (e.g. "2 hops (2-byte)"), and the last-message age line shows hop/byte info.
    • Repeater admin -- two new configuration commands: Set Flood Max Unscoped (flood.max.unscoped) and Set Flood Adv Max (flood.max.advert).

    Documentation

    The README and the hyperlinked Meck_README_v1.12.pdf are updated for this release.

    First-Time Flashing

    Each build comes in two forms:

    • <name>-merged.bin -- bootloader, partition table, and firmware in a single image. Flash at address 0x0. Use this for a first-time flash, when coming from other firmware, or if a device will not boot after an update.

    • <name>.bin -- application firmware only. Use this to update an existing Meck install, including OTA updates from your phone (Settings -> OTA Tools).

    The partition layout supports dual OTA slots, so the previous firmware remains on the inactive partition as an automatic rollback target if a new image fails to boot.

    Build Files

    Grouped by device. Each variant ships as a merged (-merged.bin, first flash) and non-merged (.bin, …

Show all 18 releases →

Device compatibility (6)

✓ 6 Supported
DeviceMCURadioStatusNotes
LilyGo T-Deck Proesp32-s3Unknown✓ SupportedT-Deck Pro variant with ESP32-S3 and e-paper display.
LilyGo T5 E-Paper S3 Pro (H752-XX)esp32-s3Semtech SX1262✓ SupportedT5 E-Paper S3 Pro (H752-XX) variant.
Heltec V3esp32-s3Semtech SX1262✓ SupportedRemote repeater only.
Heltec WSL3esp32-s3Semtech SX1262✓ SupportedRemote repeater only.
Heltec V4esp32-s3Semtech SX1262✓ SupportedRemote repeater only.
Heltec V4 + Expansion Kit (Touch)esp32-s3Semtech SX1262✓ SupportedRemote repeater only.