<<

VIRTUAL MACHINE BUILD

Monday, September 30, 2013

Contents

Introduction ...... 4

The Research...... 5

The Parts ...... 6

Computer ...... 6

Cabinet ...... 6

Electronics ...... 7

The Computer ...... 9

Hardware ...... 9

System Software ...... 10

Operating System ...... 10

Drivers And System Software ...... 10

Other System Settings ...... 11

Visual Pinball ...... 11

VPinMAME ...... 13

Backglass Server ...... 13

Future Pinball ...... 14

Electronics ...... 15

Cree Lights ...... 15

Contactors ...... 16

IPac...... 17

LedWiz ...... 17

Page 1 Analogue Nudge ...... 17

Flipper Circuits ...... 18

Internal Mains Power ...... 19

Playfield Screen ...... 21

Decasing the Playfield TV ...... 21

The Wood Cabinet ...... 22

Design ...... 22

Cutting ...... 22

The Holes ...... 22

Routing Sides ...... 23

Putting it Together ...... 23

Flipper Holes ...... 24

Painting the main body ...... 24

Legs ...... 24

Lockdown Bar Assembly ...... 25

Top Plate and LED holes...... 25

Backbox ...... 25

Integrating Electronics, TV and Wiring ...... 27

Ventilations and Fans ...... 27

Cree Lights ...... 27

Wood Mounting the Major Modules ...... 28

Components And Modules Integration ...... 28

External USB Port ...... 28

LedWiz ...... 28

Wiring ...... 29

Flipper Switches ...... 30

General Switches ...... 30

Page 2 On/Off and Standby Switch ...... 30

The ...... 31

The DMD ...... 31

Finishing Touches ...... 33

DMD Cover ...... 33

the Playfield Glass ...... 33

Front-End and Component Configuration ...... 34

Hyperpin Front-End ...... 34

LedWiz ...... 34

IPac...... 36

Configuring Analogue Nudge ...... 37

Screen Configuration ...... 38

Install Tables and Table ROMs ...... 38

The Finished Product ...... 41

Page 3 INTRODUCTION

This guide is a record of how I researched, designed and built a virtual pinball machine. The goal was to build a great and simple machine.

The project took about 6 months from start to finish, which translated down to two or three weeks solid work.

This record is specific to my build which was built on the hard work of the many people that have done this project previously. It collects together in one place all the information I collated and I hope will be useful to others who have or intend to embark on this project.

My UserID on VPForums is kenrunio and please feel free to contact me with any questions.

Page 4 THE RESEARCH

The research process was long and took a couple of months.

The research consisted of a lot of late nights, and visiting various websites, reading through the blogs of other people that had done the same thing to start with as well as researching what parts would be needed and how much they cost. In addition, there was a lot of learning, particularly about electronics.

http://vpcabinet.wordpress.com/

http://www.casemodgod.com/

http://www.hyperspin-fe.com/forum/showthread.php?4826-46-quot-30-quot-19-quot-widebody-cabinet

http://gameroomblog.com/guides/the-making-of-a-pinball-2000-virtual-pinball-machine

http://nickvegas.tv/2011/12/virtual-pinball-machine-week-1/

http://pinside.com/pinball/forum/topic/almost-got-my-virtual-pin-built

http://www.arcadecontrols.com

Various websites of others who have built a pinball machine

There are key websites with expansive forums discussing virtual pinball builds. These also host some of the software needed for the build, as well as links to other downloads that are required.

http://vpforums.org

http://hyperspin-fe.com

http://vpuniverse.com

http://futurepinball.com

Main websites with forums and downloadable software

There are other useful websites. However, the most useful one which includes the original manuals of the actual pinball machines being replicated as well as the list of all pinball machines ever created with their rankings, is the Internet Pinball Database at http://www.ipdb.org.

Page 5 THE PARTS

Parts were ordered through Amazon Prime where possible, as well as EBay for the cheap stuff from China like LEDs and some of the switches. Pinball specific parts were ordered from specialist shops. The parts and actually the process in general, was really divided into 3 main sections: the computer, the cabinet and the electronics.

COMPUTER

The aim was to use a mid range computer geared towards gaming at the core. Visual Pinball, which is the main pinball software running on this machine, is not particularly processor taxing and does not need a high-end machine; however, ordering something cheap and then having to reorder something better later would turn out to be much more expensive in the long run.

The graphics card, the most important of part of the computer build, was mid to high end. This is where any bottleneck could occur, if there ever was one. Using a better graphics card also future proofs the machine, somewhat.

A potential improvement to the list of parts below would be to use a solid state drive (SSD) instead of an old SATA drive. In terms of potential for savings, 4GB of RAM was more than enough, the PSU only needed to go up to 450W or so and the GPU could probably have been safely downgraded to a GTX 660.

Part General Details Source Price in $

Processor Intel i5 3570 Intel Core i5-3570K Ivy Bridge 3.4GHz (3.8GHz Turbo) LGA 1155 77W Quad-Core Amazon Prime 214.99 Desktop Processor Intel HD Graphics 4000. Code: BX80637I53570K.

GPU Nvidia GTX 660TI Gigabyte GeForce GTX 660 Ti 2GB GDDR5 PCI-Express 3.0 DVI x 2/HDMI/Display Amazon Prime 289.00 Port SLI Ready Graphics Card GV-N66TWF2-2GD' by Gigabyte

Motherboard Z77 Motherboard ASRock Z77 Extreme4 Intel Motherboard. Amazon Prime 135.00

RAM 8GB DDR3 Crucial Ballistix Sport 8GB kit (4GBx2) DDR3-1600 1.5V 220-Pin UDIMM Amazon Prime 55.24 BLS2CP4G3D1609DS1S00

Computer Power 650W PSU Cooler Master Silent Pro M2-620W Amazon Prime 105.02 Supply

Hard Drive 320GB Recycled an old one

CABINET

These parts include the cabinet itself as well as any electronic parts that are external to the cabinet such as lights, fans and switches. As none of the parts needed to be high end, here the goal was to be as cheap as possible. The exception was the fans which were used for the blue LED glow they gave out.

In terms of areas for potential savings, two fans rather than three could have been used and even the fans used were better than needed. Also three Cree LEDs would have also been fine, rather than five.

Page 6 Parts General Details Source Price in $

Cab Fans 3x Large Fans Cooler Master MegaFlow 200mm Blue LED Fan (R4-LUS-07AB-GP) Amazon Prime 44.19

Glass Glass Slightly darkened (10%) glass Modi’in Glass 43.06

Wood MDF 18mm MDF Wood Merchant 200.00

Pinball Parts for Cab Parts Ultimate Cab-Builder's Kit (Standard body) VirtuaPin 369.95 Cabinet

Flasher Lights 5x Cree MC-E RGBW 5x Cree XLamp MC-E RGBW RGB+W LED Emitter mounted on 20mm Star PCB E-Bay 68.50

Heat Sinks 5x Cree Heat Sinks Cooling Element for Highpower LED E-Bay 14.90

Flasher Domes 5x Flasher Domes Domes covering the Cree's Marco Specialties 6.75

Large Button 1x Launch Ball Button Bally Launch Ball Button - Yellow Marco Specialties 5.99

Buttons 4x Push Buttons Green, Red, White and Blue STEALTH Illuminated Reduced Footprint Pushbutton E-bay 9.00

2x Electric Ice Flipper Flipper Buttons Electric ICE 2 Lightable Horizontal Pushbutton GroovyGameGear 8.48 Push Button

flipper button RGB Led Drivers RGB Led Drivers GroovyGameGear 5.90 lights

ELECTRONICS

Apart from the LedWiz, IPac and of course the TVs, the electronics needed are fairly cheap parts and standardized. These were purchased either in the US at one of the online electronic retailers, or through EBay mostly coming from China. The larger parts such as the TVs were bought locally.

The decision behind the TV purchase was to maximize the size of playfield. The TV was selected based on a height which was as close as possible to the maximum width, with the smallest possible bezel size. For the back box, again a TV was selected with minimal bezel size that filled the full width of the space.

In terms of potential areas for savings was that five contactors could likely do the job of the seven which I had ordered. The TVs could have been bought second-hand though the playfield had very specific requirements: high definition, thin bezel and an exact height, which was only really findable in a store which sells TVs.

Parts General Details Source Price in $

LedWiz LedWiz 32-port GroovyGameGear 44.95

Diodes for Diodes 25x 1N4007 Newark/Element I4 1.75 Contactors

Resistors for Crees Resistors 25x3 Watt, 22 Ohm Resistors (included in the above) Newark/Element I4 2.13

Siemens Contactors 7x Siemens - 3RT1016 1BA42 - Control Contractor EIBMarkt.com 213.39 Contactors

Page 7 Relays 12V Relays 3x Finder Relay: 95.05 (Base), 44.62.9.012.0000 (12 VDC coil 2 pole 10 Amp EIBMarkt.com 31.76 contacts), 99.02.9.024.99 (EMC suppression module).

12V Power Supply PSU 120W 12V Meanwell DR-120-12 jameco.com 45.95

LedWiz Heatsinks Heatsinks Heatsinks for chips on LedWiz jameco.com 2.50

Fuse Holders 30x 25x Fuse Blocks 2-Pin Bulk. Jameco Part no. 1711947. jameco.com 25.50

Fuses 500mA 30x 500mA fuse: Fuse 0.5A 250 Volt Fast Acting 2-Pin Bulk. Jameco Part no. 652914 jameco.com 7.50

Wire Red, Black, Yellow & 22AWG 100' Wire, Hook Up, Solid jameco.com 32.00 Green wire

I-Pac Switch Input to I-Pac 2 Ultimarc 43.00 Computer

Accelerometer Microsoft Sidewinder Accelerometer for analogue nudge using Microsoft Sidewinder Freestyle Pro Amazon Prime 7.00 Freestyle Pro

TV - 40" Main Playfield TV Samsung Series 5 40EH5000 LED TV 40” Machsanei Chashmal 600.00

TV - 29" Back Box Toshiba 29PB200 29” TV Machsanei Chashmal 200.00

TV - 19" DMD Display 2nd Hand 0.00

Opto-isolaters 25x CNY17 for use in the flipper circuits Newark/Element I4 7.70

Breadboards Breadboards jameco.com 19.90

PCB Standoffs Standoffs jameco.com 3.60

Cable Ties Cable Ties jameco.com 10.95

Resistors Miscellaneous jameco.com 1.00 Resistors

Power Extension British Power 2nd Hand 0.00 Cable Extension Cable

Veristors 14D431K Ebay 3.99

Page 8 THE COMPUTER

The real part of the build started from the building out the computer. The overall process which was logical was to first build and get the computer working correctly with Visual Pinball. Then test the electronics around that. Once that was working, the final step was the cabinet build and integrating all the electronics and other parts together in the cabinet.

In reality, the process was not as clean as this, as various parts arrived at different times.

HARDWARE

First the CPU, an Intel i5, was attached to the motherboard, an ASRock Z77 Extreme4, with the fan on top. This is relatively straightforward (and there are hundreds of YouTube videos which can demonstrate this). After that, 2 Corsair DDR memory cards of 4gb each were placed into the first and third slot (as suggested by the motherboard instruction booklet), though it turns out one will end up being wasted as Windows XP 32bit edition can only address the first 4gb.

Next was the installation of the graphics card into a PCI slot, a Gigabyte card built on a Nvidia 660ti chipset. This was followed by the installation of a cheap wireless network card into one of the remaining PCI slots. A USB Bluetooth dongle was also plugged in which provided Bluetooth functionality (and the eventual use of a Bluetooth keyboard and mouse). An old 320gb hard drive was attached using a SATA cable. The main motherboard was connected up the modular power supply (a Cooler Master M2 Silent Pro) as well as to the various components including the hard drive and graphics card. This PSU gives me up to 620W of power, more than sufficient.

The whole system including 3 screens and all the components rarely gets beyond 340 watts during active gameplay so the 620 watt PSU for just the computer was an overkill. The system uses about 220 watts when only Hyperpin is active and only 2 watts when the system is in standby mode- extremely efficient.

Finally, a small white connector which was formerly from the old ATX power supply which was converted to the test PSU was harvested here, removing two out of the four wires which were not needed. At the other end, the wires were connected to an arcade on/off switch. The connector was attached to the on/off pins on the mother board. This enabled the use of an arcade button as the on/off and standby switch for the computer, and eventually for the pinball machine.

Attaching the CPU, memory and Building the Computer

Page 9 SYSTEM SOFTWARE

OPERATING SYSTEM

Windows XP stubbornly wants to be installed from a DVD drive, while Windows 7 is easily installable from a USB drive.

Initially, I went with a Windows 7 installation which was indeed straight forward. However, the Visual Pinball Software and Hyperin in principal worked in XP compatibility mode, but did not work well. In particular, there was an approximate 30 second pause when starting or exiting tables through Hyperpin. On the flip side, using Windows 7 does allow access to the full 8 gigabytes of memory, the graphics card has higher functionality and overclocking is more configurable in Windows 7.

However, as the principal function of this machine is a pinball machine, and Hyperpin is being used to start up the tables, Windows XP is the better option in my opinion.

Forcing an XP installation from a USB stick is tricky and the only combination which worked was freeware from NoviCorp called WinToFlash.

A few other important points to bear in mind: the USB stick has to be connected to a USB 2.0 port rather than a USB 3.0 port which is not normally bootable, and the USB stick must be removed after the initial installation.

The hard drive was partitioned into two:

 The drive with the Windows XP operating system; and  The D drive which contains all the pinball software and installation files.

This makes it easier to do a clean reinstall of the operating system, if need be, without needing to do much of the reinstallation of the pinball software.

DRIVERS AND SYSTEM SOFTWARE

For the next stage, the various drivers and software that the machine would need were installed, downloading the latest ones available.

Most of the drivers came from the CDs that came with the parts, or from the websites of the various manufacturers.

The drivers and important software installed were:

 Only the relevant drivers that came with the motherboard (ASRock Extreme4 Z77) CD: the onboard VGA driver, HD Audio drivers, USB 3.0 drivers, SATA3 driver and LAN Driver;  The INF driver (providing hardware information) and ME driver (the Intel Management Engine driver);  The latest (Nvidia 660ti) graphics card drivers downloaded from Nvidia’s website;  Broadcom wireless adapter software;  IPac software;  The latest DirectX software;  Adobe Flashplayer as it is needed for displaying the instructions to some tables on Hyperpin;  WinRar for unzipping files; and  DXTweak2 for calibrating the accelerometer which will be providing the tilt functionality.

Page 10 Other nice-to-have software but not critical which was installed:

 Google Chrome as I prefer it to Internet Explorer;  Notepad++ for editing VBScripts and AutoHotKey scripts;  AutoHotKey for editing Hyperpin scripts;  Asrock overclocking software;  Nvidia overclocking software;  DisplayChanger for changing the screen resolution from the command line (which was needed to solve a small graphics card software bug which led to a resolution change on the back box screen when the computer wakes up from standby).

