Meshtastic

Private messaging network that can communicate over long distances without the need for a mobile network or the Internet? The ability to privately and securely communicate over long distance with friends and family, or maybe the general public in a time of need?

Or maybe you are at festival with friends with no mobile service but you need to be able to communicate, you could be out in the bush and need to communicate with others in your group?

Well, I have been playing with a project called Meshtastic that allows you to do just that! It is a project that is focused on creating mesh networks for off-grid communication and telemetry.

Meshtastic actually caught my eye whilst we were in Covid lockdown, it was one of those tech interests I wanted to play with but wasn’t allowed to leave our house to do so ;) you might think “well, we could still purchase and get things delivered during this time, why not get one back then?!” and you might have been right thinking that!

Time passed.. the worlds longest state lockdown was lifted, freedom ensued once again! w00 h00!! Then life’s usual distractions took over, not to mention my workload. I simply forgot all about Meshtastic and well.. at the time, I had no time for personal hobbies. (I soon realised that it was vital to have hobbies and interests outside of work!)

So, what reminded me of this cool project? and why now?

It was the funniest thing, I was rewatching an episode of Star Trek Voyager, Seven of Nine had just discovered a Hirogen sub space relay network that stretched into the Alpha Quadrant, a vast network of relays connecting the distant galaxy. Naturally, she hacked it and gained access. Naughty Seven lol

It got me thinking, wouldn’t it be cool to have my own independent comms network! geeky!!

Ah yes, LoRa!! Short form for Long Range Radio, a technology that has been around for a while, but.. has only recently become more accessible to the general public.

Heavily used in the IoT space for farming and utility, it is a low power, long range radio technology that can be used to create a mesh network of devices that can communicate with each other over long distances, packet radio!

Welcome, Meshtastic. A LoRa based communicator.

Before I delve into my experiences with Meshtastic, you should know, there are other projects out there that are similar to Meshtastic, such as Reticulum Network Stack with RNode and Helium LoraWAN. Each offer SMS style messaging capabilities over long distances, but they are not all the same. Oranges/Apples Apples/Oranges.. you get the idea.

Reticulum Network Stack with RNode, is a project that is focused on creating networks, including mesh networks, using commodity hardware similar to Meshtastic. In fact, you can flash the firmware for either project onto your LoRa devices and use them interchangeably.

Quick introduction to each

  • “Reticulum is the cryptography-based networking stack for building local and wide-area networks with readily available hardware. Reticulum can continue to operate even in adverse conditions with very high latency and extremely low bandwidth.” - https://reticulum.network/this

  • “Meshtastic ia an open source, off-grid, decentralized, mesh network built to run on affordable, low-power devices” https://meshtastic.org/

Core Differences between Meshtastic and Reticulum Link to heading

There are some core differences between the two projects:

Meshtastic Reticulum
Uses ISM bands Uses any medium to establish a connection
Encrypted SMS Messaging Encrypted MMS + SMS + File Transfer Capability
IP over UDP only in Alpha firmware. Low MTU possible Capability in Stable Firmware, higher MTU possible
GPS and Basic Mapping/Tracking Similar capability though not required
Firmware is Online Self Replicating building blocks available on each Rnode, enables bootstrapping mesh networks

Now you might think, “well, why not just use Reticulum then?” and you would be right to ask that question. The answer is simple, Meshtastic is more user friendly and has a larger community. It is also easier to get started with Meshtastic, as it is more plug and play.

Do not discount Reticulum though, I’m quite a fan of its SideBand app and its NoMad IRC style chat. It is a very cool project with many LXMF applications that can utilise Reticulum. I recommend checking it out as well! (In a later post I will delve into Reticulum and RNode)

My Meshtastic Experience Link to heading

RoamingNode

After playing with a few hand held portable device running the Meshtastic firmware around the house, I decided it was time to put it to the test, and our hood was the place to test drive it. Time to pound pavement!

