The linked article describes the problem I’m having: I have a Pi Pico W programmed in C++ using PlatformIO and after a few hours of inactivity, the WiFi disconnects.

The rest of the program on the Pi Pico W continues to run, I can see it outputting debug statements in the serial link via USB.

I can’t use the solution proposed on the linked page because I’m running an http server on the Pi Pico W, intended to receive commands maybe two or three times a day. These are completely asynchronous, so I don’t have a way to know when a command is coming so I can get the WiFi connected again.

Is this a known issue? If so is there a solution that will cause the Pi Pico W to keep the WiFi connection active? I need that server running and listening 24 hours a day, 7 days a week, 365 days a year, irrespective of how little traffic is on it.

  • henfredemars@infosec.pub
    link
    fedilink
    English
    arrow-up
    0
    ·
    6 months ago

    Two ideas:

    Check whether your DHCP IP leases are running out. You can increase the lease time on your router.

    Second idea, if you’re using WPA, check the key renewal interval. That could be what’s killing your link.

    Had this issue on ESP.

    • dgnuff@lemmy.mlOP
      link
      fedilink
      English
      arrow-up
      0
      ·
      edit-2
      6 months ago

      Definitely not a DHCP lease issue. Leases default to 168 hours, i.e. 7 days, and the disconnect happens within single digits of hours.

      I’m not using WPA. Since TKIP is no longer considered secure enough, I’ve switched to WPA2 CCMP only, which has the additional; benefit of getting rid of the temporary keys than needed to be renewed.

      Also, when a DHCP lease runs out, the client should simply reapply for a new one. Since the device has a permanent DHCP reservation for a static IP (necessary to be able to run a server on it), then at worst that should cause an interruption of service lasting no longer than a second or two.

      Meanwhile the problem I’m having is typically permanent. Once it goes offline, it’s down until I reboot the device.