Introduction: 3D Printed Pinball Machine
This instructable was created in fulfillment of the project requirement of the Makecourse at the University of South Florida (www.makecourse.com)
Pinball is an awesome, fun game to play that unfortunately isn't quite as popular as it once was. This instructable will teach you how to make your own, awesome 3D printed pinball machine!
- 3D Printer (We used a Makerbot Replicator 2)
- Laser Cutter (For cutting out the actual playfield)
- Soldering Iron (For soldering LEDs and other various wires)
- Wire stripper (For wires)
- Adobe Photoshop (For Creating Graphics)
- Autodesk Inventor (For editing 3D source files)
- Arduino Uno (Or Mega if you want to hook up more lights and other components)
- LCD Display (For displaying score information, etc.)
- At least one momentary switch (More, if you're using solenoids to actuate flippers)
- Breadboard (Two, if you want one in the backbox for lights)
- External Power Supply (Not required, but is nice to have for brighter lights)
- Solid-Core Wire (I used 22-gage)
- LED lights (Your color choice!)
- Resistors (Various sizes are nice)
Teachers! Did you use this instructable in your classroom?
Add a Teacher Note to share how you incorporated it into your lesson.
Step 1: Print Out the Cabinet & Backbox Files
Download the attached zip file, which includes both the .stl files for use with a 3D printer, as well as the Inventor source files in case you want to modify the parts to fit your own design.
The files are, as follows:
- backbox_back (The back of the backbox...what a tongue twister!)
- backbox_base (The piece that will adhere to the actual playfield)
- backbox_base2 (Adheres to backbox_base, separate because some 3D printers do not print the shape correctly when the two are printed as one)
- backbox_lcd_holder (Holds the LCD in place in the backbox, with supports for the LCD)
- backbox_left (The left of the backbox)
- backbox_right (The right of the backbox)
- backbox_top (The top of the backbox)
- cabinet_back (The back of the cabinet)
- cabinet_bottom (The bottom)
- cabinet_front (The front, with hole for Start button)
- cabinet_left (The left, with hole for button to actuate flipper)
- cabinet_right (The right, also with hole for button)
- cabinet_lockbar (A bar that can be fit into cabinet_front, holds the glass/acrylic from falling out)
Any 3D printer should handle the .stl files, I used the Makerbot Replicator. Make sure to scale up for inches, if necessary.
Step 2: Assemble the Cabinet and Backbox
With some Epoxy (Or hot glue, if you don't have Epoxy), assemble the pinball machine's cabinet and backbox.
The parts are labeled as if you're facing the machine from the front. For example, cabinet_left is the left side of the cabinet, cabinet_front is the front piece that faces the player, etc.
The pieces all fit together by putting glue in the mating surfaces between them, then holding them together until the glue bonds. It's easiest to start with cabinet_left and work your way clockwise, so the next piece to glue to it would be cabinet_back, then cabinet_right to that, then insert the cabinet_bottom piece into the slot at the bottom between all of these, then finally glue the cabinet_front in place. Don't glue the cabinet_lockbar in place, because you'll need it later if you need to take your glass/acrylic out!
It's a similar process for the backbox. Note that backbox_base is different than backbox_base2. Although they are glued together, one side is used to attach to the cabinet, and the other side is for attaching the rest of the backbox. The piece that has the gap around all 4 edges is the piece that you'll attach the rest of the backbox pieces to, whereas the piece that only has gaps on 3 out of the 4 sides is used to attach the backbox to the cabinet.
It's recommended that for the backbox you do not glue the top piece in, nor do you glue the LCD holder in. This lets you wire everything together and remove the backglass and LCD if later needed.
Step 3: Cut Out the Playfield
Now for the fun part, the playfield! I have attached an AutoCAD drawing of the playfield design I used, yours can be different. The only specifications required is that the playfield must be 5.17 inches x 8.403 inches. The design of the cabinet gives you 1.5" of height to work with, so you can stack multiple layers on top of each other to create a guide for a larger ball (I used 4 layers, I would recommend at least 5 or 6).
The design I provided fits standard size LEDs, as well as has openings for a standard-sized lever switch. If your ball is too lightweight for a lever switch, I go into an alternate method for using the scrap wood as a switch in the next section.
For my design, I made engraving markings on the playfield to indicate where to glue the extra pieces. This really helped, and provided a surface for the glue to bond to. Wood glue works very well for gluing the wood together.
Step 4: Wire the Playfield, Install Buttons, Program the Arduino
Of course, pinball is pretty useless if you don't have a way to keep score or have flashy lights! As you can see, my wiring is a bit hectic (just like a real pinball machine!), but the general concept is that I wired all the grounds for the LED lights together, and all the grounds and positives for the same switches together. This lets me run just two wires to the breadboard for each type of switch, and one common ground for all the LEDs.
I've attached a diagram of how everything is wired to the Arduino Uno. I'm using a 5v external power supply, since using a solenoid for flippers as well as 7 LEDS (plus the display backlight) draws a lot of power. The pinouts are as follows:
- Pin 3: Left Flipper Button
- Pin 4: Start Button
- Pin 5: Right Flipper Button
- Pin 6: Add points (All switches are worth 500 points in my program)
- Pin 7: Ball Drain (Detects when ball has gone to the bottom of the machine)
- Pins 8 - 13, Analog Pin 0: LEDs (In my game, they spell out A-W-E-S-O-M-E
- Analog Pin 1 (Pin 15): Left Solenoid - Flipper
- Analog Pin 2 (Pin 16): Right Solenoid - Flipper
The program is provided above, simply download the sketch and flash it to your Arduino. If everything is wired correctly, it should work!
The program has 3 states,
- Attract mode, which flashes the lights and waits for an input signal from the start button.
- Game mode, where points can be scored
- High score check, where the machine checks to see if the last high score was beat.
When you start it for the first time, it should flash LED #6 and begin attract mode. If it doesn't, there's something wrong. Check your wiring and try again.
Standard push buttons fit into the holes in the cabinet for the flipper buttons and start button.
Step 5: Install Flippers and Optional Plunger
A template for flippers was provided back when you cut out the playfield. To improve the design, you can use a wooden dowel rod and modify the flipper design to fit. The rod has both flipper pieces on the front of the playfield, as well as flipper pieces on the back so the solenoid can move the flipper back and forth.The ideal pivot point for the solenoid is right next to the dowel rod.
The design provided offers space for a small solenoid kicker to kick the ball onto the playfield, but I elected to use a manual plunger. You can either modify the original STL files to add room for a plunger, or drill a hole yourself. I drilled a hole and used a dowel rod to fill the space, akin to a billiards cue. Spring loading it would make it more like a pinball machine, but I wanted it to feel more like a pool cue.
Step 6: Create, Cut Out, and Glue Artwork to Cabinet and Playfield, and Enjoy!
Now that you've pretty much got a finished pinball machine, it's time to make it look good! Download the set of PDF files attached above and print them out, then draw out some awesome artwork to put on your machine! I went with an 80's pool theme for my machine, and called it "Billiards!".
Enjoy your newly created pinball machine!