Meck P4 v0.6.2 Pre-release (Patch): Trace and notification fixes
Pre-releaseMeck P4 v0.6.2 Pre-release (Patch): Trace and notification fixes
Point release on top of [v0.6.1](https://github.com/pelgraine/Meck-P4/releases/tag/v0.6.1-patch). Two bug fixes, no new features. Firmware identity is now 0.6.2.
Bug Fixes
Multi-byte trace path parsed as single-byte
Running a path trace in 2-byte mode returned a wrong result. The response was parsed as if it were 1-byte, so it reported twice as many hops as actually existed, each one resolved to the wrong repeater. As an example, a two-hop 2-byte trace of 3601,2198 came back as four hops (36, 01, 21, 98) matched against unrelated repeaters.
The cause was in the trace-response handler: the hop count and hash size were taken from the wrong source. The byte length handed up from the base layer was being read with the packet-header path encoding, which collapses to 1-byte mode for any short path. The real hash size is carried separately in the trace flags.
The handler now reads the hash size from the trace flags and computes the hop count as the path byte length divided by bytes-per-hop. 1-byte traces were already correct and are unchanged. 2-byte traces now report the right hop count and resolve to the correct repeaters.
Custom notification sounds not playing
Custom per-channel notification tones stopped playing as of v0.6 (they worked in v0.5). A tone could be selected and would show as set, but nothing played when a message arrived on that channel.
The cause was the v0.6 audio rework, which split file preparation from playback start. The notification trigger prepared the tone file but never issued the start, so it sat ready and silent.
The notification path now starts playback after preparing. The same missing start also affected the tone-picker preview and voice-message playback, both fixed by the same change.
Files Changed
3 files changed (MeckMesh.h, MeckUI.cpp, meck.h).
First-Time Flashing: Read This First
Meck-P4 ships as a single merged binary (bootloader + partition table + application combined). One file, flash at offset 0x0.
An SD card is recommended. With a FAT32-formatted card inserted, every saved setting, channel message, DM, room post, and note is mirrored or stored on the card, notification tones have somewhere to live, and the device recovers gracefully from a wiped NVS. Without an SD card the device still works but loses message history on reboot, and the Reader, Notes, and notification sounds have no storage.
Ensure you use the right-side USB-C port (the data port), not the high-speed charger port, to flash.

Flashing with the MeshCore Web Flasher (recommended)
- Go to https://flasher.meshcore.io/
- Scroll to the bottom and select Custom Firmware
- Select the
meck-p4-0.6.2.binfile you downloaded - Click OK on the merged-binary warning
- Click Flash, pick your device in the popup, and click Connect
Flashing with esptool.py
pip install esptool
esptool.py --chip esp32p4 -p PORT write_flash 0x0 meck-p4-0.6.2.bin
(Replace PORT with /dev/cu.usbmodemXXXX on macOS, /dev/ttyACM0 on Linux, or COM3 on Windows.)
Upgrading from v0.6.1 or v0.6 does not require erase_flash. This patch changes program logic only and adds no new settings, so existing prefs carry over unchanged.
For the full feature list see the [README](https://github.com/pelgraine/Meck-P4/blob/main/README.md).
Reporting Issues
The Meck-P4 channel on the MeshCore Discord is the fastest path. GitHub Issues on the Meck-P4 repo also work for anything reproducible. Include the serial log if you can: Settings > Debug Logs > Start captures it to SD if a serial monitor isn't practical.
License
MIT for Meck-specific code. The combined firmware binary links libraries with mixed licensing including GPL-3.0 and LGPL-2.1 (Codec2) and is effectively GPL-3.0 when distributed.