Hardware-based keyboard remapping

[Nav] wanted to change his keyboard mapping for one particular keyboard, rather than on each operating system. He used an AT90USBKey as a replacement PCB by soldering to all of the contacts on the key matrix. This allows him to remap the keys by following onscreen prompts.

The board enumerates as an HID device, and has a special mode which is accesses by plugging the keyboard in while holding down any key. If a text editor window is active you’ll see prompts from the microcontroller to press a series of keys. This is a routine used to learn how the key matrix is organized, and it’s your opportunity to change how each key is mapped. Since the mapping is saved to EEPROM, you can use any computer to map the keys, then plug the device into a systems that don’t offer software remapping. It could also be useful as a gaming keyboard, assuming there aren’t latency issues

As with the AVR-based arcade controller, this project uses the LUFA package to handle the USB stack.


  1. jc says:

    or… you know.. just add a udev rule

  2. astro73 says:

    Sounds like the old AnyKey keyboards. They just had an LED to indicate programming, but they had oodles of customizing and extra keys to do it with!

  3. wetomelo says:

    A more flexible approach is to program some sort of “usb-hid protocol mapping” , this could be used with any keyboard without soldering

  4. mobius1 says:

    So this would allow me to finally use my model M keyboard however I wanted….sweet….clack clack clack clack

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s


Get every new post delivered to your Inbox.

Join 96,687 other followers