Skip to content
This repository was archived by the owner on Feb 13, 2024. It is now read-only.
This repository was archived by the owner on Feb 13, 2024. It is now read-only.

ESP32 'Espduino' modules - very low TX WiFi power issues #89

Open
@roadsnail

Description

@roadsnail

While carrying out some testing, I noticed that on occasions my ESP32 CS took a while to connect to my test WiFi with retries observed on the serial output.

Checking the status of my CS (as seen by the AP), I noticed the WiFi signal received by the AP was very low. Approx -85dBm, sometimes worse! Putting the CS into STA and AP mode made no difference, with the TX still low for AP and receive signal at my test AP. I independently checked the signal level with WiFi Analyser on my phone.

Thinking I may have a faulty module, I ordered up a new ESPduino (ESP32 on arduino form factor module just to be clear) and the results are exactly the same having flashed yesterday's master branch of CS.

Interestingly, but confusingly, a different module (NodeMCU ESP-32) does not seem to have an issue with TX WiFi power! The signal received from this module at my test AP is in the right ballpark given distance (around -50dBm): a huge difference of around 35dBm when compared to the ESPDuino modules (both of them).

In order to make sure the suspect modules are actually capable of higher transmit power and I haven't somehow broken them, I decided to do a full erase in Espressif's download tool and then flash micropython for ESP32 with the same tool. After flashing, micropython connects to my test AP without issue and at a sensible TX power level. (Around -50dBm) for both 'suspect' modules, thus proving the modules are indeed capable of operating at a higher TX WiFi power level and are not broken.

I noticed that on starting WiFi in STA mode on both modules, that micropython displays a message...
'phy_init: failed to load RF calibration data (0x1102), falling back to full calibration' but I would guess that is to be expected given that I did a full flash erase prior to flashing python, thus erasing any WiFi calibration data (stored in PHY NVS?). Note that this message is not displayed on subsequent STA connections which is normal given that WiFi calibration only need to be carried out once.

Following on from proving that both modules are capable of a full WiFi TX signal, I next flashed the master build of CS (on both modules) and observe that once again TX levels are very poor.

I am thinking that maybe Wifi calibration data is not being initialised fully by CS given the fact I do a full flash erase before flashing CS?

I am probably wrong given that no one else has reported any issues with CS on these ESP32 modules, and that I do not see an issue with the NodeMCU part? Why the NodeMCU module does not exhibit the power issue, I do not have any ideas given that all three of my modules are based on the same ESP-WROOM-32 modules. But I have now run out of ideas on how to get my two modules to work reliably with CS.

One last piece of information - all testing has been carried out with just plain ESP modules, ie no motor driver shield connected, ruling out any hardware interactions with the shield.

Any pointers as to where to go next would be much appreciated.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions