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 (Official)
- Maintainer
- pelgraine ↗
- Status
- active
- Maturity
- beta
- Lifecycle
- active
- Latest version
- 1.12.3
- Released
- 2026-06-22
- 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
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
- 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-22v1.12.3 # Latest 9 hours 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 # 6 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 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.1 # 12 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.
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 (6)
| 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 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. |