Integrated Switch/Joystick Interface with Wiring Harness
Do you regularly build control panels? Even if you have only built one panel, you will know that the novelty of cutting and stripping wires, crimping and connecting very quickly wears off! After all, on a standard panel there are 88 wires to be stripped and 44 crimps! Why not get someone else to do all that and use the time saved for less boring pursuits (such as playing games!). Also, would it not be nice if this could be done for less extra cost than buying all the wire and crimps?
Plus, how about connecting a trackball and a spinner as well, all routed through one board and one cable to the PC, with everything simply a plug-in connection?
The Mini-PAC is a revolutionary combined Switch/Trackball/Spinner Interface with wiring harness. It is designed so that a complete control panel can be wired up in minutes. Ideal for OEM builders of controllers and cabinets but also suitable for the first-time builder
The wiring harnesses are available for 32 switches (including joysticks and buttons) and with connection for Ultimarc trackballs and spinners. Along with each switch harness is a "daisy chain" ground harness. The total number of individual sections of wire on these harnesses is over 74, with over 144 terminations! Compare the cost of the wire and connectors, plus time saved, with the amazingly low prices of these premade harnesses!
The ground harness has 4 extra terminations, so that if necessary you can span longer distances between switches by "missing out" one connector. Switch connectors are female with option of 0.25 inch (6.3mm) or 4.7mm. These are designed for standard microswitch terminals.
Each switch wire on the harness is 13 inches long (330mm). The Mini-PAC board should be mounted near the center of the panel, giving a span between the furthest switches of 26 inches (660mm). The harnesses are designed to cover almost all standard size 2-player panels but extension kits are available for longer distances. Ground harness "hops" are 5 inches each.
If you are building a 4-player panel you can double up on Mini-PACs and harnesses.
Making your own?
You can make your own wiring harness if you prefer, because the Mini-PAC uses a standard 40-way 0.1 inch pitch pin header which can connect to a standard IDE disk drive cable, so you can use this inexpensive type of cable as the basis of your wiring.
The Mini-PAC works identically to I-PAC2 board. All programming features identical, same number of inputs (32). Works in PS/2 or USB mode. For PS/2, you will need the optional PS/2 adaptor.
- Tiny board! Only 2 1/4 X 1 1/2 inches!
- Fully programmable key code set. Stored even after power off unlike some other interfaces which lose all data when powered off.
- Dual interface. Full Speed USB or Keyboard - small adaptor plug available for PS/2 mode.
- Lead plugs into keyboard socket on PC (with adaptor) or direct to USB port.
- Can be programmed using special utilities (for DOS, Windows, Linux, MAC)
- Using host software, an unlimited number of keycode configurations can be stored and downloaded on-the-fly. Retained on power off.
- No separate power needed.
- Does not use a matrix - no ghost keys.
- Does not use a scanning method which causes a variable delay. Each input has it's own dedicated connection into the on-board CPU .
- Fast running gives much better response than a standard keyboard controller. Key transmission and debounce uses a state method for each key. No delays between keys depressed at the same time. (essential for fighting games). No need for a keycode buffer.
- 2 modes. Either uses standard MAME keys (default) or you can program your own character set.
- Shift functions. Holding "Start1" and pressing other buttons sends a range of codes for MAME functions such as "escape", "Coin 1", "tab", "enter". This means no extra buttons are needed on the cabinet. In programmable mode any input can be the shift key and all keys can be programmed with a shifted code.
- Connector for ordinary keyboard which can be used together with the controls if required. No switch-over delays mean you could even play a game using the control panel and keyboard at the same time. Advanced interrupt-driven code means the pass-through uses NO CPU cycles when the keyboard is idle.
- Supports selective up/down key repeat in PS/2 mode (all keys repeat in USB mode) to give easy scrolling through lists with minimal CPU overhead and interface "clutter".
- No special drivers needed. USB drivers are generic Windows.
- Fully compatible with all Apple Macs which have USB ports.
- Supports the Apple Mac "command" key and the Windows "GUI" keys.
- Can be paired in any combination to increase the total number of inputs.
- Keycode programming is integrated directly into many popular MAME front end for seamless launch of emulator or other applications which require different codesets.
- Self-test LED indicator which shows and wiring or other problems.
- Configures each pin of the board as the correct device type, ie keyboard, gamepad, analog, mouse, volume/power.
- Displays a pictorial representation of the board
- Fully real-time interactive. Reads and write board configuration "on the fly"
- Can be run in command-line mode or GUI
- Read/Save configuration to a file
Running from command line
This program can be run "invisibly" from a command line by simply appending the name of an already-saved IPC (config) file:
Winipac.exe <name of IPC file>
This will load the configuration specified. This will also cause a mode change if needed, if using multi-mode firmware. There is more on the "Multi Mode" product tab. Note the IPC file must be accessible by using its full path or saving it in the WinIPAC install folder.
PIN drop down
This displays the selected pin you are configuring. You can select pins from here or from the main graphic.
You can type text in here which will remind you of which device this pin is
connected to. The test is saved with the configuration (on the PC only)
and is not sent to the board.
Here you configure the selected pin as the required device type and
assign values to it.
You can select one of the radio buttons to define the pin as the following:
- Switch (which includes keyboard key, gamepad button and mouse buttons)
- Trackball/Spinner (includes optical steering wheels etc). This is only relevant to certain pins on the Ultimate I/O board.
NOTE: Trackball/Spinner uses 2 pins per axis. The partner pin will also automatically be assigned. You can select X, Y or Z (wheel) axis.Trackballs use two axes (4 pins).
Only the appropriate pins on the top two smaller connectors on the I-PAC Ultimate I/O can be assigned as trackball and spinner. It is recommended that you assign trackball on the left connector and spinner on the right otherwise you cannot use the special connectors for the U-Trak or Spintrak devices. The connectors for these devices are not unique. They use two or 4 of the total 48 input pins available.
The I-PAC 2 and Mini-PAC also support trackball and spinner but these use dedicated pins.
Detail Configuration Example (Switch)
The switch is connected with one terminal to the required pin and other terminal to GND.
Select the pin by clicking on require pin in the graphic area.
Select "switch" radio button in the function area.
You now can select the control type eg whether keyboard key,
mouse button or gamepad button.
In the primary drop-down all possible keys are available plus macros defined separately (see later). Note that the I-PAC sends key scan codes just like a keyboard. It does not send characters so has no concept of upper/lower case. An upper-case key is a macro consisting of the Shift key plus the required character.
If required, you can select a secondary keycode. This is sent instead of the standard code when the I-PAC shift button is held. (This is by default the Start1 button but can be changed).
There is no need a secondary code unless you wish to use shift feature.
To assign a macro proceed as follows:
- Click on the MACRO tab
- Click NEW In the drop-down box, select the first character of the macro
- Click "Add Entry"
- In the drop-down box, select the second character of the macro
- Click "Add Entry"
- Repeat above 2 steps to add further characters
- Click "Add Macro".
- Return to the main tab. Select the macro in the drop-down when configuring the required pin.
In the "Config" tab, the setting can be changed to 4 values as required. The default is the "standard" setting.
This value affects the rate at which the SAME input can be re-activated. Setting a low value will allow faster repeat of presses of the same button, but may also cause unwanted key repeat caused by switch bounce.
This is a specialized setting and should only be changed following testing with the specific switches being used. It does not affect overall performance because it only affects repeated action of the same input.
Dual Board Usage
This applies to the Ultimate I/O when one board has the standard firmware and a second board is connected with the "ID#2" firmware.
There is a command-line switch /2 which when used causes the board to skip the first board when detecting boards on startup.
This can be used in various ways. One method would be to copy the entire application to a different folder so you have two versions. Then edit the shortcut to the program to add the /2 switch.
Another way would be to use only one version and either apply the switch or not. Care would be needed when saving and loading IPC files.
If both boards are required to be reconfigured on the fly, a batch file would have two lines, each specifying a different IPC file and one with the /2 switch.
The firmware upgrade is a two-stage process.
First, the board is placed in firmware upgrade mode. Also a driver is installed on-the-fly if this is the first time an upgrade has been done on the PC.
Then, a program called UUPLOAD performs the upload of the firmware to the board. This program will not detect the board unless it has been placed into upgrade mode from within WinIPAC.
The following steps need to be followed:
- Run WinIPAC as administrator (right click and select "run as administrator")
- Ensure the board is detected and click "File, Firmware Upgrade".
- OK the prompts. The board should reset and change to "Firmware Upgrade Device" (If you have Device Manager open you will see the new device appear under the USB Controllers entry.
- A program called UUPLOAD.EXE should automatically start. If the process fails you can manually run this program if you have a "Firmware Upgrade Device showing in Device Manager
- Select the firmware file
- Uploading to the board
should take approx 2-3 minutes. After that, the board should reset
again and re-appear as a keyboard, mouse and game controller and be
ready for use.
Note: If the process will not work, you can try manually pre-installing the firmware upgrade driver by downloading the installer from this page which also contains additional information on the process and how to recover from failures.
The units were designed around MAME and normally you would use a front-end menu for selecting games. But of course, as the I-PAC emulates a real keyboard (without all the drawbacks) you can use any PC application which uses keyboard input.
Yes. You can use the fully programmable code sets of I-PAC to customise for any emulator or other application. Several popular front-end menus even have integrated support for downloading I-PAC codesets on-the-fly.
NO. Using the key-code programming is entirely optional. When the board is shipped, all codes are automatically assigned to MAME standard keys. As many people have found, this makes installation very quick and easy.
One method is to hack a keyboard, i.e. connect all the controls to the keyswitches so each button appears as a key. This is pretty unsatisfactory for several reasons: It takes ages to wire up as 2 wires need to be run to each switch.
Most arcade cabs have one side of all switches commoned so you have to re-wire everything.
Key Ghosting: This happens because of the matrix nature of keyboard encoders.
Extra buttons: With this solution, with some emulators you have to have extra buttons on the cabinet for functions such as "escape", "insert coin" etc. Nobody likes drilling extra holes in their nice original arcade cab!
Speed: Keyboard encoders use a scanning method. So each key is checked in sequence for a press or release. I-PAC does not use a matrix or scanning.
Shifted function keys will do various functions ie press "1 player start" and "fire" and you will insert a coin. Press "1 player start" and "2 player start" and you will jump back to the menu. You can also use the MAME game config menus with shift buttons, ie tab and enter are shift joystick right and left. The 1 player start button is always the shift button if you are using the standard MAME codes. In programmable mode you can assign any input to be the shift button and you can program all of the buttons to have shifted codes. The unique feature of the shift function is that it requires no dedicated extra button.
When the board is shipped it contains all standard MAME codes including the shift codes mentioned above. If you only ever use MAME and want a quick and easy install this will probably do for you. But if you need to, you can re-program as required, including "on the fly", and the board will remember your new settings.
You may find you need to change the assignment of keys for other emulators or maybe you don't want to have the shift functions of the MAME code set. The code set can be changed using the WinIPAC utility.
Normally you would install and test the board before getting into programming.
Will it work on a MAC?
Yes the I-PAC will work on a MAC with USB. There is even a Mac version of the programming utility.
Will it work on a Linux host including Raspberry Pi?
Yes the I-PAC will work on a Linux host. There is third-party Linux programming utility support (see Downloads page).
What is the size of the board?
Dimensions shown below. Height is approx 17mm.
Compatible with I-PAC Ultimate I/O, I-PAC 2, I-PAC 4, Mini-PAC, J-PAC. (2015-onwards boards only).
New boards are shipped with this version.
Latest firmware files (ver 1.55) for all 2015-onwards I-PAC, Mini-PAC and J-PAC boards plus all Ultimate I/O boards regardless of date.
I-PAC 4 has a later version 1.56 which enabled quad game controller support.
NOTE: Attempting to upgrade a pre-2015 board which this firmware will render it inoperable.
All firmware except J-PAC now supports the Multi-Mode operation which enables switching to dual game controller mode or dual X-Input mode. Check the Multi-Mode tab on the product pages for more info.
Before upgrading ensure you have the I-PAC shift functionality enabled otherwise mode switching will not work. The default is Start1 being the shift control.
Also before upgrading to multi-mode firmware ensure the latest WinIPAC version is installed from the download page.
If the board comes up in Xinput mode after upgrading, this can be reset to standard keyboard by holding P1SW1 while connecting USB cable. See the Multi-Mode product tab on the I-PAC pages for full details.
Click here to download all Multi-Mode firmware versions, including ID#2 for the second board in dual-board UIO setups.
Version 1.56 firmware supports 4 game controllers on I-PAC 4. There is an important issue to be aware of with regards to WinIPAC support in Xinput mode, which is covered on the Multi-Mode tab page.
This is an alternative firmware version which enables the board to appear as a keyboard and dual standard game controller AT THE SAME TIME (both also with mouse). Note Retropie does not work with this configuration. The standard multiMode version (above) enables one device type at a time on the host (plus mouse) and this is required for Retropie. IMPORTANT: This version also requires a different version of WinIPAC for configuration.
This version does not support Xinput.
Unlike the Multi-Mode, this version automatically allocates each of the 2 game controllers on the respective side of the board so WinIPAC does not refer to player numbers, these are defined by the board markings. I-PAC 4 only supports 2 game controllers.
Thanks to John K. Morris of Evolution Interactive for this software
Click here to download the new version for Intel Macs
Click here to download the older PowerPC version.
Linux software utilities are available. These cover several of our products and are being added-to. Please note we are not able to provide direct support for these utilities:
Recommended Wiring Procedure
Arrange the large switch connector on your left with the wires running towards the right, as shown in the right side of the diagram above, with the white polarising key at the bottom.
Working from the bottom of the connector, first connect the BLACK wire to the male connector on the ground harness.
Separate the rest of the wires into 4 groups. Start each group with the brown and red wires (bottom) and end with the purple and grey wires (top). You can ty-wrap the 4 groups close to the connector if you wish, or just lay the groups across the panel.
Now the wires from each group can be connected to the correct switches as shown on the diagram above. The table below may help, as this presents the connections in switch order and shows only the commonly-used switches
Then connect the ground harness to the other contact of each switch. Run along the controls in the most convenient path. You can miss out a connector if you need a longer routing as there are spares. Cut off the extra length.
If you are using the trackball/spinner harness connect the three other plugs to the trackball and spinner as shown and connect this to the board.
Ty-Wrap all wiring for neatness.
Reversing Trackball Axis
If you find one of the trackball axes moves "backwards", the resolution is to swap the X1 and X2 wires over (or Y1 and Y2). To do this, consult the diagram above and locate the correct pair of wires, at the main 30 way plug. The wire and contact can be removed from the black housing by carefully lifting the small tab on the side of the housing and pulling out. Swapping the pair of wires will reverse the direction of that axis.
Connecting Mouse Buttons
Mouse buttons can be connected to the trackball/spinner harness connector. These are not fitted as standard. They should be located as shown in the diagram above. You can swap over two spare wires from your switch harness. The wire and contact can be removed from the black housing by carefully lifting the small tab on the side of the housing and pulling out. Alternatively use two wires from the optional extension wire pack.
Keycodes, Programming and other Information.
All of the information on the I-PAC applies to the Mini-PAC. The default keycodes are the same, all programming information applies inclusing use of the WinIPAC utility, so check out the I-PAC pages for further information.
All of the information on the I-PAC applies to the Mini-PAC. The LED indications are the same, all troubleshooting information applies, so check out the I-PAC pages for further information.
I-PAC Firmware version 50 Enhanced Modes
- Traditional I-PAC keyboard mode unaffected. This is still the default.
- Device mode can also be switched to Dual Directinput Game Controller or Dual Xinput Game Controller. I-PAC 4 now supports 4 game controllers.
- These modes appear as entirely different USB devices so there is no mixed-device confusion which causes issues in Retropie.
- Selected mode is maintained after power off/on.
- Standard Dinput and Xinput Game Controller modes are preset for ease of use without any configuration.
- For advanced users who wish to create custom Game Controller configurations there are customisable game controller modes.
- Modes can be switched by pressing Start1 (or user-set alternate I-PAC shift) and holding this, and Player 1 button 1 through 5, for 10 seconds.
- Modes can also be switched by loading an appropriate config file using WinIPAC including “invisibly” via a command line.
These modes apply to Player 1 and 2 controls.
Mode 1 (Keyboard User Set)
Mode 2 (Dinput Preset)
Mode 3 (Xinput Preset)
Mode 4 (Dinput User Set)
Mode 5 (Xinput User Set)
START plus P1 RIGHT
START plus P1 LEFT
Using WinIPAC, any input can be configured to any control including keys, power/volume, gamepad (Xinput or Dinput) across both players.
When this is done, keys configured as keyboard keys will respond in Mode 1, Keys configured as gamepad keys respond in modes 4 and 5.
Note this feature allows the entire 2-player panel to be configured as a one-player game controller if required, implementing every possible control.
Using WinIPAC, any key can be configured as mouse left or right button, Sleep, Wake, Vol Up, Vol Down. These will function in modes 1 and 4. (not Xinput).
When powered on, the LED will stay lit once the board has passed self-test and detected by the host system.
When switching modes, the LED will flash off, the number of times according to the mode number selected, after the 10 second period.
This is intended for use when WinIPAC is used for downloading configurations on the fly. This is the recommended method of mode switching if it is required to regularly switch modes.
Mode will switch automatically under the following conditions:
- If a keyboard-only configuration is downloaded and the board is currently in gamepad custom mode 4 it will switch to keyboard mode 1.
- If a gamepad-only configuration is downloaded and the board is currently in keyboard mode 1, it will switch to gamepad custom mode 4.
- If a gamepad-only configuration which includes an Xbox Home key is downloaded and the board is currently in keyboard mode 1, it will switch to gamepad custom mode 5.
Owing to the limitations imposed by the Xinput protocol, the following are NOT supported in Xinput modes but are supported in keyboard and Directinput modes:
Volume up and down buttons
Power, sleep, wake buttons
LED control (I-PAC Ultimate I/O only)
No trackball/spinner support
WinIPAC configuration changes take slightly longer in Xinput mode.
I-PAC 4 now supports quad Dinput and Xinput game controllers using firmware version 1.56. This is available in the firmware ZIP on our download page.
When using WinIPAC, all custom settings for player 1 are automatically mirrored to the player 3 controller and all settings for player 2 are mirrored to player 4.
Please note an important limitation which applies only to the I-PAC 4 when in Xinput mode:
WinIPAC cannot be used for reconfiguring controls or switching modes on the fly when in Xinput mode.
To create a custom Xinput configuration proceed as follows:
If the board is in Xinput mode, reset it to Dinput mode by using the hotkey Start1+P1SW4 for 10 seconds. If this does not work use the "backdoor" by holding in P1SW1 while plugging in USB.
If necessary, load in the default Dinput IPC file which can be found in the defaults sub-folder of the WinIPAC install.
Change settings as required. For Xinput, one of the controls must be set to HOME.
Save the file as an Xinput configuration.
Click "File, Force Board Reconfiguration". The board should switch to Xinput mode using the custom configuration.
Note that a mode switch is essentially the same as unplugging a USB device and plugging in a different one, into the same port. It will take the host PC up to 30 seconds to notice this and initialize the new device.
The mode switching can be confirmed by observing the on-board LED or “Devices and Printers” , the USB connect sound or other indication on the host.
If hotkey mode switching fails to work, check that Start1 (or another connection) is configured as an I-PAC shift control. If this feature has been removed in WinIPAC, mode switching will not work. Any stuck/shorted controls will also inhibit mode switching.
The board can be rest back into keyboard Mode 0 by pressing and holding the P1SW1 button on power up. This will work irrespective of the current board mode or input configuration. Note it must be a hard power-up or plug-in of the USB cable.