top of page
  • Writer's pictureJoe Linogao

The most useless ice dispenser (rube Goldberg machine)

In today's blog, I will be showcasing the most useless ice dispenser in the world! In fact, it's actually a Rube Goldberg machine made which incorporates some handy work, electronics and of course the buggy! This is the last blog in my design module saga, so I hope you enjoy this final read!


Introduction: Figuring Out What Machine I Wanted to Make

For those who don't know what it is, a Rube Goldberg machine is a machine that is designed to perform a simple task in a long, "relatively" complex way utilizing chain reactions. Originally, I wanted to make a machine that would fire jam from a catapult, similar to "Wallace and Gromit." However, that seemed it would take a bulk of my time which was already eaten up by study and other assignments.

So, I settled with a water dispenser, which would pour a nice glass of water from a bottle. I had to modify this proposal due to a slight oversight, which I will go over later (if you read the title, you'll know how I modified it). Below, is the original schematic I drew for the machine.

While a few of the components shown here didn't make it into the final build, it was nice to have a rough starting point. So with a design settle on, it was time to build the thing!

Step 1: Servo Activator and Buggy Implementation

The first part of my machine involves some bent cardboard on a stick that is moved by a servo motor. This movement is detected by the ultrasonic sensor on the buggy, allowing it to move to the second section of the course.

The servo I used was a Futaba servo which I was very excited to use. It was much stronger than the servo I previously had and could rotate a full 360 degrees. The circuit was simple, with the servo moving the cardboard in position after a button press. Below is all the code that I used for the servo:

#include <Servo.h> 
Servo myservo;

const int servoPin = 9;

// Intialise button pin
int buttonPin = 11;

// Define variables for sensor calculations
// defines variables
long duration;
int distance;

void setup() 
  // setup input pullup
  pinMode(buttonPin, INPUT_PULLUP);

void loop() 

  if (digitalRead(buttonPin)==0 ){
    Serial.println("Moving Servo");
    // change to 45 degrees or 90 depending on what you want


The buggy used the same code I used for the obstacle course, with a few tweaks. When it detects the cardboard in front of it, it goes on a pre-determined path towards the second component, hits a piece of scrap wood and allows the rest of the chain reaction to continue.

  // If less than 18cm away 
  else if (distance < 18){
     // Make buggy move backwards

    // Stop buggy from moving
      // Spin right at specified speed 


      // make it stop for 40 seconds for ease of use

As for some extra bit, I changed the shape of the cardboard so it wouldn't hit the table and I 3D printed a nice housing for the servo.

Step 2: Marble Slide and Marble Cup

Once the buggy hit the piece of scrap wood, it starts the second component of the reaction. This section has a marble going down a slide, into a pipe chamber and falls into a cup where pre-placed marbles are stored. Marbles were placed in the cup beforehand to push the equilibrium between it and the third section to its limit. But, more on that later!

I bought some flexible pipe to act as the pipe chamber for the marbles coming down. To attach them to the wood base, I 3D printed attachments with M4 screw holes.

For the ramps, I screwed wood scraps to the base from the back and applied super glue along the edges. This prevented the marbles from flying off and guides them into the pipe entrance.

I 3D printed a 60mm cube that would hold the marbles that were going to be sent down the track. It can move freely due to a nut and bolt that attaches it to the wood base. This box would be pushed up by the buggy with a long piece of wood allowing the marbles to move.

Finally, at the pipe exit was the marble cup which was held up by a pulley and the tension caused by the cardboard/book combo found in section three. When the marble enters the cup, the speed and weight throws the pulley system out of equilibrium, activating section three of the machine. Also, notice how I moved inside? The wind was absolutely driving me crazy as it was knocking stuff over and kept moving the cup.

Step 3: Book Domino

While simple in principle, this section had a lot of tweaking. In particular, a careful balance had to be done for the first book, which was atop a piece of cardboard that would be pulled by the marble cup.

(BTW, this is the only image I have of the book domino. That small book isn't present in the final design and instead, the section consists only of three books).

To make books fall, some quick maths had to be done to calculate the force needed to trigger it. Below is a schematic of the cardboard and first book.

The idea was to lift the cardboard in such a way that would make the book's centre of gravity move outside its point of supports (marked in green). The horizontal force caused by the rope and cup has to overcome the frictional force due to the book to achieve this. This force required can be calculated by the following.

Friction force (fr) = mu * N
// Where mu is coefficient of friction
// And N is equal to m*g (weight of book)

// Assuming a 50 degree angle between the rope and cardboard surface
F*cos(50) > fr
F*cos(50) > mu * N
F > (mu * m * g) / cos(50)

When F is of the correct value, the cardboard slides causing the book to tilt and fall, starting the domino effect. The last book in the sequence activates the fourth and final section of the machine.

Step 4: Ice Dispenser

The last book is connected to the ice dispenser via a pulley system. The rope is secured inside the book using more cardboard and a sailor's knot.

Now, here is where the problem arose i.e. the part where I switched it from a water dispenser to an ice dispenser. Turns out, water is very dense. So dense, that the book couldn't provide enough force to lift the bottle. So, I turned it into an ice dispenser as ice is much less dense and easier to lift with the rope. I also used a plastic bottle over a glass one to keep the weight as low as possible during the final design.

For the holder, I cut off the top of a plastic bottle and skewed a stick through it. Then, I secured the stick to a microphone stand which allowed it to rotate freely.

I tied one end of the bottle to the rope which was threaded through the pulley stand I made. When the last book falls, it pulls on the rope forcing the back of the bottle up pouring the ice into the awaiting glass below.

Final Result

With all the components made, I tested each part to ensure that the machine will work. After testing, I poured myself a nice glass of water, loaded the ice into the bottle and turned on all the electronics. And, with one press of a button, you get the following video (with some added edits to give it more pizazz).


And with that, that is my design blogs finished! Thank you so much for sticking around and reading up on my blogs and Instagram. It really means a lot! While this saga is finished, that doesn't mean I'm done posting engineering stuff! Once my exams are over, I'll be making blogs about some personal projects I'm doing, as well as some research I'm doing for college too!

Once again, thank you so much for sticking around! Don't forget to check out my Instagram @joeceengineering, and (if you're interested in listening to my music), check out my Youtube channel as well @joece! My pet buggy and I are very much grateful!

32 views0 comments

Recent Posts

See All
bottom of page