Mesh! Most journalists in our industry have at least one favorite technology that never caught on as expected. Hypersonic passenger aircraft, deep-sea thermal energy plants, chord-playing keyboards—they all have their enthusiasts who jump at the chance to cover their passionate interest. For me, it was mesh wireless systems. I first became fascinated with them while driving around downtown Las Vegas in 2004. In the days before smartphones and practically before 3G, I was testing a mesh network deployed by a local startup, downloading files from my moving car at a then-incredible 1.5 megabits per second. Clearly, mesh and its ad-hoc, distributed digital architecture was the future of wireless communication.
Unfortunately, 20 years later, mesh networking has been slow to replace traditional wireless systems. It made small appearances with things like the Zigbee wireless protocol for the Internet of Things, and in recent years it has become common to extend Wi-Fi networks with mesh-based products like Eero. But I don’t think the technology has yet reached its full potential, which is why I’m excited by the emergence of the open source Meshtastic protocol and the proliferation of maker-friendly hardware around it. I just couldn’t resist trying it out for myself.
Meshtastic is built on the increasingly popular LoRa (long range) technology. This technology uses spread spectrum techniques to transmit low-power, low-bandwidth signals over unlicensed radio bands at distances of up to about 10 miles (in perfect conditions). The exact frequency varies by region, but ranges from 863 to 928 megahertz. You won’t be using the Meshtastic network for 1.5 Mbps downloads or voice communications; however, you can use it to exchange text messages, location data, and more, even in the absence of other communications infrastructure.
Standalone Communicator [bottom of illustration] You can order it pre-assembled or build it yourself from open source design files. The RAKwireless Meshtastic development board is based on plug-in modules such as carrier boards, environmental sensors, I/O expansion boards, wireless modules, OLED screens, LoRa and Bluetooth modules. James Provost
To test text messaging, I bought three HelTXT handheld communicators from Tindie for $85 each. They’re essentially a 3D printed enclosure housing a battery, keyboard, small screen, ESP32-based microcontroller, and LoRa radio. My initial plan was to scatter a few fellow IEEESpectrum editors around Manhattan to get a sense of the range of the handhelds in a dense urban environment. By toggling the intermediate device on and off, I would demonstrate relaying signals between handhelds that would normally be out of range of each other.
This plan became moot within minutes of powering up the handheld, as my test “hello” transmissions were met with an unexpected “hey” in return. The handheld’s default settings were set to operate on the public channel, and my test message was received by someone with a Meshtastic setup about 4km away across the East River. I then noticed that the handheld had found a number of other Meshtastic nodes, including one 5km away on the southern tip of Manhattan. Clearly range would not be an issue, even with a forest of skyscrapers blocking the horizon. In fact, given Meshtastic’s apparent popularity, it would be impossible to test the communicator alone! (Two Spectrum editors live in Minnesota, and would love to see them try a range test with fewer Meshtastic users per square kilometer.)
I turned to my next test idea: exchanging real-time data and commands over a network. I bought the $25 WisBlock Mesh-tastic Starter Kit from RAKwireless, which is a combined LoRA radio/microcontroller and expansion board. The board can be equipped with a number of cleverly designed, inexpensive plug-in hardware modules, such as sensors and displays. The radio has both LoRa and Bluetooth antennas, and there’s a handy smartphone app that relays text messages through the radio using the Bluetooth connection and configures various settings. You can also configure the radio using a USB cable and a Python command-line interface program.
In addition to basic functionality such as establishing a private encrypted channel, you can enable several software modules in the firmware. These modules are designed to perform common tasks such as periodically reading and transmitting data from a connected environmental sensor plugin. Perhaps the most useful software module is the serial module, which allows the Meshtastic hardware to act as a gateway between your wireless network and a second microcontroller running your own custom IoT application, communicating over a two- or three-wire connection.
The Meshtastic protocol has undergone significant evolution: in earlier systems, any node that heard a broadcast would rebroadcast it, causing local congestion. [top row]But now signal strength is used as a proxy for distance, so nodes that are further away will broadcast first, and nodes that hear a broadcast twice will not rebroadcast it, reducing congestion. [bottom row]James Provost
For my demo, I connected a button and LED to an Adafruit Grand Central board running CircuitPython (I chose this board because its 3.3 volt level is compatible with the RAKwireless hardware). I programmed Grand Central so that pressing the button would send an ASCII encoded message over the serial connection to the RAKwireless radio, and would light up the LED if it received an ASCII string containing the word “btn”.
On the radio side, I used a plug-in I/O expander to connect the serial transmit and receive wires. The tricky part was mapping the pin names labeled on the adapter to the corresponding microcontroller pins. When I set the receive and transmit pins on the serial module, I need to know the microcontroller pins because I don’t know how to set them on the adapter. But after flipping through a few pages of documentation, I finally found the mapping.
When I pressed the button connected to the Grand Central microcontroller, “button down” instantly appeared on the handheld communicator. I then sent a “btn” and the LED lit up. Success! Now that this proof of concept is complete, you can do almost anything else.
Will manufacturers building applications on top of Meshtastic bring about the mesh resurgence that I’ve been waiting for? As more talent gets involved, I’m hopeful that we’ll see some unexpected use cases that support the benefits of mesh more than my fanciful arguments.
From an article on your site
Related articles from around the web