Arduino MIDI output

Hi,

I’m trying to hack the littleBits Arduino module to output MIDI through its d1/tx port, and I’m having some issues.
I have followed the MIDI sample from the Arduino website : http://arduino.cc/en/tutorial/midi

I had a spare Mix bit that was broken, so I cut one of the wires and soldered them to a MIDI cable that I also cut open. It’s my first time doing all that, and there are a million points of failure, but I’m hoping it’s something simple I overlooked…

As far as I can tell, the connections are soldered fine. I tested continuity with a multimeter on the Ground and Signal pins and that seemed alright. The VCC pin does not light up continuity because of the resistor, but I’m 99% sure that it’s fine.

I connected the bitSnap’s Ground to the pin that expects a Ground, the 5V pin through a 220 ohm resistor (as instructed on the Arduino MIDI sample page) to the pin that expects direct current, and the SIG pin to pin 5 which has serial data.

I made a simple sketch to send C4 (middle C) and see if that works, but I’m not getting any signal on the receiving end. The program is a clone of the one from the Arduino website’s sample, so I think that part works okay.

My main hypothesis, apart from just screwing up my wiring, is that the SIG pin does not send voltage in a way that makes the MIDI protocol happy. Is there any treatment on the Arduino’s TX output that the littleBit version does, or does it just pipe it to the SIG pin?

Thanks for any help!
Renaud

Hey @renaudbedard!

Sorry to hear about your troubles. You should definitely check out these two MIDI projects created from littleBits Community Members!
http://littlebits.cc/projects/midi-interface-for-arduino
http://littlebits.cc/projects/arduino-midi-contoller-for-littlebits-korg-synth-kit

in the example MIDI sketch you reference, you need to use Serial1 in place of Serial for leonardo

Hey @manitou , thanks! Didn’t realize that Serial only sent through USB.

I’m still not getting any communication though. I’ll try inverting my connectors for pins 4 and 5 to see if I inverted them by mistake.

Hey @MR_STEAM,

Thanks for the links, but these seem a bit too involved for what I want to do. I only want MIDI Out from the littleBits to a device, looks like I’m almost there…

i’m not sure about the electronics, but take a look at schematic at
https://www.sparkfun.com/products/9598

Do you have a scope or just an LED to test that there is a signal coming through the TX line?

Hey @Bleep_labs, fancy seeing you here :smiley:

All I have is a multimetre at the moment. I’ll try probing voltage on the SIG and GND lines and see if I get something, but the refresh rate of my multimetre is pretty slow so it’s not a great indicator. I might have to cave in and get an LED to test it out.

The other option is to get a MIDI => USB for my PC and listen on everything that goes on the line. The only MIDI device I have at the moment is the Bleep Drum and it’s kind of a black box in terms of knowing what it’s receiving. I’m testing a whole bunch of “note on” messages, offsets of C3 and C4, but it could be that I’m screwing that part up…

Hey @renaudbedard!

I have a broken wire as well and I tested the voltage leads of the mix bitsnap with a Battery Module, Perf Board, and Slide Dimmer. My results was that the Red Wire is actually the Ground, White Wire is the Signal, and the Orange wire is the VCC. Looks like you have the wires mixed up from the photos you posted. Check out the photos below. On the first photo, I tested the VCC and Ground, which was 5 volts. Then I tested the Ground and signal with the switch of the Slide Dimmer at the halfway point, my results were 2.5 Volts. This proved that: White = Signal, Red = Ground, Orange = VCC.

Hope this helps! :slight_smile:

Hi @MR_STEAM,

This is extremely useful! I had assumed that red was VCC, Orange was SIG and White was GND, so this changes how I need to do my wiring to the MIDI cable. I’ll try that out and report back if I get it working.

I also bought a USB MIDI adapter so I’m able to monitor all the MIDI messages that come through the wire. As it stands now I get nothing, but that makes sense considering that I messed up the wiring.

Cheers!

Update :
So I get MIDI messages now, which is great, and shows that the circuitry probably works. However… I can’t get them to make sense.
I initially tried sending just “note on” messages with Serial1 at 31250 bauds which should work, but got control messages that I did not expect and many of them all at once. I thought I might be doing something wrong so I switched to the Arduino MIDI Library which supports the Leonardo, and used that instead. Here’s my program :

#include <MIDI\MIDI.h>

MIDI_CREATE_DEFAULT_INSTANCE();

void setup()
{
	MIDI.begin();
}

void loop()
{
   	delay(1000);
	MIDI.sendNoteOn(69, 127, 1);
	//Serial.println("Sent note");
}

When monitoring the MIDI messages that come through my M-AUDIO MidiSport adapter, I get this instead :

TIMESTAMP IN PORT STATUS DATA1 DATA2 CHAN NOTE EVENT
002AD038   1  --     D5    5D    --    6  ---  Channel Aft 
002AD038   1  --     D5    40    --    6  ---  Channel Aft 
002AD420   1  --     D5    5D    --    6  ---  Channel Aft 
002AD420   1  --     D5    40    --    6  ---  Channel Aft 
002AD809   1  --     D5    5D    --    6  ---  Channel Aft 
002AD80A   1  --     D5    40    --    6  ---  Channel Aft 
002ADBF1   1  --     D5    5D    --    6  ---  Channel Aft 
002ADBF1   1  --     D5    40    --    6  ---  Channel Aft 
002ADFD9   1  --     D5    5D    --    6  ---  Channel Aft 
002ADFD9   1  --     D5    40    --    6  ---  Channel Aft 

So for every message send, I get two “channel aft” (aftertouch?) messages on channel 6. The data’s consistent, but it’s definitely wrong.

I’m not sure where to go next… I wonder if inverting the data and the VCC pins could do something like that, or would it outright fail?

Bonus : the wiring as it stands now (my soldering job’s gotten worse with the rewiring, not that it was great to begin with :blush:)

Update #2
Oh wow, I just noticed something. The wire coloring you have is different than mine!
Yours go Orange, White, Red from top to bottom… and mine go Red, Orange, White. That’s gotta cause some problems… :frowning:
I just tested with the multimeter and for sure : White = Ground, Red = VCC and Orange = Signal/Tx. Oops… I’ll have to rewire, my stuff is all messed up. To be continued…

APOLOGIES. That’s definitely a lesson learned! At least we now know to be sure to test the wires for confirmation before implementing them into projects.

Hi All!

Thanks for this – I’m considering my own crazy project.

I have a couple of Littlebits Synth Kits, as well as the Arduino kit and a i22 Sequencer module (8 outputs).

Here’s the plan: assemble 8 Oscillator bits, 8 Filter bits and 8 Attack/Delay bits.
Connect them via the Arduino into the i22 Sequencer.
Something.
Then somehow ask the Arduino to assign MIDI notes in such a way that we have an 8-voice polysynth.
That’s all I have for now: the concept. Any thoughts?

3 Likes

Hi @davome. :smile:

Your idea sounds very interesting. Since you already have at least 2 x (oscillator + filter + delay) and the Arduino and i22 Sequencer, I guess you could test your idea with 2 voices. Is that right?

Please share your investigations along the way!

2 Likes