User Manual (english)

The Arcaze-USB Interface V3 conduces to the connection of pushbuttons, switches and incremental encoders to PCs through a USB port.

Quick Start / First steps

Please follow these few steps after unwrapping your new module for the first time.

Installation of Config Tool and Firmware Updater

The installation is simple:

  1. Download the  Arcaze USB Config Tool Setup .
  2. Execute it on your PC. You will be lead through all steps of the installation. If there is no Microsoft .Net (Version 2 or higher) installied on your PC yet, then the installer will download an install it automatically.
  3. After the installation you will find new entries in the start menu for the Arcaze-USB Config Tool. It does also include the firmware updater now.

The first Firmware Update

A version of the Config Tool does always belong to a distinctive version of the firmware. There are constant improvements, new features and bug fixes on both ends, so it’s very likely that the preprogrammed firmware inside your module is not up to date anymore (and therefore not compatible with the most recent Config Tool). So you’re well advised to do a firmware update as the very first step.

This is very simple: It is descibed in the  Arcaze Video Tutorial #2 or do the following steps:

  1. Connect your Arcaze module to a free USB port and wait until Windows recognized it completely. For the firmware update you should only connect one Arcaze to the PC to avoid confusions. Afterwards any number of modules can be connected simultaneously.
  2. Execute the Arcaze Config Tool. Normally it will display a warning that an incompatible firmware version has been found. (this is what we expected as said above)
  3. Select USB->Firmware Update in the menu
  4. Click “Start Update”
  5. The connected interface is seached and set to bootloader mode, during which the on of the LEDs on the module is blinking.
  6. After a few seconds click “Start Update” again.
  7. The update will be performed in ca. 5 seconds during which the LED blinks irregularly.
  8. Done! Now  you have the latest firmware on your module!
  9. Click “close” to end the firmware updater.


Starting the Arcaze USB Config Tool

Now you can execute the Arcaze Config Tool to create a first simple configuration for your module. Click on “Arcaze-USB Config Tool” on your Desktop or in the start menu (Start->Arcaze USB Interface) .

The application should look like this:

