What's New
- Seeed Studio reTerminal E1003 support — a new supported board and the project's first grayscale display: 10.3" IT8951 e-paper, 16-level grayscale at 1872×1404, microSD (SPI) + internal-flash storage, SHT40 temperature/humidity sensor, PCF8563 RTC, SY6974B charger, and battery monitoring. Buttons: Refresh = wake, Left = rotate, Right = clear. The project now supports 6 boards.
- Grayscale image pipeline (GC16) — full grayscale-aware processing for GC panels: the web UI defaults these frames to a grayscale preset, and image conversion, previews, uploads, and the boot splash are all grayscale-native (board-driven dimensions and 4bpp packing).
- On-device grayscale calibration — tune your panel to its true tonal range: black/white luminance endpoints plus a mid-tone gamma control, reported and accepted via the device API. A built-in in-firmware step wedge makes it easy to eyeball the result, and the web UI applies calibration live to previews and uploads. Defaults ship tuned (black_y 0.009 / white_y 0.65 / gamma 1.42).
Improvements
- Thumbnail fetches now send the auth token and a custom header, so protected image sources work correctly.
- Grayscale calibration inputs are debounced and rounded, and orientation changes re-process the image on save.
Internal
- Bumped
@aitjcize/epaper-image-convertto 0.1.18 (grayscale support). - Added a pre-commit formatting hook (
make install-hooks).
Installation
Web Flasher (Easiest)
Flash directly from your browser (Chrome/Edge/Opera):
https://aitjcize.github.io/esp32-photoframe/#flash
Manually
Choose the appropriate merged binary for your board:
photoframe-firmware-waveshare_photopainter_73-merged.bin: Waveshare 7.3" 7-colorphotoframe-firmware-seeedstudio_xiao_ee02-merged.bin: Seeed XIAO EE02photoframe-firmware-seeedstudio_xiao_ee04-merged.bin: Seeed XIAO EE04photoframe-firmware-seeedstudio_reterminal_e1002-merged.bin: Seeed reTerminal E1002photoframe-firmware-seeedstudio_reterminal_e1003-merged.bin: Seeed reTerminal E1003 (10.3" grayscale)photoframe-firmware-seeedstudio_reterminal_e1004-merged.bin: Seeed reTerminal E1004
esptool.py --chip esp32s3 --port /dev/ttyUSB0 --baud 921600 write_flash 0x0 photoframe-firmware-[board]-merged.bin