DEV Community

Vlad Avramut
Vlad Avramut

Posted on

I built a small LoRa toolkit to sanity-check airtime, link budgets, and LPWAN assumptions

I’ve been working on a series of long-form analyses around LoRa, Meshtastic, LPWAN performance, and mesh network failure modes.

One recurring problem:
most discussions around LoRa range, throughput, and “coverage” are either marketing-driven or based on hand-wavy assumptions.

So I built a small, auditable Python toolkit to make those first-order calculations explicit.

**

What This Toolkit Does

**

The goal is not simulation-grade accuracy.
It’s engineering sanity checks.

Right now the toolkit provides:

1) LoRa Time-on-Air calculation
Using the standard Semtech reference formula:

lora-toolkit airtime --sf 9 --bw 125 --payload 24

Outputs:

Time-on-Air: 205.82 ms

2) Link budget estimation (Friis model)

lora-toolkit link-budget --tx-power 14 --distance-km 5

Outputs:

Link Margin: 10.84 dB

This is deliberately conservative:
no optimistic propagation curves, no “magic range” heuristics.

3) Regional frequency plan reference

lora-toolkit plan --region EU868

Outputs:

max_eirp_dbm: 14
duty_cycle: 0.01
uplink_channels_mhz: [868.1, 868.3, 868.5]
Enter fullscreen mode Exit fullscreen mode

Why I Built This

Most LPWAN discussions collapse into one of two failure modes:

  • Unrealistic range expectations
  • Ignoring airtime and congestion constraints
  • Treating mesh networks as “scale-free”
  • Conflating LoRa PHY capability with network capacity

This toolkit exists to anchor those conversations in:

  • physics
  • regulatory constraints
  • airtime math
  • basic RF link budgets

Not marketing slides.

Design Philosophy

This project is intentionally minimal:

  • No external dependencies
  • No hidden heuristics
  • No optimistic propagation models
  • Fully auditable formulas
  • CLI-first interface
  • Conservative defaults It’s meant to be a reference tool, not a product.

Install & Use

git clone https://github.com/YOUR_USERNAME/lora-toolkit
cd lora-toolkit
python -m venv .venv
source .venv/Scripts/activate   # Windows / MobaXterm
pip install -e .
Enter fullscreen mode Exit fullscreen mode

Then:

lora-toolkit airtime --sf 9 --bw 125 --payload 24
lora-toolkit link-budget --tx-power 14 --distance-km 5
lora-toolkit plan --region EU868
Enter fullscreen mode Exit fullscreen mode

Roadmap

Planned next layers:

  • Meshtastic route capacity modeling
  • Queueing congestion simulator
  • Urban vs rural propagation profiles
  • CSV batch calculators
  • Visualization outputs

Repo

GitHub:
https://github.com/vladavramut/lora-toolkit

Closing

  • If you’re working with:
  • LoRaWAN deployments
  • Meshtastic
  • LPWAN sensors
  • decentralized comms
  • off-grid networking

and you care about realistic performance modeling,
feel free to fork, critique, or extend this.

I’m deliberately keeping it conservative and auditable.

Top comments (0)