Arduino Network causing severe battery drain on WiFi connected devices.

Not quite... Wake-On-Lan is to remotely turn on a device (such as a laptop or PC that's turned off / hibernated / suspended). They would normally completely ignore all network traffic, including ARP broadcasts, unless it received a "Magic Packet": Wake-on-LAN - Wikipedia

What I'm talking about is a bit different. When a modern mobile device, such as an Android phone or iPhone, isn't doing anything, it goes into a low power state - essentially dropping the CPU clock speed down to something very small, turning off circuits that aren't needed, reducing the RAM refresh, etc.

When they receive an ARP broadcast though, they will go to full speed so that they can deal with it. It is normally advantageous for the device to stay at full speed for a while so that other processes can catch up and not immediately require it to wake up again (as powering up everything causes a reasonably battery hit on its own). So it'll normally stay awake for a few seconds, then go back into a power save mode. I can't speak for all devices, but on my phone it'll stay awake for at least a few seconds when woken up. So, sending frequent broadcasts to the device that require it to wake up can cause it to stay fully awake forever.

This is exactly what's happening with me based on the following evidence:

  • The logs show that its being woken up constantly due to receiving stuff on the WiFi.
  • The log entries are timed at exactly the same frequency that my Arduino is sending stuff.
  • Wireshark shows the Arduino sending those ARP broadcasts at the same frequency and times that my phone is being woken up.
  • If I disconnect the Arduino from the network, the battery lasts around around 20x longer. When it's disconnected the remaining WiFi RX wakelocks account for almost no power use (under 2% of total battery use).
  • If I reconnect the Arduino the battery life sucks again.
  • It's not just my phone, but several mobile devices in the household that exhibit exactly the same behaviour.