MeshCore Packet Capture (Standalone Repeater Listener)¶
This guide explains how to install and run a custom build of MeshCore repeater firmware on a HeltekV3 to act as a standalone packet capture device that forwards logs directly to analyzer.letsme.sh.
This setup does not require a Raspberry Pi, VM, or companion node.
Overview¶
This firmware was compiled from agessaman/MeshCore (mqtt-bridge-implementation-dev) to simplify setup for the community.
- Default Frequency: USA/CAN recommended settings pre-configured
- Role: Repeater with repeat disabled (acts as a “silent repeater” for packet capture)
Each unit functions like a repeater that does not forward packets.
To avoid ID collisions, each device must have a unique private key.
Please share your assigned ID in the Ottawa Mesh Discord so we can track it.
Scope¶
This setup covers packet capture from a standalone repeater node only.
If you wish to run a full repeater, simply skip the step where repeat is disabled.
Requirements¶
- Heltek V3 board
- USB-C cable
- Wi-Fi network access
- Basic familiarity with the MeshCore Flasher tool
Firmware Installation¶
-
Download the HeltekV3 MQTT Repeater Firmware: Download Link
-
Go to MeshCore Flasher and click HeltekV3
-
Select Repeater
-
Click Erase Device
-
Click Flash
-
Flashing will take a minute; if it fails, restart at step 2 and try again.
-
Return to MeshCore Flasher and scroll to the bottom.
-
Click Custom Firmware
-
Select the HeltekV3 MQTT Repeater firmware you downloaded in step 1.
-
Do NOT click Erase Device — if you erase here, the firmware will not boot.
-
Click Flash again.
-
Wait for flashing to complete.
Configure Device Identity¶
-
Visit Ottawa Repeater ID List and choose an unused 2-digit ID.
-
Open mc-keygen and enter that ID into the Repeater ID field, then click Generate Key.
-
Scroll down and copy the value under Private Key.
-
Open MeshCore Flasher, click Console, and select the serial device for your repeater.
-
Run the following command, replacing
PRIVATE-KEYwith your generated key:set prv.key <PRIVATE-KEY> -
Configure the repeater name using the Ottawa naming convention (
YOW_Location):set name YOW_OldBarrhaven -
Configure the IATA Code for MQTT ingestion
set mqtt.iata YOW -
Disable repeat:
set repeat off -
(Optional) Configure ownership info for the Packet Analyzer:
You must have an account on analyzer.letsme.sh (login uses MeshCore Forum authentication).set mqtt.owner <Companion-Public-Key> set mqtt.email <MeshCore-Fourm-Email-Address>
Configure Wi-Fi & Timezone¶
-
Set Wi-Fi credentials:
set wifi.ssid <WIFI-NETWORK-NAME> set wifi.pwd <WIFI-PASSWORD> -
Set timezone:
set timezone America/Toronto -
Reboot the device:
reboot
Validation¶
After the device reboots and connects to Wi-Fi, it should automatically start sending logs to the Analyzer MQTT broker.
-
Locate your node name (for example
YOW_OldBarrhaven) in the list. -
Confirm that it appears in the table and is highlighted in green — this means it is online and reporting correctly.
Notes¶
- This firmware publishes logs directly to the Analyzer MQTT broker — no Raspberry Pi or VM is needed.
- The node operates as a repeater with repeating disabled, meaning it listens and reports traffic but does not forward it.
- Make sure to report your assigned repeater ID in the Ottawa Mesh Discord to avoid overlap.