├── ESP_WiFI_Power_Adjust.ino └── README.md /ESP_WiFI_Power_Adjust.ino: -------------------------------------------------------------------------------- 1 | #ifdef ESP8266 2 | #include 3 | #else 4 | #include 5 | #endif 6 | /* 7 | * Available ESP32 RF power parameters: 8 | WIFI_POWER_19_5dBm // 19.5dBm (For 19.5dBm of output, highest. Supply current ~150mA) 9 | WIFI_POWER_19dBm // 19dBm 10 | WIFI_POWER_18_5dBm // 18.5dBm 11 | WIFI_POWER_17dBm // 17dBm 12 | WIFI_POWER_15dBm // 15dBm 13 | WIFI_POWER_13dBm // 13dBm 14 | WIFI_POWER_11dBm // 11dBm 15 | WIFI_POWER_8_5dBm // 8dBm 16 | WIFI_POWER_7dBm // 7dBm 17 | WIFI_POWER_5dBm // 5dBm 18 | WIFI_POWER_2dBm // 2dBm 19 | WIFI_POWER_MINUS_1dBm // -1dBm( For -1dBm of output, lowest. Supply current ~120mA) 20 | 21 | Available ESP8266 RF power parameters: 22 | 0 (for lowest RF power output, supply current ~ 70mA 23 | 20.5 (for highest RF power output, supply current ~ 80mA 24 | */ 25 | void setup() { 26 | Serial.begin(115200); 27 | WiFi.mode(WIFI_AP_STA); 28 | WiFi.softAP("TestNetwork", "password"); // Monitor the WiFi signal strength of the Network SSID called 'TestNetwork' 29 | WiFi.begin("yourSSID", "yourPASSWORD"); 30 | while (WiFi.status() != WL_CONNECTED) { 31 | Serial.print("."); 32 | delay(100); 33 | } 34 | Serial.println("\nWiFi connected at: " + WiFi.localIP().toString()); 35 | 36 | #ifdef ESP32 37 | WiFi.setTxPower(WIFI_POWER_MINUS_1dBm); // Sets WiFi RF power output to lowest level, lowest RF power usage 38 | delay(60000); 39 | Serial.println("Now switching to HIGH power mode"); 40 | WiFi.setTxPower(WIFI_POWER_19_5dBm); // Sets WiFi RF power output to highest level, highest RF power usage 41 | #else 42 | WiFi.setOutputPower(0); // Sets WiFi RF power output to lowest level, lowest RF power usage 43 | delay(60000); 44 | Serial.println("Now switching to HIGH power mode"); 45 | WiFi.setOutputPower(20.5); // Sets WiFi RF power output to highest level, highest RF power usage 46 | #endif 47 | } 48 | 49 | void loop() { 50 | // put your main code here, to run repeatedly: 51 | } 52 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # ESP32-8266-Adjust-WiFi-RF-Power-Output 2 | How to adjust the ESP32 or 8266 Wi-Fi RF power output 3 | 4 | Adjust the WiFi RF power output on the ESP32: 5 | 6 | Lowest RF power output 7 | WiFi.setTxPower(WIFI_POWER_MINUS_1dBm); // Set WiFi RF power output to lowest level 8 | 9 | Highest RF power output 10 | WiFi.setTxPower(WIFI_POWER_19_5dBm); // Set WiFi RF power output to highest level 11 | 12 | *Use one of the following parameters to change the power output: 13 | 14 | * Available ESP32 RF power parameters: 15 | WIFI_POWER_19_5dBm // 19.5dBm (19.5dBm output, highest supply current ~150mA) 16 | WIFI_POWER_19dBm // 19dBm 17 | WIFI_POWER_18_5dBm // 18.5dBm 18 | WIFI_POWER_17dBm // 17dBm 19 | WIFI_POWER_15dBm // 15dBm 20 | WIFI_POWER_13dBm // 13dBm 21 | WIFI_POWER_11dBm // 11dBm 22 | WIFI_POWER_8_5dBm // 8dBm 23 | WIFI_POWER_7dBm // 7dBm 24 | WIFI_POWER_5dBm // 5dBm 25 | WIFI_POWER_2dBm // 2dBm 26 | WIFI_POWER_MINUS_1dBm // -1dBm (For -1dBm output, lowest supply current ~120mA) 27 | 28 | Adjust the WiFi RF power output on the ESP32: 29 | 30 | Available ESP8266 RF power parameters: 31 | Lowest RF power output 32 | WiFi.setOutputPower(0); // Sets WiFi RF power output to lowest level, lowest RF power usage 33 | 34 | Highest RF power output 35 | WiFi.setOutputPower(20.5); // Sets WiFi RF power output to highest level, highest RF power usage 36 | 37 | *Adjust the parameter value in 0.5dBm increments to suit your needs: 38 | 39 | 0 (for lowest RF power output, supply current ~ 70mA 40 | 20.5 (for highest RF power output, supply current ~ 80mA 41 | 42 | Example: 43 | void setup() { 44 | Serial.begin(115200); 45 | WiFi.mode(WIFI_AP_STA); 46 | // Now get the ESP to create a test network so you can see the difference in RF power / signal strength 47 | WiFi.softAP("TestNetwork", "password"); // Monitor the WiFi signal strength of the ESP generated Network called 'TestNetwork' 48 | WiFi.begin("yourSSID", "yourPASSWORD"); 49 | while (WiFi.status() != WL_CONNECTED) { 50 | Serial.print("."); 51 | delay(100); 52 | } 53 | Serial.println("\nWiFi connected at: " + WiFi.localIP().toString()); 54 | 55 | #ifdef ESP32 56 | WiFi.setTxPower(WIFI_POWER_MINUS_1dBm); // Sets WiFi RF power output to lowest level, lowest RF power usage 57 | delay(60000); 58 | Serial.println("Now switching to HIGH power mode"); 59 | WiFi.setTxPower(WIFI_POWER_19_5dBm); // Sets WiFi RF power output to highest level, highest RF power usage 60 | #else 61 | WiFi.setOutputPower(0); // Sets WiFi RF power output to lowest level, lowest RF power usage 62 | delay(60000); 63 | Serial.println("Now switching to HIGH power mode"); 64 | WiFi.setOutputPower(20.5); // Sets WiFi RF power output to highest level, highest RF power usage 65 | #endif 66 | } 67 | --------------------------------------------------------------------------------