This post is the first one in a series of posts on the development of our own pinball machine. We, me and my father, started with this project sometime in 2012. That year we bought a Bally Freedom (IPDB#952) EM pinball machine. The machine was in a bad shape and we thought it would be a cool project to restore the machine to its original state.

Unfortunately, we ran into some problems which were not easy to fix. The backglass, the glass sheet in the backbox of the machine, was heavily damaged by moisture. This meant that the paint was flaking off. The only way to fix this, for us, was to buy a reproduction backglass. On top of that, most of the EM components were worn out by all the games played on this machine during its lifetime.

With all this in mind we came up with the idea to retheme the machine instead. This meant we would completely disassemble the machine and rebuild it again using the same playfield and playfield assemblies. We did not want to reuse the original EM components. We wanted to make our own pinball controller system, based on modern electronics.


Replacing the original EM components with modern electronics meant that we had to develop our own electronics to run the machine. There was only one problem: we had no idea how to do that. The only idea we had was that we wanted to use a regular PC for running the game and keeping the scores, so we could use an LCD monitor. We also wanted to use RGB LEDs on the machine’s playfield.

Initially, a lot of inspiration came from a project called The Book of Kells. The creators of this project also used a PC to control their custom built pinball machine and they also used RGB LEDs throughout the playfield. Based on that project we started exploring different ways of brining our own machine to life. What I can say is that we’ve seen a lot of magic smoke trying things out.


After some time of experimenting we ended up using an Arduino Mega to control our first prototype machine. The Arduino Mega provided enough GPIOs and speed to control all the devices we wanted to control on our pinball machine.

With the Arduino Mega, we built our first prototype based on the playfield of the Bally Freedom machine. This prototype was able to read input from switches and drive the solenoids of the playfield assemblies. We had not yet connected any LEDs for this first test. The purpose of this first prototype was mainly to test if there was any noticeable input lag on the Arduino Mega.


After some successful tests with the first prototype, we built a second prototype, based on the same playfield. With this prototype, we changed the location of the high-voltage drivers and we added LEDs driven by a LED driver IC. This prototype was fully functional as every solenoid worked and even some LEDs lit after hitting certain targets. However, it did not implement any game rules.

The second prototype layed around for some time, collecting dust. We disassembled the second prototype about a year ago as we didn’t use it anymore. Recently we sold the cabinet of the machine to make room for other project we still have to finish.



The plans to once create our own pinball machine are still alive. We are currently working on an even more powerful electronics system to control a pinball machine with. We are also planning on reusing the same Bally Freedom playfield to create a third prototype. The earlier prototypes provided a great playground for testing new electronics and software.