Optical Encoders

From BYOAC New Wiki
Revision as of 22:53, 20 August 2014 by PL1 (talk | contribs) (KADE)
Jump to navigation Jump to search

Optical encoders (or Mouse encoders) allow the use of a trackball, spinner, or 360 degree steering wheel and offer the functionality of a mouse hack in an easy-to-use form. They offer several benefits including ease in connecting controls and time savings.


KADE miniArcade. Photo © kadevice.com, Used with permission.
KADE microArcade. Photo © kadevice.com, Used with permission.

The KADE series of Open Source/Open Hardware encoders allow you to load your choice of various gamepad, keyboard, rotary joystick, or game-console specific firmwares.

Some firmwares like "Trackball/Spinner (Quadrature) to USBHID Gamepad Encoder" and "Trackball/Spinner (Quadrature) to USB Mouse and Keyboard Encoder" can process raw optical inputs.

The easy-to-use KADE Loader software programs the desired firmware into the AVR microcontroller.

The miniArcade and microArcade encoders have 20 player inputs and allow "shifted functions" using the HWB input.

Because it is Open Hardware, you can get the AVR (atmega32u2 for the miniArcade) from various vendors to build a custom version.


Older-style Opti-PAC Photo © Ultimarc.com, Used with permission.

The Opti-PAC allows for easily connecting optical-type arcade control devices including trackballs and spinners to a PC.

Relevant Link: Ultimarc's Opti-PAC Page


Older-style Opti-Wiz Photo © IDVT Inc. / GroovyGameGear.com, Used with permission.

High-Performance 3-Axis, 3-button Mouse Emulation.

USB and PS/2 compatible. Available with either connector, but is compatible with both using an adapter.

Connections provided for 3 buttons, 3 axes, +5v and Ground.

With the addition of a resistor and 2 opto-interrupters, can be used as a full optical board for home-made controls with X, Y or Z Axis selectability.

Small Footprint

USB or PS/2 cable included, depending on version ordered.

Compatible with virtually any device utilizing "Active Low" opto-electronics.

Relevant Link: GroovyGameGear's Opti-Wiz Page



The ME4 is designed to interface a Trackball and/or Spinner to your computer's PS2 mouse port. Signals from the Trackball and Spinner are merged and converted into PS2 mouse protocol. Since the response from both devices is merged at the ME4, activity from either device will report mouse movement to the PS2 mouse port. This arrangement allows both the Trackball and Spinner to be used simultaneously, or independently.

Relevant Link: Hagstrom's ME4 Page

Mouse Hack

It's possible to perform a simple hack on a ball-mouse that allows it to connect to a standard arcade trackball (and perhaps spinners?). This is done by removing the mouse's optical receivers and wiring the trackball's encoders to them. Additionally, a mouse can be hacked to create a spinner with a few extra parts.

Relevant Link: How to turn a Mouse into an Arcade Trackball Interface (PDF)

Relevant Link: Build you own Spinner Wiki Entry


Ultimarc's U-HID allows users to assign a variety of input and output functions to desired pins.

Input devices/types:

  • Microswitch buttons/joysticks
  • Optical (spinner/trackball/mouse/360 degree steering wheel)
  • Analog (potentiometer joystick/pedal/270 degree steering wheel)


  • Keyboard
  • Gamepad (including analog and digital controls)
  • Mouse and mouse buttons
  • LED outputs

Total 50 connection pins:

  • Max 8 analog axes on 50 possible pins (Windows limitation)
  • Max 32 Gamepad buttons on 50 possible pins (Windows limitation)
  • Max 8 Quadrature mouse devices on 16 possible pins out of the 50.
  • Max 3 Quadrature mouse axes (X, Y and Z, Windows limitation)
  • Max 50 keyboard keys on 50 possible pins.
  • Max 16 LEDs in any combination of PC or U-HID controlled. (USB 500 mA current limitation).
  • Max 50 low-current output drivers.


The U-HID-G is similar to the U-HID, but with only 8 input pins and a three-axis accelerometer for sensing gravity and motion acceleration.

U-HID Nano

The U-HID Nano is similar to the U-HID, but with only 8 input pins.

See Also