Scanwheel is a drum style mechanical television you can build yourself
Summary
Scanwheel is a DIY mechanical television that uses a scanning drum, LEDs, and a Raspberry Pi Pico to display images across five side-by-side windows. The project provides 3D printable parts, wiring diagrams, and Micropython software.
View Cached Full Text
Cached at: 07/25/26, 05:10 PM
AncientJames/Scanwheel
Source: https://github.com/AncientJames/Scanwheel
Scanwheel
Scanwheel is a drum style mechanical television you can build yourself.
It features five windows side by side, each taking advantage of the same scanning drum, but with separate LEDs to allow separate images. The windows are a luxurious 9mm x 8mm each, with 20 scan lines.
The software uses the Pico’s PIO hardware to drive the LEDs, allowing extremely high horizontal resolution, so the image quality is a lot better than the 20p line count would imply.

There’s an accompanying video showing the build process, with footage of it in action.
Parts
You’ll need the following components:
Symbol Technologies 21-02485 stepper motor
Old but still widely available online. It has an unusual wiring setup, but it can be used as a bipolar
stepper motor by cutting the white wire before it goes into the 4 pin connector as described
here.
A4988 based StepStick
Something like the Pololu 1182. There’s a potentiometer to adjust
the current limit. Turn it down as low as it will go before the motor stops turning - it will be almost
at the bottom end of the pot’s range.
100uF Capacitor Across motor power & ground.
Raspberry Pi Pico Doesn’t matter which, but use a Pico W if you want to stream wirelessly to the device.
LEDs In the design presented here there’s a single RGB LED and 4 white LEDs, which seemed like a good
compromise between wiring complexity and image quality.
Resistors Each LED needs a current-limiting resistor. The R, G and B channels need to be matched in
brightness to each other, and the overall RGB brightness needs to be matched to the white LEDs. All of
them together must draw no more than 50mA from the Pico’s GPIO pins.
This means you need to determine the resistor values for the specific LEDs you have sourced - measure the actual current drawn with your LED and resistor connected.
I found that the red channel of the RGB LED was the deciding factor, at 10.75mA with a 120R resistor. Matching that brightness required 260R for green (2.9mA), 220R for blue (2.8mA) and 82R for white (4.6mA)
Printing
The 3D models are in the parts directory. There are three printed parts; the base, the drum and a lid.
They will fit best if they are scaled to compensate for shrinkage during printing - on my printer, using PLA, I find that a scale of 100.33% in X and Y and 100% in Z achieves this.
The base and the lid don’t need any special treatment, but the drum requires a bit of care in printing. Use the highest quality settings - small layer height and low speeds - because small flaws in the pinholes are very visible in the final display.
The sides of the drum are a single wall thick. In Orca Slicer this means you need to set ‘Wall Generator’ to ‘Arachne’. The infill should be 100%.
The OpenSCAD model for the drum is included, allowing you modify the design. One of the parameters is nozzle diameter, and if your printer supports a 0.2mm nozzle I recommend using that variant. You might find you need to fit a washer over the drum’s spindle to increase its moment of inertia.
Wiring

Software
The software runs on Micropython 1.28. The device code is in the pico directory - scanwheel.py is
the driver, along side some example apps.
The code in host runs on the PC - videostream.py streams videos over a network connection to
streaming.py on the device. pngdirect.py converts image files to the raw framebuffer format used
by scanwheel.
Similar Articles
How to build a circular LCD clock
A detailed tutorial on building a custom wall clock using Waveshare's 7-inch circular LCD screen and a Raspberry Pi, covering hardware components, assembly, and software configuration.
A Nipkow Disk Mechanical TV Simulator
An interactive web-based simulator of a Nipkow disk mechanical TV, allowing users to experience the full signal chain with real physics controls and a live preview of the Analog TV Simulator app.
Optocam Zero: a Pi Zero based digital camera made using off the shelf components
Optocam Zero is a compact DIY digital camera based on Raspberry Pi Zero, using off-the-shelf components and 3D-printed parts. It features autofocus, filters, GIF recording, and easy image transfer via hotspot.
@marcinplaz: I watched the Midjourney scanner get built from my desk; here's a look behind the scenes
A behind-the-scenes look at the construction of the Midjourney scanner, likely a tool for scanning images into the AI art platform.
I built a pint-sized Macintosh
Built a pint-sized Macintosh using a Raspberry Pi Pico running Pico Micro Mac firmware, with VGA output and USB keyboard/mouse.
