Hacker News new | past | comments | ask | show | jobs | submit login
Connecting a 1980s Pinball Machine to the Internet (lipsitz.net)
137 points by elipsitz 9 months ago | hide | past | favorite | 50 comments

Amazing, we are currently doing something very similar at our makerspace on a 1987 Road Kings pinball machine.

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

Can this be used on any System 11 game? And can it be used to read the current state of the alphanumeric display?

Yes, it should. As long as you can figure out the correct memory addresses to look at, you can tell the ATmega to send you the data.

Awesome! I really like the idea of scanning an RFID card to identify players.

Modern pinball machines already do this (not RFID, it's an optical reader for a QR code), implemented by the major manufacturer Stern Pinball. They have internet connectivity to log scores and achievements and tournament challenges and leaderboards. It adds a pretty cool dimension to the pinball scene.

Road Kings?!? :\

It just floors me that today you can order up a custom PCB for a few dollars if you are willing to wait a few weeks. What a world.

The pinball community as a whole has been doing really cool things like this for years. Custom soundtracks for older games and now more recently we're seeing total rewrites of the rules/coding flashed onto chips or new PCBs like this. Super cool stuff.

I have a "reset board" for WPC games that is many years old at this point. It piggybacks on the power connector from the power board to the system board and steps down the unregulated 12v supply to power the 5v rail, bypassing the power board's 5v which can become unreliable as voltage regulators age and fail, triggering a watchdog on the system board that causes a reset. It is a plug-in mod that is reversible (I actually do not currently use it).

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.

Yep, friends with the guy from Pinball Basement who makes the System 11 boards. It was actually done by licensing the designs from Williams, so that's cool. They're still quite expensive, but it's great from a preservation perspective.

I was talking about the DumbAss boards: https://pinside.com/pinball/forum/topic/dumbass-test-and-rep.... Are those the same as Pinbal Basement?

Not that I know of. https://pinballbasement.com/ Looks like the 11 stuff is not finished or sold out atm. I believe he was running into supply chain issues last year.

I own two System 11 pins. What’s the advantage of replacing the board if the current one works? Is it different roles in the software?

No benefit to replacing working Williams boards. The benefit is if you have a bad board and can't find replacements. The DumbAss boards are electronically identical to Williams boards so you can install them in any combination in a System 11 pin without any other modification. They're simply modern replacement parts.

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).

I have a Terminator 2 - a lot of similarities to High Speed because both were designed by Steve Richie and i think T2 came right after High Speed for him (could be wrong about that last bit). Also have a Cyclone. Both have lots of mods and addons. I used to be really into the hobby but not so much anymore.

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.

Yes I have heard that story. I think he actually got a ticket for 146mph. That’s the speed on the radar on my backglass. I have a T3 as well, the first pin Ritchie made for Stern. T2 is a classic but I think T3 is underrated, many similarities. Much like High Speed vs Getaway.

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!

JLPCB and a few others offer 2-4 day service as well. The scene exploded a couple years back and it keeps growing.

I started off as an EE in college ~20 yrs ago before switching to CS. I did some circuit board design work (never fab) as part of my coursework, but haven't touched it since. I have some baseline familiarity. I think we used pSpice and Cadence, which (at the time) still had a lot of Win 3.1 era MFC UI elements. I'd like to jump back into it for hobby reasons. Any recommendations on modern low-budget software-tooling?

I'm a tinkerer and software dev, so my use is very basic.

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.

> Cadence, which (at the time) still had a lot of Win 3.1 era MFC UI elements

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).

X11 forwarding for Cadence's chip layout tooling is practically unusable nowadays! Sub-1 FPS, even on a reasonable 1 Gbps pipe with only 3-4 ms ping. I had to use NoMachine when I was doing that work -- proprietary tooling that does the "simpler" image/video streaming.

KiCad is excellent and open source. There's a recent post about it: https://news.ycombinator.com/item?id=34769574

You can try KiCad.

Do you have any plans of open-sourcing or releasing your work here? This stuff is awesome, it would be great to try and apply it to different eras of pinball machines as well.

