Watch out!

Today I want to showcase a homemade watch-winder.  I built this watch-winder for my self-winding watch. (Wait…What?) The self-winding watch is a type of watch that is usually wound through the normal arm motions while wearing it.  Self-winding watches are pretty fancy; generally I don’t wear it day-to-day, and as a result it loses track of time. Which is why I wanted a watch-winder for a self-winding watch. But instead of buying one, I decided to make use of my 3D printer and make one.  I printed the parts, assembled it, and wrote my own software for controlling it.

The watch-winder is not my own design.  I found the design at, which is a website that hosts designs that you can buy.  This particular design cost me less than $2.00, and I figured that was worth it.  What makes it work is the set of concentric rings. The rings provide a couple of degrees of freedom, each degree of freedom allowing rotation around an axis.  A motor is connected to an arm that spins in a circle. At the end of the arm is a bracket which is connected to the innermost ring. As the arm spins, the rings “wobble” in just the right motion to wind the watch. It’s a neat design and fun to watch. 

Which is the key to intergalactic travel and which is the watch winder?

The design also includes a base, which hides the electronics and motor.  I did need to modify the base design slightly, because I wanted the power to come through a proper power jack, rather than through some dangling wires. This Jupyter Notebook captures the steps I took to modify the base.  I used my 3D printer and PLA plastic to print model.

All of the electronic components were purchased from Adafruit.  I bought an ESP8266 microcontroller, a stepper motor, a stepper motor driver board, a power push button, power jack, and power supply. Before soldering the wires to the jack and push-button, I had to mount those parts to the base.  After they were mounted I could solder the wires. The board required soldering headers to connect the stepper driver board to the ESP8266 board.

To assemble the model I used a variety of on hand m3 screws, m3 hex nuts, and thin m3 square nuts.  Assembling the model was frustrating at times. The hole for the push button was a bit too small, making it difficult to insert the push-button. The nut traps, holes for the square nuts, were poorly designed. The nuts were difficult to insert and align with the screws.  The original model could use a few more design iterations, in my humble opinion. Despite the issues, assembling the model is pretty straightforward. Before closing off the base, I programmed the ESP8266.

Pictured: Me considering a redesign

The ESP8266 is a wireless capable microcontroller. It can be configured with an Arduino Integrated Development Environment to run the standard Arduino software framework. Using this framework opens a set of software libraries that considerably eased development.  I chose to use PlatformIO IDE instead of the Arduino IDE. PlatformIO provides the same Arduino framework, but in a development environment that I prefer. My code can be found on GitHub.

This was a fun and comprehensive project. I enjoyed building this watch-winder, and I believe it’s something you can do too.

Print It. Solder It. Code It.

Make It Dayton.