Meshtastic

Here’s a short post about my experience diving into meshtastic.

I’ve recently begun experimenting with Meshtastic nodes. Meshtastic operates in the non licensed 900MHz band, which allows for non-licensed people (HAM) like myself to get into basic radio operations and experimenting with RF meshing, in this case primarily texting and location sharing. The greater Seattle area has a large footprint in the meshtastic scene, as well as the licensed WAN over HAM mesh networks known as AREDN and HamWAN. The former being a bit more popular nationally, while the latter seems to be relatively localized to the PNW.

With such a large community centered around HAM and non HAM RF projects, it seemed like the easiest place to start before I consider taking my license exams. I quickly found a group local to the Seattle area specific to running and operating Meshtastic nodes around the state, obviously with most members residing in the Western Washington region. Working near Everett, WA I have been able to connect to hundreds of other meshtastic nodes, with my longest acknowledgements ranging about 30 miles off grid over the 900MHz band, and longest received contacts going out to Vancouver, Canada. Exciting stuff!

Being able to communicate independent of any internet provider or phone carrier at ranges over 30+ miles sounds cool, but in practice it is not as easy as it sounds. For example, I may be able to see that node out near Vancouver, but it would be unlikely that I could transmit back to that node given the distance, environmental factors (rain for example, will have measurable affect on LoRa frequencies), and amount of hops necessary. Meshtastic has an algorithm that will determine the lowest hop count towards an intended recipient or channel, but in practice and in simulation, there is diminishing returns while also balancing RF saturation from individual nodes in the mesh network. Hops can be adjusted, and from anecdotal evidence, increasing the default hop counts in your node firmware does generally help your packets reach further nodes than it would have otherwise, but this is limited in firmware (3 hops standard, 7 hops max in firmware).

LoRa / Meshtastic systems that operate on these low bandwidth bands are at a disadvantage to your normal high power RF that is typically seen in HAM environments, but it’s also the reason we aren’t required to test for a license. Due to these limitations, Meshtastic greatly benefits from proper line of sight, and a mature network of meshing nodes in the area. This is something I have found parroted over and over throughout Reddit, Discord, and around the net in general. If you already have a meshtastic node in your house, place it outside and watch your device metrics, I see quite a large uptick in channel utilization when the node is placed outdoors compared to my window sill in the office.

When starting out, I wasn’t quite sure which device I wanted to purchase, but eventually landed on the RAKWireless offerings for a few reasons 1. The power consumption outperforms most ESP32 based devices, they just aren’t as power efficient as nRF based devices, such as the RAK 19007 baseboard and RAK 4631 LoRa / BT module that comes with the kit. 2. The 19007 baseboard seems to be the perfect blend of future customization. They supply tons of different modules for these boards, allowing for GNSS, environmental sensors, etc, however they are all optional and can be purchased separately, and the solution isn’t hacking up GPIO pins like a RPi, but rather clean module to board to slotting that connects up the data bus. 3. These boards are shipped with passthrough battery charging as a feature, as well as a JST male pinout for solar panels in addition to the already existing battery cell pinout. There’s other features as well, but I think the above features are the most important to someone looking to get started. Modularity doesn’t lock you into a specific configuration or pricing, and with the inclusion of passthrough charging as well as 5V solar panel support, long uptime is easily obtainable through both battery cells and solar charging. These units operate in the 3.7v to 4.2v range with 3000mAh battery cells powering these devices for up to a week, even longer if solar is recharging or a larger cell is used.

Once I received my RAKWireless starter kits (I purchased x2 and recommend everyone to do the same, otherwise testing will be a headache), I quickly realized there was some upgrades I would want immediately. One of which being an upgraded 900Mhz antenna for the units, battery cells to operate the nodes cable free, and the starting pieces to my base station node that I intend to hoist to a PVC mast in my backyard at some point. I had planned on 3D printing a case for my handheld unit, but unfortunately have been fighting my aging Ender 3 to print something usable, so I opted to buy the same design from an Etsy seller for $30, and it even came with extra hardware for the case. I would say the upgraded antennas have made the most the difference, I purchased “10dbi” (this is simply not true, and likely is closer to 4dbi range if I had to guess) whip antennas from Amazon, and despite the (common) false specifications, reviews with VNA testing showed that these antennas were tuned to the 900MHz range quite well, making it more ideal for the application. The stubby antennas included just didn’t have the reach I needed, and swapping them out made an immediate difference in RF utilization and contacts received from the surrounding area at my home. This is all generally inside of less than optimal environments as well, being that all of my nodes currently sit in a window sill, instead of the roof or a mast.

Once I had both of my nodes up and running for a few days, my device mapped out hundreds of node contacts, as far east as Bremerton and as far south as the S. Seattle area. With the current infrastructure in place, areas past Tacoma look to be quite empty, and there’s not too much going on past Marysville, but there are a handful of nodes that run all the way up to the Canadian border near Ferndale. You begin to see the increase in contacts as you reach population epicenters mostly. That is a concentration of nodes in Portland Oregon, Seattle Washington, and Vancouver Canada. Everywhere else seems to mostly be locally maintained and focused meshing. For example, there’s not many nodes in Everett and most live RF communications is spilling over from well placed nodes between Seattle and myself. With the work of the public pugetmesh group, they have set up quite a few strategically placed routers for the mesh network, providing a great benefit to our connectivity to the surrounding cities and towns, even if communication at this point is mostly one sided (as mentioned before, bad positioning and lack of line of sight hurt your capabilities a ton). It was not for a few days that I was able to communicate with anybody that confirmed they were local to my area, but I think this is largely just a population / interest issue rather than technical problems in addition to the placement problems.

In the next month or so, I hope to increase my own coverage of Everett with the outdoor node plans, which by nature will improve my connectivity to the Seattle area as well. It’s a bit boring when you’re hearing bits and pieces of the conversation, but you can’t communicate back out to other nodes consistently because your setup isn’t optimal.

As a fun sidenote, I was able to quickly setup my meshtastic nodes to integrate into ATAK-Civ, a civilian edition of the team awareness kit tool for android. This is an application that is commonly used with high power RF in the military for for secure team communication, location sharing, and much more through a simple interface that makes use of the existing RF infra backbone. While I’m not exactly sure what I’m missing from the .gov version of the TAK systems, ATAK-Civ can integrate your meshtastic nodes with the official plugin. When you’re working with a team, or going hiking for example, meshtastic can excel at these shorter ranges where cell towers can’t easily cover you in remote environments. You can receive accurate and quick GPS updates independent of any network, and can communicate via map marking tools and in-app chatrooms in addition to the basic texting that the official Meshtastic app offers. Let’s say you had a small node on your dogs collar hiking through the mountains, if your dog were to go off trail, you now have the capability to track your pup through the woods at a decent range, all whilst receiving telemetry on their location as long as your nodes are within a couple miles of each other. This alone is all possible within the basic meshtastic app, but when integrated with ATAK-Civ you receive quicker GPS updates (ATAK increases GPS acquisition rates), you could send a grid square, draw a radius around your dogs last reported location, and even add a photo of the dog. You could then send all of that information as a data package to your team which would then appear for everyone setup on your mesh / ATAK. The low power consumption makes Meshtastic perfect for these scenarios and it keeps you in control of your infrastructure / data.