ESPHome compresses wireless firmware updates on ESP32, RP2040 and LibreTiny devices, extending an option previously used on ESP8266. In J. Nick Koston’s board tests, the ESP32 transfer shrank from 762 KB to 534 KB and the Pico W transfer from 515 KB to 353 KB.
On the Pico W, three transfers took about 6.3–6.5 seconds instead of 9.3–9.6 seconds, with roughly 1.5 seconds added to the restart while the device unpacked the image. In an encrypted ESP32 test with 15% simulated packet loss, the two compressed transfers took 67 and 74 seconds, compared with 113 and 317 seconds without compression.
The uploader and device negotiate compression, keeping older firmware and command-line tools compatible. A device without enough spare memory accepts an ordinary upload.