PAC Drive

In stock

Select Unique ID numbers for multiple boards on one host. "Special" leaves outputs off at power-up.

illuminated pushbuttons
USB Output Driver Board

Low-cost driver board for devices such as LEDs, solenoids, lamps etc

Ideal for use with our UltraLux illuminated pushbuttons

When used with the MALA front-end, the easiest way to add illuminated buttons to your panel.

  • Will drive up to 16 standard LEDs with no additional power.
  • Up to 4 boards can be used (more by request). Different IDs available.
  • 500mA per channel
  • 500mA total current without external power supply. Higher current draw will require additional power.
  • 5 volt outputs without external power supply.
  • Up to 48 volt outputs with external power supply.
  • Open-Source software. No driver required.
  • Downloadable example VB application.
  • C++ code on request.
  • Support as a LED driver for several MAME front-ends soon.
  • Linux Support
Basic Connection Method

The picture below shows a schematic representation of 3 LEDs connected. These are 5 volt LEDs as used in our UltraLux buttons

In actual usage the connections would be made using quick-disconnects to the button lampholder.

up to 16 can be connected in this way. No external power required.

To simplify connection, for the power "daisy-chain" you can use our pre-made daisy-chain harness.

usb led controller

Advanced Connection Methods

For connecting devices requiring a higher total current than 500mA for all devices, or devices requiring more than 5 volts,

Instead of connecting the red power "daisy chain" to the "+" connection on the PCB, simply connect to an appropriate voltage source.

For example a PC disk power connector will provide 12 volts through the yellow wire.

When powering from a PC, there is no need for a ground wire since the ground return is via the shield of the USB cable.

The diagram below shows how to connect 12 Volt LEDs

12 volt LEDs

IMPORTANT: When connecting solenoids you must connect a diode across each coil to eliminate "back-EMF" discharge through the driver board. The diode is connected with the end marked with a line to the power-supply end of the coil. Diodes are not required when connecting LEDs.


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 tab above.

LEDBlinky logo For Windows

RGB Commander logo For Linux

Using the Pac-Drive with LEDBlinky

Open the LEDBlinky Configuration and select the LEDBlinky Tools tab. Select the Generate Input Map button.

LEDblinky setup

Enter your control and input port maps to your Pac-Drive using the controls as below.

LEDBlinky setup

LEDBlinky LED Animation Editor

The LEDBlinky Animation Editor is a program that allows you to create complex LED animations with your Pac-Drive controller board. The program includes a layout editor for designing your arcade control panel and a timeline for creating LED Animation files (called LWAX format).

Using the Pac-Drive board with MALA.

MALA is a front-end menu system for MAME and other emulators. It can be found Here. This front-end supports the Pac-Drive board without the need for any plugin.To see how easy it is to add illuminated-button LEDs using this front-end and the Pac-Drive, see below:

First, right-click on the MALA screen and select "options"

Then, in the menu, select "Hardware".

You should see the window below:

mame LED setup

In this window, the detected Pac-Drive board should be shown. Click on "set" to use this board.

Then click the LED tab and the window below should be displayed:

MAME LED setup with MALA

