Gyro Winder / Watch Winder / Remontoir Montre Automatique

by NedalLive Jan 20, 2018
Download All Files

Thing Apps Enabled

Please Login to Comment

Comments deleted.

I bought the files on CULT, but I don't see any hardware list.
Is there a list of proposed
screws, bolts, ball bearings etc ?


I have connected everyting as on the schematics but after uploading scetch there is no led and only silent ticking noise from motor. No motion, nothing. What have I done wrong?

look around the diet if it's powerful enough

It seems I am not the first, but...I also looked at the standard code and thought perhaps it could be improved...a friend is building this now and asked me to help.

My code is shorter and more controllable. I haven't looked at any other version than the original, so other versions available here may be better than mine.

It also requires slightly different wiring, for which I do not have a wiring diagram - trying to fix that, will post soon hopefully.

(Wiring - if you have programmed an Arduino before, you will know about a "pulldown" resistor - connect one side of the momentary push switch to pin 4, and also to ground via a 10K Ohm resistor. connect the other side of the switch to "live". I can get this to work powering my Mega from the USB port and the motor from the 5V line - but this is apparently NOT recommended. Better to take external power for everything)

Main differences in the code are;

Removed all "delay()" statement as the arduino does not receive inputs during a "delay()".
Uses a momentary push button on pin 4 instead of a slider switch for power. This allows the device to be powered on, but not actively working. The push button has different functions depending on when you press it.

There are also differences in operation.

With the new code's default settings the device should (still testing) function the same...carry out 20 pairs of 720° forward/ 720º backward winds of the stepper motor, pause for a minute, then do it again.

The differences are;

  • all the parameters mentioned (number of winds, pause between winds, number of steps, etc) can be changed.
  • the LED now operates more effectively...when the motor is turning it flashes ten times per second, otherwise it flashes 1 time per second.
  • the button has more functions as follows
    • when first turned on (slow flashing LED), use the button to start winding
    • when actively winding, press the button to stop winding AND return the arm to the original starting point
    • during the 60 second pause at the end of twenty winds, press the button to immediately start the winding cycle again - or, if you leave it, it will automatically wind once 60 seconds have passed.

I also made the layout of the information sent to the serial monitor into a tabular form, which is easier to read.

There are a lot of notes in the code, but if anyone has any questions just ask.

I printed and assembled the parts separately.
Is it the right way to print the .slt file right after converting it to G code?
I have no idea. Don't know. I want to print. I need a hand. I beg you.

Does the joint move when you just print it?
Can I create a support and print it right away?
Looking at the picture, I think I printed the parts separately.
Because each color is different.
The ring that returns the pedestal and the watch does not stack up in the same direction.

Hey, my comment with improved Arduino code still 'is currently flagged for moderation'.
Eigther the moderation is pretty slow here or my imput is far from being welcome here.
Both are not a maker-friendly behaviour.

Hi !
it does not seem that it comes from me sorry.
Surely he thinks you're broadcasting the entire code, but that's not the case

Hi NeddaLive
I have an alternate top design of the base (cache_sup) were the screws are recessed and the base top has conical edges.
Would you mind me to post it as a remix with just the top part?
Alternatively I could send you the files for inclusion in your set

Looks like finally a mod seemed to have shown up :D

I remixed the code a bit.

I used AccelStepper library for the stepper to get a nice acceleration/deceleration movement.
The ramping feature also helps fighting loosing steps. The winder runs here for more than a week without loosing any steps. Watch is always faceing perfectly forward.
To save power the stepper driver is disabled when stopped.

Led is still on pin 5 but is now using JLed library the enables a stunning 'breathing' feature.
In between winds there is a slow brething of the LED brightness. About a minute from the next cycle its increasing breathing frequency to indicate it's not save now to remove the watch.

I use a push switch as the power button is a bit useless when running of a default mini USB cable powering the Arduino.
Button is connected to pin 3 to ground.
So I use AceButton to detect long and double button press.
Long press: Stops the winding cycle, So you can savely remove the watch from the stand.
Double press: Restart winding cycle, e.g. after replacing the watch.

You will need to install the following libraries to compile:

  • AcccelStepper
  • JLed
  • AceButton

You can do that by entering Sketch menu and selecting Libraries and then Manage Libraries ...

Whole code now uses a state machine approach that's easier to modify.

Some parameters adjustable:

  • ROTATIONS 10 // number of left/right alternations per cycle
  • ROT_R 2 // rotations right
  • ROT_L 2 // rotations left
  • ROT_STEPS 4096 // steps per rotation, don't change unless using a different motor
  • ROT_SPEED 1000 // maximum rotation speed
  • ROT_ACCEL 800 // stepper acceleration
  • PAUSE_MIN 30 // cycle time in minutes

I have slightly modified your code a bit more (probably also "verschlimmbessert" it), mostly to keep it initially in standby and to make it actually go back to standby when stopping, so that it can be left powered-on. And i created a wiring diagram...


I modified in a similair fashion, although I think I have a simpler solution wrt TPD

For my solution I set a standard cyle = 8 Rotations (or turns)

So for 650 TPD I would need 82 Cycles. 24 Hours in a day so 82/24 = 3.5 (round up to 4). So 4 cycles every 1 hour.
For 850 TPD I would need 107 Cycles. 107/24 = 4.5 (round upto 5). So 5 Cycles every 1 hour.

I've modified the code so the start of the cycle group will start the 1 hour countdown, so it doesnt matter how long the cycles take, it will still give the correct number of Turns Per Hour.

