Hi all,
I wanted to share a project I've been working on this summer as part of
Google Summer of Code 2026 with LibreCube: a pure-Python LoRa physical-layer
receiver (softlora) and an SDR-based TinyGS ground station (tinygs).
softlora decodes LoRa packets from IQ recordings or live SDR streams using
only NumPy/SciPy. Synchronization implements the three-stage CFO/STO estimator in [1], and I ported gr-lora_sdr's frame_sync block as an alternative front-end. It's
tested on synthetic AWGN sweeps, over-the-air captures, and real satellite
passes (SF7-12).
Links:
tinygs (ground station): https://gitlab.com/librecube/lib/python-tinygs
Happy to answer questions and get feedback. :)
[1] M. Xhonneux, O. Afisiadis, D. Bol, and J. Louveaux, "A Low-Complexity
LoRa Synchronization Algorithm Robust to Sampling Time Offsets," IEEE
Internet of Things Journal, 2021. https://arxiv.org/abs/1912.11344
Cheers,
Hamza Sayed
I wanted to share a project I've been working on this summer as part of
Google Summer of Code 2026 with LibreCube: a pure-Python LoRa physical-layer
receiver (softlora) and an SDR-based TinyGS ground station (tinygs).
softlora decodes LoRa packets from IQ recordings or live SDR streams using
only NumPy/SciPy. Synchronization implements the three-stage CFO/STO estimator in [1], and I ported gr-lora_sdr's frame_sync block as an alternative front-end. It's
tested on synthetic AWGN sweeps, over-the-air captures, and real satellite
passes (SF7-12).
Links:
Project write-up: https://studhamza.github.io/hamza-folio/projects/LoRa_tinygs/
softlora (LoRa PHY decoder): https://gitlab.com/librecube/lib/python-softloratinygs (ground station): https://gitlab.com/librecube/lib/python-tinygs
Happy to answer questions and get feedback. :)
[1] M. Xhonneux, O. Afisiadis, D. Bol, and J. Louveaux, "A Low-Complexity
LoRa Synchronization Algorithm Robust to Sampling Time Offsets," IEEE
Internet of Things Journal, 2021. https://arxiv.org/abs/1912.11344
Cheers,
Hamza Sayed
No comments:
Post a Comment