Chasing phantom stripes on a $tiny e-reader, with two AI assistants in tow
A hobbyist reader picked up an Xteink X3 — a pocket-sized e-ink device — and flashed it with the open-source CrossPoint firmware. Tinkering with the sleep-screen image surfaced a cascade of rendering defects: dark grey rendered as pure black, the viewer app left ghostly traces of prior screens, and, most stubbornly, faint vertical stripes marred any greyscale photo even though they were absent from the source bitmap. E-ink renders grey by first laying down a black base and then running a short ‘nudge’ waveform to push selected pixels partway toward white; the author used AI coding tools to trace the faults into that pipeline.
The debugging turned into a comparison of two assistants. GPT-6 Astra (via Codex) quickly nailed the easy bug — the viewer skipped the grey nudge entirely — but flailed on the stripes, misreading fine dither texture as the banding and chasing dead ends. Switching to Fable 5.1 in Claude Code produced a more disciplined approach: averaging brightness down each column with a sliding window to cancel out dither noise, then running an FFT on the resulting profile to actually measure the stripe spacing and strength. Isolating variables showed the artifact only appeared where light-grey pixels sat beside pixels of a different shade, pointing squarely at the greyscale nudge waveform and its lookup table in the freeink-sdk hardware library.
Beyond the specific fix, the piece is a candid field report on doing hardware-adjacent debugging with LLMs: the value of forcing a model to produce measurable evidence rather than plausible hypotheses, the ease of burning tokens on phantom leads, and how a purpose-built test pattern — flat patches at every shade, checkerboards, and lines — made the screen’s real behavior legible to both human and model. The physical setup mattered too, as the X3’s magnetic charger let the author reflash and rephotograph the screen without unplugging anything.
Read the full article
Continue reading at Hacker News →This is an AI-generated summary. Read the original for the full story.