* Arduino Leonardo with [Circuits@Home USB Host Shield 2.0](http://www.circuitsathome.com/products-page/arduino-shields/usb-host-shield-2-0-for-arduino-assembled)
* Teensy 2.0 with [Circuits@Home USB Host Shield for Arduino Pro Mini](http://www.circuitsathome.com/products-page/arduino-shields/usb-host-shield-for-arduino-pro-mini)
* [Teensy 3.6](https://www.pjrc.com/store/teensy36.html) with [USB Host Cable For Teensy 3.6](https://www.pjrc.com/store/cable_usb_host_t36.html)
* TBD [Teensy LC](https://www.pjrc.com/store/teensylc.html) with [Circuits@Home USB Host Shield for Arduino Pro Mini](http://www.circuitsathome.com/products-page/arduino-shields/usb-host-shield-for-arduino-pro-mini)
3. Use [my patched version](https://github.com/gdsports/USBHost_t36) of the PJRC USBHost_t36 library. This is required so the sketch can get the raw HID keyboard report.
1. Stack the USB Host Shield on top of Arduino Leonardo, for Teensy, soldering work is required, you may refer to [this page](http://forum.colemak.com/viewtopic.php?id=1561)
2. Import [USB Host Shield 2.0 library](https://github.com/felis/USB_Host_Shield_2.0) to Arduino IDE
3. Connect the stack to your computer and upload the sketch