Tip

BTW, if you are looking to procure you own devices, I got mine from eBay from an Aussy seller who ships from SA. I also purchased some kit from RakWireless, but this you will need to assemble yourself. For the HelTec v3’s as seen in the image above, you can get them from here https://www.ebay.com.au/itm/305434482017 (we aren’t affiliated)

If you do order from this awesome dude, it is best to get the extended antenna as seen in my shots, it will give you a better range.

I left a portable node running on our roof and took the dog for a walk with the other node in my backpack. I was able to send messages to the node on the roof from my backpack, and vice versa as I was walking around my local area. The range was quite impressive at times.. and then it was not that impressive at all.

Fairly certain my Husband thought I was mad “Did you get that one” “How about this one” “ARE YOU THERE?” - Yup.. I was that person lol

Sadly, I could not see any other Meshtastic users around me.. disappointing! I was hoping to see some other nodes on the network. I guess it is a bit like the old adage:

“User mileage may vary!” - isn’t that the truth!

Trace3

“Example of a trace route from my portable node to the roof top node”

After a fairly decent walk, which the dog appreciated. Results were mixed on getting a reliable message through consistently. Like anything nascent, there is a learning curve you must endure to get the most out of it.

From here the fun really began!

I started to ponder how to improve things, like a mobile network, how could I extend the reach of our rooftop so I can communicate with others out there?! The voice inside my head reminded me that I had a few things to learn yet.. Things like radio networks, signal propagation and radio field geometry.

And so it began, Google and GPT to the rescue! Ai has been VERY useful in my learning journey!

I will spare you the techno babble and just provide a super summary of my learnings, which have been trail and error from the get go! But that is how we learn right, by doing!

Summary of findings:

  • Not all antennas are made the same
  • Coax cables have loss, the longer the cable, the more loss (LMR400 is your friend)
  • Higher Gain Antennas have different field geometries or shapes
  • Antennas have a radiation pattern, some are omni directional, some are directional
  • Height is MIGHT! The higher the antenna, the further the signal will propagate
  • The Earth is not flat, it is a sphere! (I know, I know.. but..) Light of sight (los) is important with these things
  • Trees, buildings, and other obstacles will attenuate the signal
  • Australia uses ISM band 915Mhz-928Mhz (No license required for this band)

The Meshtastic Community here in Victoria, Australia Link to heading

I was pleasantly surprised to find a small but active community of Meshtastic users here in Victoria, Australia. They have been instrumental in providing advice and assisting with my knowledge building so I could enhance my base node!

A shout out to my radio neighbour Fr0gBase and ROX, thanks to these lovely gentlemen, our home node can reach across Melbourne and into rural Victoria! More on ranges in a bit. Thanks for all you help with my build guys!!

Also a shout out to the Meshtastic community and developers, you guys n gurls rock!

Evolution of Cube. The Rooftop node Link to heading

Outdoor

Welcome to my hacky asf first attempt at a roof top node!

A lunch box with holes punched through the tub for the antenna and power, sealed with bluetac :D It absolutely bucketed down that evening.. so you can imagine who was hanging out the window paranoid I hadn’t sealed the box properly :D Surprisingly, it was bone dry inside the next day!

Sadly, I was STILL not able to connect to anyone but my own nodes. Stink!

It was starting to feel like days had passed, looking at the app endlessly hoping for a contact. I was about to give up.. and then.. a message came through! It was FrogBase! I was so excited, YaY! I had made contact with another Meshtastic user!! - Just.

“IT IS OUR BROADCAST DAY!!” - w00t!

Time for an upgrade! Link to heading

PoorJob

I decided to upgrade the roof top node, make it a bit more profesh, I had to get a better antenna! A higher gain antenna! An omni direction antenna, OMG I need a Yagi!! - Yep.. as you can see, it gets addictive, especially when you are on a mission lol

