Wio-E5-LE Lora P2P range issues

Hi there,

Something doesn’t add up? I did some additional checking… AL agrees :grin:
there is a Spreading Factor 6 (SF6) in the LoRa spec — but it’s a special case with strict limitations, and here’s the scoop:


:1234: Spreading Factor 6 (SF6) – Overview

Property Value
Spreading Factor SF6
Fastest SF :white_check_mark: Yes
Shortest air time :white_check_mark: Very low latency
Range :x: Very short
Sensitivity :x: Worst of all SF values
Support :x: Not supported in most libraries (e.g., RadioLib)

:warning: Why SF6 Is Rarely Used

SF6 has some serious caveats:

  • Requires implicit header mode only (no automatic payload length).
  • Short preamble — which can affect detection sensitivity.
  • Not supported in many LoRa chips unless you dive deep into manual register configuration.
  • RadioLib does not currently support SF6, as of latest stable releases.

:satellite: Use Cases (if any)

  • Super short-range links.
  • When you need ultra-low latency (like 5–10 ms airtime).
  • Controlled environments (e.g., inter-chip comms or testing setups).

:mag: Example Air Times Comparison (Payload = 12 bytes, 125 kHz BW)

SF Air Time (approx)
6 ~20 ms (fast!)
7 ~41 ms
8 ~72 ms
12 ~987 ms

:white_check_mark: Recommended Minimum SF

For most SX1262 and LoRa setups (and for RadioLib), the minimum valid and usable SF is SF7.


:bulb: Bottom Line

  • Yes, SF6 exists.
  • But: Not supported in RadioLib or most normal configurations.
  • Use SF7–SF12 for compatibility, reliability, and real-world range.

I thought initially you needed more delay, but your not doing HDX, most setups use it this way. and my Pong times improved a lot.

:gear: 1. Spreading Factor (SF) Increases On-Air Time

The Spreading Factor (SF) defines how much time it takes to send a packet. Higher SF = slower transmission, but longer range and better sensitivity.

SF Approx. Air Time for 12 bytes (at BW 125 kHz, CR 4/5)
7 ~41 ms
8 ~72 ms
9 ~144 ms
10 ~246 ms
11 ~494 ms
12 ~987 ms (! almost 1 second)

So if you’re using SF12, it can take nearly a second just to send one packet. And the same goes for the response (e.g. PONG).


:arrows_counterclockwise: 2. Turnaround Time Between TX and RX

After transmitting (e.g., a “PING”), the module has to switch from TX mode to RX mode. While fast, there’s still some processing time:

  • Some delay in exiting TX mode
  • Switching the hardware into RX mode (plus RadioLib library logic)
  • Receiver may not be immediately ready if you switch too quickly

If you start listening too soon, you might miss the response, especially at longer ranges and higher SF.


:brain: 3. Propagation Delay (Distance)

LoRa is long-range, and the speed of radio waves is finite — though small, propagation delay becomes measurable over kilometers.

Example:

  • Speed of light = ~300,000 km/s
  • At 10 km: Delay = ~33 µs
  • This is tiny, but combined with RX startup time and processing, it adds up.

  1. LoRa RX Timeout and Missed Windows I was thinking this, but only in HDX setups

In the receiver, you often define a timeout — how long it waits for a packet. If this window is too short, the response may arrive late and be ignored.

For example:

radio.receive(buffer, length, timeout_ms);

If the timeout is too small (say 50 ms) and you’re using SF11 or SF12, you’ll miss packets — because the air time is longer than your RX window.


:white_check_mark: Best Practice: Match Timing to SF

  • Use longer timeouts for higher SF (longer range).
  • Insert short delays after TX before RX to allow full air time.
  • Log air times or pre-calculate them using formulas or LoRa calculators (like Semtech’s spreadsheet).

:bulb: Pro Tip:

Some folks dynamically calculate the airtime using:

float airTime = radio.getTimeOnAir(payloadLength);  // ms

Then wait that long (+ a margin) before enabling RX.


Maybe a dynamic timeout system based on SF and payload size — it can improve your PING/PONG reliability significantly

Sorry but I think if your using Radio Lib, You never did post any code so what your thinking probably isn’t going to work like you think.
HTH
GL :slight_smile: PJ :v: