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.

by Ancient James

FULL CAD BOM FIRMWARE DOCS

DisplaysOpen-hardware

Built withRaspberry Pi Pico / RP20403D printing

difficulty
●●●●○
time
a weekend-plus
license
license not specified
repo
repo ACTIVE244 stars
1
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.

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 items

From our check of the build. Exact quantities and part numbers are in the creator’s BOM.

  • Symbol Technologies 21-02485 stepper motor (second-hand)Find
  • A4988 StepStick driverFind
  • Raspberry Pi PicoFind
  • One RGB LEDFind
  • Four white LEDsFind
  • ResistorsFind
  • 100 µF capacitorFind

BUILDS OF THE WEEK

Five open-source builds worth your weekend, every week.

Checked like this one: what’s really in the repo, what it costs, how hard it is. One email, unsubscribe anytime.

Can I build this?

PrintBase, drum and lid; the drum is the critical part and needs single-wall Arachne walls and 100 % infill
BuySymbol Technologies 21-02485 stepper motor (second-hand), A4988 StepStick driver, Raspberry Pi Pico, one RGB LED, four white LEDs, resistors, 100 µF capacitor
ToolsSoldering iron, 3D printer capable of clean 0.4 mm nozzle prints (or OpenSCAD to re-parameterise for 0.2 mm), basic wire strippers
SkillsIntermediate: you are soldering to the Pico GPIO, matching LED current-limiting resistors by measurement, configuring StepStick current limits, and re-wiring a stepper motor by cutting the white wire and checking polarity
TimeA weekend if the drum prints clean first try; a weekend-plus if you have to iterate the drum or hunt down the motor
CostA Raspberry Pi Pico, an A4988 StepStick, the second-hand Symbol stepper, a handful of LEDs and resistors and some filament; the creator does not publish a total.
SafetyNone beyond ordinary electronics care — the stepper runs at low voltage, the LEDs draw under 50 mA total from GPIO, and there is no mains or lithium in the design.

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 projects

Gallery

github.com
github.com
opengraph.githubassets.com
spectrum.ieee.org
spectrum.ieee.org
img.youtube.com

Start here

Navigation into the creator’s own docs — we don’t rewrite the guide, we route you to the source.

  1. 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. 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. 3.Print the three parts: base, drum, lid(The drum is the critical one; the base and lid are structurally forgiving.)
  4. 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. 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. 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. 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?

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.

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.

GitHub

Star the project on GitHub

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.