OTHER SYSTEM SETTINGS

Overclocking Using the BIOS configuration software, the 3.8Ghz Intel i5 CPU was taken up to a simple overclock of 4.4Ghz, not that it ever seems to need to go that far. Overclocking was also enabled on the video card using its software, though again it’s rare that the overclock is used. The machine manages the speed of the processor automatically and only takes me up to 4.4Ghz when doing something requiring a lot of processing.

Enabling Remote Desktop Using the Windows Control Panel, Remote Desktop was set to enabled in the System Properties’ Remote tab by selecting the radio button for allow users to connect remotely to this computer. In addition, Fast User Switching was enabled in Control Panel -> User Accounts -> Change the way users log on or off.

This was done because its easier to adjust this machine remotely than staring down onto a flat screen.

Resolutions In my setup, the playfield was set to HD (high definition) 1920x1080 true 32bit color. In the early testing phase, I was only using the one screen.

Eventually when the backscreen and DMD were connected, the backscreen was set to its natural resolution (an unusual 1366 x 768). It was also set to 16 bit color to reduce the load on the graphics card, though this prevents it from working with Future Pinball which requires 32 bit color.

The DMD screen would be set to the lowest possible resolution of 640x480 at 8 bit color, again to minimize resources needed for that particular screen. The playfield screen and backbox screen were both connected to the graphics card outputs and the DMD screen was connected to directly to the motherboard, using the CPU’s internal graphics chip.

Bluetooth mouse and keyboard A Bluetooth connected Apple mouse and keyboard were setup to connect to the system so I didn’t need to be physically connected to the motherboard. After I built the cabinet, these were stored inside.

VISUAL PINBALL

This is not your typical installation where you click install and it runs by itself.

The installation requires downloading various files from VP Forums, copying files into to various folders, moving things around as well as registering DLL and OCXs manually.

Page 11 The first step was to download a detailed instruction file on how to install Visual Pinball, despite it being slightly outdated. The guide was written in 2010 by Tweegster and Godsin, downloadable from VPForums at http://www.VPforums.org.

Visual Pinball (VP) The software itself contains an editor and simulator. The VP game itself is written in C++. Every Visual Pinball table includes two main parts: the physical playfield design and the script which controls the table game play. The editor uses Microsoft VBScript for user programming. Thus it is fairly easy to make adjustments to tables.

Visual PinMAME (VPM) Visual PinMAME is a second piece of software which needs to be installed, also downloadable from VP Forums. Visual PinMAME is a program (a COM class) that works in combination with Visual Pinball and is used for emulating CPUs and the connected ROMs used in modern pinball tables, as opposed to tables with solid-state electronics/electro-mechanical mechanisms that contain no ROMs or advanced ICs in their hardware design. Visual PinMAME displays the LEDs and/or DMD of the machines in a separate window and also delivers emulation of the integrated sound chips. In order for Visual PinMAME to work properly with a rendered pinball table, it requires that table's ROM images. These can also be downloaded (separately) from the VP Forums website.

Animated Backglass Solution For pinball cabinets which use 2 or more screens, backglass software is required. There are two solutions right now: UVP and B2S. I found that UVP worked badly causing a lot of problems- particularly ball stutter which means it was taking too much of the CPU resource from VP and I went only with the B2S solution. This requires the installation of additional software and to use it requires editing (by hand) the VBScript of each table.

LedWiz Integration On top of this, there is additional software which needs to be downloaded and installed which allows interaction between the tables and the LedWiz, the device which turns on and off the lights and controls the contactors. This has an OCX driver as well as VBScripts which interact with the simulator. I made some major adjustments to this software so the ball stutter occurs less.

Installation Steps The installation generally followed the guide. I had to make some adjustments, but the overall steps were as follows.

1. Download the latest version of Visual Pinball from VPForums and run the installation file.  I installed Visual Pinball to a top level folder on the D drive.  At the time, Visual Pinball was at version 9.14. Version 9.15 came out soon after and the upgrade was simply a matter of cutting and pasting the new exe file over the old one and renaming it VPinball.exe. VP 9.16 is currently in development but it is relatively easy to find a link to the latest compiled file on VPForums and copy it over.  It is important to note that Visual Pinball is an XP program so when installing on a Windows 7 system, it needs to be run in XP compatibility mode. My final setup is an XP system, so I was fine. 2. Download the other essentials from VPForums.org which are highlighted in the main download menu on the site, which include:  NVRam files for Bally and Gottlieb tables;  Other essential VBscripts for VP (by default is called VPVBS3_32.zip);  Sound Sample files (by default called s3250u3.zip);  Fonts for Visual Pinball (by default called vpfonts.zip);

Page 12 3. The essential VBscripts are extracted and installed into a subfolder of the VP subfolder, namely the tables subfolder, replacing all files when in conflict.  Note to keep things clean, I eventually moved all the VBS scripts to a further sub-subfolder, tables/scripts. 4. The sound samples file must not be unzipped but copied directly to the VP subfolder VPinMAME/samples subfolder. 5. Extract the NVRam files and (overwriting existing files) copy them to the VPinMAME/NVRam subfolder. 6. Extract the fonts to the Windows System Fonts subfolder.

In terms of setting up options within Visual Pinball, there wasn’t that much more to do. Under the Key Options menu, I changed the start key to 2 from 1, so I would be able to use my Start button as Extra Ball as well. In the Video Options menu, the settings providing the best graphics were set simply because my setup can cope with it. The main settings:

 Hardware rendering set to on  Region updates set to off  Region optimization set to on which is recommended for a NVidia graphics card  Alpha ramp accuracy set to maximum  Maximum texture dimensions set to unlimited

VPINMAME

The latest version of VPinMAME for a Cabinet Build was downloaded, which as of writing was version 3.0. This was unzipped into a subfolder of VP called VPinMAME, writing over any files which were previously there.

On running the setup file, the most important step was to correctly set up the paths to the correct folders. The other setting to change, which is under default settings option, is to skip the default startup test.

BACKGLASS SERVER

Next step was setting up the backglass server software. I found that with my setup, B2S was the way to go rather than UVP.

B2S requires the Microsoft.NET framework 4 to be installed.

The B2S files were unzipped to the Visual Pinball folder and the software to register the server DLL needs to be run. Any downloaded backglass tables (.B2S or older .EXE files) would go into the VP/tables subfolder together with the tables.

In terms of settings, B2S mainly requires editing the screenres.txt file with the various sizes of the screens being used including the backglass as well as their location as an offset. Once the B2S backglass is running, to get into the specific backglass settings requires a click of the mouse on the backglass and pressing S. The only default setting which was adjusted was whether the grill is viewable, which is not needed for a 3 screen setup.

Page 13

A 2 screen working installation of Visual Pinball

FUTURE PINBALL

This was a relatively straight forward installation. Also configuring is relatively easy and the full setup took significantly less time than Visual Pinball.

However, the ball physics is significantly better in Visual Pinball, plus it turns out the Future Pinball is not been fully configured to work with the LedWiz so none of the lights or contactors will trigger when playing Future Pinball. Additionally, tables take much longer to load up than when using Visual Pinball. Finally, it’s difficult to fine tune the computer to work with two very different programs.

Eventually after I installed the third DMD screen, which caused my operating system to self destruct and required a full reinstall from scratch, I decided to leave Future Pinball out of the installation.

Page 14 ELECTRONICS

