Case study · Wireless & outdoor IoT

Two points, hundreds
of metres of
obstacles apart

Detecting a transit between two points hundreds of metres apart, with vegetation in between, and signalling it in real time: it sounds simple until you rule out Wi-Fi and Bluetooth, which simply don't reach that far. For a transit-signalling installation we designed a long-range point-to-point LoRa link, then diagnosed and fixed a subtle bug that made the signal re-trigger on its own with no real transit at all. The technical account of how we got there.

Project developed for a private client · Domain: outdoor wireless detection / long-range IoT · Confidential details anonymised.

Reliable with
nobody watching

Wi-Fi and Bluetooth don't reach

At hundreds of metres, with vegetation and natural obstacles in between, short-range radio protocols aren't enough. You need a band and a power level built to punch through obstacles, not for bandwidth.

A fire-and-forget install

An unattended installation: nobody checks logs or a diagnostic dashboard after it's deployed. Every design choice has to hold up on its own, with no maintenance and no telemetry anyone will ever read.

A lost packet must not lie

On long-range radio, the occasional lost packet is physiological. The system has to tolerate it without generating false states — in our case, a signal that turns itself on for no reason.

Two nodes, one role each

The two points of the installation have different wiring and logic: loading the wrong firmware onto the wrong node breaks communication. In the field, that mistake has to be made impossible or at least obvious.

Periodic
retransmission
instead of fragile acks

The system uses two point-to-point LoRa radios in the 868 MHz band, 1 W class: the combination of low frequency and high power punches through vegetation and obstacles over distances where Wi-Fi and Bluetooth stand no chance at all. Each node holds a state counter representing the recorded transit; on receiving an event, the counter is updated and retransmitted periodically, not just once.

This retransmission every 15 seconds is the real defence against packet loss: if a message is lost, the node repeats it on the next cycle until the other end realigns on its own. No acknowledgement handshake protocol — harder to implement correctly, and more fragile if the ack itself gets lost.

During field testing, a subtle bug surfaced: an anti-saturation mechanism was zeroing the counter locally as soon as the sum returned to zero. It looked like a harmless safeguard, but it silently disabled the self-realignment property — if the decrement packet was lost, the node zeroed itself anyway and stopped retransmitting it, while the other node kept re-broadcasting its "stale" state every 15 seconds. The result: the signal re-triggered on its own after 30-60 seconds, with no real transit at all. Diagnosing it required reconstructing the exact sequence of packet loss plus auto-zero; the fix was to remove the local auto-zero and let periodic retransmission alone realign the state, with a safety timeout as a final backstop against residual drift.

The tools

LoRa 868 MHz1W-class RF modulePoint-to-point link AVR MCUC/C++ firmware

Long-range radio

868 MHz LoRa module, 1 W power, range built to punch through vegetation and obstacles over hundreds of metres.

Absolute state, not a fragile increment

Counters representing a real absolute value, retransmitted periodically instead of relying on a point-to-point acknowledgement.

Non-interchangeable nodes by design

Distinct firmware and wiring per role, to make a field installation mistake obvious and hard to make.

Self-realigning,
zero false alarms

After removing the auto-zero, the system realigns on its own after every occasional packet loss, with no false states and no need for remote intervention. No diagnostic telemetry installed: for an unattended installation, a log nobody reads doesn't add reliability, it just adds another silent point of failure.

Embedded firmware development
868 MHzRadio
band
1 WTransmit
power
15 sRetransmission
cycle
0False alarms
after the fix
Frequently asked questions

Long-range LoRa
detection, in brief

Why LoRa instead of Wi-Fi or Bluetooth to detect a transit at a distance?

LoRa operates on low bands (868 MHz in Europe) with a spread-spectrum modulation built for range and energy efficiency, not for bandwidth. At equal power, it punches through obstacles and covers distances that Wi-Fi (2.4 GHz, high attenuation) and Bluetooth (built for a few metres) don't come close to reaching.

What is periodic realignment retransmission and why is it more robust than an ack?

An acknowledgement requires every message to be confirmed by the receiver: if the ack itself is lost, you need a retry logic that adds complexity and new ways to fail. Periodically retransmitting the absolute state, instead, means every occasional loss self-corrects on the next cycle, with no confirmations needed. It's simpler and, if designed well, more robust.

How do you design a wireless system for maintenance-free installations?

By avoiding diagnostics nobody will ever read: every state has to self-correct on its own. Time-based backstops (timeouts) get added as a last safety net against residual drift, and everything is validated with a long-term soak test at the real distance before delivery.

Does your work cover only firmware or also the choice of radio modules?

We cover the whole chain: sizing the radio link (band, power, air rate), choosing the module, embedded firmware and field testing. It's the same end-to-end approach we apply to every electronics and firmware project.

A sensor that
needs to talk
over long range?

LoRa radio links, maintenance-free outdoor systems, firmware that self-realigns after a communication error: if you have a wireless installation to make reliable, let's talk. The initial discovery is free.

Tell us about your project

Firmware for radio systems

Design and development of embedded firmware for wireless links.

Firmware development →

PCB design

Schematics and layout for radio modules and outdoor sensors.

PCB design →

Other case studies

Sensing, low-power BLE, robotics and more.

Go to case studies →