Long Range Wireless Software for Arduino and MicroPython
In the process of testing LoRa boards it became clear that the available driver software wasn’t acceptable. To use the least power possible it has to support transmit and receive interrupts in a simple fashion. Nothing I found did that.
It also helps to be simple and easy to debug. In Arduino I was using the RadioHead library, which I think is very good, but it has a lot of modules and isn’t simple to debug or configure.
I decided to write my own. I found a very good Python starting point from Semtech and added interrupt handling, better transfers, and some interface improvements.
I then converted the Python code to Arduino. This way I can test in Python on an ESP32 with lots of memory and then run production in Arduino on something tiny.
The Python library is here on Github.
The Arduino library is here on Github.
Here’s a snippet showing a ping-pong test in Arduino and Micropython