Meshtastic Tutorial
Basic setup
- Install the antenna.
- Warning: if you power on your board before the antenna is mounted it may burn out.
- Plug it into the USB port.
Flash the firmware
- Go to https://flasher.meshtastic.org/
- Select your board.
- Select the firmware.
- Press flash.
- Select the USB port.
- Flash the firmware.
Configure the client
Web client
- Go to https://client.meshtastic.org/messages/broadcast/0 or clone the repo and run the client locally https://github.com/meshtastic/web
Mobile
- For Android go to https://meshtastic.org/docs/software/android/installation/ and install the app.
- For iOS go to https://meshtastic.org/docs/software/apple/installation/
Python CLI
pip install meshtastic
For usage see: https://meshtastic.org/docs/software/python/cli/
Settings
LoRa
| Setting | Value |
|---|---|
| Region | European Union 868MHz |
| Preset | Medium Range - Fast |
| Ignore MQTT | On |
Device
| Setting | Value |
|---|---|
| Node info broadcast interval | 10800 seconds (3h) |
Position
| Setting | Value |
|---|---|
| Position broadcast interval | 21600 seconds (6h) |
Telemetry
| Setting | Value |
|---|---|
| Device metrics interval | 259200 seconds (72h) |
Python CLI set channel preset
meshtastic --ch-medfast
meshtastic --host 192.168.1.xxx --ch-set lora.use_preset true --ch-index 0
meshtastic --host 192.168.1.xxx --ch-set lora.modem_preset MEDIUM_FAST --ch-index 0
meshtastic --reboot
meshtastic info
meshtastic --info | grep -i modem
More links
- https://mesh-schweiz.ch (information in German)
- https://drive.google.com/file/d/14Wd3UXRfnrliED6sUjJXb7UYsQ3iZCbp/edit
Swiss settings recommendations
| Category | Sub Category | Setting | Recommended Value | Reason / Notes |
|---|---|---|---|---|
| Radio Config | Device | Role | Client or Client_Mute | Client_Mute if you rely on a nearby mountaintop node; Client if others rely on your node. Avoid unnecessary routers. |
| Radio Config | Device | Role | Router / Repeater -> Only on topographically meaningful positions | e.g., mountain peaks with clear view; not for home/indoor nodes. |
| Radio Config | Device | NodeInfo Broadcast Interval | 10800s (3h) | Smartphones store this info; no need to send more often. Default is correct. |
| Radio Config | Device | Rebroadcast Mode | ALL, optional: Local Only | ALL recommended. Use Local Only only if your airtime approaches the 10 percent legal limit. |
| Radio Config | Position | Position Broadcast Interval | 21600s (6h) | Fixed nodes only need updates every 6h. Increase only when hiking or moving. |
| Radio Config | Position | Smart Position | Disabled | Causes nodes to transmit frequently and can flood the mesh. Disable, especially when GPS is via smartphone. |
| Radio Config | Position | Position Payload Options | Optional (altitude, sats, etc.) | Only include if needed; each added field increases airtime load. |
| Radio Config | LoRa | Hop Limit | 3-5 | Mesh is large; hop limit should not exceed 5. |
| Radio Config | LoRa | Override Duty Cycle | Disabled | EU/CH legal requirement: 10 percent airtime per hour. Do not override. |
| Radio Config | LoRa | Ignore MQTT | Enabled | Use MQTT only for specific applications; disable upload to MediumFast. |
| Module Config | Telemetry | Device Metrics Interval | 259200s (72h) | Longest interval; prevents spammy telemetry. |
| Module Config | Telemetry | Sensor Metrics Interval | Off (if no sensors) | Set sensors off unless they exist. If sensors exist, use a long interval (3600s). |
| Module Config | Telemetry | Power Metrics Interval | Off | Only for external power sensors, not battery level. |
| Firmware | Firmware Updates | Update regularly | New firmware improves efficiency; Web-Flasher recommended. | |
| General | Multiple Home Nodes | Only one should be Client; others Client_Mute | Prevents unnecessary airtime and duplicate relaying. | |
| General | Car Node at Home | Client_Mute | Avoid cluttering the mesh with redundant nodes. |
Settings summarized
| Setting / Module | What It Does | Always On? | Notes |
|---|---|---|---|
| Device Role: Router | Keeps node awake, rebroadcasts all packets | Yes | Essential for backbone nodes |
| Device Role: Client | Standard user mode | Yes | Default behavior |
| Device Role: Client Mute | Does not beacon, only sends user messages | Situational | Use for mobile nodes in dense networks |
| Primary Channel | Core channel for mesh | Yes | All nodes must match |
| Secondary Channels (Fast/MediumFast/LongFast) | Extra modulation channels | Situational | Only use deliberately; can split mesh |
| Position Broadcast | Sends periodic GPS | Situational | Too frequent updates consume airtime |
| Smart Position Broadcast | Sends only on movement | Yes | Best for network health |
| Store and Forward | Stores messages and replays later | Yes (single node) | Enable only on one fixed node |
| Range Test Module | Sends constant probe packets | Testing only | Heavy airtime usage |
| Telemetry Basic | Sends node battery/temp/etc | Yes | Minimal network impact |
| Telemetry Rapid / Debug | High-frequency telemetry | Testing only | Floods network |
| Neighbor Info (Passive) | Tracks direct neighbors | Yes | No airtime impact |
| Neighbor Beaconing | Announces node presence | Yes | Critical for routing |
| Serial Module (Data over LoRa) | Sends raw serial bytes across mesh | Situational | Only if you really need UART-over-LoRa |
| External Notification Module | LED/buzzer alerts | Yes | No mesh impact |
| MQTT Uplink | Publishes packets to broker | Yes (one gateway) | Enable only on designated gateway node |
| MQTT Downlink | Receives broker messages | Yes (one gateway) | Avoid multiple downlink nodes |
| Bluetooth | App pairing | Yes | No mesh impact |
| Wi-Fi (AP / Web UI) | Local config interface | Yes | No mesh impact |
| Detection Sensor Module | PIR/sensor event reporting | Situational | Only for sensor setups |
| Ambient Light / LED Module | LED behavior control | Yes | No mesh effect |
| Canned Messages | Predefined message buttons | Yes | Safe |
| Serial Debug Output | Prints logs to USB | Testing only | Very verbose |
| NodeDB Sync | Syncs known nodes for routing | Yes | Helps all mesh nodes |
| Routing Metrics | Reports hop SNR/RSSI | Yes | Crucial for stable routing |
| Hop Limit Setting | Max hops allowed | Yes | Default is optimal |
| PAX Counter | Counts Wi-Fi/BLE devices | Situational | Optional |
| Trickle Rate / Heartbeats | Maintains routing tables | Yes | Required for multi-hop health |
| LoRa Region Setting | Regional RF compliance | Yes | Must match physical region |
| LoRa Modulation (BW/SF/CR) | Link speed and range settings | Yes | Must match mesh defaults |
| LongFast / RouterFast Experimental | Experimental fast modes | Testing only | Breaks compatibility |
| Text Message Compression | Compresses payloads | Yes | Reduces airtime |
| Broadcast Hop Limiting | Limits mesh flooding | Yes | Protects network stability |
| MQTT JSON Output | Sends structured JSON | Yes | Needed for dashboards |
| Encrypted (e/) MQTT Topics | Raw encrypted payloads | Yes | Core protocol mechanism |
| Advertised Position Flag | Lets others know you broadcast GPS | Yes | Needed for topology |