Relative location over LoRa: RTToF (round-trip time of flight) ranging
between two LR11xx radios, ported to Rust from Semtech's
lr11xx_ranging_demo
application.
A ranging session pairs a manager (initiator, collects results) with a subordinate (responder). After a plain-LoRa handshake, both sides hop through a 39-channel plan in lockstep, performing one RTToF exchange per channel; the manager reads a raw distance and RSSI per exchange and reports the median distance, which is robust to per-channel multipath outliers.
lora-ranging—no_stdsession logic, sans-io: state machines consume radio/timerEvents and emit radioActions. The embedding firmware owns the radio (e.g.lora-phy'sLr1110driver, which carries the matching RTToF command surface) and the timers. The full two-device protocol runs under simulation intests/exchange.rs.
Planned: firmware for the Seeed WM1110 (nRF52840 + LR1110) dev kit and a host-side collection service.
- LR11xx transceiver firmware ≥ 0x0401 (RTToF support)
- Both devices configured with the same channel plan, spreading factor,
bandwidth (125/250/500 kHz only), response symbol count and RX/TX delay
calibration (
delay::recommended_rx_tx_delay_indicator)
BSD-3-Clause-Clear, matching the Semtech sources the protocol logic and calibration tables derive from.