Pinball Project: Arduino Pinball Power Controller

January 18, 2013

Ok, so I am waiting on some parts to arrive and to be honest, I wanted a bit of time without the soldering iron in hand. So, I have spent a little time for a little side-project: making a power controller.

So far, when testing the machine I had to press the power button on the motherboard of the pc. That works as long as the machine is not finished, but eventually it should not be necessary to first open up the back of the cab, find your way through the wires to switch the machine on. On the other hand: I have not put a dedicated power button on the cabinet anywhere. So, I have to find a way to switch power on using the existing buttons.

I was inspired by a video from Jeri Ellsworth (electronic engineer, maker, geek girl and pinball lover) where she explains a circuit she designed around a 555-timer that can be used to switch a real pinball machine on using a switch connected to a flipper button for example. And when switched on, but not used (detectable because the switch is not triggered; the button is not pushed) the machine will switch itself off. She explains the circuit in this video:

So, I am thinking to do something similar, but based on an arduino. I choose an arduino because I have a few lying around, and a little bit of experience. Also, it allows me to do a bit more than power alone, but more on that later. Maybe I will give a similar 555 circuit a try, but that takes too much time now since I do not have any experience with it. Its fun to learn, but I want to keep the focus on the pinbal machine.

On with the arduino power controller. Thinking about it, I came up with these requirements:

  • When mains power is connected to the machine, I want some indication power is on, but the machine should not be full on all the time. This shall be called the STANDBY mode.
  • Use an existing button to switch the machine on. For example by press-and-holding the button for a while.
  • When switching the machine on the power supply for the DMD shall be switched on before the PC is switched on.
  • The existing button shall also remain capable of performing its originally intended function when the machine is on
  • Hook up the headphone switch so a plugged-in headphone can be detected
  • Night-mode: If headphone is plugged in, all the noise making force-feedback items (shaker, gear, knocker, contactors) can be switched off.

Next up: a first schematic showing what parts are needed. I decided to give Fritzing a go to draw the schematic. Having played with it a little bit a few years ago, I downloaded the app and gave it a go. Very easy to get started and get to a result. I am sure this schematic will require several updates, but this is what I came up with:

First schema of the power controller made in Fritzing


This device will be a three-state state machine:

STANDBY – Only the Arduino receives power, the rest of the machine is off. A white LED behind the coin-reject button will pulsate/fade (similar to an apple macbook) indicating the machine is in STANDBY mode

STARTUP – When the coin-reject button is pressed and held for 3 seconds, the machine will be powered on in two stages: first the DMD power supply (DMD relay), wait 1 second, then switch on everything else: force-feedback devices (noisemaker relay), and PC with screens (rest relay). Finally the arduino will “push” the PC power button, starting up the PC. The DMD PSU is switched on first, because otherwise the PinLED DMD will draw its power from the PinDMD┬ávia USB which cannot supply enough power and break the board.

ON – If everything from the STARTUP stage has been completed, the machine goes in ON mode. While ON, it will periodically monitor a pin to see if the PC PSU is still on (supplying 5V) and it will monitor the headphone jack to see if headphones are plugged in. If so, it will switch off the power supply to the force-feedback machines (night-mode switch).

That’s the idea. The next step will be building this circuit on a breadboard with the relays replaced by LED’s and programming an arduino sketch. What do you think, will this work? Discuss!

2 responses to Pinball Project: Arduino Pinball Power Controller

  1. I would avoid driving the relays directly from the arduino. I would consider using a transistor as a switch or a FET, some like to use darlington pair chips or opto-isolators with darlington drivers. You can refer to real pinball schematics for those ideas by searching for pdf schematics on the solid state machines (not the electro-mechanical ones). I’d also put a diode across each relay coil to handle the voltage spike produced by the inductance when they are turned off, that itself could cook the Arduino without the buffer ckt. Note that Jeri has one in her 555 design for that purpose. They are reverse biased on normal operation. I usually measure the current draw of what I’m going to drive and make sure I’m not exceeding the pin drive spec as well as the total power spec for all pins, in the event your drive multiple pins or worse case all the pins. Many forget to look at the total power spec when doing these designs.

    I’m looking at doing the same thing, I need over 100 I/O pins so I’m planning on using the I2C capability and 16 pit IO expander chips with the Arduino.

    Look at some of the driver boards from solid state pinball machines, schematics are online.
    You can get ideas there, as well as from various arduino forums.

    Nice thing about the opto isolator chips is you can isolate the power of the arduino from the power of the other devices. It looks much like an LED (refer to the specs) from a load standpoint. For the pinball machine I’m looking to build I’ll be using 6.3 volts for the bulbs (want it old school), 12v coils and 50 volt coils that came with the original unit.

    Good luck with the project.

    • Thanks for the tips Dan! I am fairly new at this and had gotten some more tips in order to save my Arduino from the inevitable death in the hands of a newb :-) In an update in a later post ( I updated the schematic to drive the relays via a transistor and added the flyback diode to protect against the voltage spike. However, I have just added a hidden button on the bottom of the cabinet to power on the PC and a smart-power-strip then switches on the other devices. The headphone plug has 2 switches triggered by plugging and unplugging headphones, so I used one to break the +12VDC line that powers the force-feedback devices and another one to break the 230VAC from the speaker set. That way I did have to add one more button to the cabinet, but made the whole solution a lot simpler, plus I get to keep the arduino for another future project. I am planning on using opto-isolators to hookup to the flipper solenoids with as little delay as possible.

      Can I ask, what project are you working on that requires 100 I/O pins? I am curious! Good luck and thanks again for the tips that save me from frying an Arduino :-)