This was where the real fun started. A great guide entitled Pinball Electrical 101 goes through electrical side of the digital pinball machine and was the basis of this build.

CREE LIGHTS

As these were one of the first components to arrive from China, this was the first component assembled. I ordered Cree XLamp MC-E RGBW RGB+White LED Emitter mounted on 20mm Star PCB. The initial step was to use Silicone (designed specifically for electronic components) to attach the Cree Star PCBs to the heat sinks.

Crees attached to their heat sinks

The next stage was to solder the correct colored wires to each of the pads on the Cree LED pads. There are a number of YouTube videos which show the correct way to solder, though most important is to use good soldering equipment.

Soldering wires to Cree pads and attaching resistors to the ground side

LEDs require resistors in series to limit current otherwise they blow. Based on the datasheets, the forward voltages of the red, green, blue and white LEDs were 2.3V, Green 3.7V, Blue 3.5V and White 3.5V at 700mA and about 0.3V below that when running at 350mA. In addition, the each Cree LED uses around 7W of power so slightly more powerful resistors are required.

Page 15 Based on a number of websites which calculate correct resistances for LEDs, 22 ohm resistors were used which can take up to 5W of power. The aim is that at 12V, the maximum amperage going through the Crees are around 450mA. While the Crees can take up a little more – in the region of 700mA, they have been limited to under 500mA so the LedWiz won’t fry up. In addition, even only using 5/7 of their power, they are more than bright enough. Additionally, not using them at their peak will lengthen their lives and Cree LEDs are not that cheap.

Testing the Crees

CONTACTORS

The contactors make the loud thump sound when either the flipper operates, or the ball hits something which causes it to bounce. I decided to use 12V contactors simply as all the components in my machine use 12V and I wanted to keep things simple and costs down.

I bought 7 (2 for the flippers, 3 for the bumpers and 2 for the kickers) and I probably could have got away with 5 by sharing the flippers with the kickers.

The positive and ground contacts on the contactors need to have a diode connected across, with the polarity reversed because when current flows through the coil inside the contactor it creates a strong magnetic field. When the current is cut, the field collapses which induces a brief, but very high voltage across the relay coil which if it is able to flow through other components can cause damage. The protection diode allows the induced voltage to drive a brief current limited to just the coil and diode so the magnetic field dies away quickly rather than instantly, preventing the induced voltage becoming too high. The diodes used were standard and very cheap components: 1N4007’s costing a cent or so each.

Contactors with diodes connected in reverse across the main contacts

Page 16 IPAC

The IPac circuit board makes it very easy to connect all types of switches or inputs to the computer. The IPac turns a switch press into a key press and sends the signal through the USB to the computer as if it was a key press. The IPac was mounted onto a piece of wood.

It is important to note that the IPac is connected to, and uses, the computer’s power supply through the USB which is rated at 5V, so it needs to be electrically separate from the 12V power supply.

An IPac 2 circuit board

LEDWIZ

The LedWiz is the circuit board which takes signals from the computer and activates various real world (electronic) events. The LedWiz is connected to the computer through a USB port but is an output rather than an input. Using software on the computer, this allows the computer to turn on and off things such as lights, contactors, motors and other components.

It is also critical component which can blow easily if the current is too high, and can also get hot. This circuit board was protected by first using silicone to attach 4 heat sinks to the 4 chips on the board. Then each port was wired to a 500mA quick blow fuse. Any problem will cost a 5c fuse rather than a $50 board.

Protecting the LedWiz

ANALOGUE NUDGE

To measure nudge, a Microsoft Sidewinder Precision Pro gamepad was disassembled because it contains quite a sensitive accelerometer. The circuit board was taken out, carefully removing all the buttons connected. The circuit board was mounted onto a piece of wood and was connected to the main motherboard through a gamepad to USB converter.

Page 17

Microsoft Sidewinder Precision Pro and its internal circuit board

FLIPPER CIRCUITS

There are three ways for dealing with the flippers.

Using the LedWiz The easiest is to treat each flipper as just another contactor, which is connected to the output of the LedWiz. These are triggered by the software when the software detects that the flippers are activated. The flipper switches themselves are a connection on the IPac.

The main disadvantage of this method is that there will be a slight delay between the press of the flipper switch and the activation of the contactor. This is because there is actually a lot going on between the two events. Pressing a flipper switch gets detected and processed by the IPac, and the key press is sent through the USB to the computer. The computer CPU processes this as a keypress which is detected by the pinball software. The pinball software sees this is a flipper activation and goes through the various routines that this requires. Eventually, the signal that a flipper has been activated is generated by the software, sent back to the LedWiz which in itself has a delay in the millisecond range, and finally the contactor is powered. The delay is quite noticeable.

There is an advantage however in that the flipper contactors only activate when the software is running and it is by far the simplest (and least fun) method.

Contactor activating IPac The second method is to connect the contactors directly to the flipper switches and when the contactor activates it allows a 5V signal through to the IPac, which essentially sends a key press to the computer. The disadvantage here is again lag. Pressing the flipper switch powers up the magnetic field inside the contactor which moves a contact inside from open to closed. Once its closed, the 5V signal is allowed through, and this whole process also takes a very small but slightly noticeable amount of time as we’re waiting for something physical to happen.

Optoisolators The third, and in my opinion by far the best, is to connect the contactors directly to the flipper switches meaning when the flippers are pressed it allows a 12V signal into the contactors. Parallel to the contactors activating, the 12V signal is detected at the optoisolator, in turn allowing a 5V signal through to the IPac, which I am using to simulate a key press indicating a flipper press to the computer. I used CNY17 optoisolators as shown in the circuit diagram is below.

Page 18

Circuit for isolating 5V IPac from 12V contactors

While not shown, it is important to note the 12V signal is also connected to the contactors through a 500mA fuse in order to protect the contactors, a $30 component.

I strongly prefer using the optoisolator method for a few reasons.

There is no delay whatsoever between pressing the flipper switch and the contactor activating and the gameplay therefore feels more fluid. Interestingly, given that the thud from the flipper press is so instantaneous and the software takes a small amount of time to detect and process the ‘flipper on’ signal, the flipper sound the pinball software makes itself when pressing a flipper is at a slight, but again noticeable, lag to the contactor thud. Therefore I reprogrammed all the tables to not make any sounds on flipper activation or deactivation.

Another reason I like this method is that the contactors always activate when pressing a flipper whether the software is running or not which makes the whole pinball machine feel more real.

Thirdly, it is independent of the LedWiz. Assuming I was using different pinball software like Future Pinball, it also allows the flippers to thump even if the software doesn’t work with the LedWiz. Finally, it saves two ports and takes a significant load off the LedWiz, as the flippers are the most active component in the pinball machine, and use relatively high power.

INTERNAL MAINS POWER

I went British here. British plugs are nice and chunky, don’t ever fall out of the sockets and each plug has its own fuse. Also a 5 way adapter is big enough for me to cut open and make some small changes.

Given three monitors, a computer and a 12V power supply all connected up to the mains, standby mode for each tends to add up. The idea here was to create a power supply which was disconnected from the mains supply until the computer turns on. Once the computer turns on, the signal activates a replay which allows 220V AC to pass through to the rest of the plugs, turning on the three monitors and 12V power supply. The computer needs to have power all the time so it can be a standby state (using about 2 watts). In this state, memory is preserved and it can detect pressing the on switch to bring the computer out of standby.

Page 19 This whole process also meant getting monitors that automatically power to the on state if they were previously in the on state before being disconnected from the mains. It turns out that the monitors and TV do automatically come on though the TVs required some changes to the default settings to do this.

