2025 — present·device

e-ink-scoreboard

A live MLB scoreboard on a 7.3-inch e-ink display, modeled on the out-of-town scoreboards at MLB ballparks. Runs entirely on a $14 Raspberry Pi Zero with a six-color rendering pipeline built around the constraint.

The e-ink scoreboard in a frame on a desk, showing a 3x5 grid of live MLB scores in dithered six-color rendering.

Live MLB scores on a 7.3-inch e-ink display, refreshed throughout the day. On off days, the display switches to a screensaver that rotates Mariners news and AP wire photography.

e-ink-scoreboard is a live MLB scoreboard on a 7.3-inch e-ink display, modeled on the out-of-town scoreboards at MLB ballparks, the boards tucked into the outfield walls that show every other game in the league while you're watching yours. I grew up a Mariners fan and have been glancing up at them for years. This brings that view home.

The hardware is a $14 Raspberry Pi Zero 2 W driving an Inky Impression panel that can render six colors. The constraints shaped every choice in the build. A gradient color optimizer scores every two-team color pairing on contrast and harmony before picking the best one. Bayer dithering maps full-color logos and gradients down to the six values the panel can actually render. The render pipeline is deliberately indirect: Flask page, Playwright screenshot, Pillow processing, Inky panel. Each layer is somewhere I can debug independently. The web page renders in a browser, the screenshot opens in any image viewer, and I can preview the dithered output as a PNG before it ever hits the panel.

When games aren't on, the display switches to a screensaver that rotates Mariners news from the Seattle Times and AP wire photography, all dithered through the same six-color pipeline. The Seattle Times feed is generated by rss-feed-generator, and the photos are mostly by AP photographer Lindsey Wasson.