Skip to content

lora/lora-lorawan: Add LoRaWAN 1.0.x MAC layer#1111

Open
ddtdanilo wants to merge 1 commit intomicropython:masterfrom
ddtdanilo:add-pycom-lorawan
Open

lora/lora-lorawan: Add LoRaWAN 1.0.x MAC layer#1111
ddtdanilo wants to merge 1 commit intomicropython:masterfrom
ddtdanilo:add-pycom-lorawan

Conversation

@ddtdanilo
Copy link
Copy Markdown

Summary

Add lora-lorawan: a LoRaWAN 1.0.x MAC layer for MicroPython.

  • OTAA and ABP activation modes
  • Class A device operation (TX → RX1 → RX2)
  • AES-128-CMAC (RFC 4493) and CTR-mode crypto built on ucryptolib
  • MIC calculation, payload encryption, session-key derivation

The MAC layer is radio-agnostic: it consumes a radio object that exposes
the lora send/recv API. Tested with lora-sx127x-pycom on Pycom LoPy/LoPy4 boards.

Split out of #1102 per @projectgus's request to
make the driver and the MAC layer reviewable independently.

Testing

  • All files pass ruff check and ruff format
  • LoRaWAN crypto verified against RFC 4493 test vectors
  • End-to-end OTAA join + uplink against The Things Network on a LoPy4 (Pycom SX1276)

Related

Add LoRaWAN Class A device operation with OTAA and ABP activation.
Includes AES-128-CMAC/CTR crypto primitives built on ucryptolib for
MIC calculation, payload encryption, and session key derivation per
the LoRaWAN 1.0.x specification.

Used by Pycom LoPy/LoPy4 boards as defined in
micropython/micropython#19026.

Signed-off-by: Danilo D <danilodt@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant