Marble Clock

105,641

841

100

Introduction: Marble Clock

About: Try again. Fail again. Fail better

EDIT:
This Instructable was featured on,

Motherboard - VICE

Hackaday

Arduino's official blog

Hackster blog

Digital Trends

Note:

I have a twitter account where I share the progress of my projects before I publish them. You can follow me and give feedback on my projects. I think this will eliminate many problems of the project before it's published.

--------------------------------------------

Marble Clock is a 3D printed rolling ball clock that tells the time by the location of marbles/balls. It consists of 3 main rails, where,

  • The 5-minute rail with 1-minute intervals
  • The 60-minute rail with 5-minute intervals
  • The 12-hour rail with 1-hour intervals

add up and tell the time.

Outline

In the first step, I will give you a little bit of history of rolling ball clocks and ball clocks in general. Next, I will explain the Idea behind this project. Then I will give you an insight into the design process of this clock, so you'll be able to design your own clock. I'll give you a 3d print guide so you can easily print the required pieces and arrange them. After giving you a step by step assembly guide and show you how to sync your clock, I'll end the instructable with a troubleshooting guide. So, if you encounter any problems during your build you can solve them easily.

The purpose of this instructable is not just to give you a cookbook. I'll show you the way I built this project and provide you with open-ended questions, so you can add your own ideas, and take this project even further. Many parts I've designed are not connected. This way you can change the design to your own liking and then glue them together.

I strongly encourage you to share your build when it's done!

Let's get started.

Step 1: A Short History of Marble Clocks

This instructable is based on the design called "rolling ball clock" that was invented by Harley Mayenschein in the 1970s. He patented his invention and started a company which began to manufacture these clocks from solid hardwoods in the 1980s.[1]

The original rolling ball clock had 3 main rails, 2 for minutes and 1 for the hour. by adding the two rails one can get the total minute. This way the time was shown.[1]

There were many varieties of these clocks ... for example the kineticlock (more info: kineticlock.ca)which had 10 minutes intervals instead of 4, or the Chronomeans Clock which was built with anodized aluminium.

Other rolling ball clock varieties:

Source:

[1] https://en.wikipedia.org/wiki/Rolling_ball_clock

Further Reading:

http://www.chilton.com/~jimw/ballclks.html

Step 2: The Idea

I've been a long time fan of ball clocks. I've seen one when I was a kid in a novelty store. And I just stood there watching it endlessly. The movement of the balls with time was magic to me. After I heard about the clock contest on Instructables. It gave me the Idea to try to design and build a ball clock from scratch. So I started to sketch on paper.

What I wanted to do was to design a different lifting mechanism instead of the traditional rotating scoop type design. So then it hit me. I was going to use a rotary to linear motion mechanism so while the mechanism was rotated by a motor the ball would be moving in a line, up and down. Creating a little illusion.

The rails were mostly inspired from other ball clocks but I had an idea to create a bell mechanism so everytime one hour passes there would be a sound. Unfortunately, I could not build this into the project.

Step 3: Tools & Parts

Note: these are the Tools&Parts I had available. You can use any other part for your needs.

Tools:

Parts:

3D Printed Parts :

all parts are on step 5 I recommend you to read read step5 before printing them.

Step 4: Design Process

You can skip this step if you just want to print the project. This step is for people who want to design their own ball clocks or want to add new features to this project. It gives an insight on how the ball rails were designed in Fusion 360.

If you are new to the Fusion 360 environment I suggest you take a look at a few tutorials.
You can enroll in this class: https://www.instructables.com/class/3D-Design-Clas...

also, this youtube series gives a good beginner tutorial: https://www.youtube.com/watch?v=A5bc9c3S12g

I suggest you to read this step after you've seen the tutorials.

Details on the design process are noted on the images.

Base Structure & Rails

The base structure is basically 6 rails holding 4 rods. The rods(8mmx8mm) were designed to be sturdy. They are held by bolts to a wood plate. The rails were inspired by the original rolling ball clock. But the dimensions are different due to different ball sizes and weight distribution.

Elevator

The elevator design was inspired by this mechanism. User mgg942 used this design and created a rotary to linear drive on Thingiverse . I tweaked and re-designed this to create an elevator mechanism.

Step 5: 3D Print

There are two seperate .zip files you can download.

The 3d parts.zip folder contains all the parts for the clock separately.

The 3d_parts_sets.zip contains 5 sets. each set is designed for a 25x25cm print area.

