Getting started with Meshtastic¶
Getting started with running a Meshtastic relay is easy. You need to buy some hardware, install an app, and tweak some settings.
Question
We are currently reconsidering the use of Meshtastic across the Montreal mesh. Right now, there are dozens if not hundreds of devices, but no one can seem to speak with anyone. There's mostly noise, and some believe we have grown past the scalability of Meshtastic.
We are now focusing on building Meshcore infrastructure, see our Getting started with Meshcore guide instead.
You can expect to communicate through text with other relays within a few kilometres without even setting up a special antenna or location.
Warning
Meshtastic exposes your location by default on devices which have
a GPS device! Make sure the Position precision is reduced or
set the GPS Mode to DISABLED.
Tip
Also keep in mind that the hardware address of devices is used routing in Meshtastic. Every message from a device includes that address which is unique and cannot be changed, see this feature request for details. This is a bit like IMEI identifiers on phones. Meshcore and Reticulum do not suffer from this issue.
Hardware¶
Pick a device in our hardware review notes or the official hardware list.
It's cheap! Expect to pay 50$CAD for a starter kit, 150$CAD for a decent solar relay.
Tip
If the device you picked comes with a removable antenna, make sure you connect the antenna before powering up the device. A radio that transmits without an antenna can damage itself!
Software¶
Once you have some hardware, you need to operate it. Typically, you download an app on your phone (Android, iOS) and control the device over Bluetooth or a USB cable. Some devices can also be controlled over WiFi or wired network. There is also a command line client, a web client, and lots more.
You might need to flash firmware on the device, which requires connecting the device to your computer (or phone?) and running a Chrome-derived web browser.
More projects are also documented in our software index.
Settings¶
This section describes various settings we advise in the Meshtastic app.
Info
The two settings below are crucial to connect to the mesh. If those are not configured properly, you will not be able to talk to anyone else.
| Setting | Value | Note |
|---|---|---|
| Modem preset | LONG_FAST |
default, don't change it (for now) |
| Region | US |
even though we're in Canada, pick the US preset because those are the frequencies (902.0 - 928.0 MHz) that apply here as well |
Optional
Those settings are optional, but recommended.
| Setting | Value | Note |
|---|---|---|
| Bluetooth: PIN | (random) | change the default PIN to some random value and keep it in your password manager |
| Device: Role | CLIENT |
consider CLIENT_BASE if you run a relay, don't change the role without reading the Choosing The Right Device Role guide |
| LoRa: Ignore MQTT | true |
this keeps traffic from the wider mesh from entering the network and reduces overall noise. |
| LoRa: Max hops | 3 | default. you can raise this if you really think it might help you reach further, but we generally advise against it |
| Position: GPS Mode | DISABLE |
or reduce the Position precision in the Channel configuration, otherwise you leak your position to the network by default1 |
| User: "Short Name" | (arbitrary) | only 4 characters, set to something easy to remember, this is what's visible on the map and chats |
| User: "Long Name" | (arbitrary) | set to something useful, but not offensive, ham operators can set their call sign here |
Advanced: batch configuration¶
If you feel adventurous and want to make the above configuration
easier, you can use the following YAML file -- let's call it
minimal.yaml -- for the minimal configuration:
config:
lora:
region: US
modemPreset: LONG_FAST
This can be loaded with:
meshtastic --configure minimal.yaml
Then, the "recommended" settings (above) can be configured with the
meshtastic command again:
meshtastic --set bluetooth.fixedPin 123456
meshtastic --set bluetooth.mode FIXED_PIN
meshtastic --set lora.hopLimit 3
meshtastic --set lora.ignoreMqtt true
meshtastic --set position.gpsMode NOT_PRESENT
meshtastic --set device.role CLIENT
meshtastic --set-owner "you only live once"
meshtastic --set-owner-short yolo
Bug
Note that the order of commands matter here. Some configuration,
like device.role CLIENT will reboot the device, and will make
further commands fail. That is why the setting is last here. Using
a config file solves that problem entirely, as all settings are
set at once.
Tip
You should really set a random PIN here, not 123456, because that is the stupidiest combination ever. You can generate such a "random" pin with:
shuf -i 100000-1000000 -n 1
Also please change away from the "yolo" user above, otherwise we'll get confused quick as yo who "yolo" is.
This can of course also be done in a configuration file that we'll
call recommended.yaml:
config:
bluetooth:
fixedPin: 123456
mode: FIXED_PIN
device:
role: CLIENT
lora:
hopLimit: 3
ignoreMqtt: true
position:
gpsMode: NOT_PRESENT
owner: you only live once
owner_short: yolo
Tip
Note that you can set the CLIENT_BASE role as well but your meshtastic
command might not know about it so you need to specify it as an
magic number:
meshtastic --set device.role 12
Once you're done, you might want to backup your configuration with:
meshtastic --export-config > backup.yaml
-
Note that setting it to
NOT_PRESENTwill also improve boot time on devices without GPS. ↩