The Long Range wifi mode #11573
Replies: 3 comments 10 replies
-
A lot has happened to ESPNow since then. I had a go at LR mode with v1.17 or 1.18 and couldn't see any difference. Glenn has started a specific ESPNow thread. There is also a proper wifi.py script that handles all the issues around getting the right sequences. |
Beta Was this translation helpful? Give feedback.
-
With common-variety WiFi whips at both ends, using ESPNow I typically get -73 to -76dBm at about 100 metres. Worst case -78dm, that is still a good 15dB of margin. I use LoRa for the longer links. |
Beta Was this translation helpful? Give feedback.
-
I agree with @peterhinch here. I've had a lot of reports that LR_MODE doesn't make any difference to the RSSI values (but I wouldn't expect it to do so). The few reports that I have seen that demonstrate benefits of LR_MODE (not micropython examples) have shown a measured reduction in packet loss over distance. I think that will be the only convincing evidence for the benefits of LR_MODE. Also - note that LR_MODE is not restricted to ESPNow usage. Espressif claims it can be used to improve long-range performance between any ESP32 devices. However, successful reports of the benefits are pretty few and far between. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
I wanted to try the long range wifi mode in Micropython but this is less obvious than I thought. I have found a handful of (somewhat vague) references to this functionality in Micropython and at this point I'm not sure if it even exists. I try to send a message between 2 ESP32 devices (dfrobot firebeetle).
I found this thread referring to these lines:
w0 = network.WLAN(network.STA_IF)
w0.config(protocol=network.MODE_LR)
which sort of make sense to me but at the same time setting protocol=network.MODE_LR does not seem to do anything for me. When called before .active(True) the code sometimes runs once, but then throws me a 'RuntimeError: Wifi Unknown Error 0x0102' even after a hard reset. When called after .active(True) everything runs fine, but definitely not in the long range mode given the regular wifi performance.
I'm running v1.14 (2021-02-02) .bin on both devices. Am I doing something wrong? Or does this functionality not exist yet?
Here is the code from my sending device:
And here is the receiving end:
Beta Was this translation helpful? Give feedback.
All reactions