May 2012

Wireless Pinball Score Reel Control

I was reading the April 2012 issue of Elektor and spotted an article by Ludovic Mézière on building a Thermometer using Giant Gottlieb® Displays.  I was really intrigued by his use of large mechanical scoring reels from a 1960s pinball machine.  So I set out to investigate how costly it might be to obtain such reels.  Once I learned that the technical term for these were "score reels" it became somewhat easier to search eBay for them.  After some further research, I particularly liked the Gottlieb Decagon units and was able to purchase 3 working ones from a 1973 Gottlieb Hotshot machine for a total of about $50.  The Gottlieb Decagon mechanism is a nice one and is illustrated in Roman Garbark's patent from June of 1968 ( "Doc" Garbark was head of mechanical engineering at the Gottlieb pinball company).  Chicago-based Gottlieb made pinball machines since its founding in 1927, was acquired in 1977, went through several transfers of ownership, and eventually ceased production in 1996 (Wikipedia).The Gottlieb Decagon score reels use a solenoid to advance the reel.  They also have a number of connections so the numeric position of the reel can be sensed.  The solenoids are usually triggered by 24VAC.  I found that an old 18V DC 2.23 Amp printer power supply I had was sufficient to trigger the solenoids -- albeit one at a time.  I used only 4 of the numerous wires coming from each reel.  I used two wires which get connected when the zero is displayed.  And then, of course, the two wires to energize the solenoid.  I had some 5V DC relays (Axicom D2n) on hand which could be directly driven from an Arduino and could handle the current and voltage for the solenoids.I haven't put a case on the unit yet -- since I have some more Decagon units waiting to join in (I got 4 more Decagons recently for half the price of my first 3 but I'll need to clean them to get them into working order).  I used 10-24 threaded rod and nuts to connect and space the reels appropriately  (1.6" between the metal mounting plates worked well).The video below shows the unit being set through the browser on an iPhone.  My original plan was to use a set of 4 reels for a clock but I'm also thinking about using it for a web hit counter.
I used a full-sized Perma-Proto board from Adafruit to put together the interface.  I tried out the Patch shield as a way of coupling the Arduino controller with the Perma-Proto board.  For my 3 relay board this utilized all 8 wires on the RJ45 coupler (5v, ground, 3 zero sense lines, and 3 solenoid triggers).  Three 4-wire terminal blocks were organized to connect with the reels.  One 2-wire block was used to connect with the 18V supply.  At first I powered the Arduino separately then simplified things by adding a Pololu step down regulator  to provide a good 5V supply from the 18V.  It turned out the easiest way to connect the regulator was using Adafruit's 3.5 mm terminal blocks.  Since I had the power rails on one side of the Perma-Proto at the 5V level (for the Arduino) and the others at 18V for the solenoid, I needed an easy way to mount the terminal blocks so the pins fit the power rails.  The Adafruit 3.5mm blocks can be positioned at a diagonal to precisely connect with power and ground on the rails.  This gave me the option of driving the Arduino power from the board with the step down or powering it separately on the Arduino itself by removing the step down.  Through use of the relays, it's interesting that just like the score reels themselves the interface board is purely electro-mechanical.  (Note: if you don't have relays on hand, an inexpensive way to drive a set of 4 might be with Seeed Studio's Relay Shield which is available at Radio Shack for $20 but it looks like it needs an external 9V supply).On the other end of the CAT5 patch cable from the Perma-Proto interface board is the Arduino stack itself.  In this case, I wanted to make the counter controllable over WiFi so I stacked an Arduino Uno with a WiFly shield with the Patch shield on top.  When using the step-down the power comes over the CAT5 as well so no other connections are needed with the Arduino stack.  The Arduino sketch runs a small web server which accepts new reading values for the score reels.  When the unit powers up, it zeroes all the reels.  Whenever more than one reel needs to change, I stagger energizing the reel solenoids to limit the needed power.  The settings I found that worked best for my reels was 50ms to pull the solenoid down and a delay of 300ms to allow the solenoid to pop back up and the reel to turn.  If I energize the reels in sequence, the reels do actually overlap in their movement due to the longer time for the mechanical movement of the reels to take place.  Here's a link to the current sketch that's running on the Arduino.  I'll generalize it further and make improvements as I add additional reels.  I put the wiring for the Perma-Proto into Fritzing but haven't had the time to add the needed terminal blocks, DPDT relays, and the Perma-Proto itself to the Fritzing libraries.Here's the supply I used from an old HP printer.