Meck v1.11 -- Private Channels, Channel Sharing, Config Export/Import
This release adds private channel support, the ability to share channels with other Meck users via encrypted DM, and a full config export/import system for backing up and migrating device configurations. Also includes two new emoji, an expanded Minesweeper grid on the T5S3, and a fix for contacts with stuck clocks sinking in the recency-sorted contacts list.
First-Time Flashing -- Read This First
Each firmware is provided in two formats:
filename.bin-- the application firmware only. Use this for updating an existing Meck install (including OTA updates from your phone).filename-merged.bin-- includes the bootloader, partition table, and application firmware in a single image. Use this if you are flashing Meck for the first time, coming from a different firmware, or if your device is not booting correctly after an update.
If in doubt, use the -merged.bin file. It will always work regardless of what was previously on the device.
Flashing with the MeshCore Web Flasher (recommended)
- Go to https://flasher.meshcore.io/
- Select Custom Firmware
- Load the
.binor-merged.binfile and click Flash - Select your device in the popup and click Connect
Flashing with esptool.py
esptool.py --port /dev/ttyACM0 --baud 921600 write_flash 0x0 firmware-merged.bin
What's New Since v1.10
Private Channels
Meck now supports private channels alongside the existing public hashtag channels. The difference is in how the channel secret is generated:
- Public (hashtag) channels — type a name starting with
#(e.g.#camping). The 16-byte secret is derived deterministically from the name via SHA-256, so anyone on any MeshCore device who creates the same hashtag name gets the same key and can communicate on that channel. - Private channels — type a name without the
#prefix (e.g.team-alpha). A cryptographically random 16-byte secret is generated, meaning only devices that have been explicitly given the key can participate.
How to create a private channel:
- From the home screen, press S to open settings
- Scroll down to the Channels >> section and press Enter to open it
- Navigate to + Add Channel (# = public) and press Enter
- Type the channel name without a
#prefix, then press Enter
The channel is created with a random secret. To let other Meck users join, use channel sharing (see below).
Channel Sharing via DM
You can now share any channel — public or private — with another Meck user by sending them the channel name and secret as an encrypted direct message. This is particularly useful for private channels, where sharing the secret manually would mean typing 32 hex characters.
How to share a channel:
- From the home screen, press S to open settings
- Scroll down to the Channels >> section and press Enter to open it
- Navigate to the channel you want to share
- Press C to open the contact picker
- Select a contact and press Enter to send
The recipient's device automatically adds the channel to their channel list (if it doesn't already exist and there's an empty slot). An alert confirms the channel was added. In the DM conversation, both sender and recipient see a sanitised message ("Shared channel: name") rather than the raw protocol data.
On the T5S3, channel sharing works the same way via the CardKB keyboard.
Config Export/Import
A new Export/Import >> sub-screen in Settings lets you back up and restore your device configuration via JSON files on the SD card. This is useful for migrating settings to a new board, keeping a backup before reflashing, or cloning a configuration across multiple devices.
Exporting:
- From the home screen, press S to open settings
- Scroll down to Export/Import >> and press Enter
- Select Export to SD >> and press Enter
- Toggle which sections to include using Enter on each checkbox:
- Identity — public and private key (full identity backup)
- Radio Settings — frequency, bandwidth, spreading factor, coding rate, TX power, and GPS position
- Channels — all channel names and secrets
- Contacts — all contacts with public keys, type, flags, position, and timestamps
- Auto-Add Prefs — contact auto-add mode and per-type toggles
- Navigate to >> Export Now and press Enter
The config is saved as a timestamped JSON file in /meshcore/ on the SD card (e.g. meshcore_config_20260523_1430.json). The format is compatible with the MeshCore companion app config export.
Importing:
Place a file named import.json in the /meshcore/ folder on your SD card. Then either:
- From settings: go to Export/Import >> → Import from SD and press Enter
- On boot: the firmware automatically checks for
/meshcore/import.jsonat startup and imports it if found
If the import includes a different identity (private key), the device reboots after applying the new identity. Channels and contacts are merged into the existing configuration.
Contact Recency Fix
A fix to the onAdvertRecv handler ensures that contacts are always bumped to the top of the recency-sorted contacts list when their adverts are heard, even if the advertising node has a stuck or behind clock. Previously, the MeshCore base class replay guard would silently discard adverts with timestamps that hadn't advanced, causing actively heard nodes to sink to the bottom of the contacts list over time.
New Emoji
Two new emoji have been added: 💯 (hundred points) and 😁 (grinning face), bringing the total to 79 emoji. They appear near the top of the picker after the zany face emoji.
T5S3 Minesweeper Expanded
The Minesweeper grid on the T5S3 has been expanded from 9×9 (10 mines) to 14×14 (25 mines), taking advantage of the larger virtual display. The T-Deck Pro retains the original 9×9 beginner grid.
Other Changes
- T5S3 channel picker UI — updated footer hints: delete confirmation now shows "Tap:Yes Boot:Cancel" (previously "Enter:Yes Q:Cancel"), and the long-press footer shows "Long Press:Del Hist Boot:Back" for clarity.
- T-Echo Card and T-Echo Lite variants removed — these nRF52840 variant folders have been removed from the repository as they are no longer being actively developed.
- Ko-fi funding option added alongside GitHub Sponsors.
T-Deck Pro Firmware Variants
Six companion firmware variants for the LilyGo T-Deck Pro:
v1.11-Meck-4G-BLE.bin
For T-Deck Pro 4G boards. Full-featured build -- messaging, contacts, direct messages, repeater admin, e-book reader, notes, emoji, GPS, map viewer, BLE companion app support, SMS & Phone app, IRC client, web browser, OTA firmware update, custom notification tones, games, config export/import, and private channel support. Up to 2,000 contacts and 40 channels.
Note: BLE is toggled off at boot to save battery. Navigate to the Bluetooth home page and press Enter to enable it when you want to connect to the app.
v1.11W-Meck-4G-WiFi.bin
For T-Deck Pro 4G boards. Same as the 4G-BLE build but with WiFi replacing BLE as the companion transport -- connect via the MeshCore web app, iOS/Android app, meshcore.js, or Python CLI over your local network (TCP port 5000). No BLE companion app support. Up to 2,000 contacts and 40 channels.
v1.11-4G.SA-Meck-standalone-firmware (A7682E (4G) version).bin
For T-Deck Pro 4G boards. No BLE or WiFi companion -- maximum battery life. The web browser, IRC client, map viewer, and OTA firmware update are all still available (they use WiFi independently, not as a companion transport). Up to 2,000 contacts and 40 channels.
v1.11A-Meck-Audio-BLE (PCM5102A Audio only).bin
Everything in the 4G-BLE build plus the audiobook player, alarm clock, sleep timer, auto-queuing, and voice notes over LoRa -- minus the 4G modem features. BLE companion support included. Custom notification tones with full MP3 flexibility. Up to 2,000 contacts and 40 channels.
Do not flash this on the 4G variant -- the I2S audio pins (GPIO 7, 8, 9) conflict with the A7682E modem control lines.
Note: BLE is toggled off at boot to save battery. Navigate to the Bluetooth home page and press Enter to enable it when you want to connect to the app.
v1.11AW-Meck-Audio-WiFi (PCM5102A Audio only).bin
Same as the Audio-BLE build but with WiFi replacing BLE as the companion transport. Includes voice notes over LoRa and custom notification tones. No BLE companion app support. Up to 2,000 contacts and 40 channels.
Do not flash this on the 4G variant -- same GPIO conflict applies.
v1.11A-SA-Meck-standalone-firmware (PCM5102A Audio only).bin
Same as the Audio-BLE build but with Bluetooth and WiFi completely removed at compile time. Includes voice notes over LoRa and custom notification tones. The radio hardware is never initialised, giving a significant battery life improvement. The web browser, IRC client, and map viewer are not available on this variant. Up to 2,000 contacts and 40 channels.
Do not flash this on the 4G variant.
T5S3 E-Paper Pro Firmware Variants
Three firmware variants for the LilyGo T5S3 E-Paper Pro (V2, H752-B):
v1.11-Meck-T5S3Pro-BLE_NOGPS.bin
BLE companion build. Connect to MeshCore companion apps via BLE. Touch-driven UI with virtual keyboard. Up to 2,000 contacts and 40 channels.
Note: BLE is toggled off at boot. Navigate to the Bluetooth home page and long-press the screen to enable it.
v1.11-Meck-T5S3Pro-WiFi_NOGPS.bin
WiFi companion build. Connect via MeshCore web app, meshcore.js, or Python CLI over local network (TCP port 5000). Includes the web browser, IRC client, and OTA firmware update. Up to 2,000 contacts and 40 channels.
v1.11-Meck-T5S3Pro-Standalone_NOWIFI_NOBLE_NOGPS.bin
No BLE or WiFi -- maximum battery life. Touch-driven standalone operation with full messaging, contacts, reader, and notes. Up to 2,000 contacts and 40 channels.
All T5S3 variants include CardKB support (auto-detected via QWIIC).
Meck_README_v1.11.pdf is included in this release -- it covers all keyboard controls, touch gestures, screen navigation, settings, and feature documentation for all platforms, provided in PDF form for convenience.
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: