// the find
Lora-net/LoRaMac-node
Reference implementation and documentation of a LoRa network node.
Semtech's reference LoRaWAN end-device stack in C, targeting STM32 and SAMR34 MCUs. It implements the full LoRaWAN L2 spec (1.0.4/1.1.0) including Class A/B/C, FUOTA, and regional parameters. This is the canonical starting point if you're building a LoRaWAN node from scratch on supported hardware — but Semtech has officially put it in maintenance mode in favor of LoRa Basics Modem.
Full Class A/B/C implementation with certification test support baked in, which saves weeks of spec-reading. Three secure element options (soft-SE, LR1110 crypto engine, ATECC608A hardware SE) with a clean abstraction layer you can swap without touching MAC code. The board abstraction is well-structured — porting to a new STM32 target is largely mechanical: copy a board directory, implement the HAL stubs. CMake build system handles the combinatorial explosion of board × radio × region × SE options cleanly via compile-time flags.
Maintenance mode is real — Semtech has explicitly redirected new feature work to LoRa Basics Modem (SWL2001), so LoRaWAN 1.2 and Relay support will never land here. Platform support is narrow: you get STM32Lx and SAMR34 out of the box; anything else (ESP32, nRF52, RP2040) requires a full port with no community-maintained targets in the official repo. The soft-SE stores keys in MCU flash with no access control, which is fine for prototyping but would fail a real product security review. No RTOS integration — the event-driven loop assumes bare metal, so dropping this into a FreeRTOS or Zephyr project requires non-trivial restructuring.