TL;DR
This paper introduces a simple, Python-based LoRaWAN/LoRa simulator with a novel capture effect model and firmware evaluation capabilities, addressing complexity and support limitations of existing simulators.
Contribution
It presents a lightweight, user-friendly Python simulator with a custom asyncio kernel, capture effect modeling, and real firmware testing, unlike prior complex C++ tools.
Findings
Built a Python simulator with a custom asyncio kernel.
Implemented a capture effect model for realistic packet delivery.
Enabled firmware testing with cross-compiled STM32 code.
Abstract
Existing LoRaWAN/LoRa simulators consist of large, complicated C++ codebases and often do not support all device classes. This paper presents the design of a simple to use, Python-based discrete-event simulator that addresses these gaps while also introducing a novel method for evaluating real device firmware in the simulator. The simulator is built on a custom asyncio-based simulation kernel, a three-phase packet delivery model that reproduces the capture effect, a full LoRaWAN 1.0.4 stack, and a containerized firmware system that cross-compiles real STM32 C firmware and redirects HAL calls into the simulator via CFFI. The simulator is distributed as a Python package via Github (https://github.com/MatthijsReyers/lora-simulator) and requires no external simulation framework or dependencies.
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Code & Models
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
