Main Content

There is an old-fashioned type of Persistence-Of-View display called Nipkow disk display. I made a desk clock using that principle.

My clock has an Arduino UNO heart and a olimex mod-RTC clock module to keep the time*. It features a nipkow disk with 10 holes placed in 5 rows so that each row is written twice per revolution. Hence, the disk produces a 40Hz picture when it spins at about 20rps.The clock has a blue top display and a red bottom display. Each display is comprised of 3 segments with 5 x 8 pixels. In total, the clock has 10 x 24 pixels that can be adressed individually. A custom Arduino library allows comfortable access to the nipkow display. * I am disappointed in the olimex module, as it runs 5 seconds per day too fast. I need to compensate for that in the arduino code. Arduino code and python code to create the letter data structure is in the files below. Youtube video below as well.

- The disk is designed in inkscape, and then carved out using my trusty CNC machine (

- The arduino cannot adjust the speed of the disk, but it gets a signal from an infrared sensor once each revolution. And the code knows the target number of steps per revolution and it can adjust its program speed when it is too slow or to fast. Unlike told in the video, the counter for one disk revolution does not go to 80 but to 180. The reasons are:

- - Each pixel is displayed two cycles long, not one. That makes adjusting the precise picture position relative to the position of the IR-sensor easier. That offset-adjustment is needed because the sensor-signal comes not at the exact start of each rotation but some time later.

- - Reason 1 would bring me to 160 instead of 80. But in addition, the range in front of each lamp is divided into 9 segments instead of 8, because the borders are always black to avoid the lamps being on while a hole is between two lamps. 10 x 9 x 2 = 180.”

Link to article