If you have a large print area you can print these like I arranged them in sets. Or you can print them separately.

I suggest you to finish printing before the assembly of any pieces. It's much easier if you lay them on a table in an arrangement. Like a LEGO set.

Each part is given a number and a letter. these will be useful while following the building instructions next step.

Step 6: Base Assembly

you can use the pdf template to drill holes on the wood.

Parts used in this step:

  • [3d printed] 1a-3f (28 parts)
  • 5 x 40mm M3 bolts & nuts
  • 6 x 30mm M3 bolts & nuts
  • 3 x 15mm M3 bolts & nuts
  • 6 x 10mm M3 bolts & nuts
  • 10 x 6mm M3 bolts & nuts
  • 4 x (3mm*6mm*2.5mm) ball bearing

Tools used:

  • Tack-it
  • philips head screwdriver
  • pliers

Estimated Time:

  • 15-20 minutes

Note: Assembly instructions are noted on the images.

Step 7: Center of Gravity

This is the most important part of this project. I did not design the rail pieces connected to the joints. This way everyone can adjust them to their needs. The rails and the connectors under them are not attached. You have to figure out the center of gravity and glue it when you are certain. Let's begin,

The 5min rail:

Slowly put 4 balls on the minute rail. And position the connector piece accordingly so it doesn't tip over. It should tip over when the 5th ball comes. This takes a bit of time to adjust. When you're satisfied go to the 15min rail.

The 15min rail:

Slowly put 11 balls on the rail. again it shouldn't tip over while 11 balls are on it. When the 12th ball arrives it should tip over.

The Hour rail:

This is the same as the 15min rail. wherever you glued the connector on the 15min rail you can glue it on the same place on the hour rail.

Lastly, to test them all at once put 11 balls on the hour and 15min rails and 4 balls on the 5 min rail. then drop one ball to the 5 min rail. They all should go smoothly and leave the rails

Step 8: Elevator Assembly

Parts used in this step:

  • [3d printed] 4a-5d (9 parts)
  • 1 x 25byj-48 Stepper
  • 4 x (3mm*6mm*2.5mm) ball bearing
  • 1 x (F6-14M 6mm x 14mm x 5mm) Thrust Bearing
  • 2 x 10mm M3 Bolts & Nuts
  • 2 x 25mm M3 Bolts & Nuts
  • 2 x 6mm M3 Bolts & Nuts
  • 4 x 40mm M3 Bolts & Nuts

Tools used:

  • Tack-it
  • philips head screwdriver
  • pliers

Estimated Time:

5-10 minutes

Note: Assembly instructions are noted on the images.

Step 9: Driving the Motor & Timing

How to drive the motor

To drive the 28byj-48 stepper motor with a constant speed I've used an Arduino Uno with the AccelStepper library. you can download the library here . If you don't have experience with Arduino or don't know how to install libraries you can check this site.

Connect the pins on the stepper motor to the Arduino like this:

Stepper---Arduino

  • IN1 ----> 2
  • IN2 ----> 3
  • IN3 ----> 4
  • IN4 ----> 5

After uploading the code you are good to go!

Timing

The most important thing about a clock is precision. We want this clock to be as precise as any other wall clock/ watch so it works without any error. To do this we have to change the speed of the motor so the elevator completes 1 revolution in 60 seconds precisely.

Now get a stopwatch in your hand and run the motor. Start the stopwatch when the elevator gear crosses a specified point. And stop your watch when it crosses the point again. Take a note at the time. now let's calculate the required speed

T = time on your stopwatch

t = 60s (time you want it to complete 1 revolution)

M = old motor speed("stepper.setSpeed()" in code)

m = new motor speed("stepper.setSpeed()" in code)

new motor speed(m) =(T*M) / t

Insert this into the code and check your stopwatch again, repeat this until you are satisfied with the result

Step 10: First Test

You're done with the build now it's time to test this clock!

Check your watch and put the balls according to the time. And start the motor when you are ready. It's really fun to watch time go by with this clock. Go and put yourself some tea and enjoy the sound off balls clicking. Now while doing that you should check a few things to be sure that this clock can run for 7/24 straight.

Things to look for:

  • Can the elevator bring a ball without dropping it each minute?
  • Are balls not getting stuck on the rails after 2-3 hours?
  • Is the clock on time after several hours?

If your answer is no for at least one of those questions, you can check the Troubleshooting step!

