Meck
ForkA 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 (Reference)
- Maintainer
- pelgraine ↗
- Status
- Active
- Maturity
- Beta
- Lifecycle
- Active
- Latest version
- 1.12.6
- Released
- 2026-07-26
- Runtime
- Arduino · C++
- Distribution
- Community
- Licensing
- Open source
- 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 role
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
- GitHub stars
- 27
- Forks
- 2
- Watchers
- 0
- Open issues
- 6
- Contributors
- 101
- Release downloads
- 555
- Latest downloads
- 23
- Source available
- Yes
- Releases available
- Yes
- CI builds
- Yes
Releases
from GitHub · updated 2026-07-26v1.12.6 # Latest 10 days ago · 2026-07-26 07:00 UTC
v1.12.6 is the first tagged release since v1.12.3. The in-tree bumps to v1.12.4 and v1.12.5 were never published, so everything below has accumulated across all three steps. Build date: 26 July 2026.
Headline changes: the T-Deck Max tile home screen is now the home screen on all T-Deck Pro builds; the SMS & Phone app gains a Call Log and a Contacts screen with a tappable app menu; and direct messages now retry on the device with live Sending / Delivered / Failed status.
What's Changed since v1.12.3
Tile home screen on all T-Deck Pro builds
The touch tile grid introduced on the T-Deck Max is now the first home page on every T-Deck Pro build -- audio, 4G, BLE, WiFi and standalone alike.
- Twelve tiles in a 2 x 6 grid -- Messages, Contacts, Settings, Discover, Trace, Maps, Notes, Reader, Audiobooks, Alarm, Browser, Games -- plus a full-width Phone tile beneath them.
- Tap a tile to open it. The keyboard shortcuts are unchanged, so W/A/D/Enter and the letter keys work exactly as before.
- Tiles for features a given build does not include (Phone on audio builds, Audiobooks on 4G builds) are inert.
- Tile labels follow your Font Style setting -- Classic 5x7, Noto Sans 7pt or Montserrat 7pt.
- A status strip above the grid shows the unread MSG count alongside the connection state, WiFi IP and port, or the BLE pin, depending on the build.
- Nothing changes on the Max: it already had this screen, and the render path was verified byte-for-byte against the previous Max output.
SMS & Phone app -- Call Log and Contacts (Pro 4G and Max)
The phone app menu is now four rows: Dial, Call Log, Contacts and SMS Inbox.
Call Log
- Stores the 32 most recent calls on the SD card at
/sms/calllog.dat, oldest trimmed on append. - Logs incoming and outgoing calls with their duration, plus missed, busy and no-answer attempts.
- Calls arriving without caller ID are logged and shown as
Unknownrather than dropped. - Contact names are resolved through the SMS contacts store where known.
- Enter dials the highlighted entry back, D deletes it, Q backs out.
- The menu row carries an unseen-missed
[n]badge, matching the existing SMS Inbox badge. Both persist across a reboot and clear when you open that screen.
Contacts
- A dedicated screen for saved phone contacts, stored at
/sms/contacts.txt. - A adds a contact, M sends an SMS to the highlighted one.
- Opening a contact gives an editable Name and Number page with a Save row, plus F to dial and D to delete.
Touch on the app menu
- The four menu rows are now tappable. The first tap highlights a row, a second tap on the same row opens it.
Phone fixes
- An incoming call now drops the lock screen. Previously both keyboard and touch input were blocked while locked, which left the ringing screen unable to answer or reject. The device stays unlocked afterwards.
- Opening the SMS screen mid-call no longer resets the view to the app menu and wipe the ringing screen.
- The app menu footer right margin was widened so
Ent:Openis no longer clipped.
Lock screen notifications (Pro 4G and Max)
The lock screen now shows outstanding unread SMS and unseen missed calls beneath the existing clock, battery and unread message count.
These counts are read from the SMS inbox read flags and the call log seen flags rather than tallied while locked, so they survive locking, unlocking and a reboot, and clear only when you actually open that conversation or the Call Log. State is loaded at boot when the SD card comes up.
Direct messages -- device-side retries an
…
v1.12.3 # 1 month ago · 2026-06-22 10:04 UTC
v1.12.3 is a small patch release on top of v1.12.2 for the T-Deck Max. It adds a configurable keyboard backlight brightness setting, and fixes the unread message counter bug on standalone (no BLE/WiFi) builds, where the home-screen count and channel unread badges never updated.
What's Changed in v1.12.3
Keyboard LED -- adjustable brightness
The keyboard backlight (toggled by pressing both Shift keys together) was previously fixed at a very dim level, too faint to be useful for some users. A new Keyboard LED setting now lets you choose the brightness.
- Found in Settings, directly below Backlight Brightness.
- Adjustable from 5% to 100% in 5% steps, defaulting to 50% -- noticeably brighter than before.
- The level takes effect the next time you toggle the keyboard backlight on.
Standalone unread counter -- now updates as expected
On standalone builds (no BLE or WiFi companion), the MSG count on the home screen and the unread badges in the channel picker stayed at zero even as messages arrived and displayed normally. The device was effectively behaving as though a companion app were permanently connected, which marks each message as read the instant it arrives.
Standalone builds now track unread messages correctly:
- The home-screen MSG count and per-channel
*Nbadges climb as messages come in. - Opening a channel clears its unread count, as before.
- The direct-message counter and the new-message screen wake, which were suppressed by the same issue, work again.
BLE and WiFi builds are unaffected -- they already track their real connection state, so on-device counts intentionally stay at zero while the companion app is connected and update once it disconnects.
Only the T-Deck Max build is updated in this release; all other devices remain on v1.12.2.
First-Time Flashing
Each build comes in two forms:
<name>-merged.bin-- bootloader, partition table, and firmware in a single image. Flash at address0x0. 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:
- Web: https://app.meshcore.nz/
- Android: https://play.google.com/store/apps/details?id=com.liamcottle.meshcore.android
- iOS: https://apps.apple.com/us/app/meshcore/id6742354151
WiFi variants connect via TCP on port 5000:
- Web: https://app.meshcore.nz/
- meshcore.js: https://github.com/liamcottle/meshcore.js
- Python CLI: https://github.com/fdlamotte/meshcore-cli
v1.12.2 # 2 months 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 address0x0. 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:
- Web: https://app.meshcore.nz/
- Android: https://play.google.com/store/apps/details?id=com.liamcottle.meshcore.android
- iOS: https://apps.apple.com/us/app/meshcore/id6742354151
WiFi variants connect via TCP on port 5000:
- Web: https://app.meshcore.nz/
- meshcore.js: https://github.com/liamcottle/meshcore.js
- Python CLI: https://github.com/fdlamotte/meshcore-cli
Device compatibility (7)
| Device | MCU | Radio | Status | Notes |
|---|---|---|---|---|
| LilyGo T-Deck Pro | esp32-s3 | Semtech SX1262 | ✓ Supported | T-Deck Pro variant with ESP32-S3 and e-paper display. |
| LilyGo T-Deck Max | esp32-s3 | Semtech SX1262 | ✓ Supported | T-Deck Max variant with 4G, GPS, and e-paper display. |
| LilyGo T5 E-Paper S3 Pro (H752-XX) | esp32-s3 | Semtech SX1262 | ✓ Supported | T5 E-Paper S3 Pro (H752-XX) variant. |
| Heltec V3 | esp32-s3 | Semtech SX1262 | ✓ Supported | Remote repeater only. |
| Heltec WSL3 | esp32-s3 | Semtech SX1262 | ✓ Supported | Remote repeater only. |
| Heltec V4 | esp32-s3 | Semtech SX1262 | ✓ Supported | Remote repeater only. |
| Heltec V4 + Expansion Kit (Touch) | esp32-s3 | Semtech SX1262 | ✓ Supported | Remote repeater only. |