As the top dog RFM libraries like the LowPowerLab RFM69 library by Felix Rusu and the RadioHead library by Mike McCauley used to work best on the AVR, this is currently the most stable variant implementing such a gateway. All implementations showed here have these attributes in common:
Send radio messages from the sensor node
Receive radio messages on the gateway side
Forward them to the UART interface of the AVR
Receive messages from the UART interface on a SoC machine
Translate and forward them to TCP/IP, preferably by publishing them to the MQTT bus
We are using the BERadio C++ library to serialize radio message payloads on the MCU side and decode them on the SoC side using its counterpart BERadio Python, which translates and forwards them to the MQTT bus. The JeeLink is plugged into a RaspberryPi SoC machine.
The “Generic firmware” can be used on the sensor node as well as on the gateway side. For some documentation about it, see also:
JeeLink
The most simple thing is to use a JeeLink USB dongle:
However, it is possible to solder a corresponding HopeRF RFM95 (LoRa) module. This is what we are actually using at one of our sites. See also:
Do-it-yourself
You can achieve similar things by building the same on a breadboard or using custom soldering.
LinkIt
The “LinkIt Smart 7688 Duo” is a promising platform as it combines a MIPS MPU with a WiFi module running a full fledged Linux with an AVR MCU, see:
Using this, we can get rid of the Raspberry Pi as a gateway machine.
In 2021, Felix Rusu discovered a flaw within his venerable lowpowerlab/RFM69 library, and reported about the observations, investigations, and the corresponding fix for setPowerLevel() on HW/HCW radios.