Trying Out Meshtastic

10 minute read

Meshtastic isn’t amateur radio, but it’s interesting stuff done with radio, worthy of interest. It uses LoRA, but in a peer-to-peer mode rather than infrastructure mode like LoRAWAN or The Things Network. It’s more of a fit to the amateur ethos of end-to-end communication without infrastructure like cell towers, the internet or LoRAWAN gateways. There’s much in common with what APRS, a venerable 1990s technology, does, but at a far lower power, much lower hardware cost and without the need for an amateur radio licence. It uses license-free SRD bands (433MHz and 868 MHz in Europe)

What is Meshtastic?

It’s a peer-to-peer low bitrate messaging exchange system, using cheap Chinese hardware modules running low power. You aren’t going to talk over these using voice, messages are text based, and there are apps which let you use your smartphone to conect to the Meshtastic radio using Bluetooth, which does the display and text entry thing for you. This is local area text messaging; though you can use your smartphone as display you don’t need mobile network service to use this. Ranges cited are ~2km, intermediate nodes can extend the range because of the mesh network topology.

Data rates aren’t blisteringly fast, but faster than a lot of ham radio digimodes 1. The default is 0.67kbps, faster than most of us can type, not necessarily faster than you can read. You can push the data rate up to 6.8kbps for a 10dB penalty in link budget, or down to 50bps to win an extra 10dB in link budget. LoRa is technically interesting and is more sophisticated than typical ham radio narrowband modems, a good technical insight is Decoding LoRA. The spread spectrum element gives a channel bandwidth of 125kHz at least.

what does it do?

Group messaging and GPS tracking, with telemetry support possible. Very much like APRS. LoRA is great for low data rate telemetry, like measuring temperature or water levels at a remote farm location, that sort of thing. The low power means nodes can be solar powered and the mesh working can extend range on the scale of something like a farm or village. Meshtastic can provide a dumb serial channel from end to end, or you can use the messaging in the same way a lot of industrial telemetry used SMS messages. Here the mesh part of meshtastic means you can extend the network using the store-and-forward capability, where intermediate nodes can relay messages.

the hardware

Meshtastic have a high-level guide to hardware - if you are happy using a smartphone and bluetooth as your interface, you can use lower-power options. I loathe smartphones, so I went for the Lilygo TTGO T-beam which has bluetooth, WiFi, serial interfaces. Mine was the lowest TTGO of the low, the v0.7 device. I bought it cheap. Don’t make my mistake and forego the display, though you can attach one later, which was what I got to do. Make sure you get the pinout of your aftermarket OLED display right else you get to cross over some wires in assembly. The default display supplied is a 128x64 OLED display based on the SSD1306.

You really do want a display if you are going to do field tests, unless you are using a smartphone, which is display enough once you have set the hardware up and paired it.

low power drain and small size

Meshtastic has a very low power drain, it can run from a single 18650 LiIon battery for a day, and some boards allow recharging from a solar panel. This is unlike APRS, which is quite power-hungry, particularly on transmit, because it uses a FM voice channel to send the AFSK data, rather than directly modulating the data onto RF. The antenna is smaller because of the higher frequency, the whole thing can be the size of a very small handheld

software

The Android app gives you peer-to-peer messages and moving map (if you have network service, in which case you may as well use the phone itself - no network service, no maps, though messaging is fine). There’s an API to write code on the Meshtastic device itself, so you could take the location data, munge it into an APRS packet and send it to an APRS program to show maps offline, or send it to a Garmin GPS through the serial port.

Depending on the hardware support of your Mestastic device, there is a display and you can attach buttons to send one of several prepared messages, as well as display received messages.

uses

Meshtastic could be a great mix with APRS - the problem with supporting events with APRS is the need for a licenced operator in many places. Meshtastic could track unlicensed points of interest, with the mesh improving range for things like a marathon run were the objects tend to spread out over time. The licensed control operator could update these unlicensed points as APRS objects on the APRS map for a wider viewership. Meshtastic messaging could be used within the group if assistance were required, again, without mobile phone service needed, and their smartphone displays would show where the other operators were, though phone map display needs data service.

Even without any amateur radio APRS involvement, an outdoors activity group could have a control point aware of the spread of the group members even in places without phone coverage, because the meshtastic Web client can support WMS, so local maps are possible on a laptop.

Experimental results

I set up a pair of 868MHz T-Beam 0.7 Lora units straight out of the box with stock antenna and with Meshtastic 2.0.6.97fd5cf/ Version 2 has only been out for a month at the time of writing, so it’s a little bit bleeding edge. The web flasher using Edge or chrome via the serial port presented to USB worked great. The web client worked okay via bluetooth from a PC and on serial, but neither allowed me to set up the WiFi port to join my network. I had to use the Windows Python client via serial.

