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 Cults3d.com, 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.

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.