Skip to content

Meck v1.5 — Alarm Clock, Larger Fonts, BLE Speed Boost, OTA Tools & OTA SD File Manager

Pre-release
Pre-release

Choose a tag to compare

@pelgraine pelgraine released this 27 Mar 14:52
· 155 commits to main since this release

An update for both the T-Deck Pro and T5S3 E-Paper Pro. This release adds an alarm clock app for the audio variant, a user-selectable larger font mode, significantly faster BLE companion contact sync, an OTA SD-based firmware file manager, upstream MeshCore routing fixes, and several bug fixes. Nine firmware variants across both platforms.

📄 Meck_README_v1.5_28_March_2026.pdf is included in this release — it covers all keyboard controls, touch gestures, screen navigation, settings, and feature documentation for both platforms.


⚠️ 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)

  1. Go to https://flasher.meshcore.co.uk/
  2. Select Custom Firmware
  3. Load the .bin or -merged.bin file and click Flash
  4. 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.3

⏰ Alarm Clock (T-Deck Pro Audio Variant)

Set up to five daily alarms that play custom MP3 sounds through the PCM5102A DAC. Alarms trigger even when the device is on other screens or playing an audiobook. A bell icon displays in the home screen UI header bar when the alarm has been set to ON.

Setup:

  1. Place MP3 files (44100 Hz sample rate) in /alarms/ on the SD card
  2. Open the alarm clock from the home screen (press K)
  3. Select an alarm slot (1–5), set the time, and choose an MP3 file from the list

When an alarm fires:

  • The selected MP3 plays through the headphone jack
  • Press Z to snooze for 5 minutes
  • Press any other key to dismiss

Alarm configuration is stored in /alarms/.alarmcfg on the SD card. Alarms persist across reboots — if the RTC has valid time (via GPS or companion app sync), alarms will fire at the correct time after a restart.

Note: MP3 files should be encoded at 44100 Hz sample rate. Lower sample rates may cause distortion due to ESP32-S3 I2S hardware limitations (same requirement as the audiobook player).

alarm_clock

🔤 Larger Font Mode (T-Deck Pro & T5S3)

A new display option that increases the text size across channel messages, contacts, the DM inbox, and repeater admin screens. Useful for improved readability, especially on the T-Deck Pro's compact 240×320 display.

Enable it in Settings → Larger Font (toggle on/off). The setting persists across reboots.

IMG_1852

⚡ Faster BLE Companion Sync (T-Deck Pro & T5S3)

BLE contact sync with the companion app is now approximately twice as fast. Loading 460 contacts previously took around 30 seconds — it now completes in roughly 15 seconds. The improvement applies to both the T-Deck Pro BLE and T5S3 BLE firmware variants.

📂 OTA Tools: SD File Manager (T-Deck Pro & T5S3)

The Settings screen now has an OTA Tools submenu containing two utilities: the existing Firmware Update and a new SD File Manager. The file manager creates a WiFi access point (same as the firmware updater) and serves a browser-based interface where you can browse directories, upload files to the SD card, download files from it, and delete files — all from your phone's browser. Useful for managing audiobooks, alarm sounds, e-books, notes, and other content without needing to eject the SD card. Both OTA tools work on all variants including standalone builds.

sd file manager

🔧 Upstream MeshCore Fixes

Three fixes from the upstream MeshCore project have been ported to Meck:

  • MeshCore PR #2044 — Centralised getPathHashSize() API. Previously, BaseChatMesh::sendFloodScoped() called sendFlood() without passing the path hash size, silently defaulting to 1-byte paths regardless of path_hash_mode. Meck's overrides already handled this correctly, but the base class had a latent bug. This fix adds a getPathHashSize() pure virtual so every subclass must implement it, and replaces all scattered _prefs.path_hash_mode + 1 references with the centralised helper. Defence-in-depth and upstream compatibility.
  • MeshCore PR #2141 — Packet re-queue on CAD send failure. When the radio detected channel activity and aborted a transmission via startSendRaw(), the packet was silently dropped. It is now re-queued with a retry delay computed from getCADFailRetryDelay(), improving message delivery reliability in congested RF environments. The CAD timeout was also increased from 4 seconds to 6 seconds to better accommodate high-traffic meshes with many neighbours.
  • MeshCore PR #2151 — Zombie radio recovery. Adds two automatic recovery mechanisms: if the radio fails to transmit after multiple consecutive attempts, the radio hardware is reset; if the radio gets stuck unable to receive for an extended period despite recovery attempts, the device reboots. Both thresholds are configurable (default: 3 failures before action, 0 to disable).

🐛 Bug Fixes

  • Dialpad touch recognition (4G variant) — Fixed a long-standing bug (since v1.1) where touch input on the phone dialer could fail to register taps on certain dial pad buttons. The touch hit zones now align correctly with the rendered button positions.
  • Audiobook subdirectory indexing — The audiobook player's boot-time file scan now correctly reads files inside subdirectories. Previously, opening a subdirectory for the first time could show an empty list or miss files until the player was re-entered.
  • Larger font mode setting persists — The new larger font toggle correctly saves to flash and survives reboots, consistent with dark mode and portrait mode behaviour.

T-Deck Pro Firmware Variants

Six firmware variants for the LilyGo T-Deck Pro:


v1.5-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, and OTA firmware update. Up to 500 contacts and 20 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.5W-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 1,500 contacts and 20 channels.

v1.5-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 1,500 contacts and 20 channels.

v1.5A-Meck-Audio-BLE (PCM5102A Audio only).bin
Everything in the 4G-BLE build plus the audiobook player, alarm clock, sleep timer, and auto-queuing — minus the 4G modem features. BLE companion support included. Up to 500 contacts and 20 channels.

⚠️ PCM5102A audio hardware only. The I2S audio pins (GPIO 7, 8, 9) conflict with the A7682E modem control lines — do not flash on 4G boards.

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.5AW-Meck-Audio-WiFi (PCM5102A Audio only).bin
Same as the Audio-BLE build but with WiFi replacing BLE as the companion transport. No BLE companion app support. Up to 1,500 contacts and 20 channels.

⚠️ PCM5102A audio hardware only — same GPIO conflict applies. Do not flash on 4G boards.

v1.5A-SA-Meck-standalone-firmware (PCM5102A Audio only).bin
Same as the Audio-BLE build but with Bluetooth and WiFi completely removed at compile time. 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 1,500 contacts and 20 channels.

⚠️ PCM5102A audio hardware only — do not flash on 4G boards.


T5S3 E-Paper Pro Firmware Variants

Three firmware variants for the LilyGo T5S3 E-Paper Pro (V2, H752-B):


v1.5-Meck-T5S3Pro-BLE_NOGPS.bin
BLE companion build. Connect to MeshCore companion apps via BLE. Touch-driven UI with virtual keyboard. Up to 500 contacts and 20 channels.

Note: BLE is toggled off at boot. Navigate to the Bluetooth home page and long-press the screen to enable it.

v1.5-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 1,500 contacts and 20 channels.

v1.5-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 1,500 contacts and 20 channels.

All T5S3 variants include CardKB support (auto-detected via QWIIC).


MeshCore Companion Apps

BLE variants connect to the standard MeshCore companion apps:

WiFi variants connect via TCP on port 5000: