Photo by Rachel Kotkoskie, CC-BY
Around 1995, I bought a Meteor pinball machine. It was released in 1979 off the success of the movie Meteor, starring Sean Connery and Natalie Wood. Oh wait. The movie was, in fact, a complete flop. Anyway, I had played this machine in the 80's, and was feeling nostalgic. I think I bought it for about $600, and it was in working condition, except it would reboot every so often. Some short time later, the gas discharge score displays starting flaking out. These displays were Beckman SP-491 6-digit displays, ran off 175 volts DC, and were used before 7-segment LED displays became ubiquitous and cheap.
When I moved, I stuck the pinball machine in the basement. I didn't really know where in the house it could go, and the answer was pretty much nowhere sensible. So it stayed in the basement for 15 years.
Finally, a few weeks ago, I decided that if I hadn't used this thing in 15 years, I didn't really need it cluttering up the place. In working condition, Meteor goes for $800 - $1000, but I just didn't want the hassle of selling it, because then I'd have to make sure it worked, and even if it didn't work, I wanted whoever got it to fix it, not part it out. So I decided that the next best thing was to give the pinball machine to NextFab, on condition that they fix it and make it available to members. NextFab was happy to take me up on the offer. Easy, right? The schematics were all online, and the circuits and mechanics weren't very complex.
"This? This is not complex." Photo by Rachel Kotkoskie, CC-BY
Long story short, NextFab asked some outside people if they wanted to work on it, they initially said yes, but flaked out, so it was left to me to work on the machine.
The culprit. Also, note the totally ghetto light bulb wiring on the left. These are bare wires held in place by staples. Photo by Rachel Kotkoskie, CC-BY
The first thing I found was that none of the solenoids were working. After checking for wiring damage, I traced the solenoid circuitry until I located the fault: a dead chip, a 74154 4:16 decoder. I'm pointing at it in the image above. I could replace it for $3.50. But then I thought, what else is dead? The self-test revealed that some of the lights were not working, even with bulb replacements, and one of the ROM chips looked decidedly iffy. Three of the five score displays were dead.
I discovered that there are modern replacements for three of the four boards used in this machine. Which is really cool. Pinball isn't dead! The sound board doesn't have a replacement, but at least it wasn't dead.
NextFab generously paid for the replacement boards. I installed them, cleaned some of the switch contacts, and the machine worked!
The old solenoid driver, and the modern Alltek drop-in replacement. Photo by Rachel Kotkoskie, CC-BY
I played a game, and thought that perhaps I had set the game switches to easy mode. Turns out that I just never lost my pinball wizardry skills. Photo by Rachel Kotkoskie, CC-BY
That left the dead displays. Replacement gas discharge displayed cost $65 each, but they were advertised as "new old stock" which means they were manufactured over 30 years ago. How long would they last? Digital LED replacements were $45 each, but I knew I could design and build a replacement easily enough, and it would make a fun project.
"These displays? They suck." Photo by Rachel Kotkoskie, CC-BY
Now, the interface to these displays is essentially four data lines encoding the digit to display, and six data lines to select the digit to activate, five to select the display to activate, making 15 lines in total. 17 if you include power and ground. This would be trivial to build. But no, I had to go one better.
I didn't like 17 wires. I wanted something more elegant. I decided that I wanted to use a two-wire twisted wire interface. It had to be immune to noise, and the interface had to be supported in one-chip solutions. I chose I2C, which is really a digital communications protocol for chips on the same board, but there are extenders that can be used to increase the range. And it is also supported by Arduino, which meant I could at least contemplate a full Arduino-based pinball machine.
If I could replace those 17 wires by only four (power, ground, clock, data), I would be very happy. I found a nice little I2C chip, the AS1115 by Austria Microsystems, which could drive eight digits which would make the displays easy to build. It could also read keys, which could also be useful, since the pinball machine has to read the state of switches. The only problem was that the chip could only be programmed with four different addresses, and I had five displays, plus however many I wanted to use for switches.
Luckily, NXP makes an I2C multiplexer, which lets you activate an I2C "branch", so I could just put four AS1115's maximum on each branch. This is also useful when the hardcoded address prefixes on different I2C chips end up being the same, which happens surprisingly often.
Anyway, that's where I am. I'll be looking into making a circuit board for the displays, then another circuit board for taking the 15 data lines using an Arduino and converting them to the I2C scheme.