Skip to content

Meck v0.9.8 — Maps, WiFi Companion, Serial Config & More

Choose a tag to compare

@pelgraine pelgraine released this 04 Mar 09:20
· 253 commits to main since this release

Six firmware variants, one codebase. Pick the right .bin for your hardware:


Firmware Variants

v0.9.8-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, and web browser. 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.

v0.9.8W-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). WiFi is on by default at boot but can be toggled off in Settings to save power. No BLE companion app support. Up to 1,500 contacts and 20 channels.

v0.9.8.4G.SA-Meck-standalone.bin For T-Deck Pro 4G boards. No BLE or WiFi companion — maximum battery life. The web browser, IRC client, and map viewer are all still available (they use WiFi independently, not as a companion transport). Up to 1,500 contacts and 20 channels.

v0.9.8A-Meck-Audio-BLE.bin Everything in the 4G-BLE build plus the audiobook player, 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.

v0.9.8AW-Meck-Audio-WiFi.bin Same as the Audio-BLE build but with WiFi replacing BLE as the companion transport. WiFi is on by default at boot but can be toggled off in Settings to save power. 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.

v0.9.8A-SA-Meck-standalone.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.

Battery life: Disabling Bluetooth extends estimated runtime from ~10.5 hours to ~20.5 hours on the 1400mAh cell.

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


What's New Since v0.9.5

🗺️ GPS Map Viewer (All variants except Audio Standalone)

Press G from the home screen to open the map. Renders standard OSM "slippy map" tiles from your SD card at native 240×320 resolution, with a GPS position marker and overlays for all mesh contacts that have GPS coordinates.

Key Action
W / A / S / D Pan the map
  • / - | Zoom in / out
    G | Re-centre on your GPS position
    Q | Back to home screen

🔁 Repeater Admin Improvements

The repeater admin screen has been significantly expanded. Commands are now organised into a category menu, grouping related functions into logical sections rather than a single flat list — making it easier to navigate the full command set without scrolling past irrelevant options.

Telemetry is now fetched automatically on login — no manual request needed. A REQ_TYPE_GET_TELEMETRY_DATA request fires silently in the background after authentication, and by the time you're looking at the category menu the response has typically already arrived. Battery voltage and temperature (°C / °F) appear as an info line on the menu screen (e.g. Batt: 3.85V Temp: 32.4C). If the remote repeater doesn't support telemetry the line is simply omitted.


⚙️ Contact Auto-Add Settings

The Settings screen now includes configurable controls for how new contacts are saved. You can choose which contact types are automatically added to your contacts list (Chat nodes, Repeaters, Room servers, Sensors), or switch to manual-add mode where nothing is saved without your confirmation. There's also an option to overwrite the oldest non-favourite contact when the contacts table is full, rather than silently dropping new nodes.


🛰️ GPS Fix Improvements

GPS duty cycling and GPS aiding have been removed. These features were intended to save power but were causing significantly slower time-to-first-fix in practice. GPS now runs continuously when enabled, resulting in much faster and more reliable fixes.


🔋 Battery Protection Fixes

Two fixes for battery-related reliability issues:

Boot-time protection — if the device boots with a battery voltage below 2800mV, it now goes straight to deep sleep without touching the filesystem at all. Previously, booting on a deeply depleted battery could trigger a brownout reboot loop that corrupted the contacts file. The device will sleep until the user button is pressed (after plugging in to charge).

Shutdown debounce — the runtime low-battery shutdown now requires 3 consecutive low-voltage readings (~24 seconds apart) before triggering, preventing false shutdowns from transient voltage sags under radio TX load.

Contacts file recovery — if the contacts file is found truncated at boot (a sign of a previous crash or power-loss mid-write), the firmware now automatically attempts to recover from the .tmp backup before falling back to a fresh start.


🔧 Fixes & Tweaks

  • BLE message sync — sent channel messages now appear immediately in the on-device message log without needing a scroll trigger
  • Keyboard responsiveness — compose refresh interval tuned to 600ms for snappier typing
  • Version string — fixed buffer size and switched from hyphens to dots in variant strings (e.g. v0.9.8.4G) to prevent e-ink rendering glitches
  • Contact export — export now continues with the human-readable text export even if the binary backup step fails, with better serial diagnostics on failure

Flashing

Use the MeshCore web flasher at https://flasher.meshcore.co.uk — select Custom Firmware, load the .bin file, and click Flash.

Alternatively, flash via esptool.py:

esptool.py --port /dev/ttyACM0 --baud 921600 write_flash 0x0 firmware.bin

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
  • iOS: https://apps.apple.com/us/app/meshcore/id6742354151
  • Android: https://play.google.com/store/apps/details?id=com.liamcottle.meshcore.android
  • meshcore.js: https://github.com/liamcottle/meshcore.js
  • Python CLI: https://github.com/fdlamotte/meshcore-cli

Full changelog: https://github.com/pelgraine/Meck/compare/v0.9.5...main