During the last few days I had quite some time to play around with various long range lora modules we had laying around here.
Some of my experiments are covered in my blog articles about the e32-ttl-100
chips and the adafruit feather m0 rfm96
. For the first, I developed a golang framework to make sending packets, even with fragmentation and compression, quite easy. For the latter, I developed a radio modem firmware
, that exposes the relevant radio functions to any device connected to the serial port - similar to a classic dial-up modem.
The next steps would be to have DTN messaging via serval running over either of these technologies. For the rf95modem, fragmentation code is still missing but packet size itself is >200 bytes vs the 58 bytes on the e32 chips.
I currently see three ways to achieve this:
1. modify the highly undocumented lbard - won't work with golang, needs reimplementing - with rf95modem probably easy once lbard is understood
2. rhizome direct sync - manually pull/push and encode, use web access from go or python and serialize somehow but I could not find good documentation how direct sync works, reverse engineering with source code, curl and proxies is very cumbersome
3. use json bundlelist and rhizome http import with some bloom-/cuckoofilters - some hacking necessary but interfaces seem stable and can be done from golang or python, will probably make many mistakes you guys already have taken care of in lbard :)
I'm open for any suggestions and help :)
PS: Too bad serval is not running directly on microcontrollers such as this one https://hackaday.io/project/27791-esp32-lora-oled-module
.. it has wifi, bluetooth and a long range radio onboard :) For meshms onyl this is probably possible, I already have libhydrogen (libsodium) running on the ESP32. Pair bluetooth with your phone, use an app there and you have something quite similar to goTennas system.