ESP32 WiFi Signal Strength

djmcmath
Posts: 3
Joined: Thu Apr 25, 2019 11:30 pm

ESP32 WiFi Signal Strength

Postby djmcmath » Fri Apr 26, 2019 12:57 am

I'm having troubles with ESP32 wireless signal strength. At this point, I believe the issue is something I'm doing in software, rather than a hardware problem.

Board: ESP32 Huzzah from Adafruit
IDE: Arduino 1.8.9, with the ESP32 1.0.1 board library.

Basic facts:
- The ESP32 is ~5ft from the AP, direct line of sight, no objects of any kind between them.
- The AP is a Unifi AP-LR; other devices can connect to this from two floors away, reliably.
- Reported RSSI at time of connection is approximately -52 to -58dB. Not great, but workable. And it seems low, for the range and lack of interference. It'll serve the web page, return pings, and so on.
- Over time, the RSSI degrades to -87ish dBm. It won't serve the web page, and very few pings are returned.

Things I've Tried:
- Hacking off part of the board. There's a little bit of PCB under the antenna on the Huzzah board. Cutting it off helps RSSI by a few dB, but it doesn't fix the problem.
- Resetting NVS physical RF calibration data every time. esp_phy_erase_cal_data_in_nvs();
- Checking the power level and RSSI periodically. According to the logs, max power level remains constant (it's showing 78, which is level 0, which is max power). RSSI degrades over time.

My current best theory is that something is slowly ramping down wifi transmit power over time. I have almost nothing to substantiate this theory, but it's the best I have.

Has anyone else seen behavior like this? Any thoughts?

Thanks,
Dan

boarchuz
Posts: 605
Joined: Tue Aug 21, 2018 5:28 am

Re: ESP32 WiFi Signal Strength

Postby boarchuz » Fri Apr 26, 2019 3:32 am

I'm sure Adafruit don't use them but I have to ask: The ESP32 module doesn't have an IPEX connector, does it?

It still wouldn't explain the decreasing rssi which is really strange. Does this also occur with a very simple WiFi sketch (eg. an example edited to print out rssi occasionally), or only with yours?

Is there any change if you tinker with the channel etc on your router?

Have you tested with a different router?

WiFive
Posts: 3529
Joined: Tue Dec 01, 2015 7:35 am

Re: ESP32 WiFi Signal Strength

Postby WiFive » Fri Apr 26, 2019 5:30 am

Can you correlate it to thermal cycling?

djmcmath
Posts: 3
Joined: Thu Apr 25, 2019 11:30 pm

Re: ESP32 WiFi Signal Strength

Postby djmcmath » Sat Apr 27, 2019 10:45 pm

Boarchuz:
- The Adafruit module does not have an IPEX, no. There's a process for installing one, but it's pretty dodgy.
- The problem appears to be independent of router (tried at several different sites, with several different APs, and similar results)
- Channel appears to be automatically chosen. Is there a way to encourage the ESP32 to pick a different channel?
- I've been able to duplicate this with a pretty simple sketch, just basically attempting to connect, with nothing else going on.

WiFive: Thermal cycling ... good thinking, but I'm not seeing any correlation there. It doesn't appear to be a problem related to run time since power up so much as run time since the network was connected.

So what I've found so far is interesting:
- Reported RSSI is nearly meaningless. Right now, I have one ESP32 reporting -87dB at the AP, but it's working just fine.
- Calling "WiFi.disconnect(true)" immediately before attempting to connect (Wifi.begin()) makes the connection work correctly more consistently. Oddly, setting the mode to WIFI_OFF, then WIFI_STA does not seem to have the same effect, though I would have thought the functionality would be similar.
- "esp_wifi_set_ps(WIFI_PS_NONE)" turns off power saving. If I've read the documentation correctly, this shouldn't matter ... but adding this line seems to help.

Thanks for the help,

Dan

Who is online

Users browsing this forum: No registered users and 33 guests