Archives For Project Pinball

T2 Backglass and DMDYeah, I know an update is long overdue. To be honest: I have spent so many hours breathing solder fumes (I have an extractor, but still) that once I was done soldering wire after wire after wire, I just wanted to see if the machine was working with the new stuff installed and ended up playing a bit, as opposed to writing an update here.

But, here it is! Quite some progress has been made: All the hardware I had lying around has been added to the machine, and wired up, that means: RGB LED’s at the top of the playfield, rgb controlled flipper buttons, 2 strobes, 7 contactors (modified for louder punch), headphone jack that enables “nigh-mode” when headphones are plugged in (switches off the speakers and all force-feedback items), lighted control buttons, plunger, and 3-axis accelerometer to detect nudging.

In addition, I added the metal side rails, and found a sheet of glass to put on top of the playfield. Luckily I took the measurements from an original Williams Widebody machine so the tempered playfield glass for such a machine could easily be added to the machine.

Finally the backbox is mounted on top of the playfield, and the 28″ backglass monitor was put in place too. But, the backbox does need a lot more work: speaker grills, rgb led lights on top and maybe some more strobes and a sheet of glass or plexi to create a bezel in front of the backglass monitor.

But, we recently had some get-togethers with friends at the house, and I put it all together as well as possible which meant: partytime! It was awesome to see friends really get into playing as if it were a real pinball machine. Feels good to see something being received so and realizing it all started with a few sheets of MDF several months ago.

Oh, and I found a real “Revenge From Mars” Pinball2000 machine at the parts supplier where I got the glass from, I added a picture of my wife playing the machine below:

 

Contactor and flyback diodeThe contactors that came in yesterday needs two modifications before they can be put into the pinball cabinet:

1. add a flyback (aka snubber) diode to each contactor.
2. make the clicking sound louder when the coil is energized

This post is about the first mod: adding the “flyback” or “snubber” diode. So what is a flyback diode? Wikipedia puts it as follows:

 

A flyback diode (sometimes called a snubber diode, freewheeling diode, suppressor diode, or catch diode) is a diode used to eliminate flyback, which is the sudden voltage spike seen across an inductive load when its supply voltage is suddenly reduced or removed.

When the contactor clicks, it means the coil inside is charged by applying power to the A1+ and A2- terminals. When you remove the power from those terminals, the energy still present inside the coil will flow back damaging the circuit. The diode prevents that from happening and damaging other components in the circuit.

There are various threads on the HyperSpin forums about contactors, I found the “All About Contactors” thread particularly helpful. However, I did not really like the aesthetics of the most common solution: soldering two pieces of wire to the diode and put it in both screw terminals (A1+ and A2-). I know this sounds stupid, since those things will be inside the machine, but I guess that must be a mild form of OCD ;-)

This is the solution I found, which has a cleaner look to it I think:

First, get a contactor and a 1N4007 (datasheet) diode. Also have needle nose pliers and a small flat-head screwdriver at hand:

Then, pop off the beige top plastic plate by pressing the three tabs on either side of the contactor. Then remove the screws on terminals A1+ and A2-:

Next up: fit the diode inside the small space on top of the black exposed plastic and bend the legs downwards onto the metal plates that the screws for A1+ and A2- screw into:

Next put the screws back in A1+ and A2-, pushing the legs of the diode onto the metal plates. Finally put the beige top plate back on and marvel at your accomplishment!

Easy and looking good I think! Just a few minutes work and no soldering iron required, which is nice after soldering hundreds of connector pins over the past few days.

 

More bling arrived for the pinball machine today: 7 Siemens contactors. These are basically sizeable solenoids that will be hooked up to the LedWiz and booster boards and are fired by events from the pinball machine rom. What that means? That when these are mounted inside the cabinet, they will give a nice sounding and feeling thud to the machine when you push the flippers, or when the ball hits the slingslots or bumpers in the software. Should add a lot of force feedback, making it that more realistic.

All of these require installation of an additional flyback diode and I want to do a modification to them to increase the sound they make when the coil is charged: louder noise, heavier thud!

So, more on these later. For now, let me finish with a picture:

7 Siemens 3RT1016-1BA42

A quick update on the power controller schema. The updates:

  • The first version showed relays connected directly to the Arduino. In this version, the relays are properly connected; with a flyback diode (to prevent current flowing back when the coil in the relay is discharged). And a transistor to prevent drawing too much current from the arduino pin.
  • To detect if the pinball machine is still switched on, the previous schema used a +5V DC line from the PC PSU on an analog input on the Arduino. While that may work, it is better to keep the PC PSU electronically disconnected from the power controller. Instead, a photoresistor will “look” at the PC Power LED (that I will take out of an old PC case) and detect if the PC is on or off that way.

The new diagram:

Click for large version

Click for large version

Looking good?

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!

pinballinnovationsThe Verge published a very nice post on the life and death of the american arcade. Go see it, it’s a must and includes a short documentary on the subject. Very nice!

Arcade and pinball machines have not been as big in europe as they were in America, but I remember very well spending many quarters in a local arcade on arcade games like Mortal Kombat, Manx TT, Sega Rally Championship, Area 51 and pinball machines. I especially remember The Addams Family machine where I once was able to have Thing come out and grab the ball!

Lets start with: Happy New Year to all makers! I know, I know, its already been 2013 for a whole week, but I have had a few days off so here you go :-)

Terminator 2 - Chrome EditionDuring the X-Mas en New Year celebrations, I hooked up the screens and the DMD to the PC and was able to connect the iPac 2 with a custom made wire so that the controls on the cabinet could be used to play some virtual pinball. Several friends and family had the opportunity to play and they all loved it. Many people had played pinball years ago, and got right back into the game like they used to. That also learned me a valuable lesson: let’s not hook it all up again until the thing is pinball-proof: there is no tempered glass on top, and I am not sure the playscreen would survive some serious nudging action. All in all: we had a blast playing together (mostly Medieval Madness and Terminator 2).

But, the project is not nearly finished yet! So, next up is wiring. A lot of wiring! All the buttons and switches on the cabinet (14 or so in total) need to be connected from the front of the cabinet (where the buttons are) to the back (where the keyboard encoder sits), so that means making a custom cable.

In addition to the keys, buttons and switches, there are also 32 output channels available via the LedWiz. These are used to flash stroboscopes, RGB Leds, electro motors of various types, etc. All these need to be powered and connected as well, so more cable making, more wiring.

Inside the cabinet I am keeping the wires used to connect inputs separated from the cables for outputs as much as possible to prevent interference. I made one cable with 1 ground line, daisy-chaining all the

Medieval Madness

common connectors of all the switches and hooking it up to the GND on the iPac, and a separate wire for each button to connect to the NO (Normally Open) terminal on each switch. That cable runs along the right side of the cabinet, then crosses the front panel (running the wire underneath the coin-door) onto the left buttons.

For hooking up the output bling-bling I am making several cables to run along the leftside of the cabinet. I have several different sizes of Molex type connectors, so I there will be several cables, instead of one big one for all 32 channels. That’s because I have those connectors and want to use what I have lying around, plus not all the devices are close together. The flipper-buttons have tiny RGB leds inside them, and are located at the front of the cabinet. But the shaker motor will be located somewhere towards the back.

As said, the controls are working now, and I am working on making the cables for the outputs. Also, all PCB’s to connect the inputs and outputs, are located on the PC tray, so I am planning to add connectors inline in the cables, so the wiring inside the cabinet can remain there, when taking out the PC tray. And finally, the headphone plug has the audio wire soldered on now. In the pictures you can see 6 unused metal tabs, those are two switches that get triggered when the headphone is plugged in. That way, the eventof plugging a headphone in or out can be used to trigger a reaction. I plan to use it to switch off the power to the electro motors and contactors so that the machine makes no sound other than what you hear on the headphone when you plug it in. As soon as the player unplugs his/her headphone, it will switch all the bells and whistles back on.

Wow, it has been over 2 months since the last update on the pinball machine! But that has a reason, the past months have been very busy with everything but the pinball machine: work, jobs in and around the house, etc. In short: life happened :-)

LedWiz

But, the past two weeks or so, I was able to spend some time on the machine again and some visible progress was made: the legs have been mounted to th

e machine, so it now stands on its own four legs. That felt like a milestone since the slightly outward facing legs really add to the overal look of the machine.

Next, the PC was mounted onto the drawer, cable gutters were added, and several of the additional PCB’s have been bolted to the drawer as well:

 