If your answer is yes, then congratulations you've built a precise ball clock!

Step 11: Troubleshooting

- Balls are not moving easily on the rails

Sometimes filament residue blocks the balls. use a sandpaper to sand the pieces.

- The motor is stopping after a few hours.

Try to connect external power to the motor.

-the balls are falling even though I set them not to fall

The surface the clock is on can effect this try to change the location of the clock

-The clock is not on time

Repeat the timing step as much as you can until you are satisfied

Step 12: What's Next

There are lots of things that can be improved on this clock. Here are a few that I have in mind.

  • Adding an am-pm rail.
  • Adding a bell so it makes a sound every hour.
  • Creating a more stylish ball descent system. instead of the ball tower that just drops the balls.
  • Make a bigger version with different kind of balls

I hope you enjoyed this instructable.

If you have any questions ask away! & tell me about your build!

Clocks Contest

First Prize in the
Clocks Contest

8 People Made This Project!

Recommendations

  • Puzzles Speed Challenge

    Puzzles Speed Challenge
  • "Can't Touch This" Family Contest

    "Can't Touch This" Family Contest
  • CNC Contest 2020

    CNC Contest 2020

100 Discussions

0
jhughes1010
jhughes1010

2 months ago

The nut for the center bolt in the elevator gearing... Is locktite enough to keep it from working loose? Curious what others have found out.

0
GArcuri
GArcuri

Question 9 months ago

Can anyone walk me through the programming of the Arduino to run the step motor, (codes etc.)?
I have a 5v power supply hooked up to the Arduino UNO, a USB cable to my laptop & and the 4 jumper wires from the Arduino to the control board that came with the step motor.
I downloaded the Arduino app but are lost from there.
I am not the sharpest pencil in the box when it comes to the electronics portion, can anyone help?

0
boraggini.s
boraggini.s

Answer 3 months ago

io ho usato questo
int aPin = 2;
int bPin = 3;
int cPin = 4;
int dPin = 5;
int currentStep = 0;
void setup() {
// put your setup code here, to run once:
pinMode(aPin, OUTPUT),
pinMode(bPin, OUTPUT),
pinMode(cPin, OUTPUT),
pinMode(dPin, OUTPUT),
digitalWrite(aPin, LOW);
digitalWrite(bPin, LOW);
digitalWrite(cPin, LOW);
digitalWrite(dPin, LOW);
}
void loop() {
// put your main code here, to run repeatedly:
switch (currentStep) {
case 0:
digitalWrite(aPin, HIGH);
digitalWrite(bPin, LOW);
digitalWrite(cPin, LOW);
digitalWrite(dPin, LOW);
break;
case 1:
digitalWrite(aPin, LOW);
digitalWrite(bPin, HIGH);
digitalWrite(cPin, LOW);
digitalWrite(dPin, LOW);
break;
case 2:
digitalWrite(aPin, LOW);
digitalWrite(bPin, LOW);
digitalWrite(cPin, HIGH);
digitalWrite(dPin, LOW);
break;
case 3:
digitalWrite(aPin, LOW);
digitalWrite(bPin, LOW);
digitalWrite(cPin, LOW);
digitalWrite(dPin, HIGH);
break;
}
currentStep = (++currentStep < 4) ? currentStep : 0;
delay(127);
}

0
Famsoren
Famsoren

Question 4 months ago on Step 3

Hi. I have a Prusa mk3 and when I put the mesh file in trinkercad and Canvas it is too big for my printer and i can’t separate the pieces apart to print less pieces.

0
fbujold
fbujold

Question 4 months ago

