Nadav Ami


What (Not) to Do When You're Missing a Keyboard

Yesterday, I was building a little home server out of some spare parts or I was until I hit a bit of a roadblock. When it came time to install the OS (Ubuntu Server in this case), I realized I didn’t have a keyboard to configure the install.

A normal person would have just gone out and bought a keyboard and an experienced one would have preseeded the install so it could run unattended.

Since I’m neither normal nor experienced, I built idonthaveakeyboard. An Arduino based USB keyboard that uses a serial console as the input. In other words, it lets me use my laptop’s keyboard as a USB keyboard for another machine.

Here’s a little run down of how to use it:

  1. Get a compatible Arduino, program it and connect a USB<>Serial adapter to it’s TX/RX pins
  2. Plug the Arduino’s USB cable into the computer that’s missing a keyboard
  3. Plug the USB<>Serial adapter into the laptop that has a keyboard
  4. Open a terminal on the laptop and connect to the serial port (screen /dev/ttyUSB0 9600)

(Almost) anything you type into the terminal will show up on the other end as if it were being typed on a normal USB keyboard. Right now, it only sends arrow keys, return, backspace, and printable ASCII characters (because that’s all I needed).

And with that, I was able to successfully set up the OS! Job done!

Ok, maybe not… I had to change some BIOS settings and for whatever reason my fake keyboard wasn’t being recognized, so I went out and bought a real one ¯\_(ツ)_/¯

Found a mistake? Submit a PR!