Wednesday, 6 May 2015

Custom Pinball Controller

About a year ago i started work on a life long ambition of mine: to build a fully featured pinball control system for early bally and stern games with the goal in being able to produce a board set and software framework for other like minded people to modify and create new games from old play fields. I also wanted to be able to create new rules and sounds for a game i made back in the college days some 25 years ago.

I developed a double board set and had some protos made. 1 controller board and 1 driver board, that are designed to work together, and replace all other bally boards except the power section on the old power driver board.

I wanted to create a board set that would work together and include additional options on the boards so that people could add extra features to games should they wish, but also be a direct plug in to the games original wiring. The main features of the board set are:

 - Control Original Segment Displays, or use low cost serial Led displays
 - Control Original Switch Matrix
 - Control Original 16 Drivers plus Solenoid expanders
 - Control Original 64 non-matrixed lamps
- Additional 16 mosfet drivers for flashers, motors, magnets etc
- Additional RGB Lamp Control for extra lamps
- Large SD card sound/music storage capabilities
- Multiple Channel Sound with background music
- Sound line out for connection to external amps/audio setups

The hardware is one side of the project, but the software framework is the other. I have been working on creating a pinball library framework which people can use to get their own project off the game in conjunction with this hardware. The framework is made up classes for all the major pinball items, so lamps, switches, drivers, displays and sounds. The game itself then has various other files including feature modes and base modes to make the game playable. I have based my design concepts on the work of other more complex pinball frameworks, such as pyprocgame. This is the framework that i use for my rewrites of Indiana Jones and Whirlwind (see my other blog posts). Without the ideas from this software i wouldn't be here. :)

The framework is all written using the arduino code language and C++. I am making sure that you can still use the standard arduino ide to modify the files to create your own game from. The framework is very modular and i'm pretty happy with it so far.

Here is an example game play video with the latest game framework . I currently have 32 of the 64 lamps connected. Notice the fast attract patterns. This is to show the power of the system and what may be possible in future with more complex effects. Original game attract patterns were very slow and basic. Some of the game features are now coded into the framework to so look out for the kickback lamps progressing during the vid and some of the bonus triangle lamps lighting up.

Also, the sound system is now set to produce optimal sound volume and quality. Its taken awhile to get the hardware correct here. I will be adding the 2nd channel - background music in soon. I'm very happy with the sounds i've found especially the coin up, start and drop hit sounds. Enjoy the vid :)