Using an arduino as hardware keyboard translator

Hey everyone,

I could need some help with decisions and which parts to buy.

What I want to do is:

  • Connect a usual USB-Keyboard to Arduino and read the input.
  • Connect the arduino to another pc (via usb) and output keycodes

What I found are articles about how to make an arduino act as HID device and how to connect a USB keyboard to arduino (lost the link unfortunately).

I switched to a Dvorak-Keyboard-Layout recently and I really like it. But at my work as IT-Support\Admin I often have to use Computers with a QWERTZ or QWERTY layout. This really slows me down.

So here is the plan:

  • Connect my USB-Keyboard with Dvorak-Layout to arduino.
  • Connect Arduino to Computer via USB.
  • Press a button for choosing if I want to type in QWERTZ or QWERTY
  • Use my keyboard as usual in Dvorak while Arduino "translates" my Keystrokes to Keycodes of the Letters I want to type in the chosen Layout.

This way I could use a Dvorak-Keyboard without changing or installing anything at the Computer.

What I need help with is the following:

  • Do I get it right that I need a USB-Shield and a USB-Host-Library to read input from keyboard?
  • Do I get it right that I have to change the Firmware of Arduino Uno or Atmega 2560 to make it work?
  • Is there an arduino which has one of the features above already preset?
  • Do 1. and 2. Point work together?
  • Does anyone have experiences with that and could give advices?
  • Any recommendations on which parts to buy?

I think I will be fine about the coding. I like to try stuff out until it works. But I am not really good in circuits.

While waiting for your advice I will try to get it done myself. In case I get it working, I will share how.

Looking forward to discuss this with you!

What you need to do is to google the words
arduino usb host and client at the same time
For some examples of what your options are.
But basically I think you will need a USB host shield and an Arduino Leonardo.