To start with I opened up the 5 way power plug cutting the live rail between the first and second plug. This means that only the first plug will always have 220V AC on it. I soldered brown wire designed for 220V to each side of the cut metal rail. I drilled two holes in the plastic casing at the top, bringing these wires through and attached a finder relay with its base to the top of the power supply.

I attached the brown wires across the relay switch and attached a connector (which I had removed when converting the old ATX power supply to a lab supply) to the coil which acts as my detector that the computer is on. To this, I connected one of the wires from the modular computer power supply.

When the computer is switched on, the signal from the computer has a 12V potential difference across it which causes the relay to close and in turn allows 220V AC through the relay switch turning on all my monitors as well as the 12V power supply providing my pinball components with power.

Circuit diagram for hacked mains power supply

It is important to note that this relay in itself needs to be protected. Across the coil, a simple diode does the trick – it only has 12V DC across it and is similar in that respect to all the contactors. In addition, the 12V input was protected with a fuse using a 500mA fast blow fuse.

Hacked British multiway extension cord

Page 20 However, on the AC side, a diode cannot be used. Using nothing means that every so often the relay will get stuck. This is because of the high induced currents or sparks produced when the relay switch went from on to off, will somehow make the relay contact ‘sticky’.

A veristor which provides no resistance over a certain voltage is the solution. A veristor was added across the AC side of the relay switch, allowing large voltage spikes to dissipate into the live rail rather than at the switch. I used a 14D431K veristor, which would activate or allow any voltage about 275V AC to pass through it. Note the mains voltage locally is about 220V AC. This made the problem occurrence much rarer but it still occurred sometimes.

Using a veristor to dissipate magnetically induced surges on the AC side

A further solution is to add a veristor between the live rail and the earth and also between the live rail and the neutral line, which is what a surge protector does. The reason for adding another three is that any surge in the live rail can now dissipate into the neutral or earth line if need be.

Instead of opening up the 5 way extension plug, I adjusted a British power plug and made it effectively into a plug-in surge protector by connecting a veristor between the earth and neutral, neutral and live and earth and live, as in the picture above. I plugged it into the last socket. It has so far worked well.

PLAYFIELD SCREEN

One of the few measurements which I have no flexibility on is the width of the pinball machine. I am using a standard body lockdown bar which is 56.7cm. Assuming wood thickness of 1.6cm, this leaves me 53.1cm internal width. However, it was always my plan to route a groove into the sides and have this TV rest on an inside ledge, so I have up to around 54cm.

The choice of screen was based on two factors: less than 54cm in (internal screen) height and the thinnest bezel possible so I can maximize screen size. I found a 40” high definition Samsung screen on sale which fit all these criteria.

DECASING THE PLAYFIELD TV

It was fairly simple by using an electric screwdriver. After removing the case, I also unplugged and removed the speakers as the original plan was to have the speakers on the backboard.

A problem was the connector which connected the TV’s LED to the circuit board went down the side and I cannot have the TV’s weight on that connector so the wood routing would end up needing a little more creativity to ensure that no pressure was on this connector.

Page 21

THE WOOD CABINET

DESIGN

There is not really any exact standard size for a pinball machine, so I used a mixture of existing designs downloaded from various websites, combined with the typical angles that are used for the machines.

Given that I had ordered some real Williams’ pinball parts, I was limited to a width as defined by the pinball (standard) lockdown bar which was about 56cm. Lengthwise, my machine was a little longer than the playfield TV plus the width of the backbox. As I was not building a widebody machine, the TV was 40 inch rather than 46 inch which meant my machine was about 10cm shorter than a full size pinball machine.

CUTTING

The wood used was MDF- which is very strong, heavy and rigid. The final size of the machine is listed in the diagram below.

Final cabinet sizes

THE HOLES

Holes were cut for the fans and switches in the various wood pieces.

The holes for the fans were drawn out by using a pencil and compass first and then cut with a jigsaw.

For the switches, I used a spade bit at the end of my hand drill. In general and in most cases I drilled a small 1mm guide hole before doing the final drill.

Most important is the cut for the front door panel. One of the screws holding the door panel in place, goes through a small hole in the lockdown bar so it’s important to cut the area for the door panel based on where its top screw will end up being.

Page 22

Drilling and cutting the holes

ROUTING SIDES

The internal width of the box was a little (1cm) narrower than the TV. Hence, I needed to route out about half a centimeter (minimum) from each side to the playfield TV would fit in and rest on the ledge. I ended routing out about 0.8cm- half way through the wood which felt safe enough.

Routing out the cabinet sides

PUTTING IT TOGETHER

Putting it all together was actually very straight forward and the easiest part. The box is held together using 40mm screws.

Putting it together

Page 23 After building I added two supporting bars across the middle. These will also serve to allow wires to pass from one side to the other and will also support contactors at strategic points under the playfield.

Adding cross bars

FLIPPER HOLES

Figuring out exactly where to put these was not that easy and again there is no exact standard. I visited a number of websites, and I ended up taking the average and also putting them in a place where I felt most comfortable. At this point, the drilling was done carefully in order not to rip either side (by drilling from both sides and finishing in the center of the cut).

PAINTING THE MAIN BODY

The way to paint MDF is to use a white undercount followed by a second undercoat and then sand down. Then two coats of the real thing.

LEGS

The leg bracket goes on the inside of the cabinet base and the holes for the leg bolts are at a 45 degree angle facing the corners. The bolts go through the legs, through the corners and into the brackets.

There were three important issues to consider here. First, that the angles across the overall cabinet would stay correct as mistakes could twist the box slightly. Second, that these 45 degree holes wouldn’t penetrate a screw holding the box together. Finally, I had to be sure that the leg bracket did not get in the way of something. Upon fulfilling these three conditions, I put the bracket in place and made a small drill hole through. I used a much larger drill bit to make the final hole – just a little bigger than the screws I would be using, while being careful so as not to make any large exit holes. Finally I attached all the brackets in place using 16mm screws, and then using a ratchet to attach the legs with the blots.

Page 24

Attaching the legs

LOCKDOWN BAR ASSEMBLY

This was attached to the inside of the front of the cabinet, using a number of screws. Most important was ensuring the top of the lockdown bar was flush with the top of the wood and that the top screw for the door panel can go through the assembly.

TOP PLATE AND LED HOLES

The aim was to make quite a big and deep hole which can support the whole heatsink, with a small aperture where the LED light is mounted, as close as possible to the top where it is covered by the flasher cup. This required the use of the router to make the two holes, of different sizes.

To hold the heatsinks in place, I drilled two small holes and used two small screws which attached and held up the heatsink with the LED light at the top of the backbox.

With regard to the light cover, the original idea was to make some sort of groove and twist it in. It turned out this did not work well and I ended up simply using a glue gun.

The holes for the Cree lights

BACKBOX

This was relatively easy to put together though there was a little more complexity given the thing was not a perfect rectangle- it was angled. This required me to sand the top of the back side so it would be at an angle, allowing the top plate to simply rest on the back.

Page 25 A hole was also cut for the fan in the center of the backbox.

The backbox

Painting the backbox was done in a similar way to the main body- first a white undercoat using primer and then the paint.

The backbox was connected to the main playfield cabinet using 30mm screws.

I had two Willams backbox hinges which were added for no other reason than it looked pinball like.

Page 26 INTEGRATING ELECTRONICS, TV AND WIRING

VENTILATIONS AND FANS

