The newly released Arduino Leonardo has a few very interesting features, most notably the ability to act as a USB keyboard and mouse thanks to the new ATmega 32U4 microcontroller. This feature isn’t exclusive to the Leonoardo, as [Michael] explains in a build he sent in – the lowly Arduino Uno can also serve as a USB HID keyboard with just a firmware update.
The Arduino Uno (and Mega) communicate to your computer through a separate ATmega8U2 microcontroller. Simply by uploading new firmware with the Arduino Device Firmware Upgrade, it’s easy to have your old Arduino board gain some of the features of newer boards such as the Teensy or Leonardo.
[Michael] goes through the steps required to make this upgrade work and ends his build by showing off an Arduinofied ‘cut, copy and paste’ button project as well as a few multimedia controls. You can check those builds out in the video after the break.
If emulating a USB keyboard isn’t your thing, it’s also possible to install LUFA firmware to emulate everything from joysticks to USB audio devices. Very cool, and very useful.
[youtube=http://www.youtube.com/watch?v=e_F9pNyTtFc&w=470]
[youtube=http://www.youtube.com/watch?v=ZKObxbaJgKI&w=470]
So what? vusb-based HID keyboards have been around for ages already!
Sure, V-USB has been around for a good while, but I think it’s a great addition for Arduino, as it’s a lot easier to implement!
The new thing is that this is now possible with an ARDUINO!!!
Previous models have used an FTDI USB chip that didn’t allow this, but some models are now using an AVR for USB communications, so with a firmware update they can.
Come on! It’s news if it’s Arduino!
LUFA is a pretty neat piece of work. If nothing else the number of ready to go projects built around it make for a simple jump off point to get something working quickly.
I imagine you could use some of my Teensy code with this, to some interesting results.
http://www.hadak.org/2010/08/16/the-unstoppable-windows-hacking-device/
Link not found
Gotta get one! This is perfect for the Google Earth flight simulator console I’m building!!
you may be interested in this on the Teensy
http://www.pjrc.com/teensy/td_flightsim.html
This was covered two years ago by http://hunt.net.nz/users/darran/
Thank you for submitting the link. ;)
Arduino is just too far behind the times, especially for the price and size. I know their thing is being slow and outdated (with a terrible pin layout) but there comes a point when it is just too much. I think it is official when a softdrink company is giving away clones, and the official Arduino clones the clone because it is better.
When follwoing the guide this is all dfu-programmer gives me:
dfu-programmer: no device present.
The guide is missing a step, or?
sooo, this means that we can just update the firmware and then keep using arduino as normal? … because the on the previous examples, you needed to build a shield for it.
With this update I would be able to use Arduino UNO as a keyboard with no shield?
I’ve made a small contribution to DFU firmware. Made a modified 115,200bps keyboard HID binary. You could donwload it on my post.
http://make-culture.blogspot.kr/2012/07/arduino-uno-r2r3-usb-hid-115200bps.html
I’v made a small contribution to Darren’s effort. New 115,200bps Arduino Uno Keyboard HID firmware is available at my post.
http://make-culture.blogspot.kr/2012/07/arduino-uno-r2r3-usb-hid-115200bps.html
Thanks to all of you~
You can see video presentation of similar USB emulation device, but controlled with Android device via Bluetooth instead.
Video is available on Indiegogo campaign: http://www.indiegogo.com/at/hiDBLUE
Im trying to learn so please dont rip me apart with my noobish stupid questions. I bought an arduino uno from china and got ripped off it has an atmega8a-pu chip in it. Im trying to figure out how to make it work as a usb hid keyboard to automatically execute a specific order of keypresses. In a nut shell what im trying for is to basically either have the arduino upload and execute a script when it is plugged into the usb, automatically.. I know autorun is disabled for the target os im gunning for. Or download a script and execute from the web. Is this possible? im not asking for someone to do the work for me but point me in the right direction as i do not know how or where to begin finding this information
Arduino: 1.6.5 (Windows 8.1), Board: “Arduino/Genuino Mega or Mega 2560, ATmega2560 (Mega 2560)”
keyboard:61: error: redefinition of ‘uint8_t buf [8]’
keyboard:5: error: ‘uint8_t buf [8]’ previously defined here
keyboard:68: error: redefinition of ‘int state’
keyboard:12: error: ‘int state’ previously defined here
keyboard.ino: In function ‘void setup()’:
keyboard:70: error: redefinition of ‘void setup()’
keyboard:14: error: ‘void setup()’ previously defined here
keyboard.ino: In function ‘void loop()’:
keyboard:84: error: redefinition of ‘void loop()’
keyboard:28: error: ‘void loop()’ previously defined here
keyboard.ino: In function ‘void releaseKey()’:
keyboard:108: error: redefinition of ‘void releaseKey()’
keyboard:52: error: ‘void releaseKey()’ previously defined here
redefinition of ‘uint8_t buf [8]’
This report would have more information with
“Show verbose output during compilation”
enabled in File > Preferences.
Is this work for macbook pro also ?
can i make an auto key presser from this project?
DIY rubber ducky? http://hakshop.myshopify.com/products/usb-rubber-ducky-deluxe
How do you pair this “keyboard” device to a computer over Bluetooth when the computer wants you to confirm by typing a randomly generated number on the “keyboard” device?
So I found a bucket load of my old cd’s from the 90’s and a game called easy bake kitchen came out, of COURSE it has a keyboard topper controller you can’t find anymore.
https://www.worthpoint.com/worthopedia/easy-bake-kitchen-cd-rom-playset-1869916164
Found above picture made a reference for her short term and now working on either a flat picture board with these plans or a REALLY long winded STL build I will have to 3d print and get right. I have two arduino’s doing nothing right now so I’ll go for the picture keyboard using this.