13 ms·
Connecting a 1980s Pinball Machine to the Internet
- iceflinger 4y agoDo 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.
- elipsitz 4y agoYeah, 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.
- 808nrlnd303 4y agoI 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?
- elipsitz 4y agoNope, 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.
- sfbrian 4y agoWe actually have an open API for anybody that wants to contribute live score data. https://wiki.scorbit.io/ 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.
- elipsitz 4y agoJust edited the post to have a link to the GitHub repo: https://github.com/elipsitz/internet-connected-pinball https://github.com/elipsitz/internet-connected-pinball
- jvanvleet 4y agoIt 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.
- TehCorwiz 4y agoJLPCB and a few others offer 2-4 day service as well. The scene exploded a couple years back and it keeps growing.
- daveslash 4y agoI 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?
- divingdragon 4y agoYou can try KiCad.
- elipsitz 4y agoKiCad is excellent and open source. There's a recent post about it: https://news.ycombinator.com/item?id=34769574 https://news.ycombinator.com/item?id=34769574
- TehCorwiz 4y agoI'm a tinkerer and software dev, so my use is very basic. https://www.kicad.org/ 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.
- blockwriter 4y agoDamn, 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.
- tannercollin 4y agoAmazing, 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: https://pic.t0.vc/WPUO.jpg https://pic.t0.vc/WPUO.jpg 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: https://pic.t0.vc/UQYK.jpg https://pic.t0.vc/UQYK.jpg 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: https://pic.t0.vc/MZGY.png https://pic.t0.vc/MZGY.png 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://github.com/Protospace/pinballwizard
- elipsitz 4y agoAwesome! I really like the idea of scanning an RFID card to identify players.
- vikingerik 4y agoModern 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.
- Rolpa 4y agoCan this be used on any System 11 game? And can it be used to read the current state of the alphanumeric display?
- soupfordummies 4y agoNext 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?
- elipsitz 4y agoThanks! 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.
- shanebellone 4y agoThis 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.
- vikingerik 4y agoThey 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. https://insider.sternpinball.com/ https://insider.sternpinball.com/
- mulmen 4y agoTBH 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.
- shanebellone 4y agoTo be clear, do you mean different physical machines of the same type?
- mulmen 4y agoYes. 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.
- relwin 4y agoNice 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 :)
- elipsitz 4y agoFortunately 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.
- shove 4y agoI 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.
- caseysoftware 4y agoThis 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-microcontroller-on-the-internet https://blog.ngrok.com/posts/putting-the-esp32-microcontroll...
- aftbit 4y agoCool 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.
- mulmen 4y agoYou 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.
- phanimahesh 4y agoInteresting. 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.
- stjrweyer 4y agohttps://github.com/BallySternOS/BallySternOS https://github.com/BallySternOS/BallySternOS 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.