Skip to content
Arduino-based keyboard layout remapper
Branch: master
Clone or download
Pull request Compare This branch is 5 commits ahead of darkytoothpaste:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
word game list manager.xlsm


  • Keymapper - An Arduino-based hardware QWERTY keyboard layout remapper.
  • Last updated: 26 November 2013 by darkytoothpaste
  • Last updated: 13 August 2018 by gdsports

What you can do with it?

  1. You can design your own keyboard layout with real hardware support
  2. You can cheat your friend with it or do some other evil things :P
  3. Just think about it!

How to use this?

Hardware support

Hardware assemble

Teensy 3.6 with USB host cable

  1. Solder the header pins to the USB 5 pin connector. Plug in the USB host cable.

  2. Install Teensyduino package.

  3. Use my patched version of the PJRC USBHost_t36 library. This is required so the sketch can get the raw HID keyboard report.

  4. Select Board type: Teensy 3.6 and USB Type: Keyboard. Upload the sketch.

  5. Plug your USB keyboard to the USB Host shield

  6. Done! Happy keyboard hacking :)

Leonardo or Teensy 2

  1. Stack the USB Host Shield on top of Arduino Leonardo, for Teensy, soldering work is required, you may refer to this page

  2. Import USB Host Shield 2.0 library to Arduino IDE

  3. Connect the stack to your computer and upload the sketch

  4. Plug your USB keyboard to the USB Host shield

  5. Done! Happy keyboard hacking :)

TBD Teensy LC

Keyboard layout switching

  • QWERTY is the default layout
  • To change layout, press:
    • CTRL+SHIFT+0: QWERTY (Default)
    • CTRL+SHIFT+1: Tarmak1
    • CTRL+SHIFT+2: Tarmak2
    • CTRL+SHIFT+3: Tarmak3
    • CTRL+SHIFT+4: Tarmak4
    • CTRL+SHIFT+5: Colemak
    • CTRL+SHIFT+6: Dvorak
    • CTRL+SHIFT+7: Workman


Thanks to original author: darkytoothpaste

You can’t perform that action at this time.