Just edited the post to have a link to the GitHub repo: https://github.com/elipsitz/internet-connected-pinball

Yeah, definitely if people are interested. Let me clean up the repo a little bit first :)

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.

I am a pinhead! Actually on my way to a tournament right now. So yaaas please more info on this : ). Is the. Openpinball framework involved in this?

Nope, I actually hadn't even heard of Open Pinball before. Looks cool though!

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.

We actually have an open API for anybody that wants to contribute live score data. https://wiki.scorbit.io/ Give me a ping at brian [at] scorbit . io and I can hook you up with a license and a dev token.


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.

Cool hack! Thanks for laying out the steps in such detail. One specific comment:

>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.

You can also solder or plug in a remote battery pack. These older Williams boards put the battery pack at the top of the cabinet where it could leak all over. Later designs at least put it at the bottom where nothing important was below.

Another option is to replace the CMOS RAM with NVRAM.

I interfaced an ESP8266 with the switch matrix to do much less impressive things on more modern pins so I’m kindof blown away. It’s tricky piggybacking the signal lines and I feel a little better hearing I wasn’t the only one who got it 99% working and started wondering if maybe my microcontroller was underpowered for the job.

Interesting. Reminds me of something I built a few years ago.

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.

Damn, this is amazing. I took up a lot of hobby electronics using Raspberry Pi 4 Model B and Pico Ws during the pandemic. I stopped short of custom PCBs or reviewing circuit schematics, but this makes me want to search out a basic project that would require doing so.

This is very cool.

I wonder if niche arcades could make a comeback with something like this. Imagine global competitions between clubs competing for rank, recognition, and reward.

TBH I'm not a fan of comparing scores on different physical machines. Every pin is different. It is still fun to see scoreboards on local machines or to find the really out-there scores some people put up, but it's not like a video game where everyone is on equal footing.

To me that is part of the appeal of pinball. It is a local, physical, tangible thing.

Heck, even with video games we're not on "equal footing." When I play my little self-contained version of "The Oregon Trail," I am at a disadvantage when I have to hunt for food using those clunky controls. :-)

You can speed run on equal footing with any NES game and a stock console. That's not possible with pinball. The only comparable scores are on the same physical machine at the same time.

To be clear, do you mean different physical machines of the same type?

Yes. The rules are the same (although there are often many versions of the rules, and settings within each version) but the physical machine is always going to vary, both physically in construction and in setup. The tilt sensitivity, type of rubber used, condition of parts, level of the playfield, type of feet, tightness of legs, flooring, strength of the coils, angle of the flippers, size of the flippers, cleanliness of the playfield, presence of wax, position of posts, and the strength of springs all contribute to variation.

That's fascinating. Thanks for the context.

Wear and tear can greatly affect game play. Sometimes for the better!

Stern tried this a long time ago to compete with Golden Tee Golf tournaments, since those games were paying people cash and killing pinball in street locations like bars.

The problem was stopping nefarious players from taking the glass off and rigging the score. It's an impossible thing to prevent.

They already have, for pinball in particular. Stern Pinball implemented a connectivity system for new machines (it reads your QR code), and there are many arcade locations that use that to track and display scores and achievements and leaderboards. Most mid-sized cities in the US now have at least one brewery or arcade with this running now. It's mostly particular to each location, but some organizers use it for global competitions as well.


This is awesome. I'm disappointed he had to switch from the ESP32 to a Raspberry Pi but either way, it's fun putting things like this online.

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...

Next level awesome stuff!

It's like Stern Insider hacked into older games. Amazing!

Do you think this could be transferred and applied to other System 7 games?

Thanks! Yeah, it would work on any System 7 game, as long as you’re willing to solder in the 2x20 connector to the MPU. All of the memory locations should be exactly the same.

Nice work! I'm assuming score rollover is detected so your awesome final score is correct. Also saving game settings of total balls (3 or 5) and extra ball enabled is useful when comparing scores.

Anything pinball on HN is a good day :)

Fortunately I don’t have to worry about rollover. The game can score a maximum score of 99,999,999, and the highest I’ve been able to score is about 3,500,000.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact