Pinball brought back to life with Arduino

By electric_piano5k

January 01, 2023

This story got featured & frontpaged on January 09, 2023

38 days ago

About 20 years ago I bought a "Circa 1933" pinball machine (made in 1978) at a garage sale in non-working condition. I have always been a pinball fan and I enjoy fixing things as a hobby, so this was perfect for me. After some troubleshooting I discovered that the computer chip was not functioning, damaged by a faulty power supply. There was no hope to replace the faulty chip because the pinball machine manufacturer (Fascination International, Inc.) was out of business, the manufacturer of the faulty chip was out of business, and the failed chip included read-only memory that needed to have the required program custom ordered from the chip manufacturer, so there was no hope to find a replacement chip with the correct program installed. At the time, I got it into semi-operational condition by pulling out all the I/O chips and hard-wiring the switches to the bumpers so that everything functioned, but it didn't keep score. The rubber was starting to crumble, so I replaced that too.

Recently I decided to try to restore it to its original working condition using an Arduino microcontroller (see, since I was going to be off work for 3 weeks for the Christmas holidays and would have time to work on it. I ordered an Arduino Mega, which has the most I/O pins of any Arduino (70 pins). I also ordered some shift registers to add additional I/O ports, because the pinball machine had a total of 92 digital I/O lines for reading all the switches and actuating the lights and bumpers. The Arduino arrived within a few days, but the shift registers were not going to arrive for another 3 weeks. I was too impatient to wait, and found that I could go ahead with the available 70 pins if I omitted 16 pins used for reading jumper settings (to set replay scores, balls per game, etc.) and just set those values in the software, and omitting some other non-essential items: coin slot switches (since I wasn't going to use coins anyway), door slam detector, play counter, the ball-in-play switch in the launch lane, and some playfield lights that are supposed to turn off during tilt.

The first step was to prepare the wiring harness for the connections between the Arduino and the IC socket pins, which took about a week of soldering (evenings). Then I had to write the program. This was a lot harder than I thought it would be, the program took almost 2000 lines of code and a week of coding. I found it challenging to do the real-time control, because there could be multiple things going on at once (bumpers, chimes, lights, score update, credit button press, tilt switch) and the controller has to continually check every switch while doing the appropriate actions from previous events. I found it quite different from ordinary programs where operations are done in a pre-defined order. But I enjoy a good logical challenge, so it was rather fun. I had to search for play details, since I have never seen the original machine in operation. I got some useful play information from a video posted by B60WizWorld, but he didn't play a complete game so some details were missing. I later found a 30-minute video by "Mark's Basement Arcade" of the machine "Roy Clark" which has different artwork but is otherwise identical to "Circa 1933", this video had enough play to give me all the details I needed.

After finishing the program and uploading it to the Arduino, I anxiously turned on the machine, and... nothing! The first problems were several syntax errors which were not picked up by the compiler but caused the program to run incorrectly. After fixing those, it started to do some things correctly, but there were still dozens of bugs to fix: credits appearing out of nowhere, lights turning on or off at the wrong times, the score display turning to jumbled nonsense. These were mostly easy to fix once discovered. The toughest one was the score display bug; in the end the solution required writing my own serial out routine, because the built-in Arduino serial out function toggles the clock low-high-low but the score display requires high-low-high. So finally after 3 weeks of (part time) effort, it was working! I added a few of my own touches, like playing a "Charge!" tune with the 3 chimes when the credit button is pressed, and some flashing lights and a high score display during attract mode (the original controller had no way to store a high score if the machine was turned off).

I ordered LED bulbs for the computer-controlled lights, because during the project I discovered that the original GE44 bulbs exceed the rated current of the 75492 driver chips on the controller board. The 75492 is intended to drive LED's, not incandescent bulbs. Three of the drivers had failed, requiring repair to make those three lights functional again. Fortunately this was an easy fix because only 4 of the 6 drivers per 75492 chip were in use, so I simply re-wired each failed circuit to use one of the unused drivers. I noticed that in B60WizWorld's video, some lights are not functioning, so this may be a common problem with this machine. The LED bulbs should prevent any further driver failures. The "warm white" LEDs that I ordered are close to the same color as the original incandescent bulbs, as you can see in the final picture, the lit 1's are LED bulbs and the rest of the lit bulbs are the original incandescent. 

In conclusion, this was a fun and rewarding project, and I am very happy to have my antique machine working properly again! It was just the right level of difficulty - a newer machine, with music, voices, video display, and other high-tech features would be much more complicated. It was my first Arduino project, and I found the Arduino to be very flexible and easy to use and program, it really is an ideal controller for a project like this.

Story photos

playfield (resized).JPG
wiring_GIF (resized).png
arduino_installed_GIF (resized).png
playfield_working_GIF (resized).png


30 days ago

I am deeply impressed by your skills! Thank you for sharing your story!

29 days ago

This sounds like a very satisfying challenge once achieved. Congratulations and respect for your skills having saved a rare machine.

29 days ago

Next challenge: The Goonies home brew. I’m certain you could make a nice custom theme with the skills you gained from this project!

29 days ago

I loved reading this. I'm currently learnign how to program an aurduino board trhough a company called They have a couple "adventures" that help to make it fun.

My long term goal is to create my own machine from scratch. I did see someone on youtube that did this using an arduino board as well.

My thought is that I might (eventually) create it using existing boards from old 70's Solid State machines since parts are plentiful and (reasonablhy?) priced. I think this would be the easy to make it happen, then the next step would be from 100% my own code (which is a looong way awy from now).

Great job on making this work!


29 days ago

Thumbs up to you.

Circa 1933 was the first cocktail pin i ever bought
Those Allied Leisure Fascination Intl made pins do get finky often.

28 days ago

Those cocktail pins do come up and they're definitely in a poor state/unfixable. Great job getting this working again!

28 days ago

Well done it’s great to see how different engineers tackle that age old problem of getting old pinballs to work again by upgrading to a modern digital solution. I was not fortunately to start with a complete gottlieb flying carpet just the playfield found backbox and cabinet and the em score reels. Nearly finished after 3 years so hats to you for such a quick job. I started with arduino mega and finally moved to it to a cobrapin solution still with arduino ide. Those stm32 are a pain but once you get them loaded it’s full steam ahead.

28 days ago

Wow. Congrats, this is amazing! I would love to see the 2000 lines of code you wrote!

27 days ago

Awesome story!! I was just looking into some projects using raspberry pi modules.

27 days ago

Excellent work! I hope to go down this path for a homebrew. I also would love to see the code for a starting point.

26 days ago

This has been a major issue with most of the cocktail machines out there. If you could package this solution up with some how-to instructions (and support for various manufacturers), I'd bet you could sell a few hundred. I know I have an Allied Take Five taking up valuable Garage Space that I've been inches away from donating to someone who needs a coffee table many times in the last few years.

26 days ago

Hi guys hear some arduino code I did for my flying carpet for a MEGA. It’s much improved since then virtually not delays in there now.
Have a look at pinball arduino conversion (another one) should at least get you started. I did notice that the mega did not like the flipper eos switches so I have a complete software solution running on an UNO and a plug in MosFet board, cheap and cheerful and easy to adjust flipper strength. Let’s get more of these dead machines up and running. PS not sure starting from a playfield only is very wise but I had time on my hand.

26 days ago

Hi my mistake on my code it should have been arduino pinball bjmclrn should get you there

26 days ago

Awesome project! Really impressed! I really enjoyed reading about it, and like others, would love to see it in action :)

25 days ago

Wow! A very impressive way to save these cocktail pins!

25 days ago

Amazing work and thank you for sharing your story. As others have said, if you can package and sell your changes you can sell some and bring back to life a lot of dead cocktail tables. Welcome to Pinside :).

