The Beginning

In January of 2020, I found a deal on a broken Stars (Stern 1978). The owner said that it just stopped booting one day and that a pinball tech quoted about $400 to get it going again. I knew nothing about Stars, but with an ancient degree in Electrical Engineering, I figured I had a shot of figuring things out. As I found out, there were so many helpful people on forums, and so many websites out there, that the repair steps were pretty well documented.

First, I figured out that there was a short on the back of the rectifier board. It was a pretty new replacement board, so the short was unexpected, but easy to fix. I cut away where the ground plane was arcing to one of the power traces. Then, I spent a while re-pinning connectors so all the correct voltages were reading at all the correct test points.

After fixing up the reset section of the MPU and testing the ROMs in an old chip programmer, I hit a stumbling block. The PIAs (Parallel Interface Adapters) could be bad or the ROM sockets. The CPU socket could be too tired to work. I didn’t want to just start blasting the board with random sockets and ICs, trying to guess what was wrong. I wasn’t getting any flashes on the LED, so I knew something fundamental was afoot.

I wanted to test the PIAs in place and there was a test connector (J5) at the top of the board that looked like it would do the trick. One Sunday afternoon, I just started connecting up an Arduino to see if I could access the bus directly and talk to the PIA chips. By the end of the day, I was reading & writing to the PIA chips, so I knocked those off the list. Next, I hooked up even more pins so I could watch the CPU addresses go by. It didn’t take long to see the problem—I had a short between two of the address lines, so the ROMs weren’t returning the correct data. Without good code, the board wasn’t running. In the end, I had to replace a few sockets before I fixed the issue (address lines are shared between U1-U8, so any of those were suspect).

But, on the plus side, I knew that I could plug in an Arduino Nano and access everything I needed to take over control of the machine. I found zacaj.com and dug deep into IC specifications. I read slochar’s disassembly of one of the Stern games. Most importantly, I slogged through the machine code for the ISR (interrupt service routine) of Stars, so I could see how they did things back in the day.

I’ve documented all I learned in those first weeks. More importantly, I wrote a library of functions so anyone could take over a Bally/Stern early solid state pinball machine and implement their own code. Later, I figured out other architectures as well. All my code is open source. Enjoy!

My original documentation about interfacing an Arduino Nano with an MPU is here.

If you want to see all the code that has been published so far, it’s all on GitHub.

Here’s how you can build/install your own board.

Previous
Previous

Big Game 2022

Next
Next

Why refresh?