ESP32 WiFi Speed Based on Signal Strength

I have read that "ESP8266 Wifi modules decide on link speed based on signal strength". Does anyone know that to be true? I am using the ESP32...

What I really want to do is set the ESP32 in AP mode with Arduino and have the ability to set the data rate to: 1 Mbps, 6 Mbps, 11 Mbps, 54Mbps, etc. as part of the FCC certificate testing.

I would love to hear from anyone with knowledge on this. I have researched this for days with no progress. I can't find any sample code or even anyone discussing hard-coding the data rate for an ESP32 Wifi.

I have found this using the Espresso IDE:
esp_wifi_config_80211_tx_rate(WIFI_IF_AP, WIFI_PHY_RATE_1M_L);

But I can't find anything similar using the Arduino IDE...?

This paper seems relevant:

https://www.tdcommons.org/cgi/viewcontent.cgi?article=2867&context=dpubs_series

another

https://www.metageek.com/training/resources/understanding-rssi/

Why not ask ESP32 Forum - Index page, it's their product.

That is a great idea. I created an account and posted in their Arduino section. Thanks!

Thanks! That was good background information, but it didn't have the answer I was looking for... I'm surprised I can't find any example where someone using Arduino IDE hasn't chosen a particular Wifi data rate for whatever reason...
I believe it is available in the Expresso IDF... The only clue I can find is in: esp_wifi.h But I can't figure out how to access it in Arduino...

  • @brief Config 80211 tx rate of specified interface
  • @attention 1. This API should be called after esp_wifi_init() and before esp_wifi_start().
  • @param ifx Interface to be configured.
  • @param rate Phy rate to be configured.
  • @return
    • ESP_OK: succeed
    • others: failed
      */
      esp_err_t esp_wifi_config_80211_tx_rate(wifi_interface_t ifx, wifi_phy_rate_t rate);

I have not approached this, but direct use of the ESP-IDF seems do-able:

https://medium.com/home-wireless/how-to-program-an-esp32-in-arduino-while-using-esp-idf-functions-90033d860f75

You may be able to use extern "C" { }
This forum post seems relevant
https://forum.arduino.cc/t/using-esp-idf-examples-in-arduino-ide/894646/5

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.