Picture of Arduino MIDI-in shield
This instructable shows how to build a shield to connect devices that send MIDI signals (e.g. a masterkeyboard) to an Arduino.
The basic schematic is derived from: http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1187962258/

Step 1: The schematic

Picture of The schematic
Basically the schematic is just an optocoupler with some resistors to decouple the MIDI device from the Arduino.
Note that the DIN connector on the left side is seen from the back (solder pin-side).
sspence2 years ago
According to the spec sheet for the 4N28 chip, the diagram above is wrong. Starting from the top on the right hand side, you should have pin 6 as N/C, pin5 as out to Arduino (with a 270 ohm to +5v), and pin 4 on the bottom as ground. A better chip would be the 6n138, and follow this schematic.
carkat (author)  sspence2 years ago
sorry, but i don't see the difference. the schematic is exactly as you explained. the only difference is that i use a 3k3 instead of 270R to +5V, which should not make a difference in means of working/not working.
sspence carkat2 years ago
You are grounding the base of the photo transistor through a 100k resistor. why?
carkat (author)  sspence2 years ago
as sid in the instructable in step 1 this is not my schematic, i got it from somewhere else. but from my (limited) understading of electronics this should not make any difference if there are 100k or no resistor.
sspence carkat2 years ago
Apparently, from the comments of others, it does make a difference. They could not get your schematic to work unless that connection was clipped. I can't see a reason for it in the first place, according the the datasheet for the part.
Thanks for the schematic! I have a bit of trouble, too, until I ditched the 100k resistor. It's working like a charm.
nevvkid3 years ago
Is there anybody who got this schematic working? In the Arduino Forum ( http://arduino.cc/forum/index.php/topic,22447.0.html ) somebody was telling that the midi connector is reversed is this true? The Sparkfun MidiShield has it reversed http://www.sparkfun.com/datasheets/DevTools/Arduino/MIDI_Shield-v13.pdf
But they are using a different optocopler.
Here some other guy is telling that the schematic is wrong - http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1187962258/60#71

In the end i want to use it with the Arduino MIDI Lib http://arduino.cc/playground/Main/MIDILibrary it would be helpful to have Schematic with an LED or Servo to check if it's working and the related sketch for it.

Anybody out there who could help?


carkat (author)  nevvkid3 years ago
sorry for the late reply - i was offline for a few days. all i can say is that this shield worked well, though i used a quite old arduino (arduino ng), but that should not pose a problem. the midi connector in the schematic of the forum is reversed, but the schematic in step 1 of this instructable is correct (read the remarkt on step 1 for details). also the schematic in general should not be wrong - the same one is shown on the midi - homepage at http://www.midi.org/techspecs/electrispec.php
pluseinn5 years ago
If you are having a problem with this schematic then this might help. Don't connect anything to the pin with the 100k resistor on the drawing. This took me a week to figure out.
gel.5 years ago
Would you know where to buy a MIDI connector? I've been having problems finding a source besides SparkFun.
carkat (author)  gel.5 years ago
hm - i could recommend some place but don't know if they would be helpful since i'm based in austria/europe. mabe someone else has an idea?
RPisces5 years ago
I made this circuit, debugged it, asked in forums, and it STILL does not work!!! What could be wrong? I am using the 4N28 as above
carkat (author)  RPisces5 years ago
uh... hard to say from a distance... maybe a few hints:
- is it really the circuit or is something wrong with the arduino (i had that problem, see above) or is the MIDI-signal not coming through properly?
- are there any solder bridges or something that looks strange?
- did you solder the DIN connector to the circuit in  the right way
- try to change the optocoupler, i once had a broken one
... anyone more suggestions?

RPisces carkat5 years ago
Ok I fixed it. It seems that it does not operate with the 100K resistor on pin 6 connected to ground. I removed the resistor, and left pin 6 connected to nnothing, and I am now registering serial data. Now I just have to verify the operation will be reliable...
daulef6 years ago
I'm going to try and use this with the Auduino Synth, maybe use a proto-shield instead of etching my own though..
carkat (author)  daulef6 years ago
this sounds great! would be cool if you could write an Instructable when you figured it out... i would definitely like to build one! best, carlos
daulef carkat5 years ago
I've got a couple of instructables in the works atm, but the midi auduino is on the cards!
ReCreate6 years ago
Wait..Arduino's can play midi's?
carkat (author)  ReCreate6 years ago
well, at least it can recognise the MIDI signals. what you are doing with the signals then is up to you: assigning frequencies to it and sending it to an amp/speaker (=a simple synth) or driving relays (like i am going to do) are just two of a lot of possibilities :-)
ReCreate carkat6 years ago
Oh i get it now ;)
uCHobby6 years ago
I recently posted about some Breadboard adapters at uCHobby including a MIDI In and MIDI Out adapters. These could be used the Arduino and feature an enable that allow for safe use along with the boot loader. I will try to have a more detailed write up on the MIDI adapters soon.