I found a YouTube video of a clock that can draw the time with an erasable pen, then wipe it away before restarting the cycle:
There is something very human and endearing about the motion of the arms as they perform their task of drawing and erasing over and over and over again. After locating the plans and instructions by joo at Thingiverse, I absolutely had to make one.
Joo provided PDF plans for laser-cut parts along with a 3D Google Sketchup file of the assembled machine. There is also a 3D printable version of the plans. I uploaded the design to Ponoko, an online on-demand manufacturing service, to be laser-cut from 3mm clear acrylic and shipped to me. Before uploading it, I imported the PDF design file into Inkscape (a free CAD program) to modify the line thickness and color to fit the guidelines [line color = blue, line thickness = 0.1 pixel] for Ponoko uploads. I then saved it as a SVG (scalable vector graphics) file. The upload and ordering process was very easy. The hardest part was waiting for the package to arrive.
In addition to the laser-cut parts, there are instructions for 3D printing a holder/sweeper for the pen. The original design used the pen’s own cap with a small piece of cloth attached by double-sided tape for erasing. I couldn’t find model of dry-erase pen that Joo used anywhere in the United States, so I printed the cap from the file provided, and ordered a few different models of dry-erase pens online, hoping that one would work.
The PlotClock design is ingenious, and the instructions on Thingiverse are pretty clear. However, the assembly was still a little tricky. The Google Sketchup 3D model was extremely helpful in viewing the relative orientation of the parts from any angle. I found that the arms that attach to the servo horns didn’t get a hole cut for the servo arm screw, so I had to drill one in each arm. To attach the arms to the servo horns, I glued the horns to the arms with plastic glue and let them dry overnight. I then drilled another hole for a 1/4″ long 2-56 screw to reinforce the join.
Some of the holes in the PlotClock parts are 3 mm in diameter and some are 2.5 mm in diameter. All of the 2.5 mm holes are intended to be tapped with an M3 tap. Most of the parts could be joined together with 10 mm long M3 screws and nuts, though I needed a 16 mm M3 screw to attach the piece holding the servos to the main body. The parts which need to pivot must be screwed together loosely enough that they are free to move.
The holes for mounting the servos to the acrylic were not quite large enough for the 6-32 screws (the typical size for mounting 9g servos), so I had to drill the holes slightly larger before screwing the servos in place.
The electronics were controlled by an Arduino nano clone. Joo provided an Arduino sketch that can be used to calibrate the servos and run the PlotClock. The servos are controlled by Arduino pins 2, 3 and 4, though the specific pin numbers can be changed in the code. The servos get 6 Volts from a 4 “AA” Battery Box. The Arduino was powered separately with the USB computer port during testing. I have found that servos have less jitter when they have a separate power source.
The PlotClock Arduino sketch has a calibration mode which can be activated by uncommenting a single line of code. In this mode you can adjust several numerical factors until the horns rotate back and forth exactly 90 degrees from vertical to horizontal. This was very helpful in getting the servo alignment right. In addition, I found it necessary to alter the factor that adjusts the height the pen is lifted to put it into the sweeper. The code is very well commented, so it was just a matter of trial and error to get values which worked with my setup.
I couldn’t get any of the pens to fit easily in the pen holder or the sweeper I’d 3D printed. Fortunately, another Thingiverse poster, CrazyChicken563, had posted an “upgrade” to PlotClock, which allowed it to use Expo brand fine tip markers. I printed a new arm to hold the pen, and a new sweeper with a larger, angled “mouth” to make it easier to replace the pen after drawing. The pen holder arm CrazyChicken563 posted on Thingiverse was designed to go on the right hand arm, so I 3D printed a mirror image of his design to work on the left side instead. A small circle of felt was affixed to the bottom of the sweeper with double-sided tape. The “upgrade” worked like a charm, though after several repetitions, the pen tends to slip upwards in the holder. I’ve fixed this by drilling and tapping holes in the side of the pen holder for short M3 screws to hold the pen in place.
Additionally, I found that the servo horn on the servo responsible for lifting the pen was just slightly too long and hit the drawing surface. Fixing this was simply a matter of of clipping the tip of the servo horn (see picture below):
Adding the Real Time Clock (RTC):
The PlotClock source code can read the time from a real time clock (RTC), which I added after the other parts were working. I ordered the DS3231 RTC from Ebay. It came without batteries, so I ordered some LIR3202 rechargeable batteries to go with it. The DS3231 is set up to recharge the batteries when connected to a power source, so it is important that you don’t use single-use batteries with it. Setting up the RTC is very easy. Here is a tutorial which explains the wiring and setup code. You need to download the DTC1307RTC library and run the example program that comes with it to set the time. After that, as long as you don’t remove the battery, the RTC will keep correct time for several years (though it will not keep daylight savings time as that varies regionally). Once the RTC is set correctly, you only need to uncomment one (easy to find) line of code in the Arduino sketch to get PlotClock to give you the correct time.
Below are a couple videos showing PlotClock in action. The second video incorporates the RTC and the modifications to the pen clip to hold the dry-erase marker in place.