Ever since I added the MIDI functionality to my Arduino Piano, I’ve been using the Serial-Midi Converter from SpikenzieLabs as a bridge between my keyboard and Garageband. The software works well, but it is a huge pain having to restart it and go through the setup process every time I connect my keyboard to my laptop. Also, I couldn’t connect my keyboard to my iPhone or iPad, since this software implementation is laptop only. For the past two weeks I’ve been trying to find a better implementation of this serial to Midi conversion and luckily stumbled upon Yoshitaka Kuwata’s Blog. Yoshitaka wrote a serial to MIDI conversion firmware for ATtiny2313 using V-USB, a software-only implementation of a low-speed USB device for AVR micro controllers. Based on the schematic he provided, I made a tiny breadboard-friendly board to fit on my Arduino Piano.
Of all the header pins that plug into the breadboard, there are only three real connections: 5v, GND, and RX on the tiny2313. The tiny2313 receives the serial midi data from my ATmega328 at a standard MIDI baud rate of 31250, and then package the data into real MIDI message and send it to the host device. Using Yoshitaka’s original code, the device shows up as “Baum’s MIDI-controller” when connected to my laptop. If you’re using a Mac, you can find it in the Audio MIDI Setup App. It just feels so great that you can start playing the piano immediately after it is connected to your laptop instead of having to go through the software setup.