- View all variations as list
|Part Number||Harness Type||Availability||Price|
Full Speed USB 2.0. 48 Inputs, 96 outputs. Upgradeable Firmware.
NO EXTRA WIRING required for most standard installations. All switch wiring supplied. Trackball and spinner simply plug in. RGB LEDs simply plug in (Ultimarc Ultralux or ClassicRGB).
This board has a total of 176 connections. If you were to hand-wire every LED and switch this would be a total of up to 576 wire ends to strip and connect! Which is why we have done it for you.!
48 inputs each with it's own dedicated microprocessor pin. No interaction or delays, vital for multi-button games such as fighting games.
Emulates a USB keyboard and yet breaks through the USB simultaneously-pressed-switch limit of 6 switches (plus ctrl,alt,shift) which afflicts all USB keyboard devices. This is because it has inbuilt full native USB support, and does not rely on an add-on adaptor.
Multi-mode operation emulates either keyboard/mouse/LEDs, dual gamepad/mouse/LEDs or Dual Xinput controller.
All input pins can be assigned to any keyboard key, gamepad button (including hat switch), mouse button or power/volume control. Also sleep/wake.
Inputs can be assigned as trackball and spinner and our U-Trak and SpinTrak devices plug directly into the board.
Shift function which allows ANY input to be assigned to a shifted secondary keycode and the shift button can have it's own function too so no need for a dedicated extra control panel button.
Self-test LED which gives an instant visible check of your installation.
96 channel LED controller with constand-current drivers. Also 6 high-current 1 amp drivers.
INTERACTIVE configuration utility which applies and reads back any changes "on the fly".
MAME Defaults pre-loaded.
I-PAC Ultimate I/O retains it's programming after power off. Beware! Not all keyboard encoders do this!
Thanks to Daniel Spies, there is a video describing this board here
The I-PAC series (Interface for Pc to Arcade Controls) are boards which allow connection of arcade controls such as buttons and joysticks to a USB port on a host system. They are designed around the MAME emulator which supports over 1000 arcade games and can be used with other emulators.
It is designed to be used inside an Arcade Games cabinet with the host system also mounted inside, but could just as easily be used with simply a control panel without a cabinet.
Special shift function buttons mean that a normal keyboard is only be needed for game loading and configuration, not for gameplay. All key codes can be programmed but you dont have to as you can use the built-in default configuration which has all standard MAME codes for quick and easy installation. Programmed keys codes are stored even after power off.
- Fully programmable key code set. Stored even after power off unlike some other interfaces which lose all data when powered off.
- Controls can be assigned to any keycode, gamepad button, plus mouse buttons, power, volume up/down, sleep or wake.
- Multi-mode operation, can emulate keyboard/mouse/LEDs, dual gamepad/mouse/LEDs or Dual Xinput controllers.
- Wiring harness supplied for 32 input connections. Additional harness options for the other 16 inputs. Connections marked on the board.
- Trackball and spinner interface. When enabled these use a total of 6 of the available 48 inputs.
- Example configurations include: 2 player with trackball/spinner. 4 player without trackball/spinner.
- Self-Test LED gives an instant check of all your wiring. Can indicate which, if any, input has a problem.
- All button inputs referenced to ground - no need to re-wire separate grounds to each button.
- Supplied USB cable plugs into PC USB port.
- 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 for controls.
- 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 interrupt-driven software gives much better response than a standard keyboard controller. Key debounce uses a state method for each key. No delays between keys depressed at the same time. (essential for fighting games).
- 2 operation modes. Either uses standard MAME keys 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.
- Special note for Windows MAME users! Shift key functions mean you can select and start games from the Windows interface without using the keyboard or mouse.
- No special drivers needed. USB drivers are generic Windows.
- Fully compatible with all Apple Mac (excl config utility).
- Supports the Apple Mac "command" key and the Windows "GUI" keys.
- 96 LED channels with 256 brightness levels for full RGB color mixing
- Can be used with single-color or RGB LEDs (RGB use 3 channels)
- Constant current negates the need for resistors for each LED
- Can be used with LEDs with inbuilt resistors if required
- 128-command flash storage for “attract-mode” or test sequences which run immediately on power-up with no PC present
- Supplied configuration utility allows customisation and storage of attract-mode LED sequence.
- Supports single-command fades with preset speed on-board. Multiple fades can overlap
- Comes with power cable for plugging into a PC disk drive power connector.
- Extensive software support including test application, Software Development kit for adding support to your own programs, and LedBlinky third-party software
- Compact modular connectivity. Our Goldleaf RGB, Ultralux RGB and ClassicRGB pushbuttons simply plug in. Other harnesses and connectors available.
- 6 X 1 amp MOSFET drivers which are suitable for LED strips and other high-power LED applications.
|LED test and scripting utility||WinIPAC for reconfiguring controls|
In addition to our own test and script utility shown above, Ultimarc LED and output controllers have great software support, including PC and Linux software and our own SDK which enables easy addition of output control to your own programs.
Also a Linux library is available. See our Programming Page
Thanks to Shaun Quick for his Linux Library of LED control commands here
There are more details and screenshots of third party software on our PacDrive page
This is a third-party application available in free or paid versions. It is actually a suite of programs enabling configurations to be stored, animations to be created, and has special MAME features.
Note that LEDBlinky supports direct control of the board via USB only. It does not support creation of scripts for storing on the board.
Version 5.0 required.
- With RGB LEDs, you can specify colors for individual controls or using a pre-defined colors.ini file. Colors or intensities can also be customized on a game-by-game basis.
- Use audio output (music or game sounds) to blink, fade, or animate LEDs – great for use with Jukebox software.
- Blink and speak front-end UI controls by pressing a pre-defined “Help” button.
- Blink and speak controls when pausing a game and/or play a LED animation (selected, random, random montage) or use audio output (music) to animate the LEDs. This is a MAME only feature.
- Flash start buttons when credits are available - this is a MAME only game dependent feature.
- Light start and coin buttons based on active player count for the current game.
- Flash all or active buttons when any is pressed.
- Full support for other MAME Outputs - light LEDs based on any output. Outputs can be linked to controls (P1_Button1, P2_Button2, etc.) or directly linked to a Device/Port.
- Extensive audio animation options let you completely customize how the LEDs blink to music or game sounds.
- When starting a game, LEDBlinky can play a LED animation (selected or random), speak the game name, speak each button “action” while blinking the button in its correct color, speak the primary controls, and speak a custom message. When speaking the game name or custom message, LEDs can blink in sync with the speech.
- While playing a game, LEDBlinky can play a continuous LED animation (selected, random, or random montage) or use audio output (game sounds) to animate the LEDs. The LED animation will only effect unused controls.
- See the LEDBlinky website for all details
The diagram below shows some examples of connected devices. For clarity only a few items shown.
Click tabs above for default key codes, wiring and power information.
LED support works in an identical way to our PacLED64 except there are 96 LEDs instead of 64.
LEDs can be controlled using our SDK or the third-party LEDBlinky utility.
The board is supplied with a power cable which supplied 5 volts to the LED power black connector from a spare HDD connector.
Alternative power source can be used such as a wall-plug power supply. Voltage should be 5V for all LEDs supplied by Ultimarc. Current 0.02 amps per LED channel.
Ensure CENTER pin on the connector is 5V, BARREL is ground. Connector is 5.5mm diameter, 2.1mm pin.
The board is shipped with a pre-configured LED script which fades up all LEDs, then down, then enables each LED in turn, to one color, then cycles. You can change this script if you wish. The LED script runs from power-on even before the PC is running and stops running as soon as any control is activated.
|Example Configurations||Items to Order|
|2 Players using Goldleaf RGB, Ultralux RGB or ClassicRGB buttons, U-Trak trackball, Spintrak Spinner||Nothing extra required. Order Board with 2-player harness kit.
LED Power Cable
Ground daisy-chain harness
|4 Players using Goldleaf RGB, Ultralux RGB or ClassicRGB buttons, No trackball or Spinner (these are not supported in a 4-P config)||Order standard board/harness (see above)
Order 4-player expansion kit.
|Either of the above but using single-color LEDs such as Ultralux.||Order as above plus one "LED Connection Pack" per 9 LEDs, Also one "Daisy-Chain Harness" per panel for LED common connections.|
|Optional Extras||Extension Harness Pack. This is used for unusually large panels for increasing reach of any longer wires.
PCB Mounting Feet
The above picture shows the board fully wired for 2 players including::
- Power Cable (included)
- USB Cable (Included)
- Switch harness (included)
- Daisy-chain ground harness (included)
- LEDs (not included). Note these are examples only, to show connection. Our Ultralux RGB, Goldleaf RGB and ClassicRGB LEDs have longer wires than those shown.
- U-Trak Trackball (Not included)
- Spintrak Spinner (Not included)
This board will also control our RGB illuminated joystick handle which simply plugs in.
|Player 3-4 Connection Pack||9-LED Single Color Connection Pack|
|Main Harness||Included||32||330mm / 13 inches|
|Daisy Chain Ground harness||Included||32 Links||90mm / 3.5 inches per link|
|LED Power Cable||Included||n/a||1.5 M|
|USB Cable||Included||n/a||1.5 M|
|Extension Harness Pack (Wires replace existing)||Not Included||10||560mm / 22 inches|
|Player 3,4 Connection Pack||Not Included||20 Plus 20 Ground||560mm / 22 inches|
|9-LED Connection Pack. Required for each 9 single-color LEDs (Our RGB are pre-wired)||Not Included||9 plus common||560mm / 22 inches|
Click the IPAC Downloads tab above to download the latest firmware.
|INPUT||NORMAL CODES||CODES WITH SHIFT
(hold 1 player start)
|1 RIGHT||R arrow||Tab|
|1 LEFT||L arrow||Enter|
|1 UP||U arrow||Key Below ESC (Volume, gamma, etc )|
|1 DOWN||D arrow||P (pause)|
|1 SW 1||L-ctrl||5 (Coin A)|
|1 SW 2||L-alt||
|1 SW 3||space||
|1 SW 4||L-shift||
|1 SW 5||Z||
|1 SW 6||X||
|1 SW 7||C||
|1 SW 8||V||
|2 SW 1||A||
|2 SW 2||S||
|2 SW 3||Q||
|2 SW 4||W||
|2 SW 5||I||
|2 SW 6||K||
|2 SW 7||J|
|2 SW 8||L||
|THE FOLLOWING CODES FOR THE I-PAC 4 ONLY|
|3 SW 1||R-CTRL|
|3 SW 2||R-SHIFT|
|3 SW 3||ENTER|
|3 SW 4||O|
|3 SW 5||F5|
|3 SW 6||F6|
|3 SW 7||F7|
|3 SW 8||F8|
|4 SW 1||B|
|4 SW 2||E|
|4 SW 3||H|
|4 SW 4||M|
|4 SW 5||F9|
|4 SW 6||F10|
|4 SW 7||F11|
|4 SW 8||F12|
When the board is first powered on, it operates in keyboard mode and contains a pre-loaded code set. This matches the MAME default key codes as the table above indicates. For many users there is no need to do any re-assignment, just power up and play.
You may want to re-program the codes if any of the following apply:
- · You use an emulator or other PC application without a key re-mapper.
- · You don't want people to be able to access the MAME game config menus by using shift buttons (for example game contests etc)
- · You want to
coin insert to a real coin slot
rather than using shift button feature.
The boards are shipped for operation in keyboard mode but can be changed to dual Xinput or Dinput game controller mode. Check the Multi-Mode page tab on the board information pages. You may need to upgrade firmware. For this see the I-PAC Downloads tab.
The I-PAC Ultimate I/O board has special firmware available which enables it to be seen by LED control applications as a second board. This is available on the IPAC Downloads tab page.
WinIPAC can also reconfigure each board separately, by means of a command-line switch "/2". For details see the WinIPAC tab page.
You do not need to install any drivers or software from the Ultimarc CD to get the board to operate.
Connect one side of each switch to the screw terminals as indicated on PCB. "Daisy chain" the other side of all switches together and connect to either of the "GND" terminals on PCB. Some micro-switches have 3 connections – only use the ones marked "NO" and "COM". Don't connect anything to the "NC" tag. Below is a diagram showing an example of 3 joystick micro-switches connected to inputs on the I-PAC board.
gauge of wire used is not
critical. Any insulated stranded
wire will do providing it is thick enough to be gripped by the screw
connectors. The wire we supply in our wiring kit is 16 X 0.2 mm.
You can connect more than one switch to one I-PAC input, to perform the same function. For example you might want to have side flipper buttons connected to the same inputs as fire buttons as these are used in different games. This applies to joysticks too. You can connect a 4 and an 8-way stick to the same inputs. (But check our 4-8 way switchable sticks though!)
The I-PAC 2 and I-PAC 4 use screw connectors for the controls:
The Mini-PAC and I-PAC UIO use a supplied wiring harness. The harness comes in two sections. There is a "daisy-chain" ground harness and a 32-way switch harness.
The first step is to connect the male end of the black ground harness to the black wire on the main harness. Then connect to every switch. The example below shows 3 connected switches:
Plug one end of cable into the USB connector and other end to motherboard USB connector.
Start windows. Windows will detect the device and automatically load drivers. The drivers for this device are already within Windows. There are no Ultimarc drivers for the I-PAC.
Boot PC and
run a text program such as Notepad.
Observe the LED on the I-PAC should be ON in normal use. If there is a
failure detected during power-up, the LED will flash a number of times
then stay OFF.
Press various player 2 buttons (some of the player 1 buttons are mapped to non-displayable codes such as ALT so best to use player 2). You should see characters displayed, just as if they were typed on the keyboard.
This is done using WinIPAC V2. For full instructions, click the Configuration Utility tab.
I-PAC boards support left/right mouse buttons plus game controller buttons, volume up/down, power, sleep and wake, in addition to keyboard keys. Extensive macro support is available.
Pressing and holding 1player start enables shift mode with access to the following keys (when "MAME" setting is used):
2 player start =Esc – for jumping back to the menu
Joystick left =Enter – for running games in Windows and for MAME game config menu
Joystick right =Tab – for entering MAME config menu
Joystick up =~ - for entering MAME volume/gamma menu
Joystick down =P MAME pause key
fire (button 1)=5
simulating coin insert.
The above shift keys can be changed/turned off as required if the board is programmed.
MAME HINT: to get past "Type OK to continue" prompt, just move joystick left then right.
KEYBOARD: PC should pass BIOS keyboard self-test with or without a normal keyboard connected. The unit is capable of being used in a closed arcade cabinet with no additional keyboard or controls and motherboard booting into an emulation menu. If an auxiliary keyboard is connected it can be used fully and even used during gameplay alongside your control panel.
USB DOS SUPPORT : Most PCs support a USB keyboard in DOS mode so I-PAC in USB mode MAY work in DOS. (USB keyboard support may have to be enabled in the BIOS). HOWEVER: many BIOSes have poor USB support which prevent use for gaming, as the response is too slow. USB is intended for Windows use, either in a "DOS box" or a windows application.
USING TWO I-PACs TOGETHER : Two boards can be used for doubling the number of inputs. Each board can be individually programmed with the required code set, then the two boards can be connected together as above.
WIRING TWO JOYSTICKS TO THE SAME CONNECTION : This is fine, and is often done when using a dedicated 4-way joystick alongside an 8-way. Both joysticks could be wired to the Player 1 inputs. They will both perform the same function of course.
The UIO board has 48 total input connections. 32 of these are on the main harness and 16 on the pins at top left and right.
Some of these pins can be used for trackball and spinner but these are deducted from the total 48. Spinner uses two and trackball uses 4. When these devices are connected and configured in WinIPAC, these pins cannot be used for switches.
Spinner shared with P4 L-R
Trackball shared with P3 L-R-U-D.
These pins form a dual-purpose interface. The function is configured in the "config" tab in WinIPAC.
There are 2 modes:
In this mode, an Ultimarc U-Trak
trackball and SpinTrak spinner can be directly plugged into the header
pins. The wire colors are marked.
Expansion Interface Enabled : In this mode, one or two Ultimarc Xbox360/PS3/Xinput converters can be plugged into the header pins. The wire colors are marked.
Remember that in its as-delivered mode the I-PAC emulates a keyboard. So if you bear this in
mind, you can use any program that displays text to test the response
with certain limitations. Notepad or the DOS prompt can be used for
example. You can connect a short piece of wire to GND and use the other
end to touch onto various input connections, and characters should be
typed on the screen. Bear in mind, though, that the default MAME
configuration includes many non-printing keys such as ALT, CTRL and the
arrow keys, so trying the player 2 inputs is best as these are all
But Notepad or DOS cannot tell you whether an input is "stuck" though so is not a complete test. For Windows, the best test is the Passmark keyboard Test which we can recommend downloading. It's a 30-day trial version but hopefully you will have it working by then!
Problem: Player 2 buttons 5 and 6 not working.
This is not an I-PAC problem! By default, MAME does not have these
buttons assigned to any keycodes. Just go into the MAME controls menu
(press tab in a game) and assign them. Button 5 is "I" and Button 6 is "K".
Problem: No shift functions work.
Part of the shift function design means that to avoid "stuck" keys,
shift functions are disabled when any key is pressed. So loss of shift
functions means you have a shorted or stuck switch.
Problem: Erratic behaviour of joystick directions. Shift functions not working. "Stuck" keys.
A very common cause is connection of the inputs to the "NC" contact on the switches instead of "NO". See the "no shift functions work" heading above for more info. This type of problem usually occurs when a large number of switches are incorrectly connected. The self-test LED will indicate this problem by flashing at power-up then staying off.
Problem: In USB mode, the I-PAC was not detected properly once before and now I can't get it out of this state.
You will need to remove it from Windows and let it re-detect. Go into Control Panel, System, Device Manager, Hardware. Open up the USB controller by clicking on the plus sign next to it. Under this heading will be displayed all the USB devices. Right click on all devices one by one except the controller itself and Root Hubs and select"uninstall". Now unplug and re-plug the I-PAC. It should be re-detected.
Problem: In USB mode, it is only detected as "Unknown Device" or "device has a problem".
Under certain conditions, shorted inputs can cause this, or inputs that are held at 5 volts. This may happen either because of a wiring error (see steps for checking this, above) or the I-PAC inputs being connected to something other than an open-circuit switch. If you need to connect non-switch devices please email for advice.
Problem: Keys intermittently sticking in one direction.
This is usually not an I-PAC
problem. If you check the I-PAC
installation using the
PassmarkKeyboard Test you
will probably find that this works fine and you may need to look
elsewhere on your PC installation such as some errant software
consuming PC resources.
Performing a USB Device Reset
Windows 7 and later cache information about all USB devices which is not refreshed when the device is unplugged/reconnected. This can cause issues with devices appearing not to work. This process is always required when firmware is changed from versions which support game controller device, to versions without game controller support or vice-versa.
To reset the device settings, open Device Manager. A quick way to do this is to click the Windows button and in the "search programs" enter:
- Expand the "USB Controllers" entry
- Find the "Composite Device". There may be more than one. There is no harm in applying this to all of them with the exception that a keyboard with integrated trackball might be one of them and this will prevent any further use of the trackball if uninstalled.
- Right click on the Composite Device and "Uninstall" it.
- At the the top select "Action", "Scan for New Hardware". Alternatively, if you have "lost" your USB mouse, just unplug/reconnect it.
When a shift button has been assigned, pressing and holding this button causes the "SHIFTED" code page to be used. The way this works is not the same as defining "key multiple" in an emulator.
To explain this, consider the following example which is part of the
standard I-PAC code set in non-programmable mode (and can of course
also be set up in programmable mode)
For example say "Start 1" is the shift button and "Player 1 Button 1" is "Coin 1" in the shifted codes. Now if you set this as a key multiple in an emulator, you could generate a coin insert by pressing these two buttons together. BUT you would also send the code for the first button you pressed. Imagine you are starting a game and have one coin insert already done and you want to play a 2-player game which needs two coin inserts. You press the key combination again to send another coin. Unfortunately what may happen is that a one-player game will start as you have pressed "start1" as one half of the coin key combination!
How does the I-PAC get around this? When you press the "Start 1" (shift) button nothing happens immediately. The I-PAC waits to see if you are going to press another key at the same time. If you do press the "Player 1 Button 1" the shifted "Coin 1" code is sent. If you don’t press any other button the "Start 1" code is sent when you RELEASE the "Start 1" button. So you don’t get any unwanted key codes.
- 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.
Click Here for older software versions for pre-2015 boards
Compatible with I-PAC Ultimate I/O, I-PAC 2, I-PAC 4, Mini-PAC, J-PAC. (2015-onwards boards only).
Click Here to Download Program
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.
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.
The release firmware supports two game controllers only,on I-PAC 4, but we now have beta firmware available for 4 game controller support on I-PAC 4. Email for details.
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.
Click here to download all mixed-mode firmware versions.
Click here to download the special WinIPAC version for configuring mixed-mode boards.
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:
Linux Library and command line utilities developed by Katie Snow
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.
- 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.
The release firmware supports two game controllers only,on I-PAC 4, but we now have beta firmware available for 4 game controller support on I-PAC 4. Email for details.
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.