25 days ago

I always thought "Arduino's could fill in the gap on unobtainium parts in older pinball machines."

You provided the proof! Well done!

24 days ago

Very interesting read! Congrats on getting it working.

24 days ago

Thanks for the comments everyone! I have created a forum topic where I posted a video of the restored machine in operation. Anyone who wants to ask technical questions about what I did can do so there.

24 days ago

@statictrance, the Allied Take Five is identical to Circa 1933 except for the artwork, so if yours has the same problem, my code and hardware should work in your machine also. Comment in the forum thread I created if you want to discuss more.

23 days ago

This is amazing!! Thanks for sharing!

22 days ago

Well done! what are the connectors you are using to interface with the Arduino mega?, they look pretty clean compared to my rats nest. I started a project about a year ago which was motivated by bjmclrn's arduino projects, turns out coding with Arduino is fairly straight forward for simple pinball machines, even if you have never done any coding before. I'm starting to use Python now for sounds and video, hopefully get some modes and multiball up and running.

22 days ago

Awesome work. My Roy Clark works but it's finicky on starting sometimes (likes to hang out in TILT when plugged in) -- I think it's the stupid AMP pins on the playfield harness, plugging into the MPU. So much crummy old junk on these that causes issues.... And that's when they 'work'! Taking it from dead to this is very impressive.

