How robust is LoRa peer to peer communication?


We are experimenting with LoRa peer to peer communication with the following board:

We are able to get the ping pong code running on two boards and get the communication going, but so far we are puzzled by the robustness of such communication.

  1. Depending on presumably the timing each board starts, the ping pong scheme may never get started, presumably both boards will constantly try to ping the other one, because LoRa radios are not able to receive when sending, both board stuck.

  2. When the ping-pong scheme is going, moving/shaking one of the board can stop it.

  3. When ping-pong stops, resetting one of board by pressing reset button can occasionally get ping-pong going again, but oftentimes not.

Are we missing something here? I assume LoRa is much more robust than this.

Hi Zhiyong,

I never reliably got the ping-pong example working either. Instead I have been using and with the LRWAN1 board. In my tests, one-way message delivery was very reliable as long as there is line-of-sight between transmitter and receiver. I tested out to 12km with lots of signal headroom to go further.


Hi Jonathan,

Thanks for sharing your experience.

We ported the following code to Mbed-OS-5, then had the weird reliability issue., but once we manually set one board as master then the other as slave, the ping-pong seems to be able keep going, but shaking one board can still briefly slow stop ping-pong.

If we run the code above as it is in mbed-2, change the revision of mbed(the revision in code misses mbed.h therefore cannot build), then it works just fine. So we must have missed something when porting the code to mbed-os-5

In terms of range, in urban non-line-of-sight situation, the signal seems to drop rather quickly. In my test, one short building is enough to block when transmitter and receiver is only ~50 meters away from each other.

I had a similar experience with “ping/pong”, very short range. Using the simple rx/tx I have been unable to get it to work at all, I am using B-L072Z-LRWAN1. The tx console shows

rx shows “reset-rx” but nothing else. What am I missing?