I got my Raspberry Pi. I do not have an ethernet connection or Wifi dongle available, or an extra keyboard. I don’t have any Bluetooth either. I needed a substitute keyboard to use the Raspberry Pi.
For fun, I designed a little USB device, actually it has two USB devices on a small board in the shape of a stick. Two USB capable microcontrollers are on this circuit. One will connect to the Raspberry Pi, and behave like a keyboard and mouse. The other will connect to my laptop. My laptop will run software that captures keystrokes and mouse events. The laptop will tell the microcontroller what to do, so when I press a key on my laptop, the Raspberry Pi thinks the same key is pressed. (and the same with the mouse)
Some other features? Both of the microcontrollers have a bootloader, so I can update the firmware really easily.
Here are some pretty pictures of the progress (click to view Imgur album)
I’m still working on perfecting the code, so check back later. The work-in-progress code, schematic, and PCB files are here (20120712). All of it is open source, big thanks to LUFA and V-USB and libusb.
Tech Details: two ATmega32U4, running on their internal 8 MHz RC oscillator (save board space and $$$ by not requiring a crystal), which is actually accurate enough for low speed USB, but not accurate enough for full speed or high speed USB. The two ATmegas talk to each other using 9-bit UART, I’m using the 9th bit as a “start of frame” signal. The protocol is extremely simple, one side basically tells the other side what content to place in its USB HID report.
This project took about 3 days to design, waited 2 weeks for the PCBs to be made, 1 day to solder, 4 days to write the bootloader and firmware and test. Yes, I know there are a billion more cost effective ways of giving my Raspberry Pi a keyboard, this project is mainly for shits and giggles.
I gave it the name “Nehebkau” after doing a search for two headed mythological monsters.