Git Product home page Git Product logo

radiolib's Introduction

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, protocols and even digital modes into a single consistent system. Want to add a Bluetooth interface to your LoRa network? Sure thing! Do you just want to go really old-school and play around with radio teletype, slow-scan TV, or even Hellschreiber using nothing but a cheap radio module? Why not!

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
  • RFM2x series FSK modules (RFM22, RM23)
  • RFM9x series LoRa modules (RFM95, RM96, RFM97, RFM98)
  • Si443x series FSK modules (Si4430, Si4431, Si4432)
  • SX126x series LoRa modules (SX1261, SX1262, SX1268)
  • SX127x series LoRa modules (SX1272, SX1273, SX1276, SX1277, SX1278, SX1279)
  • SX128x series LoRa/GFSK/BLE/FLRC modules (SX1280, SX1281, SX1282)
  • SX1231 FSK/OOK radio module
  • XBee modules (S2B)

Supported protocols and digital modes:

  • MQTT for modules: ESP8266
  • HTTP for modules: ESP8266
  • AX.25 for modules: SX127x, RFM9x, SX126x, RF69, SX1231, CC1101, RFM2x and Si443x
  • RTTY for modules: SX127x, RFM9x, SX126x, RF69, SX1231, CC1101, nRF24L01, RFM2x, Si443x and SX128x
  • Morse Code for modules: SX127x, RFM9x, SX126x, RF69, SX1231, CC1101, nRF24L01, RFM2x, Si443x and SX128x
  • SSTV for modules: SX127x, RFM9x, SX126x, RF69 and SX1231
  • Hellschreiber for modules: SX127x, RFM9x, SX126x, RF69, SX1231, CC1101, nRF24L01, RFM2x, Si443x and SX128x

Supported platforms:

  • Arduino AVR - tested with hardware on Uno, Mega and Leonardo
  • ESP8266 - tested with hardware on NodeMCU and Wemos D1
  • ESP32 - tested with hardware on ESP-WROOM-32
  • STM32 - tested with hardware on Nucleo L452RE-P
  • Arduino SAMD - Arduino Zero, Arduino MKR boards, M0 Pro etc.
  • Arduino SAM - Arduino Due
  • Adafruit nRF52 - Adafruit Bluefruit Feather etc.
  • Intel Curie - Arduino 101
  • Arduino megaAVR - Arduino Uno WiFi Rev.2 etc.
  • Apollo3 - SparkFun Artemis Redboard etc.
  • Arduino nRF52 - Arduino Nano 33 BLE

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. Compilation of all examples is tested for all platforms prior to releasing new version.

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.

radiolib's People

Contributors

jgromes avatar naggie avatar aguglie avatar phretor avatar barrypsmith avatar mmrein avatar beegee-tokyo avatar per1234 avatar 4m1g0 avatar saloid avatar iu5hku avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.