Professional Documents
Culture Documents
Marble Clock
Marble Clock
Marble Clock
by gocivici
EDIT:
This Instructable was featured on,
Motherboard - VICE
Hackaday
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,
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
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.
https://vimeo.com/281662044
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.
Source:
[1] https://en.wikipedia.org/wiki/Rolling_ball_clock
Further Reading:
http://www.chilton.com/~jimw/ballclks.html
https://www.youtube.com/watch?v=Md9WtLwaODU&t=0s
I've been a long time fan of ball clocks. I've seen one rotary to linear motion mechanism so while the
when I was a kid in a novelty store. And I just stood mechanism was rotated by a motor the ball would be
there watching it endlessly. The movement of the moving in a line, up and down. Creating a little
balls with time was magic to me. After I heard about illusion.
the clock contest on Instructables. It gave me the
Idea to try to design and build a ball clock from The rails were mostly inspired from other ball clocks
scratch. So I started to sketch on paper. but I had an idea to create a bell mechanism so
everytime one hour passes there would be a sound.
What I wanted to do was to design a different lifting Unfortunately, I could not build this into the project.
mechanism instead of the traditional rotating scoop
type design. So then it hit me. I was going to use a
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.
You can skip this step if you just want to print the images.
project. This step is for people who want to design
their own ball clocks or want to add new features to Base Structure & Rails
this project. It gives an insight on how the ball rails
were designed in Fusion 360. The base structure is basically 6 rails holding 4 rods.
The rods(8mmx8mm) were designed to be sturdy.
If you are new to the Fusion 360 environment I They are held by bolts to a wood plate. The rails were
suggest you take a look at a few tutorials. inspired by the original rolling ball clock. But the
You can enroll in this class: https://www.instructables. dimensions are different due to different ball sizes
com/class/3D-Design-Clas... and weight distribution.
1. the width of the rail is 14mm while the height is 7mm 1. here the extrude tool is used to create an 3d object
2. the circle diameter is 12mm which is 1mm greater than the steel balls,
1
1
1. to create curve in the rail I used the revolve command 1. to create curvy edges you can use the "fillet" tool. This way the material
usage is minimized and it gives a stylish look
There are two seperate .zip files you can download. separately.
The 3d parts.zip folder contains all the parts for the I suggest you to finish printing before the assembly of
clock separately. any pieces. It's much easier if you lay them on a table
in an arrangement. Like a LEGO set.
The 3d_parts_sets.zip contains 5 sets. each set is
designed for a 25x25cm print area. Each part is given a number and a letter. these will be
useful while following the building instructions next
If you have a large print area you can print these like I step.
arranged them in sets. Or you can print them
Download
https://www.instructables.com/ORIG/FUG/FY46/JK2UIQ4P/FUGFY46JK2UIQ4P.zip
…
Download
https://www.instructables.com/ORIG/F60/3E8K/JK2UIQ73/F603E8KJK2UIQ73.zip
…
you can use the pdf template to drill holes on the wood.
Tools used:
Tack-it
philips head screwdriver
pliers
Estimated Time:
15-20 minutes
2
1
1
1. 40mm bolts & nuts 1. Use tackit or any other non-permanent glue to stick these. after you complete the setup and test it you
2. 15mm can glue them permanently
3. screwed to the wood by 6mm bolts
1
2
1. use super glue to connect these bearings 1. again used tackit to attach this to the base
2. again use non-permanent-glue or tackit to connect these. it will be a life saver trust me so i can move it when necessary
2. 30mm bolts
1. I used m5 nuts. you can use any weight 1. there should me a little distance aproxx 1-2mm between these two
Download
https://www.instructables.com/ORIG/FIH/S3VZ/JK2UJ343/FIHS3VZJK2UJ343.pdf
…
This is the most important part of this project. I did not Slowly put 11 balls on the rail. again it shouldn't tip
design the rail pieces connected to the joints. This over while 11 balls are on it. When the 12th ball
way everyone can adjust them to their needs. The arrives it should tip over.
rails and the connectors under them are not attached.
You have to figure out the center of gravity and glue it The Hour rail:
when you are certain. Let's begin,
This is the same as the 15min rail. wherever you
The 5min rail: glued the connector on the 15min rail you can glue it
on the same place on the hour rail.
Slowly put 4 balls on the minute rail. And position the
connector piece accordingly so it doesn't tip over. It Lastly, to test them all at once put 11 balls on the
should tip over when the 5th ball comes. This takes a hour and 15min rails and 4 balls on the 5 min rail.
bit of time to adjust. When you're satisfied go to the then drop one ball to the 5 min rail. They all should go
15min rail. smoothly and leave the rails
Tools used:
Tack-it
philips head screwdriver
pliers
Estimated Time:
5-10 minutes
1. Make sure that this piece looks up 1. Lasly attach the numbers. I painted them using black model paint
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
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
Insert this into the code and check your stopwatch again, repeat this until you are satisfied with the result
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.
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!
Sometimes filament residue blocks the balls. use a The surface the clock is on can effect this try to
sandpaper to sand the pieces. change the location of the clock
- The motor is stopping after a few hours. -The clock is not on time
Try to connect external power to the motor. Repeat the timing step as much as you can until you
are satisfied
-the balls are falling even though I set them not to
There are lots of things that can be improved on this clock. Here are a few that I have in mind.
If you have any questions ask away! & tell me about your build!
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
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.
This project was awesome to build. I am using Ender 3 Pro. Setting at 30% infill. Primary layer
height 0.1400 mm. Works great once I found level.
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.
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.
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
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.
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.
Well, to be honest, that looks more stable than my build :D, Thanks for sharing! great work.
Good day, Thanks for the cool clock - I worked with my 5yr old to build one, the first one didn't go
well, but with some tweaks the second one went well, he wanted one made in all the different
colour filament that we had. I ended up creating my own ramp as the three piece one wasn't
working for us, there just wasn't enough drop for the length and the balls kept getting hung up on it,
we created posts to hold the ramp that concealed the screws. Also changed the mount for the large
rotating gear off the arm as the other didn't seem stable enough. The large stationary gear was way
to "wobbly" so we made some mounts that went off the top of the two towers which helped with the
wobble of the large gear and the rail tower that just had as single tower. Frequently the ball would
fall out of the "cup" on the large gear about 1 1/2" from the top rail so I created a guide - just a
piece that hangs off the top rail so that the ball can't fall out. Made some mounts for the top rail as
well. We used Arduino nano's that we could just solder directly to the stepper driver and made a
little box to hold them. Fun project. On the second one we only printed the rails with 15% infill and
this messed up our balance more than expected - We just drilled a hold in the end of the rail and
put an M3 screw in the end - adjusted length as needed to get the balance correct.
Hi Rob, nice job! Could you please share the 3d parts you design?
I appreciate all the time and effort you put into this project and taking the time to write this
instructable for the rest of us to enjoy. This was a fun project, thank you very much for sharing it
with us.
Was such a fun project to do. It works and time keeping is accurate.
Awesome project.
Is it possible to use Arduino nano instead of uno?
Probably yes. No special processing connections or requirements ...
Just do the modifications on the doors.
I have not even used my Nano myself, but I intend to use them soon. This project should be one of
them.
I downloaded your ino file, however I don't see any M or m in the code. How would I set the timing.
This is what I see.
// ConstantSpeed.pde
// -*- mode: C++ -*-
//
// Shows how to run AccelStepper in the simplest,
// fixed speed mode with no accelerations
/// \author Mike McCauley (mikem@airspayce.com)
// Copyright (C) 2009 Mike McCauley
// $Id: ConstantSpeed.pde,v 1.1 2011/01/05 01:51:01 mikem Exp mikem $
#include <AccelStepper.h>
#include <Wire.h>
#define HALFSTEP 8
#define motorPin1 2 // IN1 on the ULN2003 driver 1
#define motorPin2 3 // IN2 on the ULN2003 driver 1
#define motorPin3 4 // IN3 on the ULN2003 driver 1
#define motorPin4 5 // IN4 on the ULN2003 driver 1
AccelStepper stepper(HALFSTEP, motorPin1, motorPin3, motorPin2, motorPin4);
Marble Clock: Page 20
void setup()
{
stepper.setMaxSpeed(1000);
stepper.setSpeed(127.7);
}
void loop()
{
stepper.runSpeed();
}
thanks
Hi,
stepper.setSpeed(127.7);
The 127.7 here is the m value, you can change the speed directly by changing this value.
Hi - Thank you for this beautiful project. I am doing one too.
You state 10mm bolts for the support legs (part 3D) - however none is mentioned on your BOM.
Thank you!
I added them to the list, thanks for pointing it out.
Similar Clock done.
TODO: add sensor to detect falling ball on upper rail; add GPS module; make adaptive soft
1.Gracias a tu exelente idea del mecanismo de elevacion de la bola es que pude terminar mi
proyecto que hacia tiempo lo tenia suspendido. Hice una mezcla y salio algo bueno! Gracias otra
vez
Yes, this looks great. Please share the design or write an instructable.
Congratulations ! I love your design. Can you share your CAD or stl files? What kind of motor are
you using?
Wow.....i did make the "clock"...…..wonderfulllllll……..makes a lot of noise, so not for in the
'sleeping room'.....lol.....after some regulations the clock works almost perfect in time....just show
more pictures for the "Elevator Assembly"......the 'following up' for the bolts and bearings and
nuts...
Thank you for sharing this project to us…...
Great instructable. However I got all the sets printed and only then realised they don't include the
numbers, feet and hold pieces. How many of each hold piece / bearing should be printed? Also,
the base template appears to be missing several holes.
Very nice instructable.
26k views just in a couple of days wow, I hope some of those will also contribute to this project.
Here is just an idea:
metal + plastic doesn't play well on the longrun, if your motor have a small metal/copper gear on it
which will move a bigger PLA gear the metal will "eat" the other gear with time, especially if the
clock operates 24/7.
Also someone could design a proper printable base board.
Great job ! To bad most printer on the market are 200x200... possible To resize /adapt ?
This just fits on my Anet A8 which has a print bed size of 220 x 220
Yes of course!
You can print the parts seperately.
Love the clock! Great Instructable.
As far as timing - wouldn't it be easier and more accurate to use an AC synchronous motor such as
https://www.amazon.com/Turntable-Synchronous-Synch...
Synchronous motors are tied to the AC mains frequency and are very precise. On a 60Hz AC
mains the example motor rotates at exactly 1 RPM and could drive a marble lifting gear directly
with some redesign. Or if you want to keep your existing gear train you could find the appropriate
rated RPM synchronous motor to replace your stepper.
Thanks for suggestion!
I choose to use a stepper motor controlled with a microcontroller for it's possibilities. For example a
simple code could be written on C to check time locally (or from a radio tower maybe?) and sync
the clock every 2 hours. Or even set the clock to the current time after a power outage.(Arduino
bumps up the stepper speed until current time is reached.)
very kewl i had a marble clock like this as a child like 40 years ago. i love it. nice job well done. this
reminds me of it very much i managed to hang on to it until a few years ago.
Could you use standard glass marbles for this? As long as they are the 11mm size?
Thank you!
Do you think you could print the parts on a printer with a 220mm x 220mm bed? My next printer will
be a Creality Ender-3 and thats its bed size, but I really want to make this.