See the Wiki for further information. See the GitHub Pages for detailed and up-to-date API reference.
RadioLib allows its users to integrate all sorts of different wireless communication modules into a single consistent system. Want to add a Bluetooth interface to your ZigBee network? Sure thing! Need to connect LoRa network to the Internet with a GSM module? RadioLib has got your back!
RadioLib was originally created as a driver for RadioShield, but it can be used to control as many different wireless modules as you like - or at least as many as your Arduino can handle!
- CC1101 FSK radio module
- ESP8266 WiFi module
- HC05 Bluetooth module
- JDY08 BLE module
- nRF24L01 2.4 GHz module
- RF69 FSK/OOK radio module
- RFM9x series LoRa modules (RFM95, RM96, RFM97, RFM98)
- SX127x series LoRa modules (SX1272, SX1273, SX1276, SX1277, SX1278, SX1279)
- SX126x series LoRa modules (SX1261, SX1262, SX1268)
- SX1231 FSK/OOK radio module
- XBee modules (S2B)
- MQTT for modules: ESP8266
- HTTP for modules: ESP8266
- RTTY for modules: SX127x, RFM9x, SX126x, RF69, SX1231, CC1101 and nRF24L01
- Morse Code for modules: SX127x, RFM9x, SX126x, RF69, SX1231, CC1101 and nRF24L01
- AVR - tested on Uno, Mega and Leonardo
- ESP8266 - tested NodeMCU and Wemos D1
- ESP32 - tested on ESP-WROOM-32
- STM32 - tested on Nucleo L452RE-P
- SAMD - Arduino Zero, Arduino MKR boards, M0 Pro etc.
- SAM - Arduino Due
- nRF52 - Adafruit Bluefruit Feather etc.
- Intel Curie - Arduino 101
- megaAVR - Arduino Uno WiFi Rev.2 etc.
The list above is by no means exhaustive. Most of RadioLib code is independent of the used platform, so as long as your board is running some Arduino-compatible core, RadioLib should work.
- SIM800C GSM module
- LoRaWAN protocol for SX127x, RFM9x and SX126x modules
- and more!
First of all, take a look at the examples and the Wiki - especially the Basics page. There's a lot of useful information over there. Also, you should check out RadioShield - open source Arduino shield that will allow you to easily connect any two wireless modules supported by RadioLib!
The fastest way to get help is by creating an issue using the appropriate template. It is also highly recommended to try running the examples first - their functionality is tested from time to time and they should work. Finally, RadioLib is still under development, which means that sometimes, backwards-incompatible changes might be introduced. Though these are kept at minimum, sometimes it is unavoidable. You can check the release changelog to find out if there's been such a major change recently.
Start by creating new issue (if it doesn't exist yet). If you have some experience with Arduino and C/C++ in general, you can try to add the support yourself! Use the template files in /extras/
folder to get started. This is by far the fastest way to implement new modules into RadioLib, since I can't be working on everything all the time. If you don't trust your programming skills enough to have a go at it yourself, don't worry. I will try to implement all requested modules, but it will take me a while.