Arduino library for LoRa communication with Semtech SX126x chips. It is based on Semtech's SX126x libraries and adapted to the Arduino framework for ESP32, ESP8266, nRF52832 and RP2040. It will not work with other uC's like AVR.
- Add functions to get network session key and app session key after join
- Fix compilation error
- With ADR enabled, fix the DR reset to default when confirmed/unconfirmed packets are sent.
- Fix callbacks for P2P RX and TX timeout not being called
- Added support for the RAK11300 in arduino-pico BSP still experimental
- Change behaviour of IRQ_HEADER_ERROR, thanks to @JeromeBriot
- Fix public/private network always public
- Add option to restart MAC stack to change e.g. region without re-init timers
- Add option to reset the MAC counters
- Sorry released the wrong branch
- Fix typo in RadioTimeOnAir for FSK
- Improve RadioTimeOnAir for FSK, thanks to @mikedupi
- Fix runtime problem in LoRaMacHelper, thanks to @avillacis
- Update examples, thanks to @DanielBustillos
- Cleanup RAK4630 initialization
- Add lmh_getConfRetries() to readback the confirmed package retry setting
- Make RX timeout configurable with
#define RXTIMEOUT_LORA_MAX
, thanks to @kisChang - Add set default RX gain in SX126xSertRx, thanks to @kisChang
- Allow change of TCXO control with hwConfig structure, thanks to @dberlin
- Add confirmed failed callback if the degraded datarate becomes insufficient to transmit the payload length, thanks to @avillacis
- Fix RP2040 timers, thanks to @kisChang
- Fix RX window timeouts, thanks to @battosai30
- Fix wrong RX2 frequency in AS923-2, AS923-3, AS923-4
- Fix crash when library debug is enabled in AS923 region.
- Fix the timer problem for the RP2040 (hanging after 1h50 minutes)
- Fix AS923 CFlist channel assignment bug
- In EU868 always the first 8 channels were enabled, even without CFlist or NewChannelReq from LNS
- Function did change only ADR, but did not update the datarate setting
- Change antenna switch handling
- Correct handling of TX timeout in Radio callbacks
- Add missing declaration for lora_rak13300_init()
- Correct power regulator setting for RAKwireless RAK11300 module from LDO to DCDC
- Add support for RAKwireless RAK11300 module (Raspberry RP2040 + SX1262 module)
- Add callbacks for LoRaWAN TX finished (both confirmed and unconfirmed)
- Add addional bandwidths for LoRa transmissions. Breaks
Radio.TimeOnAir()
for bandwidths other than BW 125, 250 and 500 - Fix minor problem in CF list handling for AS923-x regions
- Implement new regions AS923-2, AS923-3, AS923-4, RU864
- Test CF list to add additionals channesl on AS923 and RU864
- Add support for all LoRaWAN regions without recompilation of the code
- Add background handling of SX126x IRQ's for better performance
- Read WHAT'S NEW IN V2 to migrate your application to V2
- Fix AS923 join problem (use only default channels)
- Fix OTAA problems (small code bug)
- When OTAA join failed callback was called, following lmh_join() calls fail always
- Add callback for OTAA join failure
- Fix ADR problem
- Fix Join problem for some Regions
- Add some debug output
- Add option to set node class during initialization. Defaults to CLASS_A for backward compatibility:
lmh_error_status lmh_init(lmh_callback_t *callbacks, lmh_param_t lora_param, bool otaa, eDeviceClass class = CLASS_A);
- Fix wrong control of antenna switch for RAK4631
- Add option to control power of antenna switch by the library with
_hwConfig.USE_RXEN_ANT_PWR
- Duty cycle and adaptive data rate control moved out of Commissioning.h
- Fixed linker error when header files are included from multiple source files
- Support for RAKwireless RAK4630 module finished
V1.1.3 Improve LoRaWan implementation (special thanks to RAKwireless who did a lot of testing with the library)
- Rework the timer functions for nRF52 family. OTAA now working better
- Add option to select between OTAA and ABP for LoRaWan when calling
lmh_init()
- Reworked SX126x reset function
- Support for RAKwireless RAK4630/4631 modules =>
lora_rak4630_init()
- Update region settings
Commissioning.h
needs only to be edited for the region. All other LoRaWan settings can be done now from the application side.
- Add compatibility with nRF52840 (experimental)
- Fix ArduinoIDE compile problems
- Fix examples
- Fixed bug when received package has CRC error
- Added preamble detection callback
- Added sensor and gateway example using deep sleep.
- Updated examples
- Added check if SX126x is really connected
- Fixed second bug in the definition of the sync word
- Added IRQ settings in RadioSetRxDutyCycle
- Fixed bug in the definition of the sync word
- Added possibility to re-init connection to SX1261/2 after CPU wakes up from sleep/deep-sleep
lora_hardware_re_init()
to re-initialize SX1262 connection without resetting the LoRa chipRadio.ReInit()
to re-initialize SX1262 connection without resetting the LoRa chipRadio.IrqProcessAfterDeepSleep()
to handle IRQ that woke up the CPU (RX_DONE, TX_DONE, ...)
- Tested with both Single Channel (ESP32) and 8 Channel (Dragino LPS8) LoRaWan gateways
- Added possibility to set LoRaWan keys programmatically
lmh_setDevEui()
to set Device EUIlmh_setAppEui()
to set Application EUIlmh_setAppKey()
to set Application keylmh_setNwkSKey()
to set Network session keylmh_setAppSKey()
to set Application session keylmh_setDevAddr()
to set Device address
- Added possibility to force use of sub band of region
lmh_setSubBandChannels()
to set sub band to be used
- Implemented workarounds for known limitations
- Optimizing the Inverted IQ Operation, see DS_SX1261-2_V1.2 datasheet chapter 15.4
- Modulation Quality with 500 kHz LoRa Bandwidth, see DS_SX1261-2_V1.2 datasheet chapter 15.1
- Implicit Header Mode Timeout Behavior, see DS_SX1261-2_V1.2 datasheet chapter 15.3
- Better Resistance of the SX1262 Tx to Antenna Mismatch, see DS_SX1261-2_V1.2 datasheet chapter 15.2
- Added possibility to force single channel gateway connection
lmh_setSingleChannelGateway()
to set single channel frequency and data rate
- Added list with channel - frequency per region
- Tested LoRaWan with a single channel LoRaWan gateway
- Added support for single channel gateways
- Added support for Insight SIP ISP4520 SoC (nRF52832 + Sx1261/2 in one package)
- THIS IS WORK IN PROGRESS AND NOT ALL FUNCTIONS ARE INCLUDED NOR TESTED. USE IT AT YOUR OWN RISK!