Hello! It's been many months since the last update on this site, and events around the world such as those in Myanmar have underlined the importance of decentralized and off-grid communications that are resistant to attempts by a state to stifle communications.
Recently Neighbor Table functionality was added to the codebase for relay nodes, the latest code is avaliable in the development branch here: https://0xacab.org/radical-comms/mycelium-mesh
Current Status:
- Presently the project is targeting ESP32+Lora nodes, widely avaliable on eBay, Banggood, Aliexpress, ETC.
- In particular I am building and testing on LilyGO TTGO T3 V1.6 modules, they consist of an ESP32, LoRa transceiver, and oled screen
- Previous range testing performed in 2017/2018 using different LoRa modules showed promising range of ~42 Kilometers(26 Miles) with line-of-sight.
- I am writing the code for the Mycelium Nodes in C/C++ and building/flashing it using Espressif IoT Development Framework (ESP-IDF)
- On first boot a Mycelium Node will generate keys for itself and sets up a transmitted packet counter to keep the Nonce on all transmitted packets unique (ChaCha20-ietf is used for symmetrical encryption on the Network Layer).
- The first packet type "netMGMT_rxHello" has been created, nodes will periodically broadcast these messages as well as receive them from other nodes. This information is used to build a neighbor table of all neighbors the node can hear.
- The neighbor table is continuously being analyzed and when the dead timer for a neighbor reaches zero that neighbor is removed from the table.
First Next Steps:
- Clean up the code and work exception handling into the code
- Improve documentation to allow the project to be more easily worked on collaboratively.
- Build better functionality for displaying neighbors and other detail on the OLED screen (important for field tests)
- Add a packet type and develop the logic for broadcasting and propagating text messages using the neighbor table to ensure all neighbors have acknowledged reciept of the message (and if not, retransmit after a waiting period).
- Conduct field testing (previous lora range tests were performed in late 2017 on heltec modules)
Project Needs:
- Collaborators! Particularly C++ Coders for developing Mycelium Mesh Node code and Android Developers for developing the phone messenger portion. Other collaborators are needed as well such as testers, documenters, folks who can perform secure code reviews, etc. People who are passionate about wireless network protocols and brainstorming how to make Mycelium Mesh Attack-Resistant, Low-Power, Secure, Etc. If you're interested in collaborating please contact: mycelium-mesh@riseup.net
Some images from testing below: