Lecture: Reverse Engineering a Commercial Pinball Control System

How to run custom code on Stern Spike machines

Event large

In this talk, we will have a look at the latest pinball control system (SPIKE) of the leading pinball manufacturer (Stern Pinball) and investigate how to run a full custom game on an existing machine. First, we describe how the system works and what the various CPUs do. Then, we investigate how to gain access to the main CPU and reverse engineer the game. Finally, we show how to implement a custom game and control all the hardware in the machine over the data bus.

Stern SPIKE hardware is a pinball control system used in many modern pinball machines. It can control drivers, switches, LEDs, DMDs and various other hardware depending on the machine. Technically it is a series of node boards that are connected via Cat-5 cables to the what is known as the SPIKE node bus. The ARM based CPU is running the game code from a SD card and sends commands to individual node boards to actuate drivers, set LEDs, read switch states and a whole lot more.

The first part of the journey is to understand how the system works. Since SPIKE consists of several CPUs with a lot of wires between them, we investigate their purpose and how they are connected electronically. Furthermore, we analyze to the CPU to grasp how the game communicates with all of it’s various components. This includes controlling the power supply unit, the backlight on the CPU (used in the backbox of a pinball machine), the audio amplifier, the node bus and the auxiliary inputs on the CPU.

Once we understand how to communicate with it, we need to decode the protocol on the node bus which is what controls all the components below the playfield. We describe a way to capture and decode what is on the bus when the game is running. Afterwards, we document all relevant commands and parameters.

Finally, we verify our knowledge about the hardware and the bus by implementing support for Stern SPIKE into the Mission Pinball Framework which is an open source framework to power custom pinball machines. You can write your custom game and have it control all hardware in an existing machine without any permanent hardware modifications.

If we have time at the end, we will present a small collection of trivia about funny bugs, weird memory leaks, bogus commands and a some leftovers from the SPIKE developers.
Stern SPIKE hardware is a pinball control system used in many modern pinball machines. It can control drivers, switches, LEDs, DMDs and various other hardware depending on the machine. Technically it is a series of node boards that are connected via Cat-5 cables to the what is known as the SPIKE node bus. The ARM based CPU is running the game code from a SD card and sends commands to individual node boards to actuate drivers, set LEDs, read switch states and a whole lot more.

The first part of the journey is to understand how the system works. Since SPIKE consists of several CPUs with a lot of wires between them, we investigate their purpose and how they are connected electronically. Furthermore, we analyze to the CPU to grasp how the game communicates with all of it’s various components. This includes controlling the power supply unit, the backlight on the CPU (used in the backbox of a pinball machine), the audio amplifier, the node bus and the auxiliary inputs on the CPU.

Once we understand how to communicate with it, we need to decode the protocol on the node bus which is what controls all the components below the playfield. We describe a way to capture and decode what is on the bus when the game is running. Afterwards, we document all relevant commands and parameters.

Finally, we verify our knowledge about the hardware and the bus by implementing support for Stern SPIKE into the Mission Pinball Framework which is an open source framework to power custom pinball machines. You can write your custom game and have it control all hardware in an existing machine without any permanent hardware modifications.

If we have time at the end, we will present a small collection of trivia about funny bugs, weird memory leaks, bogus commands and a some leftovers from the SPIKE developers.

Info

Day: 2018-10-06
Start time: 15:00
Duration: 00:45
Room: Vortragsraum 1.7

Links:

Concurrent Events