22 days ago

@KSUWildcatFan, I found the edge connector at the bottom of the circuit board causes poor connections, the board connections get coated with oxide. I sprayed some contact cleaner onto a paper towel and cleaned them up, then cleaned again with rubbing alcohol.

22 days ago

@k-j-k, I used these connector strips:
Gikfun 40 Pin Strip Breakable Pin Header Tin PCB Panel IC Male 2.54mm for Arduino (Pack of 20pcs) EK1818
The different colors make it easier to keep track of which connector goes where. I used ribbon cable from old computer cables to do the wiring, that made it easier to keep track of the wires.

20 days ago

thanks for taking the time to share this story. Great job!

19 days ago

thx for sharing this great story - amazing work you have done ! Kudos !

17 days ago

WOW!!! Great job on brining this machine back life. You have inspired all who read this to never accept that something is not fixable.

15 days ago

Really cool. How did you work out which pins on the board needed to be mapped to the arduino?

15 days ago

Hi radium, I had the schematics. I have a paper copy, but they are also available here:

9 days ago

Impressive. Most Impressive! Maybe you could build Arduino Kits for these good 'ol Game Plan Cocktails? My Foxy Lady is still trottin' around, but no's still a very 'guilty pleasure' machine! Many thanks for saving and preserving this awesome style of pin!

6 days ago

Wow! While I don't mean to belittle your work, I wonder though if the ROM from some "Take Five", "The Entertainer" or "Circa 1933" machine couldn't be read out by modern means, or maybe someone has done so already? Would certainly be great to have that original program in (Pin)MAME or elsewhere, for future reference.

6 days ago

This is awesome. I love my Circa 1933 and would love to get it in my arcade. Lots of memories with that title.

5 days ago

@Enver, years ago I thought about trying to read the program from the dead 6530 chip and substitute something else, but it would require equipment I didn’t have, and I don’t even know that the rest of the chips are OK. One pin of the 6530 was shorted to ground, so it would have been difficult to read out the data. I think this was easier really, and I was pretty confident it would work.

4 days ago

In 3 weeks you did all that? Wow for a first project I would've expected much longer.

4 days ago

@sparksterz, it was my first Arduino or pinball project, but I do have a lot of electronics and programming experience.

4 days ago

Great story! Thanks for sharing. Congratulations!!

46 minutes ago

This is great! Interesting project.

Add a comment

Wanna make a comment? Click here to sign in or register.

This page was printed from and we tried optimising it for printing. Some page elements may have been deliberately hidden.

Scan the QR code on the left to jump to the URL this document was printed from.