Skip to content

Meck-P4 v0.6.4

Pre-release
Pre-release

Choose a tag to compare

@pelgraine pelgraine released this 11 Jul 06:15

Meck-P4 v0.6.4

⚠️ 18 July update: This release has a bug with the rx duty cycle. Release notes have been left up for record-keeping purposes. Please use version v0.6.5 or v0.6.3 instead.⚠️

This release rolls up everything since v0.6.2-patch. v0.6.3 was never tagged as
its own release, so its changes are folded in here.

New features

  • Mentions-only channel notifications. A channel set to the Mentions
    notification level now only raises an unread badge and plays a tone when a
    message actually tags this node. Both tag forms are matched
    case-insensitively: @[node name] as sent by the MeshCore companion app, and
    a plain @nodename. All and None behave as before. Message history is never
    hidden; only the unread badge is gated.

  • Reply from the path popup. Long-pressing a received channel message now
    shows a Reply button next to Copy Path. It prefills the composer with
    @[sender] so the reply tags the sender (and their Mentions filter catches
    it), and names containing spaces survive. The button is hidden for your own
    messages and in DMs.

  • Per-DM custom notification tones. Each DM can now have its own
    notification tone. Tap the music icon in the DM view to pick one.

  • Tap-to-toggle battery display. Tap any battery reading to switch every
    copy of it, on the home tiles and in the screen headers, between percentage
    and cell voltage.

  • Boot button screen off/on. A press of the BOOT button now blanks the
    screen, and another press wakes it.

  • Contacts on the share-channel screen. The share-channel screen now lists
    your contacts to pick from directly.

Power

  • MCU-driven RX duty cycle, enabled by default. The SX1262 now duty-cycles
    its receive window instead of listening continuously, reducing idle radio
    current. The listen and sleep windows are sized from the preamble airtime at
    the current spreading factor and bandwidth, so an incoming preamble always
    overlaps a listen window and packets are not missed. The radio holds RX while
    a packet is in flight and wakes to standby before transmitting, and it falls
    back to continuous RX automatically when the preamble is too short to carve
    out a safe sleep window.

Changes and fixes

  • Removed the per-channel delete buttons from the channel picker.
  • Fixed the heading placement in the channel picker.
  • Removed leftover web-fetch test code.
  • Corrected the BQ27220 design-capacity note (the cell is verified at 1000 mAh).
    Comment only, no behaviour change.

Developer and diagnostics

  • New cmdmode_test example (main/examples/cmdmode_test). A standalone
    diagnostic that probes the RM69A10 over the DBI command path: it brings the
    panel up, reads back its mode registers, replays the vendor init sequence, and
    streams test pixels into GRAM, reading mode registers back at each stage. Used
    to investigate command-mode / self-refresh display for power management. Built
    via the new EXAMPLE_BUILD_CMDMODE_TEST option in main/Kconfig.projbuild.

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.
correct port usage for flashing

Flashing with the MeshCore Web Flasher (recommended)

  1. Go to https://flasher.meshcore.io/
  2. Scroll to the bottom and select Custom Firmware
  3. Select the meck-p4-0.6.2.bin file you downloaded
  4. Click OK on the merged-binary warning
  5. 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.2 or v0.6.1 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.

⚠️ 18 July update: This release has a bug with the rx duty cycle. Release notes have been left up for record-keeping purposes. Please use version v0.6.5 or v0.6.3 instead.⚠️