Mperipheral

deki-lora

LoRa radio. A Semtech SX1262 driver that sends and receives packets, with a duty-cycle limit built in.

chip
Semtech SX1262
bus
SPI

deki-lora sends and receives LoRa packets through a Semtech SX1262, the radio on the LilyGO T-Deck Plus and most of the current LoRa modules. Put SX1262LoRaComponent in the boot scene with the radio’s pins; game code finds it through DekiLoRa::GetCurrent(), calls Send(), and takes what arrived from Receive(), with its RSSI and SNR.

The radio listens whenever it is not sending. It can share an SPI bus the display already uses, as on the T-Deck, and with its interrupt line (DIO1) wired it only touches that bus when it has something to say, so a frame on its way to the display is never held up by a radio with nothing to report.

The duty cycle is enforced, not documented: 1% by default, Europe’s rule for 868 MHz, worked out from each packet’s time on air. A Send() that would go over it is refused, and MillisecondsUntilCanSend() says how long to wait. Frequency, power, spreading factor, bandwidth and coding rate are all properties; set them for the band where the device will be used, such as 915 MHz in the Americas.

ESP-IDF only for now. The source and its README are on GitHub.