This is a PoC implementation of LoRaWAN using a STM32WL MCU and RTIC. This example uses a NUCLEO-WL55JC board as hardware.
If you are using other boards, modify rfswitch
accordingly to reflect your configuration.
WIP This is not a working implementation (yet)!
Thanks to newAM, ivajloip, and all the contributors of stm32wl-hal, rust-lorawan and the Rust embedded community. This wouldn't be possible without them.
- --
JoinRequest
is sent and acknowledge only below SF9. When using lower data rates (i.e. higher Spreading Factor) the gateway does not see packets.--- Solved: Needed to use LoRa SyncWord Public. The
Public
vsPrivate
nomenclature meansLoRaWAN
vs.non-LoRaWAN
, instead of public/private LoRaWAN networks.
- Solved: Needed to use LoRa SyncWord Public. The
- When
JoinAccept
is generated by the gateway, nothing is seen at the MCU.- Solved: A
JoinAccept
is 17 bytes long and in SF12 takes longer than 1 second to be fully received. The LoRaWAN spec, section3.3.1 Receiver activity during receive windows
states that a receiver should stay active until the frame is demodulated if a preamble is detected during the RX window. This means using thePreambleDetected
interrupt to stop the timers from closing the window. In the first version of this code, we usedRxDone
, so the timers to close the RX window (800 ms) always triggered before the frame reception was complete.
- Solved: A