🎉 What's New
- EPDGZ format support: New compressed 4-bit-per-pixel display format (.epdgz) that saves storage space. The firmware, server, and CLI tool all default to this format. Devices running firmware < v2.6.2 automatically receive PNG for backward compatibility.
Bug Fixes
- Deep sleep battery drain on Seeed boards (#74): Unmount LittleFS and force VDD_SPI power domain off before deep sleep. Free SPI bus on all three Seeed boards (EE02, EE04, reTerminal E1002) to prevent current leakage. Reduces deep sleep current from ~1-2mA back to ~10-15uA.
- Waveshare e-paper sleep: Call epaper_enter_deepsleep() before deep sleep on the Waveshare PhotoPainter board, matching the behavior of all Seeed boards.
- AXP2101 I2C polling: Cache USB connection status and poll every 5 seconds instead of every second, reducing I2C bus traffic and warning log noise on the Waveshare board.
- EPDGZ thumbnail serving: Correctly serve .jpg thumbnails for .epdgz images instead of serving the raw .epdgz file.
Installation
🌐 Web Flasher (Easiest)
Flash directly from your browser (Chrome/Edge/Opera required):
https://aitjcize.github.io/esp32-photoframe/#flash
📦 Manually
Choose the appropriate merged binary for your board:
photoframe-firmware-waveshare_photopainter_73-merged.bin: For Waveshare 7.3" 7-color e-paperphotoframe-firmware-seeedstudio_xiao_ee02-merged.bin: For Seeed XIAO EE02photoframe-firmware-seeedstudio_reterminal_e1002-merged.bin: For Seeed reTerminal E1002photoframe-firmware-seeedstudio_xiao_ee04-merged.bin: For Seeed XIAO EE04
esptool.py --chip esp32s3 --port /dev/ttyUSB0 --baud 921600 write_flash 0x0 photoframe-firmware-[board]-merged.bin