Meshtastic (Part 1)
Since my teenage years where I dreamed up 'OttoNet' (long story, don't ask), I've always liked the idea of mesh-based communication that is resilient / decentralised. While short-range mesh systems have existed for many years, something that is long-range with cheap hardware was destined to have an appeal. Enter Meshtastic, a take on LoRa that can provide messaging (and sensor telemetry) at a distance.
From a device perspective there are plenty to choose from, from the very popular (and tiny) Heltec v3, the Station G2 (for a high-power base station), through to the T-Deck (a device reminiscent of Blackberry with some experimental firmware). In my case, the last two seemed good choices to start with.
So, the T-Deck, a device that by default has an 'interesting' firmware. For those that love a CLI (or something that resembles a unix terminal), then this would fit right in. Alternatively, with some compilation and patience the experimental UI firmware can be built / uploaded and you can have an experience from this century. While still very alpha, it is usable and is definitely more enjoyable.
It took a few attempts to get the firmware building correctly, but once sorted I had a usable device that could send and receive message. Hopefully the firmware continues being worked on and additional functionality is added.
Turning my attention to the Station G2, things were significantly easier. Firmware for this device is present on GitHub and is ready to go. Interfacing with it over both serial and WiFi worked fine, and the construction of it looks really good. This device (or rather another one of the same model) is going to be my base station.
So with two ready-to-go devices and some serious enthusiasm, did the testing go great? In a word, no... In the space of a week my eagerness (and my ego) took a serious beating. A faulty device on delivery you may ask, that would be a no. As it turned out, being eager and rushing is seldom a good idea, and in some cases, costs your pride (and your wallet).
In the world of radio equipment there are many connectors, ranging from a millimeter in size through to the better part of an inch (and that's just for standard equipment). One of the golden rules with all connectors is to ensure you have the correct polarity, or in easier terms, male or female. As it happens, the SMA and RP-SMA connectors look identical at a quick glance, however upon closer inspection you find that one of them has a centre pin while the other doesn't. Sadly in my instance I didn't check properly and connected an antenna without a pin...
The result of this mistake, multiple days of confusion (trying to determine why G2 could receive messages from 100 meters away but seemingly couldn't send any), and a blown radio/device. Lesson learned, don't rush! Thankfully with a replacement radio and the right connector, service was resumed (and about 40 more devices were found, what a difference a connected antenna makes!).
Speaking of antennas, the documentation around Meshtastic is definitely accurate. Having a decent antenna is a good idea, but its placement makes all the difference. In my own environment, placing the same antenna at ground level vs placing it on the roof is the difference between seeing nodes within half a mile to being able to relay to nodes in East London. 868MHz really doesn't like obstructions.
To further improve connectivity a cavity filter was also added into the mix, which from initial testing has significantly improved my SNR. While too large to fit to a handheld / portable device, for fixed stations (especially those in built-up areas) it makes a positive difference.
From a bandwidth perspective, Meshtastic is interesting... There are different configurations you can use which allow you to trade distance for speed, however you do need to consider that you can only communicate with nodes using the same bandwidth setting. For my area the LongFast profile appears to be the one of choice, however there are mutterings of switching to MediumFast to improve performance (while reducing range by a fractional amount).
I've also been busy creating some Python that provides a few functions around this, including a secure message relay (for when I don't have the T-Deck on me or am out of range). Thanks to the existing module (the same one used by their CLI) it's simple to interface with a device / send / receive etc. It's nice to see a few examples of people creating a BBS that runs over the Meshtastic network (a flashback to my childhood), and I may end up running one of them myself.
There is definitely more to come, and now that I have an enclosure populated with the parts (they just need fitting up high), I'm looking forward to getting properly connected. I also have a prototype device graciously sent to me from a European Ham Operator that I need to get ready for deployment (I have high hopes for this).
Until the next update ;)