The fans were integrated into the three precut holes at the back- one at the top and 2 for the bottom. I believe I could have got away with only two fans- one on the top and one at the bottom, but the 2 holes at the bottom actually allow me to remove the fans and gain access to the computer and power supplies, if need be.

I cut off the plastic extrusions for connecting the fans to a computer case. I ended up simply slotting the fans in their holes and the fans being held by tension.

I drilled four holes on the underside of the playfield cabinet, near the front as an air intake. This allows air to move across the whole base of the machine and the up through the back. The fans themselves were to be connected directly to the computer motherboard and are controllable by software, which means the speed can increase as the motherboard gets hotter.

CREE LIGHTS

In the five holes at the top of the backbox, I attached each of the five heatsinks with Cree LEDs mounted on top, using two small screws. Using a heatgun, I attached the flasher domes on top of each of the 5 Crees.

Attaching the Crees mounted on the heatsinks into the top of the backbox

The resistors, which were at the ground end of the Crees, were connected to twisted RGB lines and the White line. The 12V yellow wire was wired in a daisy chain to the positive side of the Crees. The RGB lines were each separately wired to various LedWiz ports. The white line itself was daisy chained across all 5 Crees as this acts as the flasher on major events such as a free game.

The white line itself is connected to a relay as the 5 white LEDs on the Crees would use about 2.5 amps of power and the LedWiz can cope with only 0.5 amps. The relay itself is connected to the relevant LedWiz port.

Page 27 WOOD MOUNTING THE MAJOR MODULES

The hard drive, power supply, computer, LedWiz, IPac, analogue nudge circuit and Flipper circuits were all mounted on wood so they could be easily fixed into the base of the body. They were all placed to allow easy access and fairly simple wiring.

The LedWiz was right in the middle of the machine enabling me to reduce the average wire length.

The analogue nudge circuit was near the front as this is where most of the impact of a nudge is felt. Ideally it should have been attached to the bar going across where two of the contactors site as across this bar is closest to where I would likely give the machine a nudge. It wasn’t put here for two reasons. Firstly, the force from the contactors nearby may itself nudge the machine, and second, there was not that much space in this area with wires going across, as this component was in fact the very last one added to the machine. Thus it was attached to the base at the front-end, in front of the LedWiz.

The IPac and Flipper circuits were right at the front as most of the switches were near the front implying shorter wires and allows me to make changes through the front access panel. The issue with this placement is that if I ever decide to add a coin door at the front, this would be where the change drops to which will mean a bit of rewiring.

The computer was near the back which meant access through the fan holes.

COMPONENTS AND MODULES INTEGRATION

The contactors were all attached with four 16mm screws to the wood of the main body. Position was based on where they would likely be needed on the playfield with the flipper contactors under the flipper switches.

The switches were all wired up and the switch connectors were soldered to the wires.

The computer was connected up to all the major modules (IPac, analogue nudge circuit and LedWiz) through USB. The hard drive was attached to a metal case and mounted on wood and attached to the base of main body near the computer. The computer power supply was also mounted onto wood and attached to the base near the main adjusted 5 way power cord, which was attached to the side wall. An output from the computer PSU was connected to the relay input on the adjusted 5 way power cord.

EXTERNAL USB PORT

I made one external USB port, using an extension cable, connected to one of the USB (2.0) ports on the computer which would allow me to connect external components if need be (and this proved useful when I had to reinstall the computer from scratch). A USB 2.0 was used rather than a USB 3.0 port so I can also boot from this port. This was done by drilling a hole on the underside of the machine, widening it a bit and inserting this cable which is held under tension.

LEDWIZ

The LedWiz was the main and most complicated component to wire out to the rest of the machine. The component was placed in the middle at the bottom and the ground wires to all the components were wired based on the plan below.

Page 28

My LedWiz setup

WIRING

The colors of the wires were chosen in order to make it relatively easy to follow what should be connected to what. The ground side of all the components and Crees were connected to the LedWiz. The IPac had detected a ground connection from all the switches.

 The yellow wire was a 12V DC line and was connected in daisy chain fashion across all the components- basically the contactors and Cree LEDs;  Black is the ground wire;  Twisted RGB was the RGB grounds from the LedWiz for all the Crees;  White was the white ground for the strobe (or effectively the Cree White); and  Twisted red/white/black connect the fans directly to the motherboard with connectors.

Wiring up the components

Page 29 FLIPPER SWITCHES

The flipper switches were attached to either side of the machine in the holes cut for them. The leaf switch themselves were connected to the contactors and the circuit on the breadboard, which in turn activated two IPac ports through on optocoupler as explained above.

The LED lights in the flipper switches were both connected to the same RGB ports on the LedWiz. However, it is important to note that the LEDs for the flippers were supposed to be using 5V while the LedWiz was delivering 12V at all ports. I therefore used a 2k ohm resistor in series with the 12V rail to bring the voltage across the LED to around 5V.

The wires used for the flipper switches were as follows:

 Twisted white was the wires connecting the flipper switches to the flipper circuits;  Twisted RGB from the flipper LEDs to the LedWiz.

GENERAL SWITCHES

These were connected directly to the IPac.

There are 4 switches: red (exit), green (start), blue (credit) and yellow (launch ball). From the switch itself, the two wires were of the color of the switch and were twisted, and one side was connected to the IPac ground, and the other to the IPac port. I could have daisy chained the ground wire though this setup makes it easier to follow exactly where wires are going and what they are doing.

The switch’s light was part of the 12V yellow wire daisy chain, except all the switches had an LED inside which could seemingly cope with 12V but I was worried about the life of these LEDs so I wired a 2k ohm resistor in series to lower the voltage across these LED to 5V.

ON/OFF AND STANDBY SWITCH

The on/off switch was connected directly to the motherboard, thought the light itself was connected to the 12V rail. The wiring was as follows:

 Twisted white connects the reset switch light directly to 12V (with a 2k ohm resistor in series to lower the voltage across the light to 5V), so when 12V rail is live this light will be on; and  Twisted red/black is the on/off and standby switch connecting to the motherboard with a connector.

The on/off and standby switch

Page 30 THE TELEVISIONS

The playfield TV was connected to the main AC power supply and to the video card output through HDMI, and placed carefully into the playfield cabinet. Apart from sitting in the grooves cut into the sides, there are two movable bars going across helping to support this TV. Gravity holds the TV down so there is no real problem in removing it to get to the components underneath.

The backbox TV was more complicated as it needed more than gravity to hold it in place. It was mounted onto a piece of wood using the existing four holes on the back of the TV with the screws that came with the TV. This piece of wood itself was attached to two pieces of wood attached on either side and those in turn were attached to the inside of the backbox. Again the TV itself was attached to the main power supply and through HDMI to the video card.

The Windows XP background was made to be black on all three screens.

Mounting the TVs

THE DMD

The DMD monitor was received much later, so it meant taking apart the backbox completely (including unwiring). While doing that I also shortened the backbox somewhat as it was proportionally too high relative to the size of the machine (despite being a standard sized backbox). Because the machine was not a widebody, the TV that would go into it was not the length of a full pinball machine (about 10cm smaller) so all in all, the machine is the same width as a real pinball but a little shorter. In addition, the LED lights were so high up they were not visible enough.

After taking apart the backbox, a hole was cut wide enough to insert a monitor so the top would be visible as the DMD. To actually keep the DMD fixed in place a piece of wood was attached to the back of the screen by drilling a screw through the wood and into the plastic at the back of the monitor. Obviously, I did check there were no electronic components in the back at the point where I was drilling. In addition, the TV had a white frame so I attached black tape around the sides of this monitor, so they would not be visible from any angle.

