Introduction: Acrylic Gear Clock

The clock by DickB1 was the inspiration for my design of a similar mechanism, however, with the gears made from Acrylic.

The driving force for the pendulum is an electromagnet similar to the one used by DickB1. However, the magnet is attached to the very end of the pendulum where the driving coil is mounted directly underneath. This applies the electromagnetic force inline with the pendulum swing plane. I saw several magnet-coil arrangements elsewhere.

The coil is energized by means of a simple Arduino sketch. A high-precision crystal clock (ChronoDot) is used for time keeping. A small OLED display shows the date and time from the RTC.

A number of push buttons on the control box can be used to adjust the RTC clock when it eventually drifts off, supposedly at a rate of less than a minute per year.

The mechanical clock has no direct correlation with the electronic clock except that it is advanced once a second. To align the hands, one has to do it manually. The minute hand can be turned by hand by means of a one-way clutch. Finally, the second hand can be stopped temporarily by by inhibiting the pendulum from swinging.

The design steps are organized starting with the basis mounting board that is indented to hang on a wall with a keyhole hanger. Next, we look at the pendulum and the driving coil.

Then we design the back plane that holds all shafts and the cowls for the escapement.

Lots of gears are cascaded on the shafts ending up driving three concentric shafts for the second, minute and hour.

Finally, the front face finishes the gear assembly. The last step is attaching the hands to the concentric center shafts.

All parts were designed with CorelDraw XIII. Most parts were machined with a CNC router. VCarve Pro was used to convert DXF files from CorelDraw into toolpaths. A mini lathe came in handy to machine aluminum shaft hubs and spacers.

I also built a clock with wooden gears similar to DickB1's design. However the pendulum was omitted and replaced with a small stepper motor which resulted in an unexpected behavior due to erroneous specifications of the motor. This may be described in another Instructables some time.

