arduinowifiesp32indoor-positioning-system

How to query WiFi AP's transmit power programmatically on ESP32(Arduino)?


How can I query WiFi Access Points' original signal strength(1-meter RSSI) programmatically?

Context: I am trying to implement/use the indoor positioning system using WiFi APs around ESP32(Arduino) board. I can retrieve RSSI using WiFi.getRSSI();, but I cannot find a way to get Original Transmit power or 1-meter RSSI using APIs.


Solution

  • Unfortunately you can not. Access points do not broadcast what power level they transmit at. You only have access to the the strength of the signal when it was received (RSSI). You would have to create some sort of API where you could query the transmit power of the access point. The open source firmware DD-WRT allows you to to set and query the transmit power of 2.4 GHz and 5 GHz spectrums using bash commands. You could possible create an SSH connection to the access point and run commands to set/query the transmit power like so ..

    wl -i eth1 txpwr 70 # will set your adapter to 70 mW for the 5GHz
    wl -i eth1 txpwr1   # check transmitt power for 5 GHz
    

    You can read more about it here.