My Mesh Network: Starting Out

My goal is to create a small mesh network that consists of a Raspberry Pi 3 with an Adafruit RFM69HCW breakout board or an RFM96 Radio Bonnet and two or more Adafruit Feather M0 RFM69HCW #Arduino compatible boards. This will be important to future projects I want to do in home automation and robotics.

I want to use this network for communication between sensor packages and an MQTT gateway, as well as between a Linux computer and my robots. The RFM69 boards are much less expensive than similar boards that have WiFi, and they have much better range. My RFM69 boards all use the 900 MHz ISM band. The Raspberry Pi 3, which has both WiFi and Bluetooth, will act as a gateway for inexpensive sensor modules, as well as my robots.

My first step is to verify that the two RFM69HCW breakout boards work properly. I can do this by connecting each one to a Feather M0 board that is programmed using the Arduino IDE and using this to communicate with a Feather M0 RFM69 board. I already have my two Feather M0 RFM69 boards communicating with each other using Adafruit's fork of the RadioHead library, and should be able to use the same code with the breakout boards.

I am now working on the code that will send temperature and humidity readings from one Feather M0 RFM69 board to another identical board. This will allow me to write and test the communication code that will eventually have to run on the Raspberry Pi. Once this code is completed, I will be able to start working on the Raspberry Pi side of things and port that code to #CircuitPython.

Porting code over to the Raspberry Pi will be a major undertaking, because the code I need does not currently exist for it. I will have to either extend the current Adafruit CircuitPython RFM69 library to be fully compatible with the Arduino Radiohead library, or write my own libraries for everything from scratch. At this point, I do not know which path will require the most work, but I would really like my code to be fully compatible with the Radiohead library.