I started , printed the 5 sets, to realize that some parts are not in the sets, like the 3 hold pieces and the foot (How many of each?, What other pieces are missing from the sets? the number plates i noticed anything else?

Great piece thanks you

0
aguadoarte
aguadoarte

Question 7 months ago

Hello gocivici and friends ,,
Please, I'm from Brazil
I would like to build Marble Clock, and I don't have a 3D printer, but I would like to know, if gocivici or any of your friends would be interested in providing me with the Marble Printed Parts Kit here for me.
I will pay the cost of printing and shipping here to Brazil or if you have an information on where you could buy this kit on the internet.
Sorry for any errors in the words I don't speak the language very well ok
Hugs to
all

0
KayvonX
KayvonX

Question 9 months ago

Hi gocivici,

I'm building this now. Where does the 4b part belong? I can't locate it in the pictures.

0
GArcuri
GArcuri

Answer 9 months ago

You need 4 of them.
It fits in each corner of the large gear and connects to the stand and acts as a spacer also.
I have mine built and ramps work great, do you have any idea of how to program the Arduino?
I can't get the motor to work?

0
Muddiman1
Muddiman1

Answer 9 months ago

Fit into 5a

0
GArcuri
GArcuri

Question 9 months ago on Introduction

Hi Gocivici,
I would like to try and build the Marble clock but my print bed is only 8 1/2" x 8 1/2", (Davinci AIO 1.0).
The parts that are an issue are: 3a, 4a & 5a.
The Davinci software wants to resize the problem parts, but will this cause problems with everything fitting together?
Any suggestions on how to solve my problem?
Thanks,
Guy

1
613fatboy
613fatboy

10 months ago on Step 8

Hi gocivici,
I was surfing the web and came across your ball clock page - very impressive indeed! I especially like your "elevator" mechanism as opposed to the rotary pick-up method - very clever method. When I continued to read about your clock, and came across a reference to KinetiClocK, I was surprised to see that you mentioned the clocks that I make. There is now a website ("kineticlock.ca" - - - it's still in the early phase of development) where folks can see a bit more about this fascinating brainchild of Harley Mayenschein. Excited to see your next project.
Mark

walnut2.jpg
0
gocivici
gocivici

Reply 10 months ago

Hi Mark,
Thanks for your comment, I'm glad that you created a website for your wooden clocks they are really a work of art! I edited and Included the kineticlock website on this Instructable. Hopefully more people will see it.

2
amibar3
amibar3

Question 11 months ago

Hello dear friend. August 21, 2019
Can you get an accurate schedule for the Arduino program for this watch? With a minimal explanation of how to reset the clock, for those who do not understand the computer and the special Ardino software.
I'm done building the watch and I don't know how to turn it on.
Thanks
Amiram Barnea
amibar3@gmail.com

I am trying to assemble the gear assembly, but from the pictures do not understand how to connect the gear which picks up the ball. Can anyone assist me or have pictures/video tutorial? Any help is appreciated.

0
drkoray
drkoray

Reply 1 year ago

Hi,
I printed 1 mm and 2 mm thick flakes with the same radius at the center space of the gear and filled the distance with this flakes between the gears. I used bearings too. But because i completed the project, i can't send photos for now.

1
VincentD67
VincentD67

1 year ago

Here is where I'm done, functional, not yet finished. Rails must be assembled at first. I've made a stronger ladder by doubling posts thickness. Base plate must be rigid to preserve geometry, I chose 5 mils MDF instead of acryl. Also, I did not choose the bearing version for swivel but I prefered a 4mm diam brass tube on 3mm screw all along rail width (12mm), a nearly no play assy ( bushing) much easier to align. At second step, the reception part must be built with the same logic of stiffness. For elevator, I've printed gears out of ABS cause I don't believe in rotating mechanical parts made of PLA. When ready, I'll make a longrun for reliability check. At last, motor speed, synchro and precision will be matter of software but peanuts in regards to that mechanical system made from printed plastics....

20180811_174040[1].jpg
1
mosivers
mosivers

Reply 1 year ago

Your modifications seem to solve a lot of problems I am having with this build. Would you be able to attach stl files for the modified pieces? Also could you send a link for the exact type of bushings you used? A dxf file or exact dimensions for the holes in the baseplate would also be very helpful.

1
VincentD67
VincentD67

Reply 1 year ago

My prototype is fully functional but require some more modification. Unfortunately I've no time to work on this project for the moment. Here is a link to the sketchup files for parts I've modified.

https://drive.google.com/file/d/1oNHN2iFUccr7xi0ID...

This is not fisnished (a mess ;-)) but could be a starting point for your own design.

About the bushing, this is part I named pivot. In this part I've inserted a piece of 4mm diameter brass tube. It rotates on 3mm screw with very few play. Major improvements are: 2 pieces storage rail, bushing pivots, one piece elevator wheels, stiffer minutes/hour rails ladder.

Another major problem is the motor becoming so hot. I have to look for another type and redesign the elevator accordingly.

20180912_091149[1].jpg
1
drkoray
drkoray

Reply 1 year ago

For motor heating problem, i advice using a 5 or 6 V power supply.
At 12 V it is incredible hot.