Skip to main content

Loudify

·236 words·2 mins
Martyn van Dijke
Author
Martyn van Dijke
Enthusiast selfhoster by night, Team Architect & DevOps engineer at day.
Loudify

For my graduation project I extended the LoRa GNU Radio module gr-lora_sdr into Loudify: a client running a GNU Radio flowgraph, a worker doing the actual demodulation, and a broker connecting the two over ZMQ.

The project — a Centralized Radio Access Network gateway for LoRa — researches whether LoRa packets received by different gateways can be aggregated at a central point, letting gateways share information about the signals they receive.

Architecture
#

Loudify consists of three parts:

Part Role
Client Runs the GNU Radio flowgraph and captures the samples
Broker Central point all clients connect to; queues the work
Worker Receives the samples and performs the LoRa demodulation

The GNU Radio module
#

The signal processing lives in gr-lora_sdr, a GNU Radio out-of-tree module that can:

  • Transmit LoRa packets from USRP to USRP, from a commercial LoRa transceiver to a USRP and the other way around (tested with the Adafruit Feather 32u4 RFM95)
  • Produce fully end-to-end experimental performance results of a LoRa SDR receiver at low SNRs
  • Handle spreading factors 7–12, coding rates 0–4, implicit and explicit header mode and payloads up to the LoRa maximum of 255 bytes
  • Verify the payload CRC and explicit header checksum

Installing
#

The easiest way is straight from PyPI:

pip install loudify

Or from source, using flit:

git clone https://github.com/martynvdijke/loudify
cd loudify
pip install flit
flit install

Links #