lorawan-device

Gitter chat

This is an experimental LoRaWAN device stack. It can be tested by using the example in the sx12xx-rs repository. You may also consider the example from the Drogue Device framework.

The device stack supports two modes, both designed for concurrency in non-threaded environments:

State machine implementation

There are two super-states that the Device can be in:

A state machine diagram is provided in src/state_machines/session

The following LoRaWAN features are implemented:

The following design features are implemented:

This is a work in progress and the notable limitations are:

Async implementation

The async implementation uses the async-await capabilities of Rust to drive the state machine. It differs from the state machine implementation in the following ways:

In terms of features, the async stack supports the same set of features as the state machine driven implementation.