In this window, in the left-hand area, you can click in the tick-boxes to test each LED. (the tick-boxes are for testing only and don't affect the saved configuration). Then, for each LED, click on the description text (which will be "not used" if you have not yet configured). Assign each LED to a button in the resulting drop-down selection.

In the right-hand area, the tick-boxes enable the LEDs to be illuminated for controls which are used in each game. If you enable these, you will see the LEDs change as you scroll through the game list in the main MALA game menu.

In addition, you can set up an "attract-mode (idle mode) LED flash display. Click on the Attract Mode tab and you will see the window below:


Here, you can choose to have a random LED flash pattern during idle mode. Or you can use a pre-defined flash pattern. You can define and save patterns for use here, using the MALA Attract Mode Editor which is a separate program. The screen is shown below:

mala attract mode editor

Using the Pac-Drive board with GameEx.

GameEx is a front-end for MAME and other emulators. You can download it from

GameEx supports the Pac-Drive using a plugin that is available in the official GameEx download. To setup your PC to use the plugin follow these instructions.

First select Start > Programs > GameEx > Plugin Manager.

The Plugin Manager will now open on screen.

Select the LCD/LED Plugin from the list and put a tick next to it to enable the plugin. Then select Configure.

Go to the LED Input Map page and assign the inputs associated with your PacDrive including the Input Codes for use in MAME. You should see the LED's light in realtime as you configure your ports.

That is all you need to configure the plugin for use with the Pac-Drive in GameEx. This plugin also support's Arzoo's LED Animation Editor which is used to create LWAX files which are animation files for the Pac-Drive.

For more information visit here.

Using the board with your own application.

The SDK and other programming software is detailed on the above Programming tab.


NOTE: The following content is not needed for general use. This is for advanced custom programming for our products.


This page contains details of software available for all products for controlling output devices, reading inputs programatically and other usage.

Ultimarc Software Development Kit


These files contain the following code:

Output control:

  • PacLED64
  • PacDrive
  • U-HID PC Controlled LEDs
  • I-PAC Ultimarc I/O Controlled LEDs
  • NanoLED
  • USBButton
  • Servostik 4-8 way switching


  • USBButton Read State

Demo Code:

  • PACDriveDEMO with source. Covers all products above and includes a GUI control panel

Ultrastik 360 SDK

Contains a DLL for sending pre-configured maps to the ultrastik 360 and changing its ID. Includes demo GUI program.

Linux Utilities
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

SharpDX Input Device Coding

This is a project which was produced by a customer (Thanks Marcel!) and simplifies programmatic recognition of input data. It was written/tested for our Ultrastik360 but would be useful for all input devices. Although we are unable to offer support we would like to hear from anyone who finds these utilities useful for any products.

The Ultrastik360 is accessible via DirectX/DirectInput, an unmanaged C/C++ programming interface. Using this interface in .NET requires knowledge of C++ by writing managed wrappers. The open source library from did exactly that, so using the stick in .NET is now done in a few lines of code.

This Example shows a simple example in C#. The minimum needed parts of the SharpDx library (2 dll’s, 700kb) are automatically downloaded and managed via NuGet when you compile first time.

  • SetupTestSharpDx.exe file is a full automatic inno-setup which places the required binaries in ‘program files’ (exe with some dlls)
  • The binaries file contains the same files, but without setup. Unzip them anywhere
  • The source file contains a readme, the visual studio 2013 C# project with all necessary source files (Framework 4.5.1).
In the project there is a readme file with more technical info

Ultimarc Firmware Updates: Additional Information
All our firmware-upgradeable USB products use the same method for upgrade.
This is how it should work:
  • Firmware upgrade requested from the appropriate utility (WinIPAC, Ultramap, U-Config etc) The utility must be right-clicked and "run as administrator".
  • A driver is pre-installed automatically. This is the only time any of our products require a custom driver.
  • The device is shut down by the utility and then resets as a different device, which is known as a "Firmware Upgrade Device".
  • This new device should appear in Device Manager, if the "USB Controllers" entry is expanded.
  • A program called "uupload.exe" is started automatically by the utility. The utility is then closed down.
  • The "uupload.exe" window should appear and a "device detected" message should appear.
  • The firmware file is selected from this window and upgrade should proceed. Do not be concerned if the progress bar does not show.
  • The upgrade should take max 5 minutes. After that, the device is reset back into normal operation mode, and at this point the uupload program can no longer see it, and should display "No device detected or upgrade complete".
What can go wrong:

Uupload.exe cant find the upgrade device
The most common reason for this is the custom driver install has failed. This can be checked by starting device manager and expanding the "USB Controller" entry. The device might be showing with an error, or there might ne a new device somewhere else in Device Manager which has failed to install.
The fix for this is as follows:
  • Download the manually-installed driver from the link in the section below and run "setup" located in the setup folder. NOTE: Must be right-clicked and "run as administrator".
  • Right click on the failed device and "uninstall"
  • Click "Scan for new hardware". The driver should install.
  • Re-run the "uupload.exe" program which is located in the install folder of WinIPAC, UltraMap, U-Config etc, and re-try the upgrade.

Firmware upgrade locks up or fails to finish, resulting in stuck in upgrade mode
Simply re-run the "uupload.exe" program which is located in the install folder of WinIPAC, UltraMap, U-Config etc, and re-try the upgrade.
Ultimarc Firmware Update Driver

The various utility programs for our devices incorporate a firmware upgrade feature. This requires a driver (the only time a driver is required). The driver installs on the fly but should a manual install be required, this installer does this. Run the Setup program in the Setup folder.

Related Products Related Products