HIDUINO: Your Arduino is Now A MIDI Interface

[Dimitri Diakopoulos] dropped into our tip line to let us know his HIDUINO project. The HIDUINO is a set of firmware for the ATmega8u2 used in the new revisions of the Arduino (Uno, and Mega2560 for example). Once the HIDUINO is loaded your Arduino can show up as any HID compliant device you wish, no extra drivers necessary. This means that using this firmware, music software such as Max, Ableton, Reaktor etc can read and write MIDI directly to/from the Arduino. Currently the project is for direct USB-MIDI communication but could be altered to act as a variety of HID devices.

Flashing the ATmega8u2 with your own device type or name requires a bit of work on the developers part like owning an ISP programmer, soldering header pins to the board, and re-flashing the ATmega8u2 every time you want to load new code into the Arduino. Users without an ISP can still flash HIDUINO using Atmel’s FLIP software (Windows) or the DFU programmer (Mac OS X and Linux) and a precompiled HIDUINO firmware. They still have to solder a jumper on the underside of the board to use the DFU bootloader.

This firmware could certainly benefit anyone building an Arduinome , Joystick, or any variety of devices that users simply want to interface to a PC without additional software.

This sounds like a lot of work to be able to get at the HID functionality in the new Arduinos. I’ve been working with the Teensy’s lately and they’re pretty nice. The Adruino IDE works with them so there really isn’t anything new to learn for programming them. Plus you can tell them to be any kind of USB device you want. That and they’re priced very closely to the UNO and much smaller.

You make some excellent points… I just wish you did so without so many lols… :D

I think the arduino is an interesting tool for hobbyists but the spacing should have been fixed… Sparkfun sells “offset headers” so you can use them in your design and still be compatible with the arduino board… Well, if arduino didn’t want to scrap their first batch of boards with the spacing flaw then they should have considered populating that first batch with an offset header on the arduino itself, then fixed the spacing issue on subsequent runs of the board. All the shields would then have standard spacing and people could use standard perboards without screwing around, and it would have worked it’s way out of they system after the first run of arduino PCBs.

Propagating the error to the next board seems silly. Perfect chance to fix the error, and just throw in one of the offset headers with the board so people could swap it if they want to use it with old shields.

When the UNO came out it was hyped that it could be used as any USB device but there wasn’t any support offered to really help you out. Kudos to this guy for coming up with a way to achieve what they were hyping. Really makes me wonder if the arduino team really intended for this to be a “feature” or if they just needed a replacement for the FTDI usb-to-serial chip for some reason. They sure didn’t make it easy or convenient to reprogram the new chip… if it was an intended feature they should have at least put the headers on there…

although there are better dev boards for usb, there are loads of people with arduinos, and they are really easy to get hold of. and normal people have heard of them(i don’t know why this matters, though.)

If it were me, I would try to program the 8u2 to be able to handle multiple USB profiles all at the same time. Selection of the profile could be done with jumpers. At least then you wouldn’t be constantly reprogramming the darn thing when you want to switch from HID to rs232…

If you want to play with this without soldering anything, a screwdriver will bridge the pads just as well. Serious pain if you’re going to be doing it often, but for some quick experimentation, have fun :)