Wiring : Buttons

Well, we’ve hit a major milestone with the project. From an electrical perspective, I had four specific areas I was focused on implementing:

1) button integration into the PC
2) general illumination (lighted buttons, lighted flippers, etc)
3) force feedback for flippers, jet bumpers, etc
4) LED flasher emulation

This week, we’ve implemented functional aspects of 1-3! This post will be focused on #1 – the button integration into the PC.

I have also worked on the configuration of the virtual pinball software to make button illumination intuitive. For example, if you are in a screen to choose a pinball to play – the START button flashes on the cabinet, telling the user to press START to play.

First, Some Pontification and Key Links

For those of you embarking on a similar project, you need to understand this next sentence clearly. The software that drives your virtual pinball and integrates analog to digital is not supported and is not well documented. If you’re not technically astute, such as programming in a scripting language or troubleshooting operating system DLL configurations, this project is not for you.

If you’re still reading and still want to tackle this, I have some great resources and tips for you. Let my personal journey of trying to solve some challenging puzzles be a little easier when it’s your turn.

1) When you’re stuck on configuration, the internet is your friend. There are two forums you must join. One is vpforums.org and the other is hyperspin-fe.com. The first is focused on the actual pinball emulation software. The second is focused on the slick front end that makes your cabinet easy to use by the non-techie person.

2) There are two projects that are so well documented, that you can use them as good reference points on just about every aspect of working on this project. I keep referring back to these two projects and it’s worth sharing them here:

chriz99’s Big Bang Pin 2008 (This is actually the builder’s second project, so he really gets it right this time around.) http://www.hyperspin-fe.com/forum/showthread.php?13146-Big-Bang-Pin-46-30-15-6-LED-Widebody-%28custom-artwork-bezel-less-deep-playfield%29

DeeGor’s LEGO Batpin 2010 (This guy did an especially good job in outlining some of the more complicated electronic aspects and has the cleanest wiring set up I’ve ever seen.)
http://www.hyperspin-fe.com/forum/showthread.php?14625-LEGO-Batpin-Build-Blog-%2846-19-32%29

Button integration into the PC!

The virtual pinball and front end software are driven by simple keyboard inputs. This section is about installing physical buttons, like a flipper button, and having it send a signal to the computer to press a key in its place. For example, the virtual pinball software requires a RIGHT SHIFT key entry to activate your right flipper. Here, we install a right flipper button to send a RIGHT SHIFT every time I hit it.

This is the simplest part of this project and was why I chose to tackle it first. Make your life simple and purchase an iPac unit. This unit emulates a keyboard when a circuit is closed on a button. Too many people try to cheap out by ripping a keyboard apart and integrate it with buttons. This is not worth the $20 savings. My goodness – if you’re going to cheap out on a project of this magnitude, don’t bother starting.

Get the i-Pac from Ultimarc in Europe: http://www.ultimarc.com/ipac1.html

Buttons are simple.

#1) Plug the iPac into your PC via USB. (In the pictures, the iPac is the green circuit board with screw connections along both sides.)
#2) Buy a terminal block for your ground. Connect your button grounds all together in a daisy chain where you physically can. Where you can’t, just connect directly from the button’s ground to the terminal block. Connect all grounds to the terminal block. (In the pictures, an example of a terminal block is above my pinky finger.)
#3) Connect the ground terminal block to your iPac’s ground. I repeat, all grounds on all buttons need to be joined together to the iPac ground.
#4) After all the buttons are grounded, wire a single strand from each button to an assigned iPac slot. When your button closes a circuit, it triggers the iPac to signal your computer to enter a specific key. (In the pictures, the START button is shown embedded in cardboard. Black wire is the ground. Yellow is connected to iPac.)
#5) Get the free WinIPac panel designer software and take each button, map it to a keyboard key and voila — you are done.

Refer to the Pinball Electronics 101 PDF for schematics for this simple wiring setup. http://maxxsinner.blogspot.com/ Link is in upper right corner.

An aside: Some buttons use a microswitch which has three connections, instead of just two. This throws off some folks. Here is a simple tutorial to explain how you want to wire this switch. http://arcadecontrols.com/arcade_wiring.shtml Wire it so that it is “normally open” (NO) and not use the “normally closed” (NC) function.

A second aside: Some buttons have built in LED or bulb lighting. Don’t worry. We’ll get to that. Leave those connections alone for now. (In the pictures, that’s the red and blue wires on the switch.)

If this is too complicated for you to figure out, then keep in mind that every step from here on out is exponentially more complicated than this. You will be calculating resistor values, sizing fuses, adding up amperage loads. If that isn’t your cup of tea, this project may not be for you.

Advertisements

Buttons are installed!

I just got back from my family’s vacation to Captiva Island, Florida. (Highly recommend it!) I had just received my Electric Ice 2 pinball flipper buttons the day before my flight, so I was really itching to install these. Buy these excellent buttons at groovygamegear.com. These flipper buttons are authentic with a twist – they are white with installable colored LEDs to change the colors at will. Even better, you can upgrade the switch to a classic leaf switch. I highly recommend this $2 upgrade because it allows you to adjust the sensitivity of the buttons and removes the non-authentic “click” of microswitches.

Just about all the buttons are installed now. You can see from the pictures that I used black wires for ground and yellow wires to connect to the iPac. I chose yellow wire to signify that they are button wires and for the front of the cabinet. Be sure to color coordinate because the wiring is going to triple in complexity once we move to lighting and force feedback!

I really want to keep this cabinet simple and not have 1,000 buttons. This is because I want guests to walk up and operate the pinball without any assistance. One button I was able to remove from the panel is the annoying “credit” button on some others’ cabinets. There is no credit button on pinballs so why add one? What I decided to do was add a microswitch to be triggered by the two lighted coin return buttons on the coin door. It is 99% intuitive and that 1% non-intuitiveness allows me to not have to hand out quarters to guests and keeps the cabinet simple and clean.

In the third picture, you can see I simply glued a microswitch, typically used for roll-over switches on a traditional pinball, in the place where my finger is pointing. I will add a spring to the actual coin return feedback (the big black thing behind the switch) to keep it taut and prevent the switch from being held down permanently. I feel this is a much simpler solution than the brackets people are building on other projects. Time will tell how it plays out.
(Oh, and in reference to my problem in the prior post, I did sleep on it and came up with a simple solution. I cut out a cardboard replica of the bottom of the cabinet and place it behind the front panel box. Now I can measure all the wiring to the proper length without having to build the cabinet yet. Perfect!)

The ball of wires

Image

A mocked up cabinet front has been made out of thick cardboard on the left.

Well, I started wiring for the buttons. If you look in the left of the picture, you’ll see that I mocked up the front of the cabinet in thick cardboard. I mounted the coin door and four main buttons, START, EXTRA BALL, EXIT and LAUNCH BALL. The only thing missing is the plunger which will be added later.

The wires are being run from the box to the iPac which is sitting on the table next to the Space Shuttle. The iPac is connected to the PC via USB.

The iPac PCB emulates a keyboard when a closed circuit is established via a button. I daisy chained all the grounds for the switches and tested various buttons to register. Everything seems to function as planned…except…I’m not really sure how long to run the cables.

My original logic of building all the electrical functions FIRST isn’t quite going as planned. I’d hate to fabricate the cabinet only to find out I have to rewire some of these circuits. SO, I’m going to sleep on this. If I can’t think of anything creative, I might pause all this electrical work and begin fabrication of the body of the pinball and migrate the beginning of my wiring to the actual cabinet.

Basic Functionality Complete

Phase one is nearly complete. I’ve got primary functionality in place. I wish I could say it was easy, but it took a good portion of my weekend. Here is what is set up:

Windows 7, Visual Pinball 9.1.2, Future Pinball 1.9.1.20101231 and HyperPin 1.0.

Visual Pinball links up with PinMAME and UltraVP to emulate pinball tables, backglasses and dot matrix displays.

Future Pinball is a newer version of Visual Pinball and is less authentic, but has more realistic graphics and easier set up. Most pinball enthusiasts install both emulators in their cabinets.

HyperPin is the front end screen that allows you to seamlessly jump between pinball tables in a very slick  arcade-style way, utilizing the buttons on the pinball cabinet.

Attached is a video to show how it looks. http://www.youtube.com/watch?v=eAs6vj9t88A

This was not a straightforward installation. If you’re not savvy with windows, be ready for extreme frustration and the chance that you won’t pull it off. I’m not kidding. Get your brain into troubleshooting mode. Some tricky things to keep in mind for those of you trying to get all this installed:

  • If you’re using Windows 7 64-bit and are installing for a cabinet set up, use Tweegster’s install guide as a reference point. http://www.vpforums.org/index.php?automodule=downloads&req=idx&cmd=viewdetail&f_id=4070 Just remember, his guide is old and some parts are incorrect. Use your troubleshooting skills and have lots of patience (or beer.) His guide is just that — a guide, not a guarantee that it will work for you.
  • Tweegster tells you to remove error prompts. Don’t bother. Those have been removed a while ago. Tweegster’s help file also gets the fields in the HyperPin XML editor backwards. This will cause you to want to slit your wrists. Don’t bother. Just flip them around or follow my suggestion in the next bullet. Those are just the two things I remember. There are more. Put away the razor blades before you start reading the instructions.
  • There are two “names” in the HyperPin XML editor (“Game Name” and “Description”). Make them both exactly the same and make those names match the ROM, UVP, table and HyperPin files, too. I’m not kidding. They all must match. Pick a naming convention and stick with it because you are going to do this hundreds of times.
  • HyperPin has “Media Packs” which hold the wheel graphics, table graphics and backglass images used while the front end loader is running. Remember, these files along with all ROM, UVP and table names must all be exactly the same. None of the authors of these files used a consistent format.
  • Some enthusiasts misspell “Addams Family” in this way: “Adams Family” Save yourself a lot of heartache and try searching with this spelling. This is true for many of the tables – there are errors everywhere.
  • For Future Pinball, you need a keyboard with a “Scroll Lock” key. I’m not joking. If you have a Mac keyboard or slim keyboard attached, it’s not likely to have a scroll lock key. You need it to adjust the playfield and backglass sizes in Future Pinball. Yes, I had a keyboard without that button. It’s OK – I figured out what to do before I went on a murderous rage.
  • Oh, did I mention that you need beer, patience, troubleshooting and a nice, calm demeanor. Yeah, good luck with that and like I said, put away the razor blades before you start this phase.

 

It’s alive!

Image

It's alive!

On Monday, I received the 46″ flatscreen LED LCD! As a result, we were able to plug the newly created embedded PC into the monitor and test out everything.
We had success on first boot!
We installed Windows 7 and the most current NVIDIA drivers for the two GeForce GTX 460 cards. We did not enable SLI as we will be powering three monitors in this pinball cabinet.
All week, I will be waiting for the last two monitors and cables to arrive in the mail. I hope this weekend to be able to have a live, functioning HyperPin front end with a handful of pinball tables to play. If we achieve this milestone, we will shift to some fun electrical work with the iPac and LEDwiz to build out the analog side of the electronics. Fun stuff.

Take a look at the picture. You can get a sense of the scale and size of the playfield screen as it is sitting next to my Space Shuttle pinball. Before installing into a fabricated widebody cabinet, I will have to decase the monitor to get it to fit. Don’t worry – we’ll have pictures if I don’t electrocute myself.

The Brains

Image

The Brains

All of the PC components finally arrived. Time to assemble!

I measured the interior of my Twilight Zone cabinet to get a rough sense of the dimensions of the MDF drawer that I will install to hold the PC components and all iPac and LED connectors. We cut out a cardboard square to size and put the PC together and determined the proper orientation of the components on the drawer. I’m going to research a motherboard tray that will fit on the MDF cabinet tray to hold the key components securely, such as the video cards and motherboard itself.

Something like this will be on order: http://www.frozencpu.com/products/12237/cpa-518/Lian_Li_Replacement_PC-Q06_Modders_ATX_Aluminum_Motherboard_Tray_-_Anodized_Red_Q6ATXR.html