I have five Uno R4 WiFi boards and one has -63dBm when all the others have about -40 to -45 only FIVE FEET from the router. On native ESP32 boards, under the Arduino IDE, there is the setTXPower function. This function is not implemented in the Uno R4 WiFi using the ESP32S3 as a "WiFi co-processor" ! Could this one board have a bad WiFi radio? It has latest (v0.4.1) bridging firmware.
Additionally, Uno R4 WiFi developers have implemented an AT modem command set to abstract the ESP32S3.
From the source to the bridge firmware ( GitHub - arduino/uno-r4-wifi-usb-bridge) in COMMANDS.H:
#define _GETRSSI "+GETRSSI" (which uses the WiFi.RSSI() function of the ESP32 library)
#define _GETSSID "+GETSSID"
#define _GETBSSID "+GETBSSID"
#define _GETSOFTAPSSID "+GETSOFTAPSSID"
many more...
The ESP32S3 can be accessed through Serial2 on the UNO R4 WiFi board;
i.e, Serial2.println("AT+GETRSSI"). Can also be tested at the "message line" of the Arduino IDE using a simple pass-through program to connect Serial to Serial2.
Note all command characters must be upper case.
Serial2.println("AT+RESET"); will execute the ESP.restart() function in the ESP32 library to reboot the ESP32
Serial2.println("AT+CMD?"); should send back all the commands but UNO only sends back -test- Apparently a work in progress.
Perhaps an enhancement to set the transmit power which, is in the WiFi code for ESP32 based board that compile under the Arduino IDE, etc. is needed; along with diagnostic commands emulating the existing AT commands for the ESP32.
It should be noted that much functionality is already implemented in Esspressif code. See the AT+RFPOWER command in the AT command reference for ESP32 at docs.esspressif.com web site.
More to come...