3D Printed Holo Clock With Arduino

24,562

373

50

Introduction: 3D Printed Holo Clock With Arduino

About: Hey everyone! I'm 14 and like to make things with my 3D printer.

Hello everyone! This is my first instructable.

This project is a 3D printed clock powered by a stepper motor and is controlled by an Arduino Uno. It was designed in OnShape over the course of a month. It keeps time very precisely and only needs to be plugged into a USB port once programmed.

Credit to ekaggrat for the design idea.

There may be missing files or errors. If you spot any, let me know.

Supplies

Arduino Uno

24BJY-48 stepper motor

ULN2003 stepper motor driver

6 male to female jumper wires

A 3D printer

2 different colors of filament (I used black and white PLA+)

2 M4 nuts

2 M4 screws 6mm long

4 M3 screws 10mm long

8 M3 washers

Masking tape

Super glue

M4 and M3 allen wrenches

3.18mm x .335mm brass tube (see below)

Link for the brass tube: https://www.amazon.com/PRECISION-METALS-8127-RND-Tube/dp/B000BQOPWM/ref=sr_1_4?dchild=1&keywords=precision+metals+1%2F8+x+.014+brass+tube&qid=1626543332&sr=8-4

Note: I only used such a strange tube because it was all I had on hand.

Step 1: Print the Parts

All parts should be printed at .2mm layer hight.

For the gears: All of them should be printed in black.

For the other parts: All of them should be printed in white, and only minutes ring and hours ring need support.

The images show where support is required on the parts.

Frame C should be printed twice.

Step 2: Cut the Brass Tubes

To cut the tubes, put the brass tube into the vise and cut it with a dremel.

The lengths of the tubes are:

45mm (make 3)

34mm (make 1)

25mm (make 2)

20mm (make 1)

Note: These are not the actual lengths of the tubes, but rather longer versions that will be sanded down later.

The video below shows how I cut the tubes using my Dremel 200.

Step 3: Sanding the Tubes

All of the tubes from the previous step should be sanded to the lengths below.

The 45mm tubes should be sanded to 41mm.

The 34mm tube should be sanded to 29.4mm.

The 25mm tubes should be sanded to 22.7mm.

The 20mm tube should be sanded to 17.7mm.

All of this should be done in a vise and with a dremel.

Step 4: Framework Assembly Pt. 1

Glue the roller and roller shaft together and place it in one of the 3 holes on frame A with an arrow pointing to it and glue it in the hole. Repeat this 2 more times. Repeat this on frame B.

Step 5: Framework Assembly Pt. 2

Using the pictures above as a guide, install the stepper motor into frame A using 2 M4 nuts and screws. After the motor is installed, take a small amount of masking tape and wrap it around the shaft of the stepper motor once. This will ensure that the shaft of the stepper motor will hold its gear tightly.

Step 6: Framework Assembly Pt. 3

Inner frames A, B, and C can all be glued to the framework using the method depicted in the first 2 pictures. To put the inner frames on, you should use one of the brass tubes to stabilize the frame when you glue it on to one of the main frames. The last picture shows where each of the inner frames should be once they are glued on. Frame A is on the right and frame B is on the left.

Step 7: Framework Assembly Pt. 4

Glue both frame C parts into the indents in frame A.

Step 8: Gears Assembly

The photo above shows the tubes and the gears. Each gear is labeled. Directly above or below each shaft is its length. Next to each end of the shaft is the length of the amount of shaft protruding from the gear. Once you position the shaft, glue it in place. Repeat this for each gear.

Step 9: Adding the Gears

The pictures above show the order in which to add the gears. It also shows the assembly of 60t-10t with a roller and a large roller. Use the last pictures as a reference to see where the gears and washers should go.

IMPORTANT: Remember to put the minutes ring with frame A and the hours ring with frame B. Also remember to set the clock to 12:00 when you assemble it.

Step 10: Adding the Caps

On each side of the clock there are 5 exposed brass tube ends. Glue a cap to each of the exposed ends.

Step 11: Adding the Circuits

Screw the Adruino Uno in to its case using two screws. Do the same with the ULN2003 stepper motor driver.

There are several photos showing the positions of the wires on the board. Remember to connect the stepper motor to its driver.

Step 12: Arduino Code

Download the code below and and upload it to the board. Make sure the motor is rotating.

Step 13: Conclusion

I really hope you enjoyed this project as much as I did.

If you have a questions, comments, or tips, please let me know.

I look forward to making more instructables in the future.

Below is a time-lapse of the clock running for fifteen minutes.

Arduino Contest

Runner Up in the
Arduino Contest