Step 1: Materials Used

  1. 18 mm Baltic Birch Plywood for the wall plate and the back plane. (
  2. 1/4" Clear Acrylic Sheet (0.22" thick) for the large gears, the front face and the hands.


  3. 1/2" Clear Acrylic Sheet (0.47" thick) for the pinions, the pendulum top and the escapement cam.
    ( same source for items 4 - 5

  4. Aluminum rod 3/4" dia x 12" long for marching hubs and shaft spacers

  5. (3) lengths of brass tubing 1/4", 3/16" and 3/8" OD with IDs matching the ODs of the smaller tubes

  6. Small piece of Cherry wood (3/4" thick) for the pendulum bob (from scrap)
  7. Small piece of Cherry wood or similar (1" thick) for the coil holder (from scrap)
  8. 1/4-20 threaded rod for shafts and standoffs (36" long) ( same for items 8 - 13
  9. 10-24 threaded rod for the pendulum (24" long)
  10. (20) 1/4-20 nuts
  11. (30) 1/4" flat washers
  12. (2) 10-24 nuts for pendulum
  13. (2) 10-24 knurled nuts for the pendulum
  14. (3) 14/20 knurled nuts for the front face
  15. (10) Ball bearings 1/2" OD x 1/4" ID x 0.187 (eBay)
  16. Delrin or similar plastic 1.5" dia x 1.5" long for the coil bobbin (from scrap)
  17. Spool of 30 gauge enameled magnet wire (1/4 lb) for the coil (
  18. Arduino Uno (eBay)
  19. Walwart 15 VDC x 0.9 A regulated for coil driver and on-board 12 V regulator (
  20. ChronoDot or equivalent RTC clock (
  21. 126 x 64 dot OLED display (
  22. Plastic project box approx. 6 x 3 x 2 inches (
  23. Miscellaneous electronic components (see 'Electronics' for details)

Step 2: Hardware and Software

Hardware and Tools

  1. Desktop computer running Windows 10
  2. Laser printer
  3. CNC router (home-built version used primarily for my woodworking projects)
  4. Mini lathe
  5. Soldering iron and various shop tools


  1. VCarve Pro 8 for generating toolpaths for the CNC router
  2. Gear Template Generator (
  3. Arduino IDE for programming the Arduino
  4. Corel Draw XIII for designing all parts, also used for exporting DFX files for CNC purposes

All software was running on a Windows 10 desktop computer.

Step 3: Principle of Operation

The period of an ideal pendulum where all mass is concentrated in a single point is exactly one second for a pendulum length of 9.78 inches. When actually designing a pendulum construction, things depart from ideal conditions. The bob has finite dimension and the shaft also has some mass.

For that reason, the pendulum was designed where the bob can be moved up or down along the haft. To approach the ideal pendulum the bob was hollowed out and filled with about one pound of lead.

If there were no friction on the escapement and gear train and the pendulum operated in vacuum, one could expect a very stable period.

Since we have energy losses, mostly in the gears, we need to replenish the pendulum momentum by some means. This design imparts a mechanical pulsed force twice a second. The idea is to repel the magnet at the tip of the pendulum every time the magnet just passed the center position.

Let's assume that the pendulum was adjusted (without driving pulses) to swing with an exact period of one second using a certain swing angle. Note that the period is affected slightly by the swing angle,

Now, we add the pulses. The swing angle is likely to change which changes the period. So, the next time the magnet passes the center position, it may get there before or after the "correct" time. The next pulse is then applied early or late which, again, produces a new swing angle.

Can this system ever reach a stable swing? The answer is yes by carefully (and tediously) adjusting the actual pendulum length as well as the length of the driving pulse. Both the pendulum swing and the train of pulses are "dumb" meaning there is no correspondence between the two.

Some designers added some 'smarts' to the driving electronics by sensing the position or swing speed of the pendulum and then adjust the pulse length (strength) accordingly. I elected to forego the extra complexity since it work just fine in what I call the 'dumb' mode.

Step 4: Rear Structure

The back bone of the clock consists of a wall plate and a back frame. One is meant to be hung on a wall. The two frames are held together with four standoffs. The back frame is the main carrier for the hand shafts, the gear shafts and the cowls.

The pendulum is mounted on the cam shaft and is centered over the driving coil. Note the small magnet that almost touches the coil.

See next step for details on how ball bearings are used.

Step 5: Ball Bearings

Ball bearings are used where low friction is desired.

The first place in question is the cam shaft. It is securely held in place with two bearings and lateral movement is inhibited by two collars. Note that a small diameter shoulder on the collars only contacts the inner ring of the bearing.

That same method is used to secure the second shaft to the back frame.

There are several gear wheels that sit on stationary shafts. They are equipped with single ball bearing (press fit into the Acrylic) and the axial position is determined by spacer sleeves.

Step 6: Wall Plate and Back Frame

The wall plate is the base for the mechanical assembly. It is intended to be hung on a wall using a keyhole hanger.

Four bolts, washers and nuts, enclosed by cosmetic sleeves are used to stand off the back frame form the wall plate.

The stuff at the bottom are recesses, slots and cutouts where the coil holder is to be attached and a small board with a mini phone jack. A simple 2-conductor cable brings the coil power to the clock from the control box.

The back frame is the place holder for the cam shaft, second shaft, three idler shafts and two bolts that hold the cowls. Note the slightly elongated holes for the cowls. This allows adjusting the cowls such that they engage the escapement wheel properly.
It was routed from 18 mm Baltic Birch plywood.
Using a CNC router ensured that the all gear shafts are spaced exactly three inches apart.

Step 7: Escapement

The escapement mechanism an important part of the clock. Let's start with the ratchet wheel. It is a 5-inch wheel with 60 slanted teeth. The wheel is secured to the second shaft and also 'married' to a pinion (not shown).

The cam has an interesting shape. In essence, two circles of different diameter are blended together. When the cam shaft (attached to the pendulum) rotates back and forth by some 8 degrees, the cam roller is moved a small amount from one side the other. Should the swing angle be larger, the cam roller will not move a larger distance.

The shape of the driving cowl magnifies the movement of the cam roller by about a factor of four. This causes the pin at the end of the cowl to move back and forth by about 0.3 inches. This is slightly larger than the pitch of the ratchet wheel (0.27 inches). This makes the ratchet wheel to rotate 6 degrees corresponding to one second.

The purpose of the second cowl on the left is to prevent the ratchet wheel from reversing its rotation as the driving cowl 'reloads'.

The counter weights ensure that the cowls always engage the ratchet wheel.

I found that the escapement action was a bit noisy as the steel pins fall into the teeth. Encasing the pins with a thin wall silicon rubber sleeve dampened the sound to an acceptable bedroom level.

Jumping ahead a bit, we will look at the escapement in action.

The short video below shows the action of the pendulum-driven cam on the driving cowl. Later, you will see how the driving cowl advances the escapement wheel. The cowl on the left prevents the escapement wheel from reversing its rotation.

Not directly related to the escapement. the first idler wheel is already installed as the assembly progresses.

Step 8: Gear Layout

We need a gear reduction of 60 : 1 from the second to the minute shaft and 12 : 1 from the minute to the hour shaft. There has to be an even number of pinion-wheel sets to maintain the clockwise rotation.

60 : 1 is too large to handle with just two gear sets - so we use four sets. The drawing shows the entire gear train in a linear view, together with the tooth counts. It also shows on which shaft each Wheel-pinion pair is located. Note that the shaft distances are identical at 3 inches.

The software GearGenerator3.exe from Matthias Wandel is a nifty tool to generate the gear shapes. You enter the shaft distance and the number of teeth for pinion and wheel and the gear is designed. It can even add spokes for the larger wheels. The teeth are shaped as involutes which is the preferred way to design gears.

The result is a DXF file that can be imported to CorelDraw for some final touch up such as the shaft hole dimension. CorelDraw also added locations for hold down screws for holding the blank against the CNC spoil board. The finished drawing was then exported again as DXF file,

The latter file was imported into VCarve Pro. The imported DXF file describes all shapes as a huge number of small line segments not suitable to generate smooth toolpaths. Fortunately, VCarve can reduce the number of nodes drastically by using circular arcs or Bezier curves.

Without going into details, the toolpaths were designed typically with two passes. A rough pass using a 1/8" end mill formed the tooth shapes with a few mils of offset. Then a final pass using a 1/16" bit cleaned up the shapes with almost square inside corners.

The windows formed by the spokes of the larger wheels were cut out using tabs to maintain the integrity of the blank as most of the material was removed.

The routing of Acrylic is a tedious process. Acrylic melts easily and I messed up several pieces along the way as the router bit clogged up with melted material. The secret is using a very sharp cutter, make shallow passes and blast the cutting location with a constant stream of compressed air.

This is not intended to be a course in CNC routing. If you have any questions or comments, please feel free to contact the author at

Step 9: Gear Assembly - Phase 1

The gear assembly starts with mounting the second shaft and securing the escapement wheel to this shaft with a set screw,

The position of both cowls is then adjusted for the pins to engage properly as the pendulum is manually moved. This is somewhat tricky and requires patience. The rotational position of the cam is very critical.

Next, the idler 1 wheel is secured temporarily on the shaft.

The axial position of this wheel on all other gear components is controlled by various spacers machined from aluminum. The details of these parts are not shown here. Their dimensions should be obvious as the gear train is built.

In the next step, we are going to look a the clutch that is part of the idler 2 wheel.

Step 10: Clutch

We are interrupting our assembly program briefly to explain a special feature of the gear train. The electronic clock keeps on ticking, advancing the mechanism one second at a time. However, the electronics does not know the hand positions. To manually set the clock hands, a one-way clutch is inserted between the idler 2 wheel and its companion pinion.

The pictures show the clutch engaged and free wheeling (held open for illustration purposes). One can manually turn the minute hand clockwise which is allowed by the clutch. The pinion is pushed away from its counterpart disengaging it from the idler 2 wheel. After the movement stops, a spring pushes the two parts together and the clutch teeth engage again.

Again, DickB1 was the inspiration for the clutch design. He used CarveWright both for the design and machining of his wooden parts. That means his design has proprietary software and can only be used for owners of a CarveWright CNC machine. CorelDraw, on the other and can only produce 2D DXF files.

The clutch is an exception in as much as it has a 3D surface. I was still able to generate a DXF file where the slanted teeth were approximated with closely spaced cuts at different depths. Messy but it worked.

Step 11: Gear Assembly - Phase 2

After the escapement wheel and the idler 1 wheel was assembled and tested, the idler 2 wheel with its clutch and the idler 3 wheel were added.

Then, we proceed with adding the minute wheel, idler 4 and finally the hour wheel

Again, various shaft spacers were used to hold the gear parts such that they engage properly.

Step 12: Gear Assembly - Phase 3

Look at the detail picture. The second shaft is held axially to the back frame with collars. The hour haft is held captive between the minute wheel and the front frame (not shown). However, the minute shaft could move freely on the second shaft. The vertical bar in the picture holds the minute shaft at a fixed axial location.

Step 13: Front Frame

The front face has two purposes. it has holes that align with the four shafts. Three knurled nuts hold it in place.

It also was engraved with the 12 hour numerals.

The numerals were engraved with VCarve Pro using a shallow cross hatch pattern for the inside of the numerals. This makes them stand out against the rest of the clear material.

Step 14: Finished

This the result when fully assembled. Everything of the gear train is visible due to the clear Acrylic. I did apply some color to the tips of the hands so their position can be made out more easily.

What is left to do is the design and implementation of the electronics.

Step 15: Electronics - Block Diagram

We need to pulse the driving coil exactly twice a second. Some simple electronics could use a crystal clock, dividers and a power driver for the coil. However, I decided to add a OLED display for the date and time.

Therefore, it made sense to put an Arduino Uno at the center and control everything with software.

Here, we just show how the various power and logic blocks are arranged.

Step 16: Master Schematic

There is not that much to the electronics for driving the clock. We start out with a small DC plugin supply with 15 VDC at 0.9 A. The 15V is used directly as the source for the coil driver.

A simple 12V regulator steps down the input voltage to 12 VDC which is the supply for the Arduino Uno. The 5VDC form the Arduino powers the RTC clock and the OLED display and is also the source voltage for the push button resistance ladder.

A pulse from a digital pin of the Arduino drives a small NPN transistor and, in turn, the coil via a FET. Note the 1N4004 diode for suppressing the back-EMF from the coil.

The Arduino gets the date and time from the RTC clock. Originally, I was planning to use a ChronoDot clock but then ended up with a similar device (Holdding DS3231 AT24C32 I2C Real Time Clock).

While not necessary to drive the clock, a small OLED display (Diymall 0/96" I2C 126 x 64 OLED Display) shows the date and time. Both the clock and the display communicate with the Arduino via I2C, using just two pins of the Arduino.

Everything is housed in a small plastic project box. A DC jack accepts the wire from the wallwart power supply. The output for the coil is on a mini phone jack where a standard audio cable runs to another jack at the base of the clock.

The cover of the box has two windows, one for the six push buttons. the other for the OLED display.

The 12 V regulator is mounted to a small PCB. A second PCB holds the RTC clock, the coil driver and a bunch of female terminals serving as distribution points for the power and signals.

Notes concerning the downloading of the Arduino sketch file below:

When you save it to your computer, it will show up in the downloads folder with a weird name having lots of letters and an file extension of ".ino". Rename it to what ever you like but leave the extension intact.

If you open the file with the Arduino IDE program, It will complain and ask you whether you want to create a new sketch folder and move the file there. Accept that. Unfortunately, the new sketch folder will no also be in your download folder. Move it to where you usually keep your sketches. Still, the sketch is likely not to run since libraries are missing.

Open the sketch (ino) file with Windows WordPad (not Notepad). You see five libraries at the top of the sketch. The first two are inherent to the Arduino software. The remaining three must be installed into the libraries folder

In that case, also download (save) the file. Again, the file name will contain a bunch of letters. You may ignore that and just extract the three folders. Then, move these folders into the libraries folder of you Arduino master folder.

Now the sketch should run just fine.

The sketch contains a large number of comments explaining the purpose of line of code. I do this routinely in all my sketches not just for the purpose of this write-up. What seems obvious during the design may be puzzling if you revisit the code a year later.

Step 17: Conclusion

Is the software I used such as CorelDraw and VCarve Pro the best way to tackle a project like this one? Why not use real CAD/CAM software such as AutoCAD. DesignCAD or others?

Well, I own the programs, have used for many years and I am really versed in using them. The same goes for the design of PCBs. I have designed probably hundreds of PCBs some with as many as 1,600 parts. So, if you prefer Fritzing or Eagle, be my guest.

I probably spent 300 hours designing and building this clock. Of course, there were surprises and I made mistakes along the way. The outcome, however, is an interesting device and visitors to my place are always fascinated by it.

I you like to share your comments or have questions, please add them to the Instructables or contact me at

Step 18: Printed Circuit Boards

In case you are interested duplicating my electronics, save the file PCBs.tmp to tour download folder. Rename it to something such as "PCBs.bmp".

Why bmp? You can open it with Windows's own Paint program and print it out to your laser printer. Just make sure to first set the "Page Setup" to "Adjust to 100%" and "Centering Horizontal".

This ensures that the printout is the same size as the original drawing in CorelDraw.

The black parts of the image are intended for the direct toner transfer method of PCB making.


Step 19: Alternate Pendulum Drive

A mechanical pendulum has a time period determined by the length of the pendulum and, to a lesser degree, by the swing amplitude. The pendulum was driven by a magnetic pulse that was applied twice a second at an interval controlled by a precision digital clock. It turned out that this created a problem.

To illustrate that, assume that the pendulum falls a little behind the RTC clock. The pulse is now applied earlier pushing the pendulum harder. The larger swing reduces the swing time slightly. So, the next pulse is applied late, slowing the pendulum down. It seemed that this interaction eventually reached an equilibrium as observed visually. However, every once in a while, maybe after several minutes, things went whacky to the point where the swing amplitude was so small that the escapement missed a second.

Yes, other designers used a more sophisticated driving electronics by observing the pendulum swing and modulating the pulse intensity. I decided to change the drive by attaching a small stepper motor to the pendulum shaft. The motor is driven by a set of pulses for clockwise and then counterclockwise rotation.

The motor has an internal reduction gear resulting in approximately 512 steps per revolution. The driver is based on the ULN2803 Darlington. The associated Arduino library reduces the controlling code to supplying a delay between steps and the number of steps. Experiments showed that selecting 45 steps per half swing and a delay between steps of 62'150 / steps = 1381 us used up just shy of one second (998 ms) which is consistent with the loop timing of 1'000 ms.

The little motor has quite some slop in its internal gear. I still use the previous pendulum that has a heavy bob so the backlash of the gear is not noticeable. The pendulum swings as if it were just that without any evidence that its shaft is rotated with uniform steps.

Time will tell if the motor gear will become worn by the back and forth motion one a second (some 30 Million cycles per year)