Build Log · Hardware
Eight wires and a ribbon
Before any of the software mattered, I had to physically get three things talking: the e-ink panel, a little controller board, and the microcontroller running everything. The panel itself is dumb, just glass and a driver, so all the real work happens on the controller board in between. Connecting them came down to two cables, and I got both wrong at least once.
The ribbon
The first is the flat ribbon coming off the panel. It slides into a hinged connector on the driver board, and the first few times I was sure I was going to snap either the ribbon or the latch. I didn't, but I reseated it enough in those early days that I'm careful with it now. It's the one part here that really doesn't like being fiddled with.
Eight little wires
The other connection is the one I understood least when I started. It's SPI, which I'd read about but never wired by hand, broken out to eight labelled pins. I kept the datasheet open the whole time. Most of them are what you'd guess once you see them: 5V and GND for power, then MISO, MOSI and SCK for the data and clock, and CS to pick the chip. The two that taught me something were RST, which just resets the controller, and HRDY, host-ready. HRDY is the controller's way of saying it has finished the last command and you can send the next one. Once I actually waited on that line instead of guessing at timing, the smeared, half-drawn refreshes stopped. One wire fixed a bug I'd been blaming on everything else.
So the whole physical side is just that: one ribbon, eight wires. Everything else is software. It felt like a lot at the time. Looking back it's almost nothing, which is mostly a measure of how little I knew going in.