football2801 511ea9804c fix(13e6): bit-banged SPI to defeat hardware-SPI color mapping bug
The all-in-one 13.3" module mis-maps colors when data is sent via hardware
SPI: epd_fill(COLOR_RED) renders YELLOW; epd_fill(COLOR_WHITE) renders
BLUE; image data collapses to a single hue. Tried 4 MHz, 1 MHz, and 100
kHz hardware SPI — all produced wrong colors. The test-display-13e6 smoke
test uses bit-banged SPI via direct GPIO toggles and renders all 6 colors
faithfully. Porting that exact approach into the production driver fixes
setup-screen rendering: WeVisto banner, harbor backdrop, both QR codes,
and the orientation tile graphics all appear correctly.

Cost: ~5 s extra per full-frame push at ~400 kHz effective rate (down
from <1 s on the broken hardware SPI). For setup screens that's
acceptable; for photo cycles it adds ~10 s to a draw, well below the
~15 s panel refresh itself.

Also simplified ghost_clear back to a single white pre-pass — the earlier
multi-stage cycles (3-pass, 7-pass) were attempting to fight what we
thought was particle ghosting but turned out to be data corruption. One
white pre-pass is now sufficient given the data path is correct.

Bumps PANEL_FW_VERSION to v1.0.7.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-17 15:04:10 -04:00
S
Description
pictureFrame ESP32 firmware — PlatformIO / Arduino
6.1 MiB
2026-05-15 17:57:19 +00:00
Languages
C++ 61.1%
Python 31.4%
C 7.5%