DIY Skee Ball Machine




About: I like to make things for the internets. I also sell a pretty cool calendar at You'll like it.

The skee ball machine is a wonderful thing. The simple experience of rolling a ball into a target is so freakishly satisfying that I used to play as much as I could as a kid at the local amusement park/mini-golf course. The sound of the rolling ball on the ramp, the pop as it launched in the air, and the bouncing as you hoped it would hit the 50 or even the 100.

So when the idea for doing a bigger project came up, I jumped at the chance to make a DIY version. I was amazingly lucky to get a lot of help from the folks at Because We Can who did the design and fabrication of the machine on a Shopbot.

Note: this version uses an Arduino to read the sensors and a laptop to run Processing for the display. If you are to recreate this, I'd strongly recommend using a Raspberry Pi instead since it can now run Processing.

Step 1: Get Stuff

  • Arduino
  • Processing
  • Illustrator (or other vector graphics program)
    • 7 sheets of 3/4" plywood
    • gorilla tape
    • netting
    • wood screws
    • paint
    • Balls. These are balls from the ice ball game and were bought on eBay (search for "ice balls skee") for $10 each

    Step 2: The Four Main Pieces

    These are the four main pieces of the skee ball machine. These can be easily taken apart so that the whole thing can be moved in a 10' U-Haul truck. The ramp slots onto the cabinet and doesn't use any fasteners to be attached.

    The Revit files for the skee ball machine are attached. With this design, the pieces were cut out of 3/4" ply on a ShopBot. The assembly is straightfoward as it's a tab-and-slot design.

    Step 3: The Playfield

    The pieces for the playfield are straightforward. Most of the pieces fit together as in the picture above. The kicker at the end of the playfield is made up of several s-shaped pieces of cut plywood all glued together.

    The ramp itself is covered with cork and the front end of the ramp has a metal bracket to protect against wayward throws.

    Step 4: Cabinet

    Here is an exploded view of the cabinet. Again, the assembly is very quick with tabs slotting the middle pieces into the sides. A few screws are used to keep everything more snug.

    One thing that we didn't add was a shield for the display. We tested the machine out by throwing the balls in a regular bowling fashion and never came close to it. When kids or excited adults played it, however, a lot more force was used and the balls would pop up enough to hit the display. Kids being kids, this became a game of its own and one of the displays broke right before the end of Maker Faire.

    Step 5: The Electronics

    The electronics for the skee ball machine are refreshingly easy and simple. Each target has a 5cm distance sensor attached to it. As soon as anything gets within 5 cm of the sensor it signals the Arduino and the hits gets logged.

    Each sensor is running off of the 5V on the Uno and is also sending a digital signal to the Arduino. There's no pulldown resistor. That's it.

    As for the Arduino itself, it's running StandardFirmata. This can be found in the Arduino software under Files>Examples>Firmata.

    So what this does is just turn the Arduino into an interface for the computer. You can certainly put the entire program with an LED display for the score and this was an initial direction for this project, but I wanted to make the display a little fancier and have some more fun with it.

    All of this is held in place by Gorilla tape which looks odd. This is not meant to be the final version. All of the pieces only came together the day before Maker Faire. The goal was to survive Maker Faire and that worked out on the electronics side. The next version will have 3D-printed brackets and shield for all of the electronics.

    Step 6: Just Add Processing

    The Arduino solution would be great for recreating the classic skee ball machine. In fact, I did that in the first hour of this project. But then I got bored and realized "I don't have to follow the original rules!"

    Seriously, if we're going to make our own game, then lets make the game our own.

    By using software that displays information on a monitor you're free to do so much more with it. Instead of each hit giving you one single set score you can add more effects and events. Like these:
    • Combos - Hit a group of targets for a special bonus score. I added the Up the Line combo (10 - 50) and the Around the World combo (all targets)
    • Streaks - Hit the same target again and again to get more points each time. Doesn't work on the 10.
    • More specific combos - Two combos only work by hitting two targets in a row in the right order. I added the Don't Panic combo (40, then 20) and the Because We Can combo (10, then 100)
    I tried showing just the score with these effects happening, but people just got confused. Making it all visually apparent was crucial.

    In addition to more points, the big combos (Up the Line and Around the World) also had a bonus ball. If you hit a specific target after the combo you'd double your combo bonus.

    Here are a couple other features added to the game:
    • Game recap - At the end of the game there's a display of what targets you hit during the whole game and what your cumulative score was
    • Random backgrounds - The backdrop was randomly picked from 9 different images
    • Sound effects - fun!
    • Score bounce - the more your score increased after a hit, the more the score on the screen would "bounce." Getting over 1,000 points* would make the score expand well past the edge of the screen.
    And that was just a short list of things I wanted to do before I ran out of time. Even so, it's already way past the original game design.

    To run the game, download the attached Processing sketch and plug in an Arduino with StandardFirmata on it. My experience with Firmata was that it can be a little finicky in pairing the Arduino with the laptop so make sure you are getting basic features to work there with a simple test first before trying this out.

    Notes on attached sketch:
    • The sketch is designed to be run on a HDTV screen and can be changed from a 720p resolution to a 1080p resolution by changing the monScale variable to 2 or 3
    • The sketch resets the game after 10 seconds or so. This is because I was having issues with the arcade button, but can easily be changed to add it back in.
    • Apologies in advance for the messy code. This is my first Processing sketch.
    *the max score in this version is 7,777 and is achieved by only hitting the 100 targets. We never got close to seeing that happen in real testing, but it's there!



    • Beauty Tips Contest

      Beauty Tips Contest
    • 1 Hour Challenge

      1 Hour Challenge
    • Classroom Science Contest

      Classroom Science Contest

    89 Discussions


    5 months ago

    AWESOME project.
    My wife was asking me about building one of these this last week and when we got home from our house in the woods I got online to see what was out there.
    I like the idea of the flat screen and was wondering if having a camera record the player and if the right trigger is reached it could do a replay of the players toss, of course it would have to always be recording and replay the 5 or 10 seconds recorded before the toss.
    so many possibilities really.


    Question 8 months ago on Step 6

    I am building a skee ball game using a micro controller feeding three 2.3 inch height LED segments. I am designing a one player and I have micro switches for the ball hole scores. Using a TV screen sounds like a better product. I am having difficulties with the electronics and programming the Arduino. I down loaded your files and it appears that are in MAC. I have Windows and I cannot read them. I only require the schematic and program. Any help is appreciated.

    1 answer
    fungus amunguswsand90

    Answer 7 months ago

    I know this is late, but if I were to redo this project I'd do everything on a Raspberry Pi running Processing. Wire up the micro switches to GPIO pins and output directly to the TV. Would be so much easier to do.

    I'm looking for a step by step guide to setting up the electronics for use and how to add numbers and different colors/fonts...


    1 reply

    Are there any detailed instructions/steps for a beginner to set up the electronics and displays, how to customize, etc...??

    1 reply

    Reply 10 months ago

    Did you ever figure this out? I’m needing help with the programming.


    Is there no way to get an exploded diagram with basic dimensions? I don't have Revit or anything like it. But I do have the ability to cut the parts myself on a water jet machine if I can draw the parts. Some basic dimensions would be helpful.

    3 replies
    kodexfungus amungus

    Reply 5 years ago on Introduction

    First of all, let me say how impressed I am with this instructable! There was clearly a fair amount of time that went into this machine, and it's clear that everyone involved worked very hard on it. I love the overall aesthetics of the machine as well as the Arduino integration.

    That said, I would like to build one of these for an upcoming course project (the deadline of which is mid-December). I'm an EE student and this would certainly make good demo of what we're doing in my microcontrollers class. Anyway, the fact that the files are uploaded in native Revit formats makes them very time-consuming to get to the point where I can actually send them out to get cut; Revit it not a standard tool in the manufacturing industry.

    Would you please try to get the person who created these files to export the different parts separately as either DWG, DXF, or STL files? This would allow other people to take them directly to a machine shop/makerspace to get them cut. Not providing de facto standard file types hinders others' ability to benefit from and enjoy your hard work. If this is not possible, I will gladly bumble my way thru Revit to extract usable files and forward them to you so that others may use them as well.


    Reply 1 year ago

    Did you ever get the shopbot files or make them?


    2 years ago

    Can someone convert the files to a cadd .dwg file for me so we can try to build this at our school?


    2 years ago

    I don't have a shopbot. Can this be built with conventional tools?


    2 years ago

    is there vcarve pro toolpaths for this?


    3 years ago

    I like the cardboard mini one better. It is a great idea.


    3 years ago

    Hi! I've been building a skee ball machine similar to yours, and could really use some help wiring the 7 sensors, start button, and servo to release the balls at the start of the game. I've fairly handy with would, but not so much with Arduinos... You're help is greatly appreciated!


    3 years ago

    I love the colors and design! I would love someone to make it for me lol. How much would it cost for me to make it?

    fungus amungusmjh2901

    Reply 3 years ago

    Now that Processing runs on RaspPi I would only do this on that if I was to do it again. The Arduino was only being used for its IO anyway.

    fungus amungusmjh2901

    Reply 4 years ago on Introduction

    This can be recreated on a Pi. I was originally going to use a Beaglebone Black, but was having issues with it running the sketch. Since I was running out of time I just used my laptop instead.

    As far as the sensors, any of the choices out there (Arduino, Pi, BB) can handle the inputs. The scorekeeping is trivial as are the combos. The only thing I didn't have time to do are the graphics.