MeshDash includes a suite of operator-grade tools not found in any other Meshtastic interface — deep packet inspection, live traceroute, complete radio configuration, and a browser-based USB bridge.
| NO. | TIME | Δt | SOURCE | DEST | CH | PROTOCOL | SNR | HOPS | PAYLOAD |
|---|
MeshShark supports a Wireshark-inspired BPF filter language. You can chain multiple conditions with spaces (implicit AND).
type:Message
Only show Message packets
src:!a3f2
From node ID containing "a3f2"
dst:^all
Broadcast destination only
snr>-5
SNR better than −5 dB
snr<-15
Poor signal packets only
ch:0
Channel 0 only
hops:0
Direct/no-hop packets
text:hello
Payload contains "hello"
type:Telemetry snr>0
Telemetry from good-signal nodes
Click any packet row to open the three-pane detail view. Each pane provides a different perspective on the same packet:
The complete packet dict as stored in the database — every field, including vendor extensions and raw bytes. Includes a one-click copy button.
Human-readable field-by-field breakdown: type, source/destination, channel, payload summary, SNR, hop count, timestamp.
SNR, RSSI, hop limit vs hop start, source classification (RF/MQTT/LOCAL/UNKNOWN), and the confidence score from the evidence engine with a breakdown of each evidence point scored.
MeshDash sends a special traceroute admin packet to the target node. As this packet routes through the mesh, each intermediate node appends its ID and the SNR of both directions to the payload. When the packet reaches the destination and returns, you have a complete bidirectional path map.
The result is displayed as a hop chain showing every intermediate router with its node ID, name, and the SNR in both the forward and return direction. All traceroute results are stored in the database with a timestamp for historical reference.
MeshDash reads and writes the complete Meshtastic protobuf configuration directly to the connected radio. Every configuration section is supported — exactly what the Python CLI exposes, but in a clean tabbed browser UI.
When you open Node Config, MeshDash sends a getConfig admin packet to the connected radio and populates the form with the live values read directly from the device's flash memory.
When you save, changed fields are written back via setConfig admin packets. If the "Reboot After Save" checkbox is enabled, a reboot packet is sent immediately after — a banner polls for reconnection and confirms when the radio comes back online.
# Equivalent Python CLI commands:
meshtastic --set lora.region EU_868
meshtastic --set lora.hop_limit 4
meshtastic --set lora.tx_power 17
meshtastic --set device.role ROUTER
meshtastic --reboot
MeshDash performs all of the above in a single save operation — no command line required.
Web Serial allows your browser to hold the USB serial connection to your Meshtastic radio directly — even when the server has no physical access to the device. Chrome or Edge connects to the USB radio, the browser streams decoded protobuf packets to the MeshDash server via a WebSocket, and you get the full dashboard experience without any server-side drivers or serial ports.
0x10C4
Silicon Labs CP210x
T-Beam, TTGO LoRa32, most ESP32 boards
0x1A86
WCH CH340/CH341
Cheap NodeMCU clones, some T-Beams
0x0403
FTDI FT232
Older development boards
0x239A
Adafruit boards
Feather M0 LoRa
0x303A
Espressif ESP32-S3
Native USB on S3 chips — XIAO S3, T-Deck
The Web Serial API is only available in Chrome 89+ and Edge 89+. Firefox and Safari do not support it.
The Web Serial connect button appears in the top bar when MeshDash detects you're running in Web Serial mode.
The browser's native port picker dialog opens. Select your Meshtastic device from the list.
The browser reads from serial, sends packets to MeshDash server over WebSocket. TX commands queue in reverse.
MeshDash supports up to 16 Meshtastic radios connected to a single server instance simultaneously. Each radio slot operates in complete isolation:
Slots can be Serial, TCP, Bluetooth, or Web Serial connections — any mix. A Raspberry Pi 4 with 8 USB hubs can realistically manage 16 T-Beam radios simultaneously as a multi-sector monitoring base station.
Each slot stores its connection details in the config file and reconnects automatically on server restart. The Settings view provides a UI for adding, removing, and switching between slots without touching the config file.