Libraries and drivers
- RadioLib: MIT. A universal radio library. Its README lists SX126x, SX127x/RFM9x, SX128x, LLCC68, LR11x0 and STM32WL, plus FSK/OOK parts like CC1101 and RF69. It also covers LoRaWAN (Class A and C) and non-LoRa modes such as RTTY, AX.25, APRS and POCSAG on supported radios. API reference.
- Arduino LoRa: MIT. A simple send/receive library for SX1276/77/78/79 boards (RFM95W and similar). Not for SX126x.
- MCCI arduino-lmic: MIT. A LoRaWAN stack for Arduino. Its README says it supports SX1272, SX1276 and SX126x transceivers.
- STM32LoRaWAN: Arduino library for LoRaWAN on the STM32WL series, with an API similar to the MKRWAN library.
- Semtech sx126x_driver: Semtech's C driver for the SX126x, including LR-FHSS code. You implement the hardware abstraction layer yourself.
- Semtech SWSD003: example transceiver apps for SX126x and LR11xx, such as ping-pong, packet error rate, CAD, spectral scan and a Sigfox uplink. Useful for bench testing a board, not a ready firmware.
- LoRa Basic Modem (SWL2001): Semtech's LoRaWAN stack, which its README says implements LoRaWAN L2 1.0.4 with FUOTA packages.
- LoRaMac-node: Semtech's reference implementation of a LoRa end node.
- SWDM001: drivers and demos for LR-FHSS transmission on LR11xx and SX126x.
- ChirpStack: MIT. An open source LoRaWAN network server you run yourself. Docs.
- The Things Stack: Apache-2.0. The open source LoRaWAN network server behind The Things Network (docs). lorawan-devices is the community device and payload decoder repository.
- sx1302_hal: Semtech's hardware abstraction layer and tools (including a packet forwarder) for SX1302/SX1303 gateway concentrators.
- Meshtastic: GPL-3.0. Off-grid mesh messaging firmware for LoRa boards. Docs.
- MeshCore: MIT. A lightweight multi-hop routing library and firmware for LoRa and other packet radios, aimed at embedded projects.
- LoRaMesher: MIT. A C++ mesh library for LoRa nodes using distance-vector routing. Its README says it builds on RadioLib and supports SX1262, SX1268, SX1276, SX1278 and SX1280.
- Tasmota LoRa and LoRaWan Bridge: tasmota32 builds only, and you must compile with the LoRa defines enabled. It supports SX127x and SX126x radios, point-to-point LoRa between devices, and a LoRaWAN bridge to MQTT. Optional Berry decoders turn raw payloads into readable sensor values.
- ESPHome sx127x and sx126x components: FSK, OOK and LoRa modulation (the sx127x example uses 433.92 MHz OOK, and sx126x lists SX1261/62/68 and LLCC68). Either can be a platform for ESPHome's packet transport, which sends sensor data directly between nodes.
- OpenMQTTGateway: has a LoRa module that publishes received LoRa packets to MQTT from an ESP32 LoRa board.
- ExpressLRS: GPL-3.0. An open source radio control link for models and drones that offers LoRa, FLRC and FSK modes on 900 MHz and 2.4 GHz (docs). A good example of a LoRa radio used for something other than telemetry.
- SWSD004: Semtech's LoRa Edge tracker demo for the LR1110 with Wi-Fi and GNSS geolocation, which its README says uses LoRa Basics Modem.
- SWSD006: Apache-2.0. LR11xx multi-stack SDK for the nRF52840, aimed at Sidewalk development.
- Most firmware needs the right band set in the build or config (see the frequency thread). Check the project's supported-hardware list before buying a board.
- LoRaWAN servers like ChirpStack and The Things Stack need a gateway on the same plan as your devices, such as AU915 in Australia.
- Semtech's repos use varying licences (GitHub reports BSD-3-Clause-Clear for some, no recognised licence for others), so read each LICENSE file.