UNO + Olimex Midi Shield (Resolved)

Summary:

PC -> Roland UM-1 USB/MIDI cable - > Olimex MIDI shield -> UNO R3 (powered by 9v battery or USB connection (when uploading sketches)

Software: Arduino IDE 1.0.3, MIDI OX or USBlyzer or SendSX (all are supposed to monitor incoming MIDI or USB ports), MIDI library 3.2

Actions:

  1. Connect UNO + Midi shield (with jumper removed to allow upload of sketch) via USB to computer
  2. upload a simple MIDI TX sketch, such as:
 int velocity = 100;//velocity of MIDI notes, must be between 0 and 127
 //higher velocity usually makes MIDI instruments louder
 
 int noteON = 144;//144 = 10010000 in binary, note on command
 int noteOFF = 128;//128 = 10000000 in binary, note off command

void setup() {
  //  Set MIDI baud rate:
  Serial.begin(31250);
}

void loop() {
  for (int note=50;note<70;note++) {//from note 50 (D3) to note 69 (A4)
    MIDImessage(noteON, note, velocity);//turn note on
    delay(300);//hold note for 300ms
    MIDImessage(noteOFF, note, velocity);//turn note off
    delay(200);//wait 200ms until triggering next note
  }
}

//send MIDI message
void MIDImessage(int command, int MIDInote, int MIDIvelocity) {
  Serial.write(command);//send note on or note off command 
  Serial.write(MIDInote);//send pitch data
  Serial.write(MIDIvelocity);//send velocity data
}
  1. observe that TX led blinks on UNO, serial monitor shows data coming across (although its gibberish)
    a. In addition, using usblyzer, Bulk data transfers are logged.
  2. disconnect USB cable from UNO
  3. connect Roland UM1 USB/MIDI cable to PC and to MIDI OUT of Olimex MIDI shield.
  4. connect 9v power supply to UNO
  5. Observe that TX led no longer lights up
    a. although if I code the LEDs on the Olimex to light during main loop, they do indeed light.
  6. Using MIDI OX, selecting UM1 as the MIDI source, no MIDI data transmitted. Close MIDI OX
  7. Using USBlyzer, select UM1 USB device, No data comes over the wire.
  8. Volt meter shows 5v on MIDI OUT pins 4,5.
  9. 5v on THRU pins, 4,5.

To test the UM1 USB/MIDI cable:

  1. connect UM1 to Korg ES1
  2. press play
  3. loads of MIDI data comes through MIDI OX and USBlyzer

The conclusion that I've reached is that the UNO, by itself, is transferring data across a standard usb cable to the PC/SerialMonitor/USBlyzer (or other port monitor app). But when the MIDI shield is attached and the standard USB cable is not connected, no serial data is being sent.

The question remains, how can I verify that serial data (MIDI data) is being send from the TX pin, out the MIDI OUT and across the wire? I haven't ruled out that it's a mA issue, but that seems unlikely since others have reported the mA under load is about 2,5mA. I'm not sure how to measure the mA using a standard multimeter, but I would doubt that I'd be able to detect it.