A fierce man who developed a system that allows scores to be automatically uploaded to the Internet without remodeling the old pinball machine appeared
Connecting a 1980s Pinball Machine to the Internet | Eli Lipsitz
https://eli.lipsitz.net/posts/internet-connected-pinball/
Mr. Lipschitz's childhood home had two pinball machines, the 1974 pinball machine '
Unlike the 'Strato-Flite,' the 'Laser Cue' had innovative features such as flashing lights, music playback, and a digital score display. In addition, pinball machines with microprocessors, called 'solid state machines,' such as the 'Laser Cue,' have the ability to display the four highest scores. But if you wanted to share your top score with others, you had to write down the score that was displayed.
A device called '
``The machine automatically uploads the score,'' Lipschitz said. The goal of the device to be developed is to not modify the pinball machine and not damage the pinball machine that has a history of more than 40 years.
'Laser Cue' is a machine built with ' System 7 ' manufactured by Williams. The 'Laser Cue' was equipped with 1 KB of RAM , a maximum of 12 KB of ROM , and a maximum of 128 bytes of backup CMOS RAM for storing scores and other data.
Mr. Lipschitz connected a microcontroller with a memory bus and Wi-Fi function to the CPU socket mounted on the Laser Cue so that data could be written to the external RAM. By connecting a device to the CPU socket, it can be removed and restored at any time without damaging the pinball machine.
When Mr. Lipschitz actually developed the device, it seems that various problems such as the size problem of the connector and the removal of the CPU chip occurred, but Mr. Lipschitz created an alternative plan and dealt with it each time. . Also, in order to use the developed device, it was necessary to perform soldering work on the base of Laser Cue, but Mr. Lipschitz prepared a 2 x 20 pin connector so that soldering work was not necessary. Provides access to signals required for upload.
In developing the device, Mr. Lipschitz used ' ESP32 ' which is a SoC microcontroller with built-in Wi-Fi and Bluetooth. The ESP32 CPU is equipped with a dual-core Xtensa that runs at up to 240MHz, making it powerful and cost-effective.
The CPU ' Motorola 6800 ' originally installed in Lazer Cue requires 27 inputs to decode the memory bus. There are only 25 30-pin GPIOs on the ESP32 dev board, and 3 of them were not performing well at startup for our application. Therefore, using these GPIOs can damage your pinball machine.
However, Mr. Lipschitz decided that ``the microcontroller does not need to decode the whole'' and solved the problem by decoding only the 1 KB RAM area. In addition, the remaining control signals etc. will be decoded by the external terminal.
This solution allowed us to significantly reduce the number of inputs required, fitting within the GPIOs available on the ESP32 development board.
After solving various problems such as decoding and uploading scores, Mr. Lipschitz will move on to creating a printed circuit board for the device. Lipschitz used
In addition, Mr. Lipschitz soldered parts to the ordered printed circuit board and performed a simulation test with the completed prototype device.
In the test conducted by Mr. Lipschitz, 1 million simulated writes were performed on
As a result of Lipschitz's multiple rounds of debugging and troubleshooting, he confirmed correct wiring and detection of valid writes in simulation tests. Despite this, about 1% of writes were not detected correctly.
In order to solve this problem, Mr. Lipschitz read the ESP32 technical manual and conducted a thorough investigation, but in the end he could not find a suitable peripheral device or module that could solve this problem, and there was no solution. I am reporting that.
As a result, Mr. Lipschitz concludes that 'ESP32 microcontrollers are not suitable for realizing this project.' ``The exact cause of this detection failure is unknown, but it may be related to bus contention or interrupts,'' Lipschitz said.
So Lipschitz came up with an alternative, leveraging
Lipschitz conducted reliability tests to accurately evaluate the programmable IO capabilities of the Raspberry Pi Pico W. In the test, we wrote 600 million times in 10 minutes, but succeeded in detecting all writing accurately.
After creating the improved printed circuit board, Lipschitz assembled a new version of the device. Next, I attached a new pin header to the main board of the pinball machine. Regarding the task of attaching a pin header to the old-fashioned main board, Mr. Lipschitz recalls, ``The main board was connected to the driver board with an unreliable connector, so it was difficult to remove it from the machine.'' To avoid damaging the connector, I decided to remove both the driver board and the main board together.
Various parts such as displays, switches,
When Mr. Lipschitz turned on the power to the main board on which the new device was mounted after various processes such as soldering work and battery replacement, Lazer Cue began to operate safely.
After Lipschitz fixed the software, the device now writes at a rate of about 40,000 times per second. To confirm the accuracy of the data, Lipschitz started a new game of Laser Cue and manually inspected it, confirming that the game's score was correctly reflected in the memory on the device.
After confirming that the device's core write function worked, Lipschitz then programmed the device to periodically check the memory state to detect when the game started and ended. At the end of each ball in pinball, we captured the entire memory to track the progress of the game. At the end of the game, the device uploads a memory snapshot to a web server and processes that data to extract score information.
Also, the upload may fail, so the device I developed stores the scores locally in flash storage and tries to upload them periodically. This way, you won't lose your score in the event of Wi-Fi outages or server downtime.
You can check how you play with the pinball machine with the device created by Mr. Lipschitz attached in the following video. Scores are displayed on the website almost as soon as they are displayed on the pinball machine.
The Uploaded Scores site interface displays scores in a simple table, sortable by date and score.
You can also click on the score to see a breakdown of the score by player and ball. Also, after the game is over, you can correct the score by tapping the score and entering your initials.
As a point to reflect on this time, Mr. Lipschitz said, ``If you chose Raspberry Pi Pico W from the beginning instead of using ESP32, you may have saved time.'' Having a point made it much easier to debug and troubleshoot when something went wrong with the device.'
In addition, as a future expansion function, `` output more data from the game memory, extract information such as bonuses and lighting of lights, and display it on the score site '' `` Installed in game centers and restaurants Get pinball machine scores and implement live score displays on your website.'
Mr. Lipschitz looks back on this project, 'It was a fun learning experience that allowed me to learn new skills in printed circuit board design and create interesting practical devices.'
Related Posts: