Skip to main content

MeshCore Repeater Diagnostics via Serial Console

The MeshCore serial console provides direct access to repeater state and diagnostic information. Connecting via USB to a deployed repeater is the most reliable way to diagnose problems that cannot be addressed remotely.

Connecting to the Serial Console

On Windows: use PuTTY or the Arduino Serial Monitor. On Linux/Mac: use screen or minicom. as a serial terminal.

# Linux/Mac
screen /dev/ttyUSB0 115200

# Windows (PuTTY): Connection Type = Serial, Speed = 115200, COM port varies

Most MeshCore boards use 115200 baud.baud Somefor the serial console, including RAK boardsboards. use(If you have configured an attached GPS module, that module's own UART may run at a different baud rate such as 9600 - checkbut that is a separate interface from the MeshCore documentation for your specific hardware.console.)

Key Diagnostic Commands

These are commands from the on-device MeshCore serial CLI (see docs.meshcore.io/cli_commands). There is no single combined "status" command - health information is split across several get ... and stats-... commands.

CommandOutputUse for
statusverRadioFirmware config,versionConfirm firmware version,build
stats-coreBattery voltage, uptime, batteryqueue voltagedepthOverall health check contactsget radio / get freqKnownRadio nodesconfig (frequency, bandwidth, SF, coding rate)Verify radio settings match the network neighborsUp to the 8 most recently heard nodes, with last-heardtimestamp timestampsand SNRVerify which nodes are reaching this repeater statsstats-packetsPacket counts:counters: received,Received forwarded,and droppedSentIdentify traffic/routing problems rssistats-radioRSSINoise floor, last RSSI/SNR, airtime, receive errorsSignal quality of last received packetSignal quality to nearest node logRecentPrints eventa captured rx log (must first be started with log start, stopped with log stop, cleared with log erase)Identify errorsCapture and unusualreview eventsreceived-packet activity reboot(restarts device)Recover from hung state

Note: contacts and list are companion/client-side concepts, not repeater serial commands - on a headless repeater, use neighbors instead. The log command is a packet/rx capture you start and stop, not an always-on event log.

Interpreting Stats Output

The statsstats-packets command is the mosta useful diagnostic tool. The firmware exposes Received and Sent counters. A healthy repeater shows:

  • HighSent forwardcount ratetracking received traffic - Mostthe received packets should be forwarded (repeater is doingrelaying itspackets job)it is meant to forward. (The documented counters are Received and Sent; there is no separate "forwarded" or "dropped" counter, so judge activity from the Sent counter rising alongside Received rather than from a "forward rate" metric.)
  • LowDrops dropin rateMeshCore - PacketsMeshCore drops a flood packet when it exceeds the flood.max hop ceiling (default 64), and its loop detection (loop.detect) drops a packet whose path shows this repeater's own ID/hash repeated. This is not a Meshtastic-style per-packet hop counter decrementing to zero. In MeshCore's path-based routing, a repeater also intentionally does not retransmit packets whose embedded path does not include it - these appear as non-forwarded traffic but are droppedcorrect whenbehavior, hop count reaches 0, or when the packet has already been seen (deduplication). Some drops are normal;not a veryloop. highDistinguish dropthis rateselective indicatesnon-forwarding manyfrom duplicatea packetsgenuine (possibleduplicate-flood routingloop loop)before or very high hop packets being cut offacting.
  • Increasing received count over time - Confirms the repeater is hearing traffic from the network

Common Issues and Diagnostics

SymptomCheckFix
Received count stays at zeroCheck antenna connection, verify presetradio matchessettings match networkReconnect antenna; verify presetradio parameters with statusget radio and get freq (frequency, bandwidth, SF, coding rate) and confirm they match the USA/Canada preset values shown in the app
ForwardSent count zero despite receivesVerify device is running repeater firmware variant and that forwarding is enabledReflash with repeater firmwarefirmware; confirm set repeat on
Battery voltage decliningCheck solar panel output, charge controller LVD settingClean panel, verify charge controller settings
Rebooting frequentlyCheck for low battery voltage causing brownoutSize battery correctly; check charge controller
Not appearing in client node listAdvertisement hopsRepeater may not be zero;sending flood adverts; check the flood advert interval with statusget flood.advert.intervalSetSend a flood advertisement with advert and confirm a flood advert interval is set, e.g. set flood.advert.interval 12 (hours). Zero-hop adverts (advert.zerohop / set advert.interval) are local only. There is no advert_hops 3 for network-wide visibilityparameter.