Connect up to 16 Meshtastic radios to a single MeshDash instance. Each radio gets its own isolated database, its own SSE data stream, and its own connection configuration. Monitor your base station, relay nodes, and distant receivers — all from one tab.
Each radio slot is fully independent. Databases don't share data. SSE streams don't cross-contaminate. Connection configs are per-slot. But the dashboard UI gives you a single pane of glass over all of them.
Every slot gets its own SQLite database file. Node data, messages, packets, and telemetry for one radio never mix with another. Delete a slot and its database is gone — no side effects on other slots.
Each slot has its own Server-Sent Events stream. The dashboard multiplexes all active streams into a single connection, so you see real-time updates from every radio simultaneously — no polling, no missed packets.
Each slot has its own connection type, host, port, and label. Mix Serial, TCP, MQTT, and MeshCore on the same instance. The primary slot (node_0) uses your .env config; additional slots are configured from the dashboard.
node_0) — configured via .envOne radio at home on USB Serial as your primary node. Another on a hilltop connected via TCP, relaying packets from beyond your local range. Both monitored from one dashboard — see which packets came through which radio, compare SNR from each position.
Run radios on different regions or frequencies simultaneously. One on EU_868, one on US_915, one on AU_915 — each with its own channel configuration and packet database. Spot interference patterns and cross-band relay opportunities.
Keep your physical radio as the primary slot for two-way communication, then add an MQTT slot to observe the wider mesh. See what's happening across the network without switching dashboards or tools.
Run two identical radios with different antenna configurations or firmware versions. Compare real-world SNR, RSSI, and throughput side by side using MeshDash's analytics with isolated data per radio slot.
The primary slot (node_0) is always present and configured via .env. Additional slots are added, renamed, and removed from the dashboard UI — no config file editing required.
node_0) cannot be removed — only disconnectednode_0. That's 17 radios maximum.node_0. Per-radio channel inspection is coming in a future update.node_0 is permanent. You can disconnect it, but you can't delete it.The primary radio is configured in .env. Additional slots are managed from the dashboard. Here are the connection types available for each slot.
| Type | Config Key | Primary (.env) | Additional Slots |
|---|---|---|---|
| USB Serial | MESHTASTIC_CONNECTION_TYPE=SERIAL | MESHTASTIC_SERIAL_PORT=/dev/ttyACM0 | Dashboard UI — port, baud |
| TCP / WiFi | MESHTASTIC_CONNECTION_TYPE=TCP | MESHTASTIC_HOST + MESHTASTIC_PORT | Dashboard UI — host, port |
| Bluetooth BLE | MESHTASTIC_CONNECTION_TYPE=BLE | MESHTASTIC_BLE_MAC | Dashboard UI — MAC address |
| MQTT | MESHTASTIC_CONNECTION_TYPE=MQTT | MQTT_BROKER, MQTT_PORT, etc. | Dashboard UI — broker, region, channel |
| MeshCore | MESHTASTIC_CONNECTION_TYPE=MESHCORE | MESHCORE_TRANSPORT, etc. | Dashboard UI — transport, host, port |
| Web Serial | Dashboard UI only | — | Dashboard UI — browser picker |
Ready to connect your radio array?