Connecting a 1980s Pinball Machine to the Internet
eli.lipsitz.net
eli.lipsitz.net
We first replaced the original RAM chip with a IDT 7132 SA100P dual-port RAM that sits on a breadboard:
The other port is accessed by an ATmega 1284 to the left of it. Its code responds to simple serial commands and can read and write to the RAM.
An ESP32 talks to the ATmega over UART and frequently asks it to dump 16 bytes at 0x00A0 to tell the game state and player number, and 0x0100 to get the four player scores. When it detects a new game, it offers the player a chance to scan their RFID member card and keeps track of their score:
After the game is complete, any players who have scanned in get their scores uploaded to our member portal where we can sort them by personal best:
We found there were sometimes read collisions and the ATmega would block the pinball machine from writing to RAM which would cause crashes or odd behavior. The latest version uses two RAM chips, one acting as a shadow copy -- similar to yours.
Eventually we'll make a PCB for it and open source everything. Currently only half the code (the ESP32) is on Github: https://github.com/Protospace/pinballwizard
https://www.kicad.org/ is free and open-source It is mature and useful, has a vibrant active community, and is progressing at a healthy pace. It competes with the paid options, but might have rough edges comparatively speaking. I recommend starting here. I've only ever used this.
There is also Eagle PCB which is now an Autodesk product. It requires a Fusion360 subscription but I don't know if the free version qualifies. It's a professional tool.
Those are the only two I really hear about from the communities I lurk. But I know there are about a dozen or so currently that range from simple to professional.
I'm not sure how it appeared on windows, but cadence is the kind of software with an extremely long history. I'm pretty sure even recent releases have code that date back to the 70s.
As far as I know, it has always targeted UNIX, then X11, using raw XLIB for drawing? X11 forwarding still seems to be the preferred option for using it.
Anyway, try kicad, which is free and open, it has made great strides recently. You can also look at the gEDA suite, though it may be a bit rough. Commercially, I've also used Eagle and Proteus. LTSpice still is a pretty good no-$ option for simulations (though kicad integrates some barebones SPICE simulator now).
Also you can buy new boardsets for System 11 machines in both kit and complete form. They are electrically identical to the Williams parts but use modern components. They even come on red PCBs like the Williams development boards.
The software is whatever you flash on to the ROM and could be modified on a Williams or DumbAss board equally.
Also what System 11 machines do you have? I have a High Speed (with Williams boards).
The t2 back glass is signed by Steve Richie when I met him at Texas Pinball Fest in 2019.
There’s a podcast interview with Richie somewhere that he talks about designing HighSpeed. As I recall, he had a Porsche in the 80s. He was speeding home one night - very fast like 120 mph or something crazy. He was pulled over by a cop. Or maybe he dodged the cop. I don’t remember the rest of the story but it was interesting, and it became the inspiration for your pin.
I got into ownership during the pandemic, was the only way to get my fix. I’m up to five now!
Would love to meet Steve and his brother Mark who designed Fish Tales, which I also own. TPF seems to be the place for that.
Another bit of Steve Ritchie trivia is that he shared a cube with another Steve at Atari. This one was named Steve Jobs!
It's probably hard to directly apply this to other machines, but the interposer board idea would make it easy to take the same hardware and use it on any MC6808-based machine.
It'd be nice if there were an open standard for pinball machines talking to score servers. For this project I had to do everything custom. If people started putting ESP32s on their pinball controllers there might be some actual demand for something like that.
ballysternos is a really neat arduino project that sits on the debug header of old bally and stern mpu boards. the arduino holds the 6800 in halt from the start and re-implements game code
i've seen at least two of these in the wild, one in a Bally Eight Ball running "Eight Ball Plus" code, and another in a Stern Meteor running "Meteor 2021". both add some neat super-features and game modes, the Meteor has an accompanying wav trigger board, speakers, and amp to add wav sound effects as well -- anyone who loves Meteor will appreciate (or hate) that it no longer screams your spinner value in a high pitched tones.
>While the board was out, I removed the battery holder from the MPU board. The board needs 3x AA batteries to keep the CMOS RAM powered to maintain the high score list while the machine is off. I’d read that these batteries could sometimes leak onto the circuit board, causing substantial damage.
You can also use Lithium primary AA batteries, not to be confused with rechargable lithium-ion cells. They are better than Alkalines in just about every way, including that they do not leak. The only reason Alkalines are so popular is that they are slightly cheaper. In this application, you probably want the best cells possible.
Another option is to replace the CMOS RAM with NVRAM.
To demonstrate low latency for a proxy we built, we decided to do a small publicity stunt at a local conference. We found an old pinball machine, managed to reverse engineer and findbfrom patchwork docs and some experimentation that we could send some commands to control flillers over a serial port.
Then we built a web application that would receive commands over http, and forward them appropriately. Ran this on a laptop connected to the pinball machine. Then we setup our proxy on a raspberry pi, setup some mobiles to access the webapp via the proxy, and had a fun little demo.
Users can tap left and right halves of screen on mobile web page to send requests, and could see the pinball flippers move. Our stunt was that see, it's pretty fast and low latency even with some simulated background load on the system.
I wonder if niche arcades could make a comeback with something like this. Imagine global competitions between clubs competing for rank, recognition, and reward.
To me that is part of the appeal of pinball. It is a local, physical, tangible thing.
The problem was stopping nefarious players from taking the glass off and rigging the score. It's an impossible thing to prevent.
At ngrok, we just published a guide to put the ESP32 online that might have helped: https://blog.ngrok.com/posts/putting-the-esp32-microcontroll...
It's like Stern Insider hacked into older games. Amazing!
Do you think this could be transferred and applied to other System 7 games?
Anything pinball on HN is a good day :)