“4K” usually makes you picture millions of repeated elements on a panel. Scanwheel gets 4,096 columns from twenty holes in a drum and five LEDs.12
Brown currently runs the display at 4,096 × 20 pixels. Width is mostly a timing problem: the Pico changes LED brightness while a hole sweeps past. Height is literal geometry: the OpenSCAD drum contains twenty scan lines.12
Here, the cost of a pixel depends on its axis.
Twenty physical lines
Scanwheel keeps the scanning trick from early mechanical television and shrinks it onto a 60 mm drum.2
The useful numbers are sitting in drum.scad: 60 mm diameter, 12 mm overall height, 8 mm of active scan height, twenty lines.2 Twenty openings are distributed around the circumference at different heights. One rotation lets them sweep the twenty image lines in sequence.
The geometry is doing more than holding parts together. It defines the vertical resolution.
The README consequently treats drum printing as a precision operation: small layer height, slow speeds, a single-wall shell and preferably a 0.2 mm nozzle. Small flaws in the apertures become visible in the final image.2
Forty lines would mean a new physical part. The drum has to be regenerated and printed with twice as many usable apertures packed into a geometry that still survives the printer.
4K in time
Turn ninety degrees and the economics change completely.
A hole only gives the scan path. While it crosses the window, the LED can flash through thousands of brightness values; the eye reads those timed values as positions along the line.
James Brown writes in IEEE Spectrum that the system currently runs at 4,096 pixels wide and has exceeded 8,000 pixels in tests.1 The limit he identifies is not hole size. It is primarily memory for the framebuffer.1
The source code makes the trade-off unusually easy to inspect. ScanWheel creates a GS8 framebuffer whose size is line width × scan lines.2 At 4,096 × 20, that is 81,920 bytes for frame pixels alone. The RP2040 has 264 kB of total on-chip SRAM.4
At 8,192 × 20, the same calculation jumps to 163,840 bytes before MicroPython, DMA bookkeeping and everything else get their share.
So this “4K” is nothing like LCD panel density. The columns do not exist simultaneously as physical cells. They are timing slots along a moving scan.
PIO does the dirty work
The timing would be awkward if the RP2040's two CPU cores had to babysit every LED transition themselves.
The chip includes programmable I/O state machines built for precisely timed input and output work.4 Scanwheel combines PIO with DMA to pull framebuffer data and drive the outputs while the MicroPython CPU code mostly handles setup.12
The documented build drives five adjacent viewing zones from the same drum: four white LEDs and one RGB LED.2 Each window is roughly 9 × 8 mm and shares the same twenty scan lines.2
The result is less retro than it looks. Mechanics create the scan; dedicated microcontroller hardware keeps time.
An old idea, a new trade-off
John Logie Baird's televisions already used perforated rotating media to turn motion into image scanning. The 1929 Model C preserved by the Science Museum used thirty apertures and displayed thirty lines with a neon lamp.5
Scanwheel actually has fewer lines: twenty.
Yet its image can be surprisingly legible because its logical horizontal resolution is radically higher than those early systems.1 Hackaday had already highlighted the mismatch in July: a Pico, stepper driver, small motor, a few LEDs and a printed case produce something that looks more complex than the parts list suggests.3
Modern LEDs also change the mechanics. IEEE notes that a compact drum becomes practical because tiny light sources can sit close to the scan area, unlike early systems that had to accommodate much bulkier lamps.1
Choose the cheap axis
The OpenSCAD file may be the most transferable part of the project. Scan-line count, scan height and drum dimensions are parameters.2
Before rebuilding anything, the parameters force a practical question: which dimension is worth paying for?
Spend resolution vertically and you pay in apertures, print quality and drum geometry. Spend it horizontally and the bill arrives as RAM, bandwidth and timing margin. Both numbers say “pixels”; the engineering budget says otherwise.
The lesson extends beyond displays. In hybrid systems, some capabilities are expensive because they need matter. Others are expensive because they need computation, memory or precise time.
Scanwheel looks absurd at 4,096 × 20 pixels.
That absurd shape is exactly what reveals where each pixel is really being manufactured.