1) Ipac 2 FS32 – keyboard encoder: this little device connects to all the buttons and switches on the machine, sees when the switches are triggered, and sends them to the PC as keyboard presses. Those buttons have to correspond to the keys in the pinball simulator software. Besides buttons, there will be a few other switches or sensors in the machine that act as keyboard presses: when opening the coin door for example, or when entering a coin into the machine: if it is the right coin, a keypress will be sent telling the computer credits were inserted.

2) LedWiz 32-port USB light controller. This device connects to the PC via USB, receives signals from the computer and uses those signals to switch on and off one or more of its 32 output channels. As the name suggests, this controller is meant to be used for driving LED’s and it is able to drive 500 mA max. However, in this build, I am going to use 3W RGB LED’s, and a few electromotors that require a lot more juice, so that it why I will also use:

3) 2x Booster Boards. Made by VPForums community member Zebulon. These boards connect to the LedWiz outputs and use those signals to switch output ports that are capable of driving much larger loads. Each booster board contains 16 channels, so 2 are required if you want to boost all 32 channels of the LedWiz.

After all that was taken care of, I was unable to resist my urge to see if it would all work. So, I put the playfield screen in, connected it to the PC, added the backbox monitor and the DMD and fired the machine up to see if it works! It does, and though the video quality is lousy, I am sure you can understand the excitement when it all lit up! Check the video below:

Now that all the holes have been cut, slots routed and all buttons have been test-fitted, it is time for paint! The machine will get a black base color, and on top of that will come custom art-work. I am not sure yet what the artwork will be, and if I want to design it myself or have it designed by someone who knows what he’s doing. But first: painting over the past few days the cabinet, backbox and panels were sanded and primed with an MDF primer paint several times. The hardware store advised to use a special MDF primer as it would better cover the MDF than normal wood primer. I was skeptical but it seems to have worked out great.

Paint it blackOn previous projects I used normal primer which would then require 2 to 3 layers of black paint. After using the MDF primer, one layer of satin black seems to have covered the wood completely and evenly.

Unfortunately, there are a few spots that need some touching up as I was working in a small space with low lighting at night which caused some problem areas to go unnoticed until daylight the next day :-) I think I did not properly sand it down or maybe the problem-spots were not completely dust-free.

One of the spots (on top of the backbox) I tried to redo by sanding down and applying paint again, but that did not work out very nicely as you can clearly see it was touched up. So, I guess sanding the whole panel down and repainting it the way to go.

Last lesson learned: I tried painting the drawer mechanism by applying a thin layer of paint. Unfortunately, it greatly affected the way the drawer moved in and out. I figured it would before I started, but not that it would be this bad. Lesson learned, I think I’ll replace the drawer slides.

Anyway: the whole machine is now solid black. Some area’s could do with a bit of touching up here and there, but since I will be standing over the cabinet a lot to add the wiring of the electronics, I will do that once I do not need to be inside the cab anymore.

 

 

A real pinball machine contains many devices that make noises; bells, vibration motors, knockers, siren, etc. Like those machines, this virtual pinball project will also contain some of these feedback methods (as mentioned in this post), to make it all seem like the player is playing a real table, as much as possible. However, when it’s nighttime, the other occupants of the house may not like having to hear the fun fair sounds when they’re trying to get some sleep. So, a “night mode” switch will be added. This switch will be a manual way to switch off the power supply to all the extra’s.

Lumberg KLB PSS 3

Lumberg KLB PSS 3, 6.35mm stereo jack plug with 2 built-in switches that activate if a plug is plugged in.

But switching all the noisemakers off seriously reduces the insensity during play. So, instead playing the sounds over headphones would be an option; still switching off the bells & whistles, but everything that is normally played over the speakers can then be heard on headphones.

As it turns out, some headphone plug components contain one or more switches that are activated when a plug is put in. So, I plan to hookup such a switch to an interrupt on a microcontroller, possibly an Arduino, in order to program the behavior once a headphone is plugged in. I am going to use a Lumberg KLB PSS 3 for that.

But first: drilling the holes for the plug. On the front is a small hole to put the plug through, on the backside is a larger hole to house the rest of the plug with the built in switches. I took some pictures in the process, you can check them below as usual.