Creating a first simple configuration

  1. Connect the Arcaze-USB Interface
    Achtung! If you’re still using a 3.x config tool, then do not connect more than one module at a time during configuration. Starting from V4.x you can simply select the desired module from a dropdown menu.
  2. Execute the Arcaze-USB Config Tool (see above)
  3. Click the “Create new switch” icon:
  4. A window opens:
  5. On the virtal Keyboard click an “A” for example. This will be the key which we want to assign to one of the interface ports now. These functions (keys on the keyboard) are always called “Makro” in the Config Tool, because it is also possible to trigger sending a complete “macro” of multiple keys in row.
  6. Close a port of an arbitrary input, for example by pressing a connected pushbutton Tasters or by shorting with a paper clip. The associated “Input” value will be displayed and selected automatically, whenever you press a connected button. This port will be assigned to the “A” now. After programming any pressing of the connected pushbutton will send an “A” to the PC.
  7. Click “OK”
  8. In the main window a new row with  our “A” has appeared:
  9. Testing the new configuration

    1. Starten text editor or for example MS Word.
    2. Whenever you press one of the buttons configures before, the desired ‘A’s will appear in the editor.
      1. Select the desired Arcaze module in the “Arcaze Module” Dropdown box.
      2. Select “USB->Write Configuration” in the menu. The new configuration is being written into the module. It is non-volatile.
      3. Close the config tool. The new configuration is available immediately.

    Programming a configuration into the interface

    You already did this in the previous chapter:

    1. Connect the Arcaze-USB Interface
    2. Execute the Arcaze-USB Config Tool (see above)
    3. Select your module from the dropdown list
    4. Click “USB->Write Configuration”

    The configuration is now programmed into the interface and can be used. If you altered the device types compared to the previous configuration (number of interfaces, gamepad instead of keyboard, etc.), then Windows will need a few seconds for the enumeration. If only port assignments have been changed, the device is available nearly instantly.

    Reading a configuration out of the interface

    1. Connect the Arcaze-USB Interface
    2. Execute the Arcaze-USB Config Tool (see above)
    3. Select your module from the dropdown list
    4. Click “USB->Read Configuration”

    The complete configuration of the module is now being displayed.


    Creating multiple interfaces

    With the the Arcaze USB Interface you cannot only simulate a single keyboard or gamepad at a time, but up 5 in total simultaneously! This makes sense in various scenaros:

    • If a game requires each player to to be located on a distinctive gamepad
    • To increase the maximum number simultaneously active (pressed) buttons per keyboard. (This is because of limitation of the keyboard protocol)
    • Just to optically order your independent macros

    Create a new Interface with the “Create Interface” button:

    For each new interface a tab is created, with a complete configuration table of its own. Here we created 4 interfaces erzeugt, all of which are named “New”, this can be changed as desired:

    Description of the modules components



    Item Description
    1 Button Connector A
    2 Button Connector B
    3 Analog Connector
    4 Extension Connector
    5 Internal LEDs
    6 optional connector for external LEDs
    7 USB Port
    8 Vertical USB Port (alternative to 7)
    9 Programming Connector



    Button Connector A (1)

    Pushbuttons, Switches and incremental encoders are connected here. Each button/switch is connected to a pair of 2 neighbouring pins. These pairs are numbered and labeled A01 to A20. You’ll recognize these numbers in the Arcaze Config Tool.

    The pinout of this connector has been changed in PCB V3.2. For reasons please see PCB revision description below.


    Pinout of Button Connector A in PCB V3.0 – V3.2

    The original pinout of Button connector A was the same as on the Button Port B.

    • Outer column of pins (close to PCB border) are signal pins
    • Inner column of pins (close to PCB center) are all GND:

    This pinout had the disadvantage that an Arcaze module could not simply be rotated to swap between Button Ports A and B, as the orientation of the pinout was not symmetric, but identical. This was changed in PCB revision 3.3:


    Pinout of Button Connector A in PCB V3.3+

    To enable simple rotation of the module, pin columns of Button Connector A were swapped. Starting from PCB revision 3.3

    • Outer column of pins (close to PCB border) are GND pins
    • Inner column of pins (close to PCB center) are all signal pins:

    Button Connector B (2)

    Pushbuttons, Switches and incremental encoders are connected here. Each button/switch is connected to a pair of 2 neighbouring pins. These pairs are numbered and labeled B01 to B20. You’ll recognize these numbers in the Arcaze Config Tool.

    The pinout is the same for all PCB versions:

    • Outer column of pins (close to PCB border) are signal pins
    • Inner column of pins (close to PCB center) are all GND pins:

    Analog Connector (3)

    Potentiometers and other analog sources can be connected to this port. The properties of this connectors changed with hardware version 3.7, therefore the 2 variants are described separately here:


    Analog Connector on PCB V3.0 to V3.6



    Starting with V3.2, the pinout of the Analog Connector is printed on the module:


    Pin Signal
    1 GND
    2 GND
    3 Analog Input 0 (AIN 0)
    4 Analog Input 1 (AIN 1)
    5 3,3V
    6 3,3V
    7 GND
    8 GND
    9 Analog Input 2 (AIN 2)
    10 Analog Input 3 (AIN 3)
    11 3,3V
    12 3,3V
    13 GND
    14 GND
    15 Analog Input 4 (AIN 4)
    16 Analog Input 5 (AIN 5)
    17 3,3V
    18 3,3V
    19 optional 5V
    20 not used / reserved

    Each 3 optically framed pins can be connected to a potentiometer. The center pin is connected to the wiper (center pin of the pot), the outer pins are connected to the end terminals (= outer pins of the pot). So, for analog input 0, the connections would be:

    Pin Signal Potentiometer
    1 3,3V end terminal 1 (e.g. left)
    3 Analog Input 0 (AIN 0) center pin (wiper)
    5 GND end terminal 1 (e.g. right)

    This pinout was used up to board revision V3.6 because it looked more intuitive for the user. However, it has the disadvantage that on a connected flat ribbon cable neighbouring signals are nested with each other, which can reduce signal integrity and prohibits simple mechanical splitting of such a flat cable into channels. Therefore it has been changed with PCB V3.7.


    Compatible potentiometers and other sources

    Only linear (not logarithmic!) potentiometers should be used. Allowable resistance is 1kOhms to 5kOhms. 10kOhms are still acceptable, but behaviour becomes increasingly with higher impedance. ~5kOhms is the best compromise and therefore the recommended value.


    Analog Connector auf PCB V3.7



    Starting with hardware revision V3.7 the pinout of this header has been modified. Some GND/3,3V pins were moved:

    Pin Signal
    1 3,3V
    2 GND
    3 Analog Input 0 (AIN 0)
    4 Analog Input 1 (AIN 1)
    5 GND
    6 3,3V
    7 3,3V
    8 GND
    9 Analog Input 2 (AIN 2)
    10 Analog Input 3 (AIN 3)
    11 GND
    12 3,3V
    13 3,3V
    14 GND
    15 Analog Input 4 (AIN 4)
    16 Analog Input 5 (AIN 5)
    17 GND
    18 3,3V
    19 not used / reserved
    20 not used / reserved

    Due to this new pinout, associated signals are routed together on connected flat ribbon cables. This improves noise immunity and enables splitting a flat cable into channels.

    A potentiometer is now always connected to consecutive pins (in terms of pin numbering). For example:

    Pin Signal Potentiometer
    1 3,3V end terminal 1 (e.g. left)
    2 GND end terminal 2 (e.g. right)
    3 Analog Input 0 (AIN 0) cernter pin (wiper)


    Compatible potentiometers and other sources

    Another modification of PCB V3.7 is the addition of a high input impedance amplifier. Therefore resistance of connected potentiometers or output impedance of analog sources can generally be ignored. Nearly anything up to 1MOhms of output impedance can be connected without compromising linearity. However be aware that the inherent disadvantages of extreme values cannot be eliminated:

    • very low resistance of potentiometers (used as voltage dividers) increases power dissipation
    • very high output impedance can compromise noise immunity

    Therefore there is still the recommendation to use resistances of 1kOhms to 100kOhms, even other values will work as well now.


    Extension Connector (4)

    SPI based extension modules can be connected here:

    • LED-Driver 2
    • LED-Driver 3
    • Display Driver
    • Display Driver 32


    Internal LEDs (5)


    PCB V1.0 – V3.5

    The 3 LEDs simply display the status of the 3 keyboard LEDs NUM-LOCK, CAPS-LOCK and SCROLL-LOCK.

    When in bootloader mode, the Num Lock LED is blinking quickly.


    PCB V3.6 and higher

    There has never been a real use for the 2 of the 3 LEDs. Therefore Caps Lock and Scroll Lock LEDs have been removed with hardware revision V3.6.

    Num Lock LED is still there. However, it is planned to reuse this LED as a generic Status-LED instead of Scroll Lock, because this created misunderstandings for some users.


    Optional LED header (6)

    Up to board revision V3.3, there was an optional LED header for the 3 onboard LEDs. There were plans to use those LEDs for something. This never happened due to uselessness. Therefore the connector option was removed in hardware revision 3.4.


    USB-Port (7)

    Attach to PC here


    Vertical USB-Port (8)

    up to board revision 3.4, an alternative vertical USB port could be assembled for different mounting options. However nobody ever required this. Therefore this option was removed in PCB revision 3.5.


    Programming Connector (9)

    This connector was only assembled in early versions of the board and is only relevant for manufacturing. There is no other use of this connector.


    Description of Functionality


    Connecting a pushbutton or switch

    Up to 40 pushbuttons or switches can be connected to an Arcaze USB-Interface. 20 to each of the Button Ports. Each button or switch is connected to on of the numbered pin pairs of the Button Port. Polarity is not relevant when using buttons or switches without additional connections to external voltages.


    Connecting an incremental encoder

    Up to 20 incremental encoders can be connected per Arcaze USB-Interface, 10 to each of the Button ports.

    An incremental encoder typically has 3 pins:

    • 2 signal pins “A” and “B”,
    • a common GND pin.

    The 2 signal pins have to be connected to 2 neighbouring signal pins on the Button Port of the Arcaze USB-Interface, for example the signal pins of ports B01 and B02. Der common GND pin can be to either of the according GND pins on the same connector. The second according GND pin can be left open.

    The polarity of A and B sets rotation direction. When the 2 pins are swapped, rotation direction is inverted.


    System Prerequisites


    For Operation of the Arcaze USB-Interface

    As soon as the Arcaze USB-Interface is configured, it’s just a collection of keyboards and/or gamepads. Therefore it’s compatible with all operating systems supporting USB Keyboards and gamepads in a composite USB device. This includes all currently available Windows version starting from Windows 98, as well as all Linux systems of the past 10 years. To just operate a configured module as a HID, no special software installation is required of the host, it just has to support the mentioned USB keyboards / gamepads in a composite device.


    For Configuration of the Arcaze USB-Interface

    For reconfiguration of the module there are currently 3 prerequisites:

    • Windows PC with Windows XP, Vista oder 7 (32 or 64 Bit). Currently there is no ConfigTool for Linux or Mac. The module itseld however can be used on these machines as well.
    • Microsoft .Net 3.5 or higher
    • The Arcaze Config Tool


    Hardware Versions and Changes



    The very first version of the Arcaze USB-Interface was sold in 2005, was still part of the Arcaze Retro Console and was based on a different architecture. Therefore it is not compatible with the current firmware.


    Version 2 has never been published.


    V3.0 – 3.1

    Starting from version 3.0 all modules are compatible with the current firmware. There is no photo of V3.0, but there are functional differences compared to V3.1.


    V3.2 shows the pinout of the Button Ports, which is valid for versions 3.0 through 3.2: Left column of each button port is I/O pins, right column is according GND.


    In version 3.3 there was an important change: In the previous versions the pinout of Button Ports A and B (the 40 pin headers) was laid out identically as described in the previous chapter: Left column of each button port is I/O pins, right column is according GNDs.

    With the appearance of the first Power Driver and Breakout Extension boards, this proved to be more unintuitive than a symmetrical layout which would allow for symmetrical cable routing. Therfore the columns of Button Port A were swapped, to have GND on the outer column of each Button Port and the I/O pin on the inner column of each button port.

    We’re aware that it would have been nicer to also mirror the pin numbers. But this would have lead to incompatible firmwares for the hardware versions, which we wanted to avoid. It’s likely that this step can be completed in a later version of the hardware.

    Normally the only situation where all of this has to be taken into account, is when replacing a V3.0-3.2 PCB by a V3.3+ PCB. Then the pinout of Button Port A is inompatible: The connector has to be rotated by 180 degrees and all ports of Button Port A have to mirrored in the software configuration (A01 with A20, A02 with A19 etc.)


    In version 3.4 we tried to introduce Micro USB, because that had worked well in other products. However there were many delaminated connectors in the field (presumably because there is no housing around the PCB). Therefore, this approach was given up again in the next revision.


    Back to standard USB-B after the bad experiences:


    Major changes in V3.6:

    • LEDs 2 and 3 were removed due to uselessness. (they had displayed Caps Lock and Scroll Lock).
    • Instead a pushputton was added, which allows to start the bootloader without the jumper trick. To do this, the pushbutton has to be depressed when attaching the module to USB.
    • The analog ports received small pulldown resistors to avoid wild floating of unused analog inputs in the Config Tool.


    Changes in V3.7:

    • The new CAN based extension modules are soon arriving, therefore a 10 pin CAN Extension Port has been added. The old 20pin Extension Port has been renamed “SPI Extension”, but stays in place.
    • The Analog Port received amplifiers, to allow connection high resistance potentiometers without creating unlinearities.
    • Analog Port pinout was changed! Refer to Analog Connector description!
    • The modul length had to be increased by 1cm. Dimensions are 90x60mm instead of 80x60mm now. The mounting holes stay in the same positions as before.

    Technical Specifications

    Dimensions 80mm x 60mm (PCB versions V1.0 – V3.6)
    90mm x 60mm (PCB versions V3.7 and up)
    Weight ~ 35g
    Power supply 5V from USB
    Current consumption <100mA
    USB Interface USB2.0 Full Speed / USB 1.1 compatibele
    Connectors für pushbuttons, switches, encoders 2x headers 40 pins,
    2,54mm pitch
    System requirements for Operation
    • PC with USB1.1 or USB2.0 interface
    • Support for USB keyboard class
    System requirements for Configuration
    • PC with USB1.1 or USB2.0 interface
    • Support for USB keyboard class
    • Windows XP / Vista / 7 / 8 / 10 (32 or 64 Bit)
    • Microsoft .Net 3.5
    System requirements for Firmware Update
    • PC with USB1.1 or USB2.0 interface
    • Support for USB keyboard class
    • Windows XP / Vista / 7 / 8 / 10 (32 or 64 Bit)
    • Microsoft .Net 3.5