From bbd419b3094b6377d431b655a125e24b51c47f5f Mon Sep 17 00:00:00 2001 From: Velocet Date: Sat, 30 Mar 2024 13:18:50 +0100 Subject: [PATCH 1/7] Update README.md Clarify intended purpose. Remove unsupported modules. --- README.md | 83 +++++++++++++++++++++---------------------------------- 1 file changed, 32 insertions(+), 51 deletions(-) diff --git a/README.md b/README.md index d33794b37..64e80d414 100644 --- a/README.md +++ b/README.md @@ -1,52 +1,35 @@ -# RadioLib ![Build Status](https://github.com/jgromes/RadioLib/workflows/CI/badge.svg) [![PlatformIO Registry](https://badges.registry.platformio.org/packages/jgromes/library/RadioLib.svg)](https://registry.platformio.org/libraries/jgromes/RadioLib) [![Component Registry](https://components.espressif.com/components/jgromes/radiolib/badge.svg)](https://components.espressif.com/components/jgromes/radiolib) - -### _One radio library to rule them all!_ - -## Universal wireless communication library for embedded devices - -## See the [Wiki](https://github.com/jgromes/RadioLib/wiki) and [FAQ](https://github.com/jgromes/RadioLib/wiki/Frequently-Asked-Questions) for further information. See the [GitHub Pages](https://jgromes.github.io/RadioLib) 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 natively supports Arduino, but can run in non-Arduino environments as well! See [this Wiki page](https://github.com/jgromes/RadioLib/wiki/Porting-to-non-Arduino-Platforms) and [examples/NonArduino](https://github.com/jgromes/RadioLib/tree/master/examples/NonArduino). - -RadioLib was originally created as a driver for [__RadioShield__](https://github.com/jgromes/RadioShield), but it can be used to control as many different wireless modules as you like - or at least as many as your microcontroller can handle! - -### Supported modules: -* __CC1101__ FSK radio module -* __LLCC68__ LoRa 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) -* __STM32WL__ integrated microcontroller/LoRa module -* __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) -* __SX123x__ FSK/OOK radio modules (SX1231, SX1233) - -### Supported protocols and digital modes: -* [__AX.25__](https://www.sigidwiki.com/wiki/PACKET) using 2-FSK or AFSK for modules: -SX127x, RFM9x, SX126x, RF69, SX1231, CC1101, RFM2x and Si443x -* [__RTTY__](https://www.sigidwiki.com/wiki/RTTY) using 2-FSK or AFSK for modules: -SX127x, RFM9x, SX126x, RF69, SX1231, CC1101, nRF24L01, RFM2x, Si443x and SX128x -* [__Morse Code__](https://www.sigidwiki.com/wiki/Morse_Code_(CW)) using 2-FSK or AFSK for modules: -SX127x, RFM9x, SX126x, RF69, SX1231, CC1101, nRF24L01, RFM2x, Si443x and SX128x -* [__SSTV__](https://www.sigidwiki.com/wiki/SSTV) using 2-FSK or AFSK for modules: -SX127x, RFM9x, SX126x, RF69, SX1231, CC1101, RFM2x and Si443x -* [__Hellschreiber__](https://www.sigidwiki.com/wiki/Hellschreiber) using 2-FSK or AFSK for modules: -SX127x, RFM9x, SX126x, RF69, SX1231, CC1101, nRF24L01, RFM2x, Si443x and SX128x -* [__APRS__](https://www.sigidwiki.com/wiki/APRS) using AFSK for modules: -SX127x, RFM9x, SX126x, RF69, SX1231, CC1101, nRF24L01, RFM2x, Si443x and SX128x -* [__POCSAG__](https://www.sigidwiki.com/wiki/POCSAG) using 2-FSK for modules: -SX127x, RFM9x, RF69, SX1231, CC1101, nRF24L01, RFM2x and Si443x -* [__LoRaWAN__](https://lora-alliance.org/) using LoRa for modules: -SX127x, RFM9x, SX126x and SX128x - * NOTE: LoRaWAN support is currently in beta, feedback via [Issues](https://github.com/jgromes/RadioLib/issues) and [Discussions](https://github.com/jgromes/RadioLib/discussions) is appreciated! - -### Supported Arduino platforms: +# Universal io-homecontrol library for embedded devices + + +Fork of the latest RadioLib with an additional io-homecontrol layer to abstract the configuration of the modules. + +RadioLib_IoHc allows to integrate different radio modules which support FSK mode of operation in the 868MHz range into a single consistent system. + +Natively supports Arduino, but can run in non-Arduino environments as well! + +## Supported modules & Arduino platforms: + +This list is by no means exhaustive - the code is independent of the used platform! +In addition, the library includes an internal hardware abstraction layer, which allows it to be easily ported even to non-Arduino environments. + +### Modules + +* __CC1101__ FSK module +* __LLCC68__ FSK module (untested) +* __LR1121__ FSK module (unimplemented) +* __RF69__ series FSK modules +* __RFM2x__ series FSK modules (RFM22(B), RFM23(B)) +* __RFM9x__ series FSK modules (RFM95(W), RFM97(W)) +* __Si443x__ series FSK modules (Si4431, Si4432) +* __STM32WL__ FSK module/microcontroller +* __SX126x__ series FSK modules (SX1261, SX1262) +* __SX127x__ series FSK modules (SX1272, SX1273, SX1276, SX1277, SX1279) +* __SX123x__ series FSK modules (SX1231, SX1233, SX1235) + +### Arduino platforms: + * __Arduino__ * [__AVR__](https://github.com/arduino/ArduinoCore-avr) - Arduino Uno, Mega, Leonardo, Pro Mini, Nano etc. * [__mbed__](https://github.com/arduino/ArduinoCore-mbed) - Arduino Nano 33 BLE and Arduino Portenta H7 @@ -87,5 +70,3 @@ SX127x, RFM9x, SX126x and SX128x * __PJRC__ * [__Teensy__](https://github.com/PaulStoffregen/cores) - Teensy 2.x, 3.x and 4.x boards - -The list above is by no means exhaustive - RadioLib code is independent of the used platform! Compilation of all examples is tested for all platforms officially supported prior to releasing new version. In addition, RadioLib includes an internal hardware abstraction layer, which allows it to be easily ported even to non-Arduino environments. From d6a152402bdf3d9ee5e74ab6eccc6934f1e15f62 Mon Sep 17 00:00:00 2001 From: Velocet Date: Wed, 3 Apr 2024 19:47:04 +0200 Subject: [PATCH 2/7] Update board configs in configABP.h Added HelTec boards and corrected some errors --- examples/LoRaWAN/LoRaWAN_ABP/configABP.h | 41 +++++++++++++++--------- 1 file changed, 25 insertions(+), 16 deletions(-) diff --git a/examples/LoRaWAN/LoRaWAN_ABP/configABP.h b/examples/LoRaWAN/LoRaWAN_ABP/configABP.h index e79960a1d..52e39d8e6 100644 --- a/examples/LoRaWAN/LoRaWAN_ABP/configABP.h +++ b/examples/LoRaWAN/LoRaWAN_ABP/configABP.h @@ -49,11 +49,11 @@ const uint8_t subBand = 0; // For US915, change this to 2, otherwise leave on 0 // LilyGo #elif defined(ARDUINO_TTGO_LORA32_V1) - #pragma message ("TTGO LoRa32 v1 - no Display") + #pragma message ("Using TTGO LoRa32 v1 - no Display") SX1276 radio = new Module(18, 26, 14, 33); #elif defined(ARDUINO_TTGO_LORA32_V2) - #pragma message ("ARDUINO_TTGO_LORA32_V2 + Display") + #pragma message ("Using TTGO LoRa32 v2 + Display") SX1276 radio = new Module(18, 26, 12, RADIOLIB_NC); #elif defined(ARDUINO_TTGO_LoRa32_v21new) // T3_V1.6.1 @@ -64,32 +64,41 @@ const uint8_t subBand = 0; // For US915, change this to 2, otherwise leave on 0 #pragma error ("ARDUINO_TBEAM_USE_RADIO_SX1262 awaiting pin map") #elif defined(ARDUINO_TBEAM_USE_RADIO_SX1276) - #pragma message ("Using TTGO LoRa32 v2.1 marked T3_V1.6.1 + Display") + #pragma message ("Using TTGO T-Beam") SX1276 radio = new Module(18, 26, 23, 33); -// Heltec +// HelTec: https://github.com/espressif/arduino-esp32/blob/master/variants/heltec_*/pins_arduino.h #elif defined(ARDUINO_HELTEC_WIFI_LORA_32) - #pragma error ("ARDUINO_HELTEC_WIFI_LORA_32 awaiting pin map") - -#elif defined (ARDUINO_heltec_wireless_stick) - #pragma message ("Using Heltec Wireless Stick") - SX1278 radio = new Module(14, 4, 12, 16); + #pragma message ("Using Heltec WiFi LoRa32") + SX1276 radio = new Module(18, 26, 14, 33); -#elif defined(ARDUINO_heltec_wifi_lora_32_V2) +#elif defined(ARDUINO_HELTEC_WIFI_LORA_32_V2) #pragma message ("Using Heltec WiFi LoRa32 v2") - SX1278 radio = new Module(14, 4, 12, 16); + SX1276 radio = new Module(18, 26, 14, 35); + +#elif defined(ARDUINO_HELTEC_WIFI_LORA_32_V3) + #pragma message ("Using Heltec WiFi LoRa32 v3") + SX1262 radio = new Module(8, 14, 12, 13); -#elif defined(ARDUINO_heltec_wifi_kit_32_V2) - #pragma message ("ARDUINO_heltec_wifi_kit_32_V2 awaiting pin map") +#elif defined (ARDUINO_HELTEC_WIRELESS_STICK) + #pragma message ("Using Heltec Wireless Stick") SX1276 radio = new Module(18, 26, 14, 35); -#elif defined(ARDUINO_heltec_wifi_kit_32_V3) - #pragma message ("Using Heltec WiFi LoRa32 v3 - Display + USB-C") +#elif defined (ARDUINO_HELTEC_WIRELESS_STICK_V3) + #pragma message ("Using Heltec Wireless Stick v3") SX1262 radio = new Module(8, 14, 12, 13); +#elif defined (ARDUINO_HELTEC_WIRELESS_STICK_LITE) + #pragma message ("Using Heltec Wireless Stick Lite") + SX1276 radio = new Module(18, 26, 14, 35); + +#elif defined (ARDUINO_HELTEC_WIRELESS_STICK_LITE_V3) + #pragma message ("Using Heltec Wireless Stick Lite v3") + SX1262 radio = new Module(34, 14, 12, 13); + #elif defined(ARDUINO_CUBECELL_BOARD) - #pragma message ("Using TTGO LoRa32 v2.1 marked T3_V1.6.1 + Display") + #pragma message ("Using CubeCell") SX1262 radio = new Module(RADIOLIB_BUILTIN_MODULE); #elif defined(ARDUINO_CUBECELL_BOARD_V2) From 76bda0714ca18086c526de6f1252f8e04f275e42 Mon Sep 17 00:00:00 2001 From: Velocet Date: Wed, 3 Apr 2024 19:50:08 +0200 Subject: [PATCH 3/7] Update board configs in config.h Added HelTec boards and corrected some errors --- examples/LoRaWAN/LoRaWAN_Reference/config.h | 41 +++++++++++++-------- 1 file changed, 25 insertions(+), 16 deletions(-) diff --git a/examples/LoRaWAN/LoRaWAN_Reference/config.h b/examples/LoRaWAN/LoRaWAN_Reference/config.h index d91e4a554..19eaf57ef 100644 --- a/examples/LoRaWAN/LoRaWAN_Reference/config.h +++ b/examples/LoRaWAN/LoRaWAN_Reference/config.h @@ -44,11 +44,11 @@ const uint8_t subBand = 0; // For US915, change this to 2, otherwise leave on 0 // LilyGo #elif defined(ARDUINO_TTGO_LORA32_V1) - #pragma message ("TTGO LoRa32 v1 - no Display") + #pragma message ("Using TTGO LoRa32 v1 - no Display") SX1276 radio = new Module(18, 26, 14, 33); #elif defined(ARDUINO_TTGO_LORA32_V2) - #pragma message ("ARDUINO_TTGO_LORA32_V2 + Display") + #pragma message ("Using TTGO LoRa32 v2 + Display") SX1276 radio = new Module(18, 26, 12, RADIOLIB_NC); #elif defined(ARDUINO_TTGO_LoRa32_v21new) // T3_V1.6.1 @@ -59,32 +59,41 @@ const uint8_t subBand = 0; // For US915, change this to 2, otherwise leave on 0 #pragma error ("ARDUINO_TBEAM_USE_RADIO_SX1262 awaiting pin map") #elif defined(ARDUINO_TBEAM_USE_RADIO_SX1276) - #pragma message ("Using TTGO LoRa32 v2.1 marked T3_V1.6.1 + Display") + #pragma message ("Using TTGO T-Beam") SX1276 radio = new Module(18, 26, 23, 33); -// Heltec +// HelTec: https://github.com/espressif/arduino-esp32/blob/master/variants/heltec_*/pins_arduino.h #elif defined(ARDUINO_HELTEC_WIFI_LORA_32) - #pragma error ("ARDUINO_HELTEC_WIFI_LORA_32 awaiting pin map") - -#elif defined (ARDUINO_heltec_wireless_stick) - #pragma message ("Using Heltec Wireless Stick") - SX1278 radio = new Module(14, 4, 12, 16); + #pragma message ("Using Heltec WiFi LoRa32") + SX1276 radio = new Module(18, 26, 14, 33); -#elif defined(ARDUINO_heltec_wifi_lora_32_V2) +#elif defined(ARDUINO_HELTEC_WIFI_LORA_32_V2) #pragma message ("Using Heltec WiFi LoRa32 v2") - SX1278 radio = new Module(14, 4, 12, 16); + SX1276 radio = new Module(18, 26, 14, 35); + +#elif defined(ARDUINO_HELTEC_WIFI_LORA_32_V3) + #pragma message ("Using Heltec WiFi LoRa32 v3") + SX1262 radio = new Module(8, 14, 12, 13); -#elif defined(ARDUINO_heltec_wifi_kit_32_V2) - #pragma message ("ARDUINO_heltec_wifi_kit_32_V2 awaiting pin map") +#elif defined (ARDUINO_HELTEC_WIRELESS_STICK) + #pragma message ("Using Heltec Wireless Stick") SX1276 radio = new Module(18, 26, 14, 35); -#elif defined(ARDUINO_heltec_wifi_kit_32_V3) - #pragma message ("Using Heltec WiFi LoRa32 v3 - Display + USB-C") +#elif defined (ARDUINO_HELTEC_WIRELESS_STICK_V3) + #pragma message ("Using Heltec Wireless Stick v3") SX1262 radio = new Module(8, 14, 12, 13); +#elif defined (ARDUINO_HELTEC_WIRELESS_STICK_LITE) + #pragma message ("Using Heltec Wireless Stick Lite") + SX1276 radio = new Module(18, 26, 14, 35); + +#elif defined (ARDUINO_HELTEC_WIRELESS_STICK_LITE_V3) + #pragma message ("Using Heltec Wireless Stick Lite v3") + SX1262 radio = new Module(34, 14, 12, 13); + #elif defined(ARDUINO_CUBECELL_BOARD) - #pragma message ("Using TTGO LoRa32 v2.1 marked T3_V1.6.1 + Display") + #pragma message ("Using CubeCell") SX1262 radio = new Module(RADIOLIB_BUILTIN_MODULE); #elif defined(ARDUINO_CUBECELL_BOARD_V2) From b80f49945a9d98b3792d71c791ea9ced87b3d2c1 Mon Sep 17 00:00:00 2001 From: Velocet Date: Wed, 3 Apr 2024 19:53:01 +0200 Subject: [PATCH 4/7] Update board configs in config.h Added HelTec boards and corrected some errors --- examples/LoRaWAN/LoRaWAN_Starter/config.h | 41 ++++++++++++++--------- 1 file changed, 25 insertions(+), 16 deletions(-) diff --git a/examples/LoRaWAN/LoRaWAN_Starter/config.h b/examples/LoRaWAN/LoRaWAN_Starter/config.h index d91e4a554..19eaf57ef 100644 --- a/examples/LoRaWAN/LoRaWAN_Starter/config.h +++ b/examples/LoRaWAN/LoRaWAN_Starter/config.h @@ -44,11 +44,11 @@ const uint8_t subBand = 0; // For US915, change this to 2, otherwise leave on 0 // LilyGo #elif defined(ARDUINO_TTGO_LORA32_V1) - #pragma message ("TTGO LoRa32 v1 - no Display") + #pragma message ("Using TTGO LoRa32 v1 - no Display") SX1276 radio = new Module(18, 26, 14, 33); #elif defined(ARDUINO_TTGO_LORA32_V2) - #pragma message ("ARDUINO_TTGO_LORA32_V2 + Display") + #pragma message ("Using TTGO LoRa32 v2 + Display") SX1276 radio = new Module(18, 26, 12, RADIOLIB_NC); #elif defined(ARDUINO_TTGO_LoRa32_v21new) // T3_V1.6.1 @@ -59,32 +59,41 @@ const uint8_t subBand = 0; // For US915, change this to 2, otherwise leave on 0 #pragma error ("ARDUINO_TBEAM_USE_RADIO_SX1262 awaiting pin map") #elif defined(ARDUINO_TBEAM_USE_RADIO_SX1276) - #pragma message ("Using TTGO LoRa32 v2.1 marked T3_V1.6.1 + Display") + #pragma message ("Using TTGO T-Beam") SX1276 radio = new Module(18, 26, 23, 33); -// Heltec +// HelTec: https://github.com/espressif/arduino-esp32/blob/master/variants/heltec_*/pins_arduino.h #elif defined(ARDUINO_HELTEC_WIFI_LORA_32) - #pragma error ("ARDUINO_HELTEC_WIFI_LORA_32 awaiting pin map") - -#elif defined (ARDUINO_heltec_wireless_stick) - #pragma message ("Using Heltec Wireless Stick") - SX1278 radio = new Module(14, 4, 12, 16); + #pragma message ("Using Heltec WiFi LoRa32") + SX1276 radio = new Module(18, 26, 14, 33); -#elif defined(ARDUINO_heltec_wifi_lora_32_V2) +#elif defined(ARDUINO_HELTEC_WIFI_LORA_32_V2) #pragma message ("Using Heltec WiFi LoRa32 v2") - SX1278 radio = new Module(14, 4, 12, 16); + SX1276 radio = new Module(18, 26, 14, 35); + +#elif defined(ARDUINO_HELTEC_WIFI_LORA_32_V3) + #pragma message ("Using Heltec WiFi LoRa32 v3") + SX1262 radio = new Module(8, 14, 12, 13); -#elif defined(ARDUINO_heltec_wifi_kit_32_V2) - #pragma message ("ARDUINO_heltec_wifi_kit_32_V2 awaiting pin map") +#elif defined (ARDUINO_HELTEC_WIRELESS_STICK) + #pragma message ("Using Heltec Wireless Stick") SX1276 radio = new Module(18, 26, 14, 35); -#elif defined(ARDUINO_heltec_wifi_kit_32_V3) - #pragma message ("Using Heltec WiFi LoRa32 v3 - Display + USB-C") +#elif defined (ARDUINO_HELTEC_WIRELESS_STICK_V3) + #pragma message ("Using Heltec Wireless Stick v3") SX1262 radio = new Module(8, 14, 12, 13); +#elif defined (ARDUINO_HELTEC_WIRELESS_STICK_LITE) + #pragma message ("Using Heltec Wireless Stick Lite") + SX1276 radio = new Module(18, 26, 14, 35); + +#elif defined (ARDUINO_HELTEC_WIRELESS_STICK_LITE_V3) + #pragma message ("Using Heltec Wireless Stick Lite v3") + SX1262 radio = new Module(34, 14, 12, 13); + #elif defined(ARDUINO_CUBECELL_BOARD) - #pragma message ("Using TTGO LoRa32 v2.1 marked T3_V1.6.1 + Display") + #pragma message ("Using CubeCell") SX1262 radio = new Module(RADIOLIB_BUILTIN_MODULE); #elif defined(ARDUINO_CUBECELL_BOARD_V2) From 4bdb455a521bcab6ba1dac3dcdaf70788003bca3 Mon Sep 17 00:00:00 2001 From: Velocet Date: Wed, 3 Apr 2024 19:55:44 +0200 Subject: [PATCH 5/7] Update prebuilt modules in notes.md --- examples/LoRaWAN/LoRaWAN_Starter/notes.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/examples/LoRaWAN/LoRaWAN_Starter/notes.md b/examples/LoRaWAN/LoRaWAN_Starter/notes.md index b56675995..2821bef3e 100644 --- a/examples/LoRaWAN/LoRaWAN_Starter/notes.md +++ b/examples/LoRaWAN/LoRaWAN_Starter/notes.md @@ -152,6 +152,10 @@ Prebuilt modules are easy - we can detect the board and setup the pinmap for you * HELTEC_WIFI_LORA_32 * HELTEC_WIFI_LORA_32_V2 * HELTEC_WIFI_LORA_32_V3 +* HELTEC_WIRELESS_STICK +* HELTEC_WIRELESS_STICK_V3 +* HELTEC_WIRELESS_STICK_LITE +* HELTEC_WIRELESS_STICK_LITE_V3 If you have a TTGO T-Beam, you must choose the correct radio from the Board Revision sub-menu found under the main Tools menu. From 648c96503d741cc5b5c43937596bd5ee504f3a10 Mon Sep 17 00:00:00 2001 From: Velocet Date: Wed, 3 Apr 2024 20:06:52 +0200 Subject: [PATCH 6/7] Delete README.md --- README.md | 72 ------------------------------------------------------- 1 file changed, 72 deletions(-) delete mode 100644 README.md diff --git a/README.md b/README.md deleted file mode 100644 index 64e80d414..000000000 --- a/README.md +++ /dev/null @@ -1,72 +0,0 @@ -# Universal io-homecontrol library for embedded devices - - -Fork of the latest RadioLib with an additional io-homecontrol layer to abstract the configuration of the modules. - -RadioLib_IoHc allows to integrate different radio modules which support FSK mode of operation in the 868MHz range into a single consistent system. - -Natively supports Arduino, but can run in non-Arduino environments as well! - -## Supported modules & Arduino platforms: - -This list is by no means exhaustive - the code is independent of the used platform! -In addition, the library includes an internal hardware abstraction layer, which allows it to be easily ported even to non-Arduino environments. - -### Modules - -* __CC1101__ FSK module -* __LLCC68__ FSK module (untested) -* __LR1121__ FSK module (unimplemented) -* __RF69__ series FSK modules -* __RFM2x__ series FSK modules (RFM22(B), RFM23(B)) -* __RFM9x__ series FSK modules (RFM95(W), RFM97(W)) -* __Si443x__ series FSK modules (Si4431, Si4432) -* __STM32WL__ FSK module/microcontroller -* __SX126x__ series FSK modules (SX1261, SX1262) -* __SX127x__ series FSK modules (SX1272, SX1273, SX1276, SX1277, SX1279) -* __SX123x__ series FSK modules (SX1231, SX1233, SX1235) - -### Arduino platforms: - -* __Arduino__ - * [__AVR__](https://github.com/arduino/ArduinoCore-avr) - Arduino Uno, Mega, Leonardo, Pro Mini, Nano etc. - * [__mbed__](https://github.com/arduino/ArduinoCore-mbed) - Arduino Nano 33 BLE and Arduino Portenta H7 - * [__megaAVR__](https://github.com/arduino/ArduinoCore-megaavr) - Arduino Uno WiFi Rev.2 and Nano Every - * [__SAM__](https://github.com/arduino/ArduinoCore-sam) - Arduino Due - * [__SAMD__](https://github.com/arduino/ArduinoCore-samd) - Arduino Zero, MKR boards, M0 Pro etc. - * [__Renesas__](https://github.com/arduino/ArduinoCore-renesas) - Arduino Uno R4 - -* __Adafruit__ - * [__SAMD__](https://github.com/adafruit/ArduinoCore-samd) - Adafruit Feather M0 and M4 boards (Feather, Metro, Gemma, Trinket etc.) - * [__nRF52__](https://github.com/adafruit/Adafruit_nRF52_Arduino) - Adafruit Feather nRF528x, Bluefruit and CLUE - -* __Espressif__ - * [__ESP32__](https://github.com/espressif/arduino-esp32) - ESP32-based boards - * [__ESP8266__](https://github.com/esp8266/Arduino) - ESP8266-based boards - -* __Intel__ - * [__Curie__](https://github.com/arduino/ArduinoCore-arc32) - Arduino 101 - -* __SparkFun__ - * [__Apollo3__](https://github.com/sparkfun/Arduino_Apollo3) - Sparkfun Artemis Redboard - -* __ST Microelectronics__ - * [__STM32__ (official core)](https://github.com/stm32duino/Arduino_Core_STM32) - STM32 Nucleo, Discovery, Maple, BluePill, BlackPill etc. - * [__STM32__ (unofficial core)](https://github.com/rogerclarkmelbourne/Arduino_STM32) - STM32F1 and STM32F4-based boards - -* __MCUdude__ - * [__MegaCoreX__](https://github.com/MCUdude/MegaCoreX) - megaAVR-0 series (ATmega4809, ATmega3209 etc.) - * [__MegaCore__](https://github.com/MCUdude/MegaCore) - AVR (ATmega1281, ATmega640 etc.) - -* __Raspberry Pi__ - * [__RP2040__ (official core)](https://github.com/arduino/ArduinoCore-mbed) - Raspberry Pi Pico and Arduino Nano RP2040 Connect - * [__RP2040__ (unofficial core)](https://github.com/earlephilhower/arduino-pico) - Raspberry Pi Pico/RP2040-based boards - * [__Raspberry Pi__](https://github.com/me-no-dev/RasPiArduino) - Arduino framework for RaspberryPI - -* __Heltec__ - * [__CubeCell__](https://github.com/HelTecAutomation/CubeCell-Arduino) - ASR650X series (CubeCell-Board, CubeCell-Capsule, CubeCell-Module etc.) - -* __PJRC__ - * [__Teensy__](https://github.com/PaulStoffregen/cores) - Teensy 2.x, 3.x and 4.x boards From 7e4d40b486e8f5d88288a38cf9263c4a91879607 Mon Sep 17 00:00:00 2001 From: Velocet Date: Wed, 10 Apr 2024 08:24:14 +0200 Subject: [PATCH 7/7] Recreate README.md --- README.md | 91 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 000000000..d33794b37 --- /dev/null +++ b/README.md @@ -0,0 +1,91 @@ +# RadioLib ![Build Status](https://github.com/jgromes/RadioLib/workflows/CI/badge.svg) [![PlatformIO Registry](https://badges.registry.platformio.org/packages/jgromes/library/RadioLib.svg)](https://registry.platformio.org/libraries/jgromes/RadioLib) [![Component Registry](https://components.espressif.com/components/jgromes/radiolib/badge.svg)](https://components.espressif.com/components/jgromes/radiolib) + +### _One radio library to rule them all!_ + +## Universal wireless communication library for embedded devices + +## See the [Wiki](https://github.com/jgromes/RadioLib/wiki) and [FAQ](https://github.com/jgromes/RadioLib/wiki/Frequently-Asked-Questions) for further information. See the [GitHub Pages](https://jgromes.github.io/RadioLib) 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 natively supports Arduino, but can run in non-Arduino environments as well! See [this Wiki page](https://github.com/jgromes/RadioLib/wiki/Porting-to-non-Arduino-Platforms) and [examples/NonArduino](https://github.com/jgromes/RadioLib/tree/master/examples/NonArduino). + +RadioLib was originally created as a driver for [__RadioShield__](https://github.com/jgromes/RadioShield), but it can be used to control as many different wireless modules as you like - or at least as many as your microcontroller can handle! + +### Supported modules: +* __CC1101__ FSK radio module +* __LLCC68__ LoRa 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) +* __STM32WL__ integrated microcontroller/LoRa module +* __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) +* __SX123x__ FSK/OOK radio modules (SX1231, SX1233) + +### Supported protocols and digital modes: +* [__AX.25__](https://www.sigidwiki.com/wiki/PACKET) using 2-FSK or AFSK for modules: +SX127x, RFM9x, SX126x, RF69, SX1231, CC1101, RFM2x and Si443x +* [__RTTY__](https://www.sigidwiki.com/wiki/RTTY) using 2-FSK or AFSK for modules: +SX127x, RFM9x, SX126x, RF69, SX1231, CC1101, nRF24L01, RFM2x, Si443x and SX128x +* [__Morse Code__](https://www.sigidwiki.com/wiki/Morse_Code_(CW)) using 2-FSK or AFSK for modules: +SX127x, RFM9x, SX126x, RF69, SX1231, CC1101, nRF24L01, RFM2x, Si443x and SX128x +* [__SSTV__](https://www.sigidwiki.com/wiki/SSTV) using 2-FSK or AFSK for modules: +SX127x, RFM9x, SX126x, RF69, SX1231, CC1101, RFM2x and Si443x +* [__Hellschreiber__](https://www.sigidwiki.com/wiki/Hellschreiber) using 2-FSK or AFSK for modules: +SX127x, RFM9x, SX126x, RF69, SX1231, CC1101, nRF24L01, RFM2x, Si443x and SX128x +* [__APRS__](https://www.sigidwiki.com/wiki/APRS) using AFSK for modules: +SX127x, RFM9x, SX126x, RF69, SX1231, CC1101, nRF24L01, RFM2x, Si443x and SX128x +* [__POCSAG__](https://www.sigidwiki.com/wiki/POCSAG) using 2-FSK for modules: +SX127x, RFM9x, RF69, SX1231, CC1101, nRF24L01, RFM2x and Si443x +* [__LoRaWAN__](https://lora-alliance.org/) using LoRa for modules: +SX127x, RFM9x, SX126x and SX128x + * NOTE: LoRaWAN support is currently in beta, feedback via [Issues](https://github.com/jgromes/RadioLib/issues) and [Discussions](https://github.com/jgromes/RadioLib/discussions) is appreciated! + +### Supported Arduino platforms: +* __Arduino__ + * [__AVR__](https://github.com/arduino/ArduinoCore-avr) - Arduino Uno, Mega, Leonardo, Pro Mini, Nano etc. + * [__mbed__](https://github.com/arduino/ArduinoCore-mbed) - Arduino Nano 33 BLE and Arduino Portenta H7 + * [__megaAVR__](https://github.com/arduino/ArduinoCore-megaavr) - Arduino Uno WiFi Rev.2 and Nano Every + * [__SAM__](https://github.com/arduino/ArduinoCore-sam) - Arduino Due + * [__SAMD__](https://github.com/arduino/ArduinoCore-samd) - Arduino Zero, MKR boards, M0 Pro etc. + * [__Renesas__](https://github.com/arduino/ArduinoCore-renesas) - Arduino Uno R4 + +* __Adafruit__ + * [__SAMD__](https://github.com/adafruit/ArduinoCore-samd) - Adafruit Feather M0 and M4 boards (Feather, Metro, Gemma, Trinket etc.) + * [__nRF52__](https://github.com/adafruit/Adafruit_nRF52_Arduino) - Adafruit Feather nRF528x, Bluefruit and CLUE + +* __Espressif__ + * [__ESP32__](https://github.com/espressif/arduino-esp32) - ESP32-based boards + * [__ESP8266__](https://github.com/esp8266/Arduino) - ESP8266-based boards + +* __Intel__ + * [__Curie__](https://github.com/arduino/ArduinoCore-arc32) - Arduino 101 + +* __SparkFun__ + * [__Apollo3__](https://github.com/sparkfun/Arduino_Apollo3) - Sparkfun Artemis Redboard + +* __ST Microelectronics__ + * [__STM32__ (official core)](https://github.com/stm32duino/Arduino_Core_STM32) - STM32 Nucleo, Discovery, Maple, BluePill, BlackPill etc. + * [__STM32__ (unofficial core)](https://github.com/rogerclarkmelbourne/Arduino_STM32) - STM32F1 and STM32F4-based boards + +* __MCUdude__ + * [__MegaCoreX__](https://github.com/MCUdude/MegaCoreX) - megaAVR-0 series (ATmega4809, ATmega3209 etc.) + * [__MegaCore__](https://github.com/MCUdude/MegaCore) - AVR (ATmega1281, ATmega640 etc.) + +* __Raspberry Pi__ + * [__RP2040__ (official core)](https://github.com/arduino/ArduinoCore-mbed) - Raspberry Pi Pico and Arduino Nano RP2040 Connect + * [__RP2040__ (unofficial core)](https://github.com/earlephilhower/arduino-pico) - Raspberry Pi Pico/RP2040-based boards + * [__Raspberry Pi__](https://github.com/me-no-dev/RasPiArduino) - Arduino framework for RaspberryPI + +* __Heltec__ + * [__CubeCell__](https://github.com/HelTecAutomation/CubeCell-Arduino) - ASR650X series (CubeCell-Board, CubeCell-Capsule, CubeCell-Module etc.) + +* __PJRC__ + * [__Teensy__](https://github.com/PaulStoffregen/cores) - Teensy 2.x, 3.x and 4.x boards + +The list above is by no means exhaustive - RadioLib code is independent of the used platform! Compilation of all examples is tested for all platforms officially supported prior to releasing new version. In addition, RadioLib includes an internal hardware abstraction layer, which allows it to be easily ported even to non-Arduino environments.