You can only download files via WiFi like the results of range test. I had to enable range test on both units, and save on the static one. I am not sure that the base would have got anything if just the base has range test on and save to file. No idea how to delete the range test file, but that’s the bleeding edge for you. With the outstation in a cardboard box in a backpack I went for a walk to see how this worked. Every other ping is shown. This is because I set the GPS update to 120s and the ping to 60s, I would have been smarter to set the GPS update to 30s, because with my setting every other position if duplicated.It’s not bad for straight out of the box with the stock antennas.

I got comparable results to the APRS over PMR446 experiement, though I’d say Meshtastic did a better job at the edges of the range. Given that I haven’t tried to optimise this, I would class this as a success. I only have two units, so this is end-to end- not using any of the mesh capabiity. It would be interesting to see what happens if I drop a third unit in the fork of a tree to see if the range extends.

Although I’ve groused that a smartphone is a power hog and unfit for emergency situations, the app is handy in the field:

Meshtastic app

as well as showing the range test packets it does messaging reasonably OK. I determined there’s probably a 255 character limit to the messages, there was only so much Coleridge the app was prepared to relay in one go. You don’t get any pushback if you exceed this, the message just doesn’t happen. 255 characters is more than SMS, so it will be fine in practice, as long as you aren’t copy/pasting long screeds.

I haven’t put any work into optimising these at this stage - I bought some 868MHz antennas for a separate LoRa test. These are twice as long, hopefully collinears rather than just the wrong length. The stubbies that came with the module would be ¼ wavelength whips, but I note some of the American tests on 915MHz use longer antennas. Take a look at KI6NAZ in this video which is a great overview of Meshtastic. He is using longer antennas than ¼ wl

Meshtastic and APRS

The UK Amateur licence conditions are restrictive with regards to third-party traffic. However, Full licensees can use (section 10) links such as Meshtastic to extend (remote control) their own APRS station, the encryption and security part of Meshtastic supports only the licensee accessing the station. Foundation and Intermediate licensees can only use amateur bands for remote control, so they would probably be wiser to go directly to using LoRa-APRS on 433.475 MHz from the outset.

So Meshtastic could be a low-power way for a (Full) licensed Amateur hiking2 to reach a mobile 2m APRS rig in the car, using its greater power and better antenna to get the APRS signal out without carrying the weight and size of a 2m rig and antenna. They could receive APRS signals and APRS messages from the mobile rig, as well as telemetry. However, you don’t have to use Meshtastic - the same T-beam hardware can support LoRa APRS directly.

LoRa APRS digression

If APRS over LoRA is your specific application, you can get a dedicated APRS tracker using much the same hardware at the lora-aprs project - you will need to specify the 433MHz boards to operate in the 70cm band. According to LoRa APRS use frequency: 433.475 MHz spreading factor: 12 signal BW: 125kHz (!) coding rate: 5 which is compatible with the IARU-R1 VHF handbook3 despite the unusually large 125kHz channel. I may play with this using a 433 MHz T-Beam to see how much LoRa-APRS traffic there is in the region. A map of LoRa APRS stations shows that at the time of writing there aren’t many LoRa iGates in the SW region.

LoRa APRS current limitations are:

  • it’s not built into your voice handheld (yet)
  • there is no carrier sense mechanism in LoRa so digipeating is verboten/deprecated. This implies only one hop to reach a LoRa APRS iGate, and unlike Meshtastic intermediate nodes can’t fill in
  • there is more than one APRS LoRa encapsulation4 with different strengths and weaknesses
  • APRS messaging is poorly supported5.

a similar project, disaster.radio

disaster.radio is another project, somewhat more along the prepping line. They look a little bit behind Meshtastic in development, but not incredibly so. Similar hardware requirements, but they need the Lily TTGO v2 board so mine is incompatible. Functionality seems slightly lower, but the project lost me when their main interface to the device seemed to be a smartphone in the video. You may be able to power the radio network off the sun

a disaster-resilient communications network powered by the sun

but your end users are stuffed, because a smartphone is a power hog just not optimised for disaster power scenarios. That’s fair enough, because it’s trying to do a lot more. My prejudice against the smartphone stands ;) But in fairness they have some good ideas and perhaps you can get a basic RS232 LCD terminal onto the serial port of their device. They have given more thought to a city-wide deployment so if that’s your use case this may be a good way to go.

  1. See FLDigi modems starting here

  2. If you’re hiking to the summit, then naturally your HT will have much better APRS coverage than your car mobile. But not all hiking groups are SOTA ops, and the unlicensed aspect of Meshtastic has a lot of promise for family groups out of mobile coverage. It would be possible to pick off the location of the licensed operator at the car device and put that out on APRS, for example. APRS messaging would also be possible, if you write the code. Meshtastic can run up to 8 discrete messaging channels - the primary one goes to everyone in the mesh, so APRS could use one of the other channels. 

  3. Specifically discussed in LORA frequencies for APRS on 433 MHz IARU-R1 group C5, VIE19 C5-015, April 2019 

  4. another variant is APRS434 

  5. A Full Licensee who wants to retain two-way APRS messaging fuctionality over LoRa would be better off wormholing a link through Meshtastic to remote access their APRS station, as two-way messaging doesn’t currently seem to be supported in LoRa APRS