wifi cyw43 #3080
k-madsenDK
started this conversation in
Ideas
wifi cyw43
#3080
Replies: 1 comment 1 reply
-
Power mode is already exposed arduino-pico/libraries/WiFi/src/WiFiClass.h Lines 409 to 412 in c2fe192 After WiFi.begin you can call one of those to set the driver config |
Beta Was this translation helpful? Give feedback.
1 reply
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Title: Expose CYW43 WiFi power management (powersave/performance) and TX power in Arduino API
Context
Problem
On Pico W the CYW43 driver defaults to a balanced power-save. With certain AP policies (e.g., Group Rekey Interval, inactivity timeouts) we see periodic reconnects, typically every 30/60 minutes. Example log (real device):
[UNSYNCED] WATCHDOG_RESET
[2025-08-17 00:03:03] WIFI_RECONNECT 192.168.7.49
[2025-08-17 00:33:00] WIFI_RECONNECT 192.168.7.49
[2025-08-17 01:02:59] WIFI_RECONNECT 192.168.7.49
[2025-08-17 02:02:59] WIFI_RECONNECT 192.168.7.49
[2025-08-17 02:33:03] WIFI_RECONNECT 192.168.7.49
... (pattern continues throughout the day) ...
Workarounds like periodic UDP keep-alives help, but the robust fix for some deployments is to run the radio in “no powersave” / “performance” mode and/or set a higher TX power. This used to be reachable via low-level cyw43 calls, but those are not exposed in the current Arduino layer.
Request
Please expose a minimal WiFi power management and TX power API at the Arduino level so sketches can control the CYW43 radio without custom CMake builds:
Proposed API (Arduino)
Power-save control:
or
TX power (if supported by the driver/firmware on Pico W):
Rationale
Design sketch (mapping to cyw43)
Backward compatibility
Alternatives considered
Environment evidence
Related
Example usage
void setup() {
WiFi.begin(ssid, pass);
if (WiFi.waitForConnectResult() == WL_CONNECTED) {
WiFi.setPowerMode(WIFI_PM_NONE); // or WiFi.setPowerSave(false);
// Optionally: WiFi.setTxPower(10); // if supported
}
}
Thanks for maintaining the Pico W support — exposing these knobs would solve practical field issues without forcing users off the Arduino toolchain.
Beta Was this translation helpful? Give feedback.
All reactions