YOU CAN BUILD A TV WITH NO SCREEN - A SPINNING 3D-PRINTED DRUM PLAYS REAL VIDEO
A spinning 3D-printed drum with a spiral of pinholes plays real video through five 9 mm windows, and there is no screen anywhere in the circuit.
DisplaysOpen-hardware
Built withRaspberry Pi Pico / RP20403D printing
- difficulty
- ●●●●○
- time
- a weekend-plus
- license
- license not specified
- repo
- repo ACTIVE244 stars
●●●●○ · a weekend-plus · license not specified · 244 stars · repo ACTIVE
WHAT YOU’LL NEED
Jump to section
COMPAREE VERDICT
Scanwheel is a fully working mechanical television in the 1920s Nipkow tradition: a 3D-printed drum spins past five 9 mm × 8 mm windows while RGB and white LEDs flash in sync, painting twenty scan lines per frame through persistence of vision. It runs MicroPython on a Raspberry Pi Pico, uses PIO to drive the LEDs at very high horizontal resolution (the example code uses 2,048 points per line), and can stream video over the network from a host script to a Pico W. The physical build is a Symbol Technologies 21-02485 stepper motor (old, but the author says still widely available online, and rewired to bipolar by cutting one wire), an A4988 driver, five LEDs with individually matched current-limiting resistors, and three printed parts. The picture is surprisingly watchable given the line count. The single hardest part is the drum print: any flaw in a pinhole shows up as a line through the picture, so you need Arachne single-wall sides and 100 % infill, and even then it may take more than one attempt. If you can get a clean drum print, the rest is straightforward soldering and wiring. There is no licence file, so the legal status for any use beyond personal tinkering is undefined — check with the author if that matters to you.
IN THE REPO
GOOD TO KNOW
- —OpenSCAD source for the drum is in the repository, parameterised for 0.2 mm nozzles.
- —README lists every part with measured resistor values and motor wiring diagram.
- —MicroPython firmware is complete, plus host-side Python streaming tools.
- —No licence file in the repository — the legal status for commercial use is undefined.
- —The Symbol stepper is surplus hardware, not current retail stock; second-hand availability varies.
- —The drum print quality directly affects the picture — single-wall Arachne mode and 100% infill are not optional.
Parts to buy
7 itemsFrom our check of the build. Exact quantities and part numbers are in the creator’s BOM.
Can I build this?
Build at your own risk. Projects involve tools, electronics and sometimes mains voltage — follow the creator’s safety notes.
Videos
Build video: layout, soldering, case, drum assembly and show reel8:41
The final chapter from 07:00 is the best demonstration of what the windows look like running real video.
More builds like this
All projectsGallery
Start here
Navigation into the creator’s own docs — we don’t rewrite the guide, we route you to the source.
- 1.Source the Symbol Technologies 21-02485 stepper motor(This is surplus hardware from barcode scanners; check eBay, AliExpress surplus lots, or electronics recyclers. You need the 21-02485 specifically because the mounting and wiring match the design.)
- 2.Read the README section on the drum print (Single-wall Arachne mode and 100 % infill are not suggestions — any flaw in a pinhole shows as a vertical line through the picture. If your printer cannot do clean single walls at 0.4 mm, use the OpenSCAD source to re-parameterise for 0.2 mm.)
- 3.Print the three parts: base, drum, lid(The drum is the critical one; the base and lid are structurally forgiving.)
- 4.Rewire the stepper motor to bipolar (Cut the white wire as shown in the README diagram, then check polarity before connecting to the A4988.)
- 5.Solder the Pico, driver, LEDs and resistors(The README gives measured resistor values for each LED colour to match current draw. Measure yours if the forward voltage differs.)
- 6.Flash MicroPython 1.28 to the Pico and copy the firmware (The PIO code is performance-critical; do not skip the MicroPython version check.)
- 7.Run the host-side streaming script(videostream.py on the host sends frames to streaming.py on the Pico over the network if you are using a Pico W.)
Resources
Documentation, files and community threads for this build — we link straight to the original sources and never rehost the creator’s files.
KNOWN ISSUES
- The Symbol stepper is not current retail stock — if you buy the wrong surplus motor, nothing else in the build will fit the mounts or match the wiring diagram.
- The drum print quality is directly visible in the picture: any flaw in a pinhole becomes a vertical line through every frame. Single-wall Arachne mode and 100 % infill are not optional, and even with correct settings it may take more than one print to get a clean result.
- The A4988 current limit must be turned nearly to the bottom of the pot or the motor will overheat; the README does not give a voltage figure, just says 'nearly to the bottom', so you have to tune by feel.
- The resistor values in the README are measured for the author's specific LEDs — your forward voltages may differ, so if you do not measure and match them yourself, the brightness balance across the five windows will be wrong.
- There is no licence file in the repository, so the legal status for any use beyond personal builds is undefined. If you want to sell kits, show the build publicly, or use it commercially, check with the author first.
- The horizontal resolution is very high (the example code uses 2,048 points per line), but there are still only twenty scan lines vertically. Expectations matter: it looks like a 1920s television because it is one.
Where do I get the Symbol Technologies 21-02485 stepper motor?
It is an old barcode-scanner stepper, but the author says it is still widely available online. Search for the exact part number, because the published parts and wiring are designed around it.
Can I use a different motor?
Not without reworking the base and lid STEP files in your CAD tool to match your motor's mounting holes and shaft diameter. The 21-02485 is the only motor the published parts are designed for.
What happens if the drum print has flaws?
Any flaw in a pinhole shows up as a vertical line through the picture in that window. Single-wall Arachne mode and 100 % infill are mandatory, and even then you may need more than one print to get it clean.
Do I need a Pico W or will a regular Pico work?
A regular Pico works fine if you are happy to load frames via USB. The Pico W is only needed if you want to stream video wirelessly over the network using the host-side Python scripts.
What video formats does it play?
The host-side videostream.py streams video over the network to streaming.py on the Pico W, and pngdirect.py converts still images to the raw framebuffer format the Pico uses. Check the scripts for the input formats they accept.
Is there a licence for commercial use?
There is no licence file in the repository, so the legal status is undefined. If you want to sell kits, show it publicly, or use it commercially, ask the author for clarification.
Community builds
No community builds yet — be the first, we feature the best ones.
Discussion1
FROM THE COMPAREE TEAM
Twenty scan lines and five windows side by side, each with its own LED. If you were building one, what would you play in the windows first?
Ancient James
Ancient James open-sourced Scanwheel in July 2026 after building a working five-window Nipkow-drum television that runs real video on a Raspberry Pi Pico. The project revives the mechanical television principle of the 1920s, when screens did not exist and pictures were painted by spinning discs with spirals of holes.
DISCLAIMER
- Comparee is not the author of the projects featured here. All rights to each project belong to its creator — every page links to the original source, and we never host creators’ files.
- Information is provided without warranty and may become outdated as projects evolve. Prices are indicative bands only — always check the creator’s parts list for current costs.
- Building and operating any project is at your own responsibility. Protective equipment, safe workshop practice and compliance with local regulations are the builder’s responsibility.
CompareeTEAM1mo agoedited
Practical notes from our verification: the repository has no licence file, so the terms for anything beyond personal builds are undefined — ask the author if that matters to you. The motor is a Symbol Technologies 21-02485 stepper, which the README describes as old but still widely available online; it needs a small rewiring step (cutting the white wire) to run as a bipolar stepper, linked from the README. The drum is the print to get right: single-wall sides (Arachne wall generator in Orca Slicer), 100 % infill and the highest quality settings, because small flaws in the pinholes are very visible in the picture — and the included OpenSCAD drum model has a 0.2 mm nozzle variant the author recommends if your printer supports it. The README lists the LED resistor values the author measured, but says you need to work out your own for the LEDs you source. Software is MicroPython on a Raspberry Pi Pico, with host scripts for streaming video over the network to a Pico W. In the build video, the show reel chapter starts at 07:00. Correction (4 October 2026): we re-checked this page line by line against the project's own repository, documentation and videos, and fixed errors in earlier versions.