This Mechanical Television Uses an ESP32, a Motor, and an Ultraviolet LED to Display Videos
Based on a Nipkow disk, bitluni's display uses a series of holes on a spinning disk and a pulsing light to show video content in real-time.
The earliest television sets
Recently, YouTuber bitluni has been exploring the world of display technologies. This has ranged from simple LED matrices to holographic persistence-of-vision spinners and even a foray into building a custom cathode ray tube (CRT) television. But along the way, bitluni came across one of the earliest types of dynamic screens: the Nipkow disk, which was patented in 1884.
In principle, the disk is comprised of a single spiral that has a series of evenly-spaced holes cut into it, and when combined with a motor, photodiode, and toggleable light source, images can be recreated on a screen that sits across one section of the disk.
Building a mechanical television
Concept now in-mind, bitluni immediately got to work designing and 3D printing the main disk, its holder, and a small screen that could sit over a small part of it. In lieu of some form of photosensor to detect the position/speed of the disk, bitluni instead went with a NEMA17 stepper motor and A4988 driver. This helped to simplify the code and electronics somewhat at the cost of a lower framerate.
With the mechanical components assembled, the last part he needed was the light source. Similar to how a CRT uses an electron beam to illuminate a thin layer of phosphorous and give the illusion of a solid image, this project's ultraviolet LED combined with a reactive plastic card allows the series of projected dots to briefly persist onscreen before fading away, thus contributing to the overall picture.
Transmitting video
The final task of building this mechanical television set was determining how to get videos from one source to appear on the disk's small screen, and after some tinkering, bitluni decided to go with an ESP32 development kit due to its small size, WiFi connectivity, and fast processor. It works by continuously receiving new video frames from a custom web app via a websocket. Whenever a new one has been received, the stepper motor goes to the known starting position and rotates according to the desired framerate while the UV LED is simultaneously pulsed to lighten or darken certain areas of the frame.
On the web side of things, users are able to capture video from any source thanks to the browser's built-in screen sharing API. This stream of images is then resized to fit the disk's dimensions before being outputted to the ESP32. Bitluni experimented with screens of various materials and found that the non-fluorescing ones didn't experience nearly as much burn-in when exposed to UV light.
To see more about how this mechanical TV was built, you can watch bitluni's video here on his YouTube channel.