One radio library to rule them all! Universal wireless communication library for embedded devices: rtty, sstv, ax25, aprs, 4fsk
 
 
 
Go to file
BarryPSmith 825fa90e7f Minor startReceiveDutyCycle changes, as requested. 2019-12-04 12:41:41 -08:00
.github/ISSUE_TEMPLATE Update issue templates 2019-05-25 16:42:43 +02:00
examples [SX126x] Removed DIO2 from constructor 2019-11-27 08:50:21 +01:00
extras Added missing godmode guard 2019-11-20 17:21:43 +01:00
src Minor startReceiveDutyCycle changes, as requested. 2019-12-04 12:41:41 -08:00
.gitignore
.travis.yml Set Travis to STM32F303CC 2019-11-19 18:28:38 +01:00
CONTRIBUTING.md Updated contributing doc 2019-11-23 09:26:21 +01:00
Doxyfile Added DoxyGen 2019-05-24 15:13:04 +02:00
README.md Added link ot release changelog 2019-12-01 07:46:11 +01:00
keywords.txt Added sx126x receive duty cycle interface 2019-12-03 22:43:10 -08:00
library.properties Advanced version to 2.0.1 2019-12-01 15:33:11 +01:00
license.txt

README.md

RadioLib Build Status

One radio library to rule them all!

Universal wireless communication library for Arduino

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!

Supported modules:

  • 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)

Supported protocols:

  • 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

Supported platforms:

  • 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.

In development:

  • SIM800C GSM module
  • LoRaWAN protocol for SX127x, RFM9x and SX126x modules
  • and more!

Frequently Asked Questions

Where should I start?

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!

Help, my module isn't working!

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.

RadioLib doesn't support my module! What should I do?

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.