Early development
DongLoRa is a tool for building tools. It assumes familiarity with LoRa, serial protocols, and programming. APIs may change. If you're looking for a ready-made mesh device, check out Meshtastic or MeshCore.
DongLoRa
/ˈdɒŋ.ɡəl.ɔːr.ə/ — dongle + LoRa
Protocol-agnostic LoRa over USB.
Plug in. Talk radio.
Flash Your BoardWhat is it?
LoRa radios are cheap, long-range, low-power, and everywhere. But using one from a computer is surprisingly hard. You either run someone else's firmware with someone else's protocol baked in, or you write your own embedded code from scratch.
DongLoRa takes a different approach. Flash firmware onto a LoRa board once, and from that point on it's a dumb USB radio. It doesn't know or care what protocol you're running. It receives bytes from the air and hands them to your computer. It takes bytes from your computer and puts them on the air. That's all it does.
Everything else — what those bytes mean, how to route them, what to display, how to respond — happens in your code, on your computer, in whatever language you want.
your code ──► client library ──► USB ──► firmware ──► LoRa radio your code ──► client library ──┐ your code ──► client library ──┼──► mux ──► USB ──► firmware ──► LoRa radio your code ──► client library ──┘
What can you do with it?
Because the firmware is protocol-agnostic, a DongLoRa dongle works with any LoRa network — Meshtastic, MeshCore, custom protocols, or raw packets. You get the feedback loop of a scripting environment instead of a flash-and-pray embedded workflow.
Interact with mesh networks
Send and receive packets on Meshtastic, MeshCore, or any other LoRa protocol from a laptop, desktop, or Raspberry Pi. Write scripts that interact with mesh traffic programmatically.
Build bots and automations
Write a chatbot that receives messages over LoRa and responds via an LLM. Build an alert system. Log every packet on a frequency. All from Python or Rust on a server.
Bridge distant networks
The bridge application connects to local LoRa traffic, encrypts it, and relays it to other bridges over the internet. Two bridges in different cities extend a mesh network's range by thousands of miles.
Prototype without embedded development
Test a LoRa idea in Python in an afternoon. Change frequency, bandwidth, spreading factor — all from your code. Iterate fast. No cross-compilation, no JTAG, no boot loops.
Analyze RF traffic
Sniff, decode, and log every packet on a frequency. Useful for debugging mesh deployments, understanding channel utilization, or reverse-engineering protocols.
Deploy headless gateways
A Raspberry Pi with a dongle plugged in is a LoRa gateway. Add the mux and you can run multiple services on a single radio — a mesh node, a packet logger, and a bridge, all at once.
Supported Boards
Heltec V3
ESP32-S3 · SX1262
Web Flash
Heltec V4
ESP32-S3 · SX1262
Web Flash
RAK WisBlock 4631
nRF52840 · SX1262
UF2 Download
Wio Tracker L1
nRF52840 · SX1262
UF2 Download
Quick Start
- 1.
Flash the firmware
Use the web flasher or flash from the command line.
- 2.
Install a client library
pip install donglora-python
- 3.
Send your first packet
from donglora import DongLoRa radio = DongLoRa() radio.send(b"hello lora")
Repositories
Firmware
The code that runs on the LoRa board itself. Owns the radio hardware, speaks USB.
Client Libraries
Run on your computer. Handle USB discovery, protocol framing, and encoding so you just call send() and receive().
Rust client library — donglora-client on crates.io
Python client library — donglora-python on PyPI
Multiplexer
Optional daemon that lets multiple programs share a single dongle at the same time.
Applications
Real programs built on the layers above. Examples of what you can do with a DongLoRa dongle.