In 2023, I was contemplating several lighting projects. I wanted to add animated speaker lamps to one pinball machine, backglass lamps to another, and a topper for a third. This led me to create a helper circuit board that I’ve named The Accessory Lamp Board or ALB. All the plans and code for this board are released Free and Open Source. I’m marking everything here as GPL 3.0, but if you have a need for an even more permissive license, make your case and I’ll consider changing the license.

The Accessory Lamp Board (ALB-V1) has several potential applications:

  • Topper Lamps

  • Under Cabinet Lamps

  • Speaker Lamps

  • Stadium Lamps

  • Backglass Animations (on Stern SAM machines, for example)

  • General Illumination Control

  • Playfield/Head Feature Lamps (Bally/Stern Solid State only, at the moment)

The ALB board supports control of both WS2812 addressable LEDs as well as 5050 RGB lamp strips (where all lamps have the same Red/Green/Blue value). The board can simultaneously control 5 addressable strips and 3 RGB strips.

The ALB reacts to the pinball machine’s state through 13 solenoid monitors as well as a flipper power monitor and a port that acts as clone of a Bally/Stern Lamp Board J4 connector. It also has an i2c port to talk to the Arduino directly. If you’re running RPU code on a machine, the ALB can act as an extension of that new code to do custom lighting effects.

The ALB can operate on 5V or 12V based on the requirements of the attached LEDs.

The ALB can be powered through an independent power supply so it doesn’t add strain to the pinball machine’s transformer.

Next, I’ll talk about the various use cases and how the ALB works, but if you want some quick links that get to the details, here you go:

Accessory Lamps Examples

Topper Lamps (controlled from game code)

One of the most interesting uses of the ALB is an extension of RPU code (custom code running on an Arduino). In the video on the left, you’ll see Ben playing his Stern Lightning with new RPU code. He made a topper controlled by an ALB so we could add lightning effects as well as state indicators (the topper shows cyan or purple to indicate which ball locks are engaged for a player).

The ALB in this topper is controlled by an i2c link from the RPU Arduino to the ALB Arduino.

ALB Effects Controlled by Solenoids and Feature Lamps

In the video on the right, you’ll see a Stern Getaway with under-cabinet and speaker lamps that react to the game play. Most of the animations are controlled by the machine’s solenoids. When they fire, they trigger the Arduino to show different animations. This allows under-cabinet lights to rotate red lights like the rotating light (MARS Lamp) on the top of the machine. But the ALB is also sensing the state of the Red, Amber, and Green feature lamps on the machine’s traffic signal. This shows the player the current state of the locks in the speaker lamps.

Animated Back Glass (controlled through sensing flippers & solenoids)

A friend brought me a Stern Pirates where the fluorescent lamp was broken. Instead of fixing that, I elected to add a panel of LEDs. Using addressable LEDs (WS2811, in this case), I was able to create animations that lit up the glass for different situations as well as dim the back glass during game play and show it full strength during attract mode.

ALB as a replacement for Bally/Stern Lamp Board

By replacing all the feature lamps in Trident with addressable LEDs, the ALB can act as a replacement for the traditional lamp board. It reads the signals from the MPU (original code or new code) and converts those into commands for the addressable LEDs.

How it Works

The ALB is just a microcontroller (Arduino MEGA 2560 Pro) that has a few helper circuits wired up to it. I put a jumper on the board so you can power it with 12V or 5V DC, depending on how much voltage your LEDs require. There are some transistor circuits for Red, Green, and Blue channels for 5050 LEDs. The arduino can pulse those to get different RGB values on a strip of 5050 lights.

The board also has 5 ports for WS2811 or WS2812 strips, which are addressable so you can set the RGB value of each pixel.

This board is controlled by several different input methods. There are jacks on the left with big diodes so you can sense if a solenoid or flasher is on/off. There are also diode-protected inputs to sense flippers and 5V power. Using those sets of inputs, you can hook up to any pinball machine and create animations that are triggered by solenoids, or flashers, or whatever. You don’t just have the ability to simply turn on and off your LEDs, you can do full animations and have several animations running at the same time if you’d like.

Near the bottom of the board, I included a spot for a resistor and a capacitor so you can read lamp strobes of Williams and WPC games. This lets you know the state of a column of switched lamps on a game (for example The Getaway) and then trigger your own animations based on the current state of the Traffic Signal.

The board can also be controlled by i2c or serial ports so if you have custom code running you can trigger your lights with your own messages.

Finally, I also put a port on there so you can plug in a connector that would normally go to J1 of a Bally/Stern lamp board. With this port, the ALB can act as a replacement lamp board for solid state Bally or Stern machines, and you can replace the normal switch lamps with RGB LEDs. You might want your player-up lamps to flash different colors to draw attention, or pulse a shoot again lamp. Each switch lamp can run its own animation when its activated.