Page 31

The DMD TV

I did have a problem getting the graphics card to work with the third screen and after a significant headache including swapping out the graphics card with an older graphics card and tracking down the problem it turned out to be a software problem with windows. I also ordered a display link which turned out to be pointless, as in the end I was able to get the DMD to work using the graphics chip of the CPU, and the backscreen and playfield on the graphics card. I would have liked the backscreen to work on the graphics chip of the CPU but since I had so much trouble getting the graphics card to work with the current setup I left it the way it was.

Page 32 FINISHING TOUCHES

DMD COVER

Given I was using a standard size for all tables, I cut out a rectangle in a piece of word to place over the DMD TV to just leave the DMD showing and painted this black. I had a piece of glass cut at this size, and used silicon to fix it into this rectangle.

THE PLAYFIELD GLASS

First I mounted two 50mm plastic grooves onto the top of the sides of the playfield cabinet. While I tried using various gluing options to hold this down, none was strong enough so in the end I used three small pins through the plastic grooves into the sides to hold it down, making sure these were deep enough that it wouldn’t protrude or scratch the glass while I was sliding it in.

For the playfield glass, I purchased a piece of 50mm glass measuring 55x91cm, slightly tinted (10%). Before inserting the glass, I stuck a small piece of black tape over the silver Samsung name tag. This meant that when the machine is off, the playfield glass is pitch black and the screen underneath is completely invisible.

Finally, I had two aluminum side panels which were cut to the size of the playfield cabinet sides, and placed above the plastic grooves for the glass. Finally, the lock down bar was adjusted and locked into place to hold the glass in and the aluminum sides in place.

The side panels and the lockdown bar holding the glass and side panels in place

Page 33 COMP

FRONT-END AND COMPONENT CONFIGURATION

HYPERPIN FRONT-END

The piece of software needed is a frontend in order to select tables. I am using Hyperpin which also works with Future Pinball. This is built on AutoHotKey scripts so is user editable. Apparently, there are other frontends including VPLauncher, VP-Man and VPFace, which I have not tried. Hyperpin also allows the conversion of the pinball machine into a jukebox when it is not being used, again something I havn’t bothered with (yet).

The steps for installing Hyperin were as follows

 Download and install Hyperpin to the root of the D drive  Download the latest Hyperin scripts from the various forums writing over some of the older files- this was not easy as these scripts are not centralized anywhere  Later on, after completing the build, I used AutoHotKey to make some changes but it’s worth mentioning now: a. I edited the script to making sure the screen resolution is correct when entering a new table. The main reason for this is specific to my graphics card and backglass monitor. When the computer wakes up from standby, the backglass monitor sometimes wakes up with the wrong resolution set. I therefore used free command line software for reading and changing the resolution of the screen called DisplayChanger. b. The script auto-presses the END key when entering or leaving the Hyperpin system menu mainly because the Bluetooth Apple keyboard which I am using with the machine doesn’t have an END key. This is needed for making changes to the various pinball machines’ ROM settings through VPinMAME. It’s the equivalent of opening the front door on a real pinball machine. c. I adjusted the script to ensure that all the LedWiz outputs are off when entering or leaving tables.  Edit some of the settings in the settings.ini file: a. I added the correct paths to all the various tables under the Path and Table_Path settings b. Turned off the intro video c. Changed the exit key to ‘E’ rather than ‘Q’ in Hyperpin as Q is used by Visual Pinball to exit tables d. Changed LedWiz = true e. Changed Use_Backglass = true f. A few cosmetic changes g. Ensure that Playfield_Rotation = 270

It is important to note that as new tables are added, the Hyperpin database needs to be updated and backglass images, wheel images, instructions and also table videos (if wanted) need to be added to media subfolder of Hyperpin, as explained below.

LEDWIZ

This was probably the most complex component to get working well.

Page 34 Registering the component First the LedWiz OCX needs to be registered using the RegSvr32 command. Most forums contain the original LedWiz OCX but there is an updated one which Randy from GroovyGameGear sent me and this can be found in some of the forums. The new one contains some improvements as well as an additional command to set the data collection time.

The old one from 2005 is called LedWizm05.ocx and the newer one from 2012 is called LedWizmp.ocx. To register them from a command line:

 regsvr32 LedWizmp.ocx

Configuring the LedWiz The LedWiz requires a LedControl.ini to define what LedWiz port activates when what pinball solenoid, switch or light fires and this is explained in more detail below.

To start off, a useful utility at http://pinball.pixelmagic.nl allows the definition of any particular LedWiz setup and will output the default Ledcontrol.ini settings for a large range of pinball machines. While this still requires tweaking, it’s a good starting point.

I should note that the LedWiz has an unfortunate limitation in that the buffer for collecting commands is not that big and if too much data is sent in a short period before the LedWiz has had a chance to update the status on each port, the original data sent to it can be written over and lost.

Reprogramming the LedWiz Scripts If the motherboard USB port is such that it sends the data as it receives it, typically the LedWiz is fine. Within the LedControl.vbs script Led_Wiz.FastCommunication=TRUE should be set and after this the LedWiz never holds up execution.

Problems occur when the motherboard USB buffers up the data and sends as a burst, which is unfortunately what my motherboard does. Hence the LedWiz requires a pause to allow it to complete its task after it receives its data. For turning on and off ports this is very short, in the single-digit milliseconds (I measured it at about 3ms).

For changing the PWM (pulse width modulation) or effective brightness level of each port, it’s in the tens of milliseconds (I measured it at around 60ms). If the LedWiz could pause outside of the visual basic scripting thread then it wouldn’t matter, however, it can’t and the LedWiz pause holds up execution of the VP Visual Basic scripts and critically graphic updates to the screen. These causes ball stuttering when a lot of commands are being sent to the LedWiz.

To explain what PWM is, I should note that the LedWiz offers 48 levels of brightness using PWM. I have my LedWiz powering components at 12V, and this number does not vary. To have a component at half brightness or a level of 24 for example, while the voltage sent is still 12V but it would be going on and off very quickly, much faster than what is visible to the eye- to produce a half brightness effect. The change from one PWM level to another takes a long time and the easiest solution is simple to avoid making changes to the PWM level at all once the table is in play, only making the changes prior to play.

I partially solved this problem by reprogramming the LedControl.vbs script.

All colors are set by a mix of red, green and blue levels sent to the Crees. Lights go on and off and change color by setting new PWM levels at the LedWiz ports. The change I made was to trap a PWM change setting. If setting the brightness level to zero, instead of changing the PWM level to zero, simply turn off the port which takes minimal time. When a PWM setting is returned to its original level, the port is instead just set to on.

Page 35 Adjusting the Settings LedControl.ini File The other change that is required is to the LedControl.ini file. Colors need to be chosen in such a way that the LedWiz never needs to change the color levels, or more accurately the PWM settings, on a particular port during a game. For example, white requires red, green and blue at full brightness. This can be used with blue at the same Cree, since red and green are set to zero (turning the red and green ports off rather than changing the PWM setting) and blue left at full PWM brightness. What shouldn’t be done is using white together with a color that requires some different brightness level, like orange, requiring a full red level and a half (24) brightness for the green level. The change from 48 to 24 at the green LedWiz port will cause a nasty 60ms pause.

In the table below, all colors in one group can be used across one table. For example, my table uses only group A colors. My color settings in the LedControl.ini file were as follows:

R G B Color Group

