long range radio communication, lbard and rhizome direct sync

42 views
Skip to first unread message

Lars Baumgaertner

unread,
Jan 24, 2018, 9:47:33 AM1/24/18
to Serval Project Developers
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.

Paul Gardner-Stephen

unread,
Jan 24, 2018, 6:01:51 PM1/24/18
to Serval Project Developers
Hello Lars,

How big exactly aree the packets on the rf95modem ? 200+ bytes should allow for very easy integration with LBARD.  We have a PhD student and soon a couple of French students working on LBARD, so we can help with the integration.  Ghassan (our PhD student) can probably also provide you with information to help add it to LBARD if you want to do it yourself, as he is working on the Codan and Barrett HF radio support.

Putting MeshMS on the ESP32 is certainly an interesting idea, and one that we would be very supportive of.  The LBARD protocol is also fairly tolerant of high latency, so you could even just make it a BT attached radio modem, can collect its received packets every couple of seconds, without a big problem.

Paul.

--
You received this message because you are subscribed to the Google Groups "Serval Project Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email to serval-project-developers+unsub...@googlegroups.com.
To post to this group, send email to serval-project-developers@googlegroups.com.
Visit this group at https://groups.google.com/group/serval-project-developers.
For more options, visit https://groups.google.com/d/optout.

Lars Baumgaertner

unread,
Jan 25, 2018, 4:29:34 AM1/25/18
to Serval Project Developers
Hey Paul,


On Thursday, January 25, 2018 at 12:01:51 AM UTC+1, Paul Gardner-Stephen wrote:
Hello Lars,

How big exactly aree the packets on the rf95modem ? 200+ bytes should allow for very easy integration with LBARD.  We have a PhD student and soon a couple of French students working on LBARD, so we can help with the integration.  Ghassan (our PhD student) can probably also provide you with information to help add it to LBARD if you want to do it yourself, as he is working on the Codan and Barrett HF radio support.

The radio itself reports a maximum message length of 251 bytes on the radiofruits. I didn't check the radio on the esp32 yet. During my tests I often had problems when sending packets with the maximum length, I got better results sending only 220 bytes or something like that. If there where a clear interface in lbard to add new modems than I'd probably add it myself otherwise it will be much faster if your guys will do it. Tell me if you need any help with the rf95modem firmware or require other features, currently it is tied to the cheap adafruit feather m0 lora modules but it will probably work just as easy on the esp32 oled lora wifi 32 modules (<$20 for antenna, ESP32, display and radio :)).
 
Putting MeshMS on the ESP32 is certainly an interesting idea, and one that we would be very supportive of.  The LBARD protocol is also fairly tolerant of high latency, so you could even just make it a BT attached radio modem, can collect its received packets every couple of seconds, without a big problem.

Well the idea would be to have the esp32 running on its own, connected via BLE to the phone to preserve phone energy. So the phone can receive a notification when anything relevant such a message for the user arrives, everything else (msgs for other users, announces, sync etc.) is handled by the microcontroller.

-Lars
 

 

On 25 January 2018 at 01:17, Lars Baumgaertner <gei...@gmail.com> wrote:
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.

--
You received this message because you are subscribed to the Google Groups "Serval Project Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email to serval-project-developers+unsub...@googlegroups.com.
To post to this group, send email to serval-proje...@googlegroups.com.
Reply all
Reply to author
Forward
0 new messages