The Line 6 Pedal Board will now receive an Arduino to replace its main board. The goal is to attach this Arduino to a computer using midi on a USB connector.
For testing purposes, I will use an Arduino Duemilanove that I have on hand.
I will use an Arduino sketch to test the midi-to-USB communication. The program has been tested in that post.
I purchased a Midi-USB adapter on eBay for 4.50$. There are plenty available, and only a few models to chose from. The one I got has a decent USB chip and does include an opto-isolator on the midi IN port (not all of them do!). I could have used the M-Audio Uno that I already have, but I need it later in the project.
One end is USB and the other end is connected to a pair of midi cables. I started by removing the midi cables, but I kept stubs attached to the plug. A little modification will let me get phantom power to the Arduino from the USB port. Let’s take a closer look at that board: (click on it!)
On the left side, the pins are going to the midi cables, from the top;
- I-; Midi IN
- I+; Midi IN. Both pins go into the opto-isolator (IC to the right of the diode)
- O-; Midi OUT
- O+; Midi OUT
On the right side, the pins are going to the USB cable. From the top;
- Vcc (5 volt)
Trying it with the Arduino: It works!
Here’s a schematic for the modified circuit
I soldered everything and used heat shrink tubing. Tied the grounds together to use only one resistor.
A cleaner look!
Everything back in the box, to protect the circuit and the wires:
Hi, do not use this method of powering any project that requires more than about 100mA as the dongle presents itself as a low power device limiting the current available.
Interesting note Martin! I had not thought about the current limit on that USB port. I have not measured the current draw of the PU-1, but it must have been pretty low. Probably a lot under 100 mA with the Arduino, the dongle itself and a few LEDs to power. But I just measured the PU-2 at 250 mA!! The entire thing is powered in parallel by the USB mod of the midi dongle to the FTDI chip that announces itself as 90 mA. That’s strange! The Arduino let’s the FTDI chip announce 90 mA but I guess it will draw up to the 500 mA. Obviously, the computer (a Mac in this case) will not limit current consumption to the required (announced) current. I don’t know enough about USB to explain this.
The USB standard calls for a currentprotection to 500mA max. only. So even if a device says it only needs 100mA the USB hub (or PC ) is not required to limit current to 100mA. This info is for power budgeting reason only.
Claiming to need 90mA, while actually drawing more, can be a problem when using devices behind a passive hub (which has to distribute the 500mA it gets to all its ouput ports).
Ernst, Thanks for the info. The Mac that I use does a good job at figuring out power distribution on its USB ports. For example, it will refuse to charge the iPad if there is already heavy demand on the USB ports.
As for using a passive hub, it’s good to know. I personally always use powered hubs, but I’ll keep the information in mind.
So in case of Your Mac: It too might think there is more power available for the iPad, then there actually is ..
For the USB-Midi converter alone the 100mA most likley would be correct. Do You know which FTDI chip is used on the converter ?
It might be possible to make the FTDI chip report a higher current consumption.
The Mac definitely refuses to provide power to the iPad when in doubt. That’s why, most of the time, I use an external supply for the iPad alone.
The converter doesn’t use the FTDI. It’s on the Arduino. The converter only has one chip. In this case, an mfm0860 integrated midi interface. But because of the way I use the converter, I basically bypass it right through to the Arduino. The computer then sees the Arduino only.
I want to follow your method to connect the converter card, but I can’t figure out which outputs of the board to connect to an Arduino (IN+, IN- GND, O+, O-). Could you please help?
Look at the grey schematic on the page.The only thing that’s not indicated is that RX goes to PIN 0 of the Arduino and TX goes to PIN 1. Vin is connected to 5V. GND is connected to … GND. Hopefully, your MIDI-USB adapter shows which pin is what on its board. Let me know.
I found similar problem here:
but I didn’t understand the answer. I’m new at this 🙂
Thanks. What confused me is that on your schematics I+ goes to TX on the Arduino, but I+ on my converter board is empty (was not connected to any cable). It had 4 pins conneced: I-, O+, O- and GND obviously. So my question is what’s my TX pin and what’s my 5V pin.
Your 5V pin comes from the other side (the USB side). You need to find, on your converter, the Vin pin. It could be indicated as 5V, Vin, Vcc. The USB cable usually is colour coded: Black is for ground (GND) white and green are for data and red is usually Vcc (5V). Basically, you’re sending that 5 volts over to the Arduino. Your also need to send that 5 volts back to the converter through the 220 Ohms resistors. This is the MIDI standard for connecting equipment.
To find out what happened to that I+, you will have to look at the MIDI connectors that came with your converter. What MIDI pins are connected to what point on the converter. The makers of your converter must have tied some connectors together. Take a look at this page: http://www.pjrc.com/teensy/td_libs_MIDI.html . It’s for a Teensy but I want you to study the connections for the MIDI part. In the photo (http://www.pjrc.com/teensy/td_libs_MIDI_2.jpg) it clearly show which pin goes to what. If the I+ pin is not connected on your converter, It might be because they reversed the connections and tied the grounds together. You will need a multi-meter (ohm-meter) to figure all this out.
great post. I want to use my POD HD500 to send midi control messages to a Zoom MS-70 CDR. The POD only has 5 pin midi and the Zoom only has USB. The Zoom can respond to midi messages but never sends anything. I don’t want to use a computer as I want the solution to be on my pedal board. Can a Midi-USB adapter such as you are using be modified to function that way or does it have to use a computer? Any help is greatly appreciated!