Hal-Con 2015 Pinball Project
Stretch Goals
Note: While this wiki is and probably will continue to be horribly out of date, we are working on the pinball project pretty much weekly (note added July 2015).
We're looking at using a William's Space Shuttle as a donor game. This game is from 1984, and the playfield should be 20.25“ wide and 42” long.
We also have a complete three-inline drop target bank as something to get our feet wet with. The coil on the reset solenoid is a Bally 26-1900 with a measured resistance of 20.5 Ohms. At 48V that should allow a current of 2.34A. Some of the leaf switches need a little adjustment.
We also have a brand new 48V 7.5A switched power supply on the way.
Here is our schedule:
Jan 08 - Kickoff/Meet-and-Greet
Jan 22 - Design Brainstorming Session
Feb 05 - Design Brainstorming Session Take 2
Feb 19
Mar 01 - Met to dewire the Globetrotters board, remove the lights and wire up some of the solenoids with Peter's board.
Mar 05
Mar 19
Apr 02
Apr 16 - Planned an ambitious, moderate, and basic version of the playfield.
Apr 30
May 14
May 28
Jun 11
Jun 25
Jul 09
Jul 23
Aug 06
Aug 20
Sep 03
Sep 17
Oct 01
Oct 15
Oct 29
Thoughts on Electronics
The plan we have settled on is to have a linux-based single board computer as the main game play, sound, and video engine (aka kingpin). At this point we are looking at the Raspberry Pi since most of the team already have a few but other options exist at a similar price point if the Pi turns out to be unsuitable.
This kingpin will be connected to several Arduino UNOs using USB. UNOs already have USB infrastructure which, with one or more USB hubs should make communications fairly straightforward.
The Arduinos will have custom designed shields allowing them to read twelve inputs (up to six analog) and control five solenoids (up to three with PWM). In software, the arduino will be able to directly translate a change in input state to a solenoid trigger. For example, we will be able to instruct the an arduino to translate the closing of a pop bumper switch into triggering the corresponding solenoid. The arduino will also send a signal back to the kingpin for gameplay and scoring.
Events that require delays (like rolling up the score for a saucer collect bonus, or playing a music clip) will involve the kingpin. In this case, the arduino will not trigger the solenoid immediately, but only send the signal back to the kingpin. Once the event is completed, the kingpin will send a signal back to the arduino to trigger the solenoid and put the ball into play.
Brains
Arduino UNO (ATmega328 based)
Arduino MEGA (ATmega2560 based)
Arduino DUE (ATSAM3X8E based)
others?
Pinball machines typically use an NxM switch matrix (similar to a keyboard) to manage their inputs. These use N+M lines to identify which switches are open and which are closed at a given moment. http://www.openmusiclabs.com/learning/digital/input-matrix-scanning/
Possible options include:
use uC lines directly (only really feasible on MEGA or DUE with their huge supply of GPIOs)
use a second uC dedicated to managing input. (could communicate with the brain serially and asynchronously)
use 74HC595 and 75HC165 and some SPI (this would give us 8×8 or 256 switches and SPI is fast!)
use one or more bus expanders (like MCP23017 or its SPI counterpart MCP23S17)
Output
Pinball solenoids are the ultimate in inductive loads. Resistances in the 3-30 ohm range, and drive voltages around 50v mean currents measuring in several amperes! So, at some layer, we will need transistors (and fairly beefy ones) to drive them.
Options include:
Power Driver 16 This one costs around $100US, and requires a separate supply. However it appears to use really fast (8MHz) RS485 to communicate. They offer a fairly thin arduino example, which uses SPI (but only the MOSI pin) and an external RS485 driver board to fake RS485. That means that we couldn't use SPI for other things.
Ultimate Solenoid Driver Board It is designed to be a drop in replacement for a similar board manufactured by both Bally and Stern. This means it has the power supply on board, but requires a transformer to make work. Also there doesn't seem to be even less documentation for this board compared to the one above.
Build our own. I've built a single transistor prototype using a bit of perfboard, a
FQP30N06L a 100ohm resistor and a TVS diode on the gate for ESD protection. This solution has the advantages of being completely open source, requires little in the way of communication electronics (high is on, and low is off), and allows us to use PWM to control the solenoid's strength. We would have to design our own PCB and have it manufactured, and where the board would be dealing with such high current, I'd want to get it inspected by someone. Here is a proposed design.
https://www.dropbox.com/s/33zpx44kljvpxsi/Pinball%20Shield.fzz?dl=0
Lighting
I think the clear option in this category is the WS2812 (NeoPixels). The ability to control the color just makes these guys the obvious choice in my mind. I got two 5m strands of 50 pixels each and they work like gangbusters.
Music
Find a local artist who might be interested in promotion.
Architecture
Thematics
Nelson (ball catcher, multiball opportunity)
Fat Apollo (possibly a pop bumper)
Warp Speed Pass (drop target in front of a ramp)
Sound (Fat Apollo?)
D20 as Score Multiplier (Dragon guard?)
Mario Warp Pipe
Bridges
Shooter lane con-goer lineup (rails?)
Cartoonish artwork (talk to Hal-Con comics coordinator Sam Bonin)
Nelson legs
Volunteers make the 'Con (super important!!!!) Meeple volunteers.
Oled displays below the drop targets allow rethemed drop targets
Costume contest drop targets
Neopixel Catan triggered by kickers
One-Fingered Deathpunch using flipper buttons.
Teleporter.
Pop cultural references limited to display/animation
Ball Saver (“He was only mostly dead!!!”)
Tilt (Lightswitch rave from Strongbad The system is down)
New library has a sound studio.
Futurama head-in-a-jar
Konami code
Rick Roll
All your Base are Belong to Us
Khaaaannn!
Coooooonnnn!
Ball Capture should use Galaga Capture noise.
We should use the cabinet area for a guest leaderboard. Let the guests play the table a few times and then have them sign the table and write in their best score.
Table Elements
Parts
Setting up a Raspberry Pi
Cabinet Work
The cabinet pieces, work needed and estimated costs.
Back Box
Sand, fill with Bondo, prime and repaint. Some of the corners are in pretty rough shape. We may need to rebuild this, but we'll try to salvage it first.
Top Lock - There is no top lock on the box. Do we want to add one?
Backglass - We can scrape the backglass with a stainless razor blade and reuse it. We'll need to replace the backglass if we move the speaker from the backbox, as the speaker panel takes up the whole lower portion of the backbox.
Hinge - the back is hinged, for transport. There's a clasp accessible outside the box. There should be 2 bolts inside to secure the backbox to the cabinet. We need to make sure those are there, otherwise anyone can send the back smashing into the cabinet.
Cabinet
Sand, fill with Bondo, prime and repaint or apply wet decals.
Side Rails - drill out the nails. Polish the siderails. Replace nails with more nails, or decorative stainless hex or phillips screws.
Lockdown Bar - We swapped out the lockdown bar for a nicer one. We need to clean and polish it. Might need to adjust the clips slightly.
Playfield Glass - Replace (scratched) with tempered using John's contact.
Flipper Buttons - We have new ones, currently on the test rig
Start Button - replace, or at least add a bezel around it.
Coin Door
Rechrome the coin slot.
Polish the rest (it's stainless).
There is a hole that needs filled or disguised.
Replace the lock (we don't have a key for the current lock) (Yes, we do! the old key was broken off inside the barrel)
Replace the “Insert Coin” square inserts with OLED displays that could randomly change to “Insert (credit|blueback|space buck|chronodollar|latinum|quatloo|dollarpound|druggat|etc.)”. We can see how likely this is once we take possession of the cabinet.
It might be cool, but ambitious, to cast a new coin door part (the part that sticks out), replacing “Williams” with “Halifax Makerspace”. This should maybe be a “flex goal”, if we find ourselves with too much time prior to Hal-con.
Ball Launch - Chris has new ones
Legs - Replace. $60-100 total, probably. We can try to sand and paint the old ones first.
Pictures
“Before” pictures of the Space Shuttle cabinet.
Pictures of the work in progress can be found at Hal-Con 2015 Pinball Project Images.
= Resources =
http://pinballmakers.com/wiki/index.php/Main_Page
bally pop bumper cap has two 1/8“ screw holes that are on 1 7/8” centers
Stuff to deal with power wise:
-
Switch 110V (250VAC 15A)
Switch 48V (60VDC 15A)
Stuff to deal with noise on the switch inputs:
filtering on 48VDC (Low pass filter to eliminate PWM frequency)
4.7-1K pullups on switch inputs
filtering on arduino power
tidy up the wiring
heavier ground wire
Choke/toroid on flipper wires
State of the Project
Cabinet
Finish sanding and priming (There are a few places where the grain is showing through the primer, we would like to clean those up)
Legs (We have the old set that came with our donor machine that need to be:)
Cleaned/prepped
Primed
Painted
Clear coated
Playfield glass (The donor glass is fairly beat up. A new sheet would be very nice to have.)
Coin Door (Again the existing door from the donor machine needs some love:)
May need some new mounting hardware (carriage bolts and the like)
Internal 120V power distribution
Need to ground all external metal
Side-rails
Lock-down bar
Coin door
Legs
Software
Raspberry Pi (mainboard)
Arduino
Playfield
(This is by far the critical path)