Hardware: M5Paper, local server (e.g., Node.js) serving JSON images.
Setup: Configure Wi-Fi and HTTP client. Create two FreeRTOS tasks: one for graphics rendering, one for networking.
Code: Network task downloads image. Rendering task uses a Queue to receive buffers. Implement double-buffering in PSRAM to prepare frame before sending to IT8951.
Commands: Use xTaskCreate to launch tasks. Manage priorities so Wi-Fi doesn't interrupt critical refresh.
Verification: Trigger OTA update. Screen must show smooth progress without Wi-Fi disconnecting due to watchdog.
Deep Dive: Add LZW compression for image data to reduce Wi-Fi bandwidth during frame transfer.