Be the First to Share

    Recommendations

    • Eggs Challenge

      Eggs Challenge
    • Build a Tool Contest

      Build a Tool Contest
    • Meatless Challenge

      Meatless Challenge

    50 Comments

    0
    veliko
    veliko

    5 months ago

    Just to clarify, it's a 28BJY-48 stepper motor, not 24BJY-48. We all make typos 🙂

    0
    Salamyman
    Salamyman

    Reply 4 months ago

    actually it's a 28BYJ-48, but that's fine, we all make mistakes. :)

    0
    saulemmetquinn
    saulemmetquinn

    Reply 5 months ago

    I fixed it. Thanks for spotting the error!

    0
    Chemdawgds
    Chemdawgds

    7 months ago

    This is a really cool build. I noticed though once it was all together and I had the time set, that it's off by about 30 min in 24 hours. Roughly. Is there something that can be changed in the code to make it tick a teensy bit faster to make up for the 30 mins it's behind?

    0
    saulemmetquinn
    saulemmetquinn

    Reply 6 months ago

    Well, as it turns out, the ratios of the gears within the motor are quite arbitrary and produce a terrible ratio (between 63 and 64 with many decimals). Therefore, it is impossible to properly use this motor. After some calculations, I discovered that the clock is behind by .02 seconds each second. I thought that the timing from my watch was accurate, but apparently not. My best advice is to learn more about the motor or use a different one. It’s the best I can do. Thank you.

    0
    saulemmetquinn
    saulemmetquinn

    Reply 6 months ago

    Here is a modified version of the code, i'm not sure if it works any better but you're welcome to try. Please let me know what happens.

    0
    ThomasR66
    ThomasR66

    10 months ago

    I'm loving this build. I have most parts printed. Just a question on Framework Assembly Part 1. Why do you say glue the rollers to the shaft and then glue them to the frame? Don't we want these to roll?

    0
    saulemmetquinn
    saulemmetquinn

    Reply 10 months ago

    Originally that was the plan, but the rings work just fine with the rollers glued in.

    0
    IHawke
    IHawke

    11 months ago

    I have downloaded and printed the new gears for your clock, and installed them as far as I can tell in the right places, but while the minute hand rotates clockwise, the hour hand now rotates anti-clockwise. I really appreciate the time and effort that you have put into making this a viable project, and I would like to complete it to work as intended. For the record, yours is the first Arduino driven project that I have built where the program worked as advertised.
    Many thanks, Ian Hawke

    0
    saulemmetquinn
    saulemmetquinn

    Reply 11 months ago

    Could you please send me some photos of the clock? I need to see why the hands rotate wrong. My best guess is you built it incorrectly, because it works fine for me. Thank you.

    0
    IHawke
    IHawke

    Reply 11 months ago

    I'm sure I did build it incorrectly, but thank you for taking the time to trouble shoot for me.. I hope the photos help.

    DSC00183.JPGDSC00182.JPGDSC00181.JPGDSC00180.JPGDSC00179.JPGDSC00178.JPG
    0
    saulemmetquinn
    saulemmetquinn

    Reply 11 months ago

    You have it built correct. Are you sure it rotates wrong? Try running it for 15 minutes and take a picture before and after. See how that works. I have included an edited version of one of your photos showing the rotational directions of the gears. In my photo, you see the two rings rotate clockwise.

    Screen Shot 2021-08-24 at 7.06.10 AM.png
    0
    IHawke
    IHawke

    Reply 11 months ago

    It works! I would give you 10 out of 10 for your ingenious project, and for the support you have given me and others to ensure that the clock works properly. My sincere thanks.

    0
    saulemmetquinn
    saulemmetquinn

    Reply 11 months ago

    No problem! Glad to see it worked out for you!

    0
    rigtig181
    rigtig181

    1 year ago

    @saulemmetquinn has done these updates, too. Thnx. See replies below.
    Built, and confirm hours have incorrect ratio for this to work as a
    clock. Looks good though. When updating the design, please think about
    how to set current time and how to adjust for daylight saving. Thank
    you.

    0
    saulemmetquinn
    saulemmetquinn

    Reply 1 year ago

    I set the time by running a program that just rotates continuously. Yes, there are other ways to do this, but keep in mind that I have never made anything like this before. This project was mostly learning for me.

    0
    rigtig181
    rigtig181

    Reply 1 year ago

    @saulemmetquinn, learning is what we all do. I've enjoyed your project! I used different colours, and didn't have any brass tube; so, I used a couple of bamboo skewers. Once the ends were covered in candle wax (to reduce friction), the little motor was able to turn reliably. Here's a couple of pictures, noting that I printed all the pieces on a printer base of only 120mm x 135mm, and had to plastic weld the larger pieces together. And I just remembered that I didn't glue frame A to the two frame C pieces, but just used a couple of self-tapping screws (so I could get it apart again). I've also uploaded a modification to your code to add a switch (or just a jumper wire) to make the motor turn continuously.

    2021-08-02 11.06.11.jpg2021-08-02 11.05.27.jpg
    0
    saulemmetquinn
    saulemmetquinn

    Reply 1 year ago

    Nice work. The idea for the button is good, and I will consider that when I learn more about ardiuno. I also had to split some of the parts as I only have a 150mm x 150mm build plate. All updates for the clock are complete. You may look through the instructable to see what has changed.

    0
    rigtig181
    rigtig181

    Reply 1 year ago

    @saulemmetquinn, well done with the updates. You were very quick really. When I first looked at the gearing changes, I could not work out why you had to replace the 50t-12t cog, because the replacement also had 50t and 12t on same shaft.

    For everyone else's benefit, I've attached a short video of a MeshLab screen showing the drive chain with the original 50t-12t part which, if you look really carefully shows why @saulemmetquinn had to replace that part; the little bit of shaft of the 50t-24t cog (yellow in video) is just being hit by the 30t teeth of the 30t-24t cog (red in the video).

    0
    saulemmetquinn
    saulemmetquinn

    Reply 1 year ago

    Thanks. Please post a make when you're finished.