Introduction: Magic 8 Ball, Open Source, Customizable, Fun and Easy to Build

About: Special Effects designer, nerd, maker, a monocle and high collared cape away from being a mad scientist.

The world's first fully customizable, Programmable, Open Source, 3D Printable, Arduino, 8 Ball!

This 8 Ball will answer the questions on your mind and help you make decisions ... or maybe you want to play 8 Ball Against Humanity? ... or can't find your D20 ... or ... ... the possibilities are limitless!

Everything you need is below in this instuctable to make your own.

Let us know what you will have your 8 Ball say or do in the comments below. Maybe we can help you program it! Also post pictures of your builds. We would love to see them!

One last thing, at the bottom of this instructable you will see a voting button for the Toys contest. If you liked this tutorial please do us the favor of hitting the button an voting for us.

Step 1: Video of the Build

Step 2: What You Need

Get build guide, STL/CAD files and the BOM at

What you will need:

  • If you are so inclined you and modify and edit the 3D CAD files here:
  • Ardunio Uno or clone
  • Mini Breadboard
  • 9V battery
  • 9V battery connector
  • 16x2 LCD
  • Tilt switch
  • 10K breadboard-able potentiometer
  • 8 M3 x 4 machine screws
  • MM and MF jumper wires
  • Double sided foam tape

Step 3: 3D Print

Ok I am not going to get into the printing of this. I assume you have the ability to 3D print or have someone who can 3D print for you or you can use a 3D printing service like shapeways.

You can get the STL files here:

Step 4: Optional - Paint

Because I did not have the right filament to print this out with, and because I have not patience to wait for the delivery of the right color of filament. I just used what I had on hand. This made it necessary to paint the parts. Black and white spray paint and some black plastic model paint did the trick.

Then when the paint is dry glue the 8 on top.

You may be asking yourself why have the 8 a separate print? With most FDM printers the last little bit of a sphere benefits from a thinner layer thickness so I took that part off and printed it at 0.1mm layer height vs the standard 0.25mm layer height I used on the rest of the prints. Also doing it this way allows us to print it without any supports!

Step 5: Attach 3D Printed Mini Breadboard Riser to Arduino Uno

You need to print off this little breadboard riser and attach it to your Uno with 2 M3 x 4 machine screws and then stick your mini breadboard to the top of it.

Step 6: Side Tip

The tilt switch I had on hand was not breadboard friendly as one wire is too small of a guage to push into a bread board. Fear not! You can bend the little wire over in half and solder the wire (If you have a soldering iron) to make it thicker and more bread board-able.

Step 7: Wire This Guy Up

So there are two main types of 16x2 displays one has more wires than the other. Both types can be wired in easily enough just follow the circuit diagrams (yes one is a picture but it is just as effective) attached here.

Step 8: Stuff It All Into the 8 Ball Print

  • Take the remaining M3 screws and screw down the display. The screws should self tap into the holes if you just apply a little pressure when putting them in the first time...
  • Slide the Uno into the slots in the bottom of the 3D print
  • Take a small piece of double sided tape and put it in the bottom of the 8 ball or on the bottom of the 9V battery
  • Stick the 9V battery down
  • Program the Uno with the sketches found here:
  • Or here for the sketches
  • Double check that the Tilt switch is pointed up when the ball is sitting on the table
  • Plug in the battery
  • Put the top cap on

Step 9: Bonus

Ok so now you have a magic 8 ball. What else can you do with this? Well get programming and see if you can make this a D20 dice for you gamers out there, or how about a Magic Shame Ball that gives you random insults you every time you pick it up, or a 8 Ball against humanity saying randomizer... The possibilities are endless!

Toys Contest

First Prize in the
Toys Contest