DongLoRa

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 Board

What 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. 1.

    Flash the firmware

    Use the web flasher or flash from the command line.

  2. 2.

    Install a client library

    pip install donglora-python
  3. 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().

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.