Stargate Pinball Reactive LED Ring Mod/Hack!

If you want to see more of the whole process of fixing, restoring and customizing this Stargate Pinball machine, you can look at my post on the subject here :


The Game while in play at TPF


The game already looked great, played extremely fast because of all of the polishing and slicking of all the ramps and playfield, but that Stargate Ring in the top-box looked sad. This is a game from 1994-5, so LEDs existed but they were expensive and in all honesty the folks at Gottlieb knew this game would be their swan song so the Ring of Lights was not high on their “learn a new skill” meter, so they are INCANDESCENT BULBS IN SERIAL!. I mean, even the board were still using a 6502-based processor from the mid 70’s. These boards were probably designed to take advantage of the parts that they had and the code already written for the System 80 boards used from 1980-1990. Often these die (mine was working, but obviously replaced the original), and people resplace them with Blue Colored LED Rope meant to run at 18-24V. LEDs are required because the original runs at ~20V DC with the occasional 6.3V AC Pulse (when flashing).

In the game, there are some moments that the ring flashes. That means that we can capture that digitally! But…… ~20V DC and 6.3V AC blips are NOT GOOD to capture in a 5v microcontroller! So, in this design I am actually using an adjustable regulator. Part of using this as well is that it gives me fine tuned control in case of power fluctuation in the machine which causes odd ghosting on the ring replacements that other people have made. We want it to trigger only when needed.

In testing code, I found that the LEDs chosen (SK6812) will blind you if running at full color gamut or pure white will BLIND you while playing the game. So, in many cases, the code actually does a fast modulation that has only every other LED pulsing so it uses a POV effect! Side bonus is that this means I could run this directly off of the 12V unregulated input line in the game without blowing the fuse since the whole thing will run on ~2A at 5V in peak power.



First Stargate Bootup-sequence, then Stargate Blue color spectrum wipe ignition, and finally the RGB Swirl Activated Mode

On Flash/interactive mode (interrupt driven)

Flashing White Theater Chase (can be continually activated), followed by the Startup Sequence


RGB Swirl


  • Ajustable Power regulators (need 2) :
  • 144led 1m long SK6812 LED strip (with extra connectors)
  • Silicone Tubing with 3/8″ inner diameter :
  • Arduino Mego or Clone (or one of the ARM-based Arduino-code boards), needed primarily for the RAM as you are addressing 144 LEDs quickly.
  • 20-22AWG wire
  • Scissors
  • 8 Clear Zip-ties
  • Snips
  • Tiny Flat-head screwdriver


Arduino Prototype Shield (my design was made so each piece could be disconnected fully for debugging and switching to the original ring if this just did not work reliably… but it does so its optional)


Pre-work : Remove the original ring, attached plastic holder, and open up the latch to the backbox  boards/PCBs


Step 1

Download Neopixel library and Load Software on Arduino Board  (available here :


Step 2

Test the Code by plugging in the SK6812 LED strip PWR(red)-GND(black)-IO(green wire) to D6 on the Arduino-based board (you will want to add additional power through another USB port or 5V power supply to the 5V line directly on the LED strip).

Step 3

Solder in the regulator to the 12V unregulated line (Power and Ground) to the 12V input on the 12V-5V Main Power Board in the top back-box. This will require that you unscrew the board from the backbox and add the wires to the underside of the board. Now, turn on the game and use the tiny screwdriver to adjust the output from the regulator to 5V. (In my design I used a slightly different main power regulator because I needed to monitor voltage drop while in use so it has an LED display of the system input voltage seen in pictures).

Step 4

Solder and connect in the Ring activator voltage to the 2nd regulator and adjust the output voltage when active to 3.0-3.2V output. This will allow the uC to read it when it drops to ~2.3-2.0V and triggers the interrupt.

Step 5

Solder the 5V regulated output (game off) to the 5V line in the Arduino or the 5V area on the Prototyping shield. Do the same with the GND.

Step 6

Solder the Ring regulated output positive to the Arduino D2 (digital 2) pin or onto the Portotyping Shield. Connect the GND to the GND on the Arduino.

Step 7

Carefully cut the excess edging on the SK6812 LED strip if it has any (only the center actually runs the wire on most of these strips. remove waterproofing strip if present.

Step 8

Spend about 2-3 hours pushing the SK6812 LED strip through the silicone tubing (you want that diffused look) very slowly as to not fold or bend or otherwise snap the LED strip.

Step 9

Zip-Tie-in and Orient the strip like this picture

Step 10

Solder the LED strip pigtail connector to the Arduino where PWR goes to 5V and GND to GND, the Green Digital connector will go to Pin D6 (digital 6).

Step 11

Connect everything together and put into the back of the front LED area of the backbox as shown.

Step 12

Turn on and Enjoy!


Standby Mode


Leave a comment

Your email address will not be published. Required fields are marked *