Digital-Analog Clock With Stepper Motors
by drtonis in Circuits > Clocks
91 Views, 2 Favorites, 0 Comments
Digital-Analog Clock With Stepper Motors
Several years ago I saw here in instructables how a somebody built similar clock with servos. It looked amazing, however the construction was for me little challenging. Here’s a link: https://www.instructables.com/DigitalAnalog-Clock-Arduino-PaperCraft/. Another one that used 3d printed parts is that one: https://www.instructables.com/Kinetic-Digital-Clock-Arduino-3D-Print/. Like 6 years ago I built something very similar. It worked, however I made it without PCBs and it was a wiring mess. Here a short video: https://youtu.be/uOjTMGe8CNU?feature=shared. Thus, no instructables about that.
The idea of building something similar has been with me since then and I had an idea to use cheap 28byj-48 stepper motors, 3d printer and a standard M3 screws. After several design iterations I noticed that using a screw with a nut would be more complicated than anticipated. After some brainstorming how to improve the design I realized, that I could simplify everything when I print the screw myself.
I set for M10 thread size, since I wanted to print it with a standard FDM printer and without any huge effort. After some tweaking around I was ready with the design I’m presenting here. 28byj-48 motor is directly attached to a 3d printed nut that turns the segment in and out. I would say it's a simple idea that works.
I don’t use any homing switches. The homing is done by turning the screw until it is set and that’s it. Not very sophisticated, nevertheless one could call it a “sensorless” homing. Anyway that part worked, thus next was the PCB design. I was able to use already know components and approaches from my other projects, therefore that part wasn't very time consuming.
Supplies
To build four digits one needs:
- 28x 28byj-48 motor
- almost 100 M3x8 screws
- 4x PCB
- 1x Xiao Board, I used ESP32C3 version because of the Wifi connection
- 1x 9-24V power supply (min 20W)
- 4x 2-pol dupont cable (Female-Female)
- 6x 3-pol dupont cable (Female-Female)
One needs to print:
- 4x Clock_InOut-Base
- 28x Clock_InOut-Dial1 (segment)
- 28x Clock_InOut-Dial2 (nut)
- 1x Clock_InOut_MidPart1
- 1x Clock_InOut_MidPart2
- 2x Clock_InOut_Feet
- 2x Clock_InOut_FrameHolder3
The PCB and STL files with Arduino code can be found here: https://github.com/drtonis/Digital-Analog-Clock-With-Stepper-Motors
I ordered the PCB already assembled, professionals can do it much better than me. However, it doesn't have any very small components and one could solder everything by hand.
Building
A digit mechanical build up is straightforward, thus the build up instructions are not very long. Attach a nut to a motor, screw a segment piece on it and after using screws fit the motor to it’s place on the Base. After the motors are fixed, one can attach the cables on the PCB and that’s it. The wiring orientation can be seen on the figure.
To connect the four digits together one needs to print additionally:
- 2x FrameHolder
- 2x Feet
- 1x MidPart1
- 1x MidPart2
Here the Fusion360 Link
I made the PCB design by looking the motors from the back, thus the orientation of J1-J7 is wrong way. It affects the programming and I was easily able to compensate it, however I wasn't very happy about it
Conclusion
It took me some time to come with the idea to use 3d printed screw and a nut for the kinetic movement. That simplifies considerably the mechanical part of the clock. The only limitation is the speed, it requires several turns before the segment has moved enough. Additionally I used simple and cheap, however slow 28byj-48 stepper motors.
Each digit has 7 segments, thus 7 motors and each motor requires 4 pins for rotation. In the end a lot of digital pins are needed for al the connections. In order to simplify the electrical assembly I designed a PCB that makes wiring much easier. Nevertheless, there are still several cables that goes from one PCB to another. Moreover the motor wires are quite long and it still looks quite messy behind the clock.
The mechanical movement works as intended. The only limitation is the grinding noise due to the printing orientation. If it would be possible to print the segment in another direction the noise would be fully eliminated and the friction almost eliminated. Nevertheless, one can hear the noise mainly during the homing when all the motors are running.
The main feature to see the digits is the shadow. I assume one could make the dials thicker so that the shadow stronger is. On top of that the light direction is very important. I noticed that when I moved between the light source. In the end one needs to be creative to use the clock, however for me that’s a feature.
Other than that I am happy with the outcome. The design is simple to rebuild and it doesn’t require expensive nor complicated parts.