Black 0 0 0 ABCDEF

White 48 48 48 A

Red 48 0 0 ABC

Yellow 48 48 0 AC

Lime 0 48 0 ACD

Cyan 0 48 48 AD

Blue 0 0 48 ABD

Magenta 48 0 48 AB

Orange 48 24 0 B

Green 0 24 0 BE

Neon 0 48 24 C

Rose 48 0 24 C

Violet 24 0 48 D

Lemon 24 48 0 D

Cool 0 24 48 B

Olive 24 24 0 E

Teal 0 24 24 E

Purple 24 0 24 E

Brown 24 12 0 F

IPAC In terms of configuration, the makers of the IPac, Ultimarc, provide software which installs the driver and allows for configuration of the keys.

It is important to note that I made 1 change to the VPinball key settings: that is setting the start key to 2 rather than 1, which allows me to use the start button as both ‘start’ as well as ‘extra ball’ (in those games that allow the buying of extra balls).

Page 36

IPac key configuration for my setup

CONFIGURING ANALOGUE NUDGE

The Windows control panel tool for calibrating the game controller device whose circuit board (including accelerometer) I am using to provide the measurement of analogue nudge requires the switches to be operating. Since I have removed everything apart from the circuit board itself, these are obviously not working.

I used a tool called DXTweak2, a Logitech application, for calibrating the accelerometer so that ‘center’ is defined when the machine is stable, at rest. The analogue nudge settings in VP are under the Preferences/Keys menu, in a Global Options subsection.

Analogue Nudge Calibration

It is important to note that because I have children using this pinball machine the nudge needs to be fairly sensitive to light hits. I used a zero slope accelerometer test table to test the Visual Pinball settings for the accelerometer.

Given the sensitivity of the accelerometer, there is always some vibration detected. Deadzone is a setting below which no movement is detected, and I had this set to 2%. 1200% was the setting for the X-Gain and Y-Gain, producing quite a bit of nudge on a slight push of the machine.

Page 37

SCREEN CONFIGURATION

In terms of software configuration, the DMD display is set to 640x480– the minimum possible so the pixels are small blocks looking like LEDs. I am using the DMD set to 2x natural size, and for each table I turned off direct draw for the DMD as I didn’t need any complex algorithm slowing down the computer.

The backscreen resolution is set to an unusual 1366 x 768 (its natural size) with 16 bit color. The one problem I am having with this setup is that after putting the computer into standby, the backscreen resolution sometimes changes so I’m using a piece of software which is run from a VB script to change the backscreen resolution to what it should be every time I enter a table.

The playfield was set to HD (high definition) 1920x1080 true 32bit color.

Additionally all TVs themselves are set so that following a cut of power the TVs return to their exact previous state.

INSTALL TABLES AND TABLE ROMS

While in theory this should be a fairly easy process, this is actually not straightforward and requires a lot of steps. Firstly, I should note that VPforums.org is the best place to find tables for Visual Pinball in particular.

Downloading the table and B2S counterpart The first thing to note is that I only downloaded full screen tables. For older versions of table, the B2S files are included as executables together with the actual VPT table files. For later version of tables, the B2S files are typically downloaded separately as B2S files. Either way, both files should have the same name, just different extensions.

Downloading the ROM The next stage required ensuring the right ROM is installed in the VPinMAME ROM subdirectory. Sometimes the correct ROM is only obvious after running the game and seeing what ROM name VPinMAME complains about not being able to find. The alternative is to just download and copy all the relevant ROMs for a particular game into the ROM directory.

Editing the table scripts The next stage required editing the table script to use the backglass.

Near the beginning of the script B2S.Server needs to be set as the controller. Less important, a Controller.Stop command in the Table Exit subroutine should be added near the end of the script.

 Set Controller = CreateObject("VPinMAME.Controller") was changed to Set Controller = CreateObject("B2S.Server")

In addition, given the obvious slight delay between pressing a flipper and hearing the flipper sound, I removed all the PlaySound commands related to the flippers.

Initial Settings After running the games for the first time, the system asked about permission to use a specific ROM, which of course I answered yes. Once the table actually works it is clear that additional settings need to be made and these are in the registry settings of the ROM.

These are found under HKEY_CURRENT_USER\Software\Freeware\Visual PinMame.

Page 38  DirectDraw is set to off (0)  Direct3D is set to off (0)

The above two settings improve the performance of the tables.

 Sometimes, ROR or ROL need to be changed from 0 to 1 or vice-versa to rotate the DMD so it as horizontal

Finally the DMD was moved using the mouse to the DMD screen. It can also be resized by right clicking if need be.

Hyperpin settings For each table, to allow it to be selected and run from Hyperpin, backglass images as well as Hyperpin wheel images need to be downloaded and Hyperpin media files can all be downloaded from VPforums.org. In some cases, I searched the Internet for better images.

The backglass images go into the Hyperpin/Media/Visual Pinball/Backglass Images subfolder. The wheel images goes into the Hyperpin/Media/Visual Pinball/Wheel Images subfolder. In all cases, the names of the files need to be the same as the table name except the extension (normally .PNG).

Next the Hyperpin database needs to be updated adding this table. This is an xml file which is under the subfolder Hyperpin/Databases/Visual Pinball. It can be edited as a text file. To add a table to the file simply needs the following lines to be added:

table name Bally 1994 SS

LedWiz settings The final changes that need to be made are the settings for the LedWiz as defined in the ledcontrol.ini file. This is essentially a comma separated value file which defines a connection between a LedWiz port and either a solenoid, switch or light signal coming from the ROM together with a color once the signal is detected.

For example:

The LedWiz port assignments: Start Flipper Light BR Coin Slingshot Bumper Launch Light UN Bumper Light Light Slingshot Strobe UN Bumper Exit Light UN Back Right Right Righ Front Right Center Front Center Back Left Front Left ---> Left OoOoO ---> Left - o <--- t <--- - - O 000 - O - o - O - - BANK 1 2,3,4 5,6,7 8 9 10 11 12 13,14,15 16 17 18,19,20 21,22,23 24 25 26 27 28 29,30,31 32

The output settings: S12 S22 Yellow/S21 S11 S46 Yellow/S17 S13 Red/S23 Yellow/S27 L88 Lime/S48 Red/S18 Yellow/S19 Lime/S22 S25 Red/S26 Red/S28 Afm Blink Red Lime 0 ON S10/S2 S13/S4 L86 Red/S10 Red 0 S12/S15/S7 Yellow Lime S9 S15/S16/S39/S7 0 S11/S3 ON Lime/S9 Red 0

Knowing what the solenoids, lights and switches are on the table required downloading the table manual from the Internet Pinball Database (http://www.ipdb.org) and thinking about which components in my pinball machine are activated when various solenoids, switches or lights on the actual pinball machine activate. A good manual explaining the process is available, written by Gstav and called the LedWiz Config Manual.

Page 39 I edited the ledcontrol.ini file in Excel, saving it as a CSV file and copying the relevant line for the particular table from CSV file to the INI file. As mentioned earlier, a useful utility at http://pinball.pixelmagic.nl allows the definition of any particular LedWiz setup and will output the default Ledcontrol.ini settings for a large range of pinball machines, and this is where I started from.

As I noted earlier, changing PWM levels on the LedWiz which is needed for different color lights is a slow 60ms process which causes ball stutter. LedWiz on/off is a relatively fast 3ms process. Thus, colors need to be selected which can be executed without needing a PWM change for the smoothest play on a table.

Page 40 THE FINISHED PRODUCT

The finished product

Page 41