Ive also modified the base stl to have 2 small switches...1 to choose CW or CCW rotation, and 1 to choose 650 or 850TPD and the code to accept input from these 2 switches and set cycles and direction appropriately.

Watches that are designated as BOTH (ie both CW and CCW) can be wound in either direction so no need to go CW then CCW anyway.

I will post the modified code and STL files soon.

Connection is realy minimum. Both, switch and LED are just connected to the Nano between pin and GND, no additional pull ups or downs added. So I don't think adding to the original shematic realy helps

You might just use the integrated monitor in the Arduino GUI for some more insight.
Just enter Tools->Monitor and select 9600 baud and you should get some text about what the software does.
This "SW" lines should appeare when pressing the button, the Long and Short indicating that the lib does its job.

The brething is happening only when the winder ist stopped in between cycles.
Does the LED do any short blinks (about 5sec on, 0,5sec off) while the winder is running?
That would at least indicate the button library is working.

What version on JLED library did you use?

I had the same problem as tictocdoc with your version of the code. I managed to get it working but needed to change the code a little in order for it to work properly. I'm trying to work out how to change your code so that it only goes in 1 direction (CW or CCW) and not both. Some of my watches are one direction only but I struggled. I thought setting ROT_L to 0 would work, but it still goes CW and then CCW. Also seems to go for 2 rotations, irrespective of the number i put for ROT_R, until it gets to the last ROTATION (counter:0) when it does turn for the correct number of rotations.

Am going to try to see If I can resolve, but my coding is rusty and by far from good :-)

I actually used JLED 2.3.3
Just realised there are some major version jumps to 3.x and 4.x recently.
I havn't tested those yet.
Good hint anyway.

I did have to modify the code to get it to work. Will be posting my code with additional modifcations soon


I have a question. I notice that you mention connecting the switch to pin 3 but that is not shown in the original wiring diagram. Any chance you might update the original wiring diagram to illustrate how it is supposed to be connected (pull-down resistor needed, etc?)? I have mine connected currently like the wiring original diagram shows. It comes on and runs but the switch doesn't seem to control anything. I can press long and short but nothing changes. It continues to run. The LED does not "breathe" either. It just stays on solid. I have all the required libraries installed as per the instructions. The LED is connected to pin 5 and ground. I really want to get this working correctly with your code. Thanks in advance!

Have a look at my remix of the remix, i have all the LED effects working now. The LED needed a reset() for me, maybe something about newer version of the JLed library.


Hi the stl file is of the whole unit, are there files for the individual parts? Many thanks!

NedalLive is selling the design.
The link is in the comment section: https://cults3d.com/fr/mod%C3%A8le-3d/mode/gyro-winder-watch-winder-remontoir-montre

But it's worth the ~2 bucks ...

Thank you for your comment

How much in €? How to pay? I like this thing

got the model, thank you for your work.

Has anyone been able to find the code?

The code is in the files which you get when you buy the model.

Un de premiers projets que j'ai commencé depuis que je me suis mis à l'impression 3D il y a moins d'un mois et le temps de trouver les bons réglages

J'ai payé sur cults, donc j'ai à priori tout ce qu'il faut, mais je suis nul en électronique, j'ai galéré à trouver la bonne image pour les connexions avec la plaque arduino, car dans l'image c'est la variante chère vers laquelle ne conduit pas le lien amazon que tu avais mis en composants, mais ben, ça s'est bon normalement

En revanche, concernant l'interrupteur et ses multiples pattes, où je pourrais trouver quels câbles il faut souder à quelle patte ?

Si jamais tu pouvais m'aider

Bien cordialement

Salut !
Sur les interupteur tu a normalement 5 broches
3 noté comme suivant : NC NO N (de normalement close normalement Open et Commun)
un cable est par defaut connecté au N ensuite tu peux intervertir entre NC et NO pour avec une ise en route soit quand tu le pousse soit quand tu le relache (ca inverse la logic de l'interrupteur)
les deux autre sont pour la led avec possibilité quelle soit polarisé de fait si ca ne marche pas dans un sens inverse les deux cable

How big is the largest part? What size print bed would I need?

on the beds of 120mm x 120 this was enough

Was just wondering if the arduino code is available to download.

Hello arduino code has been partly taken from the internet you can find a cherchan can find your honor

looked on cults , where is the code?

My wrist is too big and my metal link band wont tighten around the center :/ thoughts?

The following assumes the default opening orientation in Cura 3.4.1:

  • Rotate the "Watch Stand Gyro" 90 degrees on its x axis to lay it down on its side then scale on the x and y axis but not the z.

  • Lay the "Molette" model down the same way (make sure the nut capture socket is up to avoid supports) and scale on the z axis to match the y axis scaling on "Watch Stand Gyro".

  • Scale the "Patin" model on the x axis to match the "Watch Stand Gyro" (you can also scale on the z axis to match the y axis of "Watch Stand Gyro").

You should end up with holes that are slightly oblong (can't be seen when the watch is on) but still spaced the same. You might have to experiment a little to find just how much to scale.

it will be necessary to remake a piece of pusher to tighten watches of large diameter ...
I can look at it but not in the immediate

do you have the separate files for each piece?

Yep, you gotta pay for it

Hello yes she are available on Cults3D link in description

Looks great!
Which scale have you printed it in?

Great design - Printing it as I type - Thanks

Merci l'Artiste , grâce à toi je serais enfin a l'heure !!

Cool project! I want to do it and I'm buying materials. I'd like to see your code, can you share it?

It's a bit late, but I ended up using this code instead of the code supplied with the files - https://www.instructables.com/id/BYJ48-Stepper-Motor/