lr2021

Crates.iolr2021
lib.rslr2021
version0.8.0
created_at2025-08-16 12:06:16.885857+00
updated_at2025-09-14 19:12:09.399345+00
descriptionDriver for Semtech LR2021
homepage
repositoryhttps://github.com/TheClams/lr2021
max_upload_size
id1798368
size496,657
(TheClams)

documentation

README

LR2021 Driver

Crates.io Documentation License

An async, no_std Rust driver for the Semtech LR2021 dual-band transceiver, supporting many different radio protocols including LoRa, BLE, ZigBee, Z-Wave, and more.

Quick Start

Add this to your Cargo.toml:

[dependencies]
lr2021 = "0.8.0"
embassy-time = "0.3"

Basic usage:

use lr2021_driver::Lr2021;

let mut radio = Lr2021::new(reset_pin, busy_pin, spi_device, nss_pin);
radio.reset().await?;
// Configure and use your preferred protocol

Hardware Requirements

  • Semtech LR2021 transceiver module
  • SPI-capable microcontroller
  • 3 GPIO pins: Reset (output), Busy (input), NSS/CS (output) (not counting SPI SCK/MISO/MOSI)
  • Embassy-compatible async runtime

Documentation & Examples

Protocol Test Status

Protocol Status Notes
LoRa Partial Basic communication between two LR2021 devices: smallest SF, highest bandwidth. TODO: Ranging
BLE Partial 1MB/s mode, compatible with other BLE devices. TODO: 2Mb/s, Coded
FLRC Tested Basic communication between two LR2021 devices
FSK Tested Generic FSK communication verified
Z-Wave Tested Scan mode tested with ZStick S2, R1-R3 reception
OOK Partial ADSB reception validated
ZigBee Partial Reception validated with standard device
WiSUN Planned
WMBus Planned
LR-FHSS Unplanned TX only (require gateway for test)
Sigfox (BPSK) Unplanned TX only (require gateway for test)
Commit count: 30

cargo fmt