MIDI (Musical Instrument Digital Interface) is a technical standard which describes the protocols and digital interface to control electronic music instruments, recording equipment, drum machines and lights. First published in 1981 the MIDI standard still remains the number 1 protocol possibly used by all manufacturers of music instruments today.
I have for some time been interested in seeing if I can use an Arduino to control MIDI instruments and after a short bit of research I found that MIDI is actually a very simple serial interface running at 5v and, although not advisable, you could simply transmit and receive MIDI by connecting directly to an Arduino’s RX and TX pins.
Reading some more, I found out that in order to correctly connect a MIDI cable to an Arduino for MIDI Out purposes it is advisable to add a 6N138 optocoupler in-line on the TX out. An optocoupler is an electronic component that transfers electrical signals between two isolated circuits by using light, the purpose of this in our case is to prevent ground loops which plague audio systems.
For my project I wanted to add a MIDI In and a MIDI Out interface to my Arduino and although there are a couple of different Arduino MIDI Shields available I wanted something a little simpler, for a couple if reasons:
Firstly, I simply wanted to have a go at building my own PCB circuit and this MIDI interface seemed like a good starter project to do this and in doing so would learn a bit more about how it is built.
Secondly, I wanted to build something which was a little more universal, in that I wanted to possibly connect it to a Raspberry Pi, Arduino Nano, Espruino etc, the Arduino shields available are quite big and are only meant for larger Arduino Uno etc.
With the help form someone on Fiverr I had the following schematic and PCB layouts drawn up for my prototype design.
Armed with the PCB Gerber files I then put an order into PCBWay: