About Me
Contact Me

Electronic Projects
Keyboard Encoder

Robotic Projects
Misc. Projects

Keyboard Encoder


After deciding that I wanted to build my own arcade cabinet I began to research the possible was to hook the controls up to a PC. There are several commercial options out there but they all seam to be in the +$100 range which seamed really high to me as there is nothing to the device. Most of the keyboard encoders out there are nothing but a single micro on a PCB... that is it. So I decided that I would just create my own. The PS2 interface is fairly straight forward.


This device has ability to be placed in between a PS2 PC keyboard and a PC to allow the control panel buttons to emulate keyboard presses. Each button was hooked up to the Normally Open contacts of the switches. Then the other side of the switch is attached to ground. When a button is pressed the input to the encoder is ground and the micro sends the appropriate response to the PC depending on the button pressed. For example, if I press left on the player one controller it sends a the PC a command for the left arrow on the keyboard being pressed. Using this device I was able to map all of my arcade control panel buttons to keyboard commands that could be interoperated by MAME. For more information on the PS2 interface here is some good information on how PS2 works. This encoder what create to be used inside of my Arcade Cabinet. Head over to the Misc. Projects sections and check it out.

Keyboard Encoder in System

Here is what the keyboard encoder looked like when it was attached in system. All 18 buttons and 2 joysticks are attached to the device. A button on the of the control panel is used to allow the keyboard to pass through the encoder. Another button on the bottom of the control functions as the escape key to allow easy exit from games. The micro used in the encoder is a PIC16F877a. Other then the crystal and the pull up resistors there are no other chips required to complete the encoder.

Button Mapping

The above image shows how the buttons are mapped to the encoder. The default setup allows the controls to work directly with the MAME emulator setup.

Keyboard Encoder code and schematics

Right click and Save Link As to download file.
ExpressPCB software was used to layout the board.
This information is supplied in the hope it may be useful but without any warranty; without even the implied warranty of merchantability or fitness for a particular purpose.

Web site and all contents Copyright Steven Easley 2005-2008, All rights reserved.