One of the exciting new features of the Arduino Leonardo is its ability to act as a USB human interface device like a keyboard or mouse. This can make interfacing hardware projects with third-party software much easier. For example, if you want to build a physical button to go backwards in your web browsing history, you can have the Arduino send your browser’s keyboard command for back each time you hit the button. But if you have an Arduino Uno, you’re not out of luck.
Michael Mitchell recently shared his tutorial on how to use DFU Programmer to update the firmware on the Atmega8U2, which, according to the Arduino documentation, “acts as a bridge between the computer’s USB port and the main processor’s serial port” on the Uno. Michael also points out that you’ll need to make a slight hardware modification to the board if you have the DIP version of the Uno board—SMD Uno owners can keep their soldering irons holstered for this one. Michael demos his tutorial with a volume controller for his Ubuntu box and naturally he offers all the code you need to make your own.