A head full of ideas, I settled on an Omni directional 5.8 dBi outdoor antenna. Tuned for the ISM bands which I want to utilise for this project, ISM bands 915Mhz-928Mhz. Beaming with excitement over my new build, I posted a picture up to the Meshtastic Australia group on Facebook, it wasn’t long before the advice started flowing in.

Basically, what you see with the above install.. is a crappy first attempt, full of loss and tears..

Thankfully, the amazing and helpful advice from the facebook group helped me upgrade the components to maximise the signal strength and propagation, whilst reducing as much loss as possible. Coax cables and tin roofs are a funny things ;)

BTW, if you are in Melbourne, RadioParts in North Melbourne is a great place to get parts for your project, they are also super nice in there. Do check them out. You’ll need to get your Meshtastic hardware online though. eBay, AliExpress, RakWireless, or the Meshtastic website are good places to start.

A more efficient installation Link to heading

HomeBase

This is the final upgrade of the roof top node, a 5.8 dBi omni directional antenna, J mount to the roof, with a 1m LMR400 coax cable.

Luckily, there is a power plug under the eve of the door, a low power USB connection provides power to the a Heltec v3 node tucked safely away. Advice was to move the antennae up as high as possible (duh) and wrap the exposed metal parts with self adhering electrical tape to prevent water ingress along with the LMR400 coax cable.

The results were amazing! :o)

I was able to connect to other nodes around Metro Melbourne and into rural Victoria! w00t!!

So what was I able to see and talk too?

Here are some of the ranges I was able to achieve with the upgraded set-up:

(Keep in mind some of these connections aren’t direct, the existing mesh network around Melbourne was used to relay messages to the furtherest distances)

  • FrogBase at 5.5km
  • ROX3 at 19.8km
  • CY at 43.7km
  • DR at 64.4km
Trace2

Another trace route, now I can see my neighbours nodes, I can relay through them to gain further reach! I can talk to ROX via FrogBase, and vice versa! This is considered a “hop” when a node along the path receives your message, then rebroadcasts it to the next node in the path. The default is 3 hops but you can modify it for your needs.

Wanting to assist the cause, I handed out several of my devices to friends so they could play around and see if we could reach each other. That was indeed possible, my friends were less than 2km apart from each other and we had fun chatting on our own private channel, with one friend deciding to purchase his own. So much fun!

To date, my longest connection was 64km down to the Mornington Peninsula, again thanks to Frogbase and another node along the way!

Map

Meshtastic devices across Victoria

Message Persistence Link to heading

One thing to note is that if you aren’t reachable when a message is sent, you are unlikely to receive the message, there is a certain amount of “retry” built into the firmware, but it is not guaranteed.

ROX (Another Meshtastic user) built an app which uses a self hosted MQTT server which the Meshtastic device can be configured to send its messages to when they are received. This allows for message persistence, so if you are outta range, the message will be stored within the solution.

I took the liberty of containerising ROX’s solution to simplify deployment, you can check it out here if you wish to run it yourself. Full deployment details in the README.md at BeardBench

All messages for each configured channel can be stored in the database and consumed at a later date.

Or, you can integrate directly into the MQTT instance for real time message processing which can be outputted to a dashboard within Home Assistant

Map

Mesh-Gasms Link to heading

Buzzing with excitement, I headed down to the pub, The Catfish on Gertrude St..

Deciding to walk, I headed out with a node in my bag sending messages back to home base. About 80% of the messages made it home en-route to the pub. I was able to VPN home to access the rooftop node whilst sending messages back and forth.

Thinking it would be fun, I left the node on the table whilst I enjoyed several delicious beers and caught up with my friend (Who is yet to get one!! Yes you, hurry up :P )

Several people approached and asked about the curious device sitting on the end of the bar, the bartender even asked if it was some kind of Doomsday device. I think I LOL’d pretty hard, yes.. yes it is ha ha

There is genuine interest in this technology, after speaking with several people who seemed impressed it occurs to me it just needs to be more accessible as currently it is pretty niche. Who knows, maybe it will become more mainstream in the future. Get into it! ha ha

BaJeer

Channels and Communication Link to heading

So far we have seen screenshots of other Meshtastic nodes, their locations on a map (Usually offset for privacy reasons) and the ability to send messages to them. But what about channels?

Channels are unique in that each channel has its own encryption key, AES256 based, its pretty strong, so there is some assurance that your messages are secure as they transit the public mesh network. Let’s dive a little deeper as its relevant.

All devices have a PRIMARY channel and SECONDARY channels. ch0 is the primary channel, and ch1-15 are the secondary channels. The primary channel is the default channel that the device will use to communicate with other devices. The secondary channels can be used to communicate with other devices on different channels. Think of a channel as a chat room, the public channel LongFast is “everyone” and anything else is private chat room :)

LongFast is a LoRa Modem Preset, roughly speaking it means “Go Long and Fast” instead of say ShortFast which means short distance FASTER encoding rate (Speed). The default is LongFast, and you can only talk on one modem preset, so everyone has to be on LongFast to talk to each other.

If you are building your own network, and you only care about talking to your own devices, these presets can handle many use cases :) For now, we will just stick to the common settings.

Tip

ch0 is able to transmit your GPS telemetry data, it is a good idea when setting your device up to update channel 0 or the primary channel to a new name. Doing this turns ch0 into a private channel, it will generate a new encryption key and thus make it more secure as only you have the key. It will also protect your GPS telemetry data, so only you and your other devices you share your key with can see your GPS data.

ch1 should be set to LongFast as this will allow you to communication with the general public. They will NOT see your GPS data if you setup ch0 correctly. LongFast is considered the public channel. Everyone knows the public channel key as its the same for everyone :)

The public channel encryption key is AQ==

Conclusion Link to heading

Upgrading the home base on the roof to a higher gain antenna along with the LMR400 coax cable made all the difference. It has allowed me to connect with other users in the community and extend the reach of my network. I am now able to communicate with other users around Melbourne and into rural Victoria. Feels kinda cool extending the radio mesh for others to relay through. RADIO SHACK!

Worth a small mention, whilst I am on the road, I can stay connected to my Meshtastic node using a personal WireGuard connection to my home network. This allows me to send and receive messages from my phone to the Meshtastic network using a “split tunnel” configuration.

You can checkout my post on WireGuard here if you are interested in setting up your own private cloud network for this purpose, checkout my post NAT Sphere here -> https://beardbench.isogen.io/posts/private_cloud_vpn_on_aws_part_1/index.html

I almost forgot! I did find a cool tool by CloudRF which uses mapping technology along with topographic data to provide a sexy picture of your possible signal propagation. It is a paid service, but you can get a free trial to test it out.

CloudRFMap

Now the fun of “what else can I do with this thing” was starting to creep in. You got it, IP networking over LoRa.. But don’t get too excited, its SUPER latent and SLOW! It is possible to establish a long distance SSH connection across the radio waves, but it is not practical for everyday use.

Reticulum performs better in my view for IP networking use cases, however as mentioned earlier in this post, its a different style of routing and messaging. Also, it is worth mentioning that the MTU for Meshtastic is very low, around 200 bytes. Reticulum however has a slightly higher MTU of around ~530 bytes. This improves on throughput.

I am still deliberating on whether to setup a LoRa based BBS, bring back the old bulletin board service exclusively for LoRa users. Very niche but would fun playing with ANSI / ASCII art again not to mention playing some of those old DOOR games. Zennial much? lol #old

Well if you made it this far I must of done something right, thanks for join me on my Meshtastic journey! I hope you found it interesting and informative. If you have, grab a node and come join the fun. If you are outside of Melbourne, check out https://meshmap.net/ to see if there are any Meshtastic users in your area.

Thanks again, take care and stay safe!