The internet is saturated by discussions, whether these cheap Chinese MIDI-USB converters work or not. If you don’t know what the talk is about, then the product itself looks very similar to this:
Still, caveat emptor. I recently ordered some pieces of these little converters from DX.com to check the hearsays. First at all, the LEDs on my model are shifted. Here is the correct marking of the LEDs.
For newcomers some of MIDI realities are hard to understand. Like this: The connector with marking “Input” is always to be plugged into the socket marked “Output”, and vice versa.
Actually, an unimaginable quantity of these devices has been produced with certain cost related optimizations that preclude the device working in many realistic situations (with real musical devices). Arvydas has done a great job describing what is wrong with these little Chinese converters. Depending on your background and soldering skills, cheap USB-MIDI converters should be avoided at all costs or right the opposite could be true – considering the relatively low effort needed to “normalize” these gadgets, technically skilled persons (esp. if using Linux) might prefer these over tenfold more expensive models.
The body was extremely easy to open – no adhesive was used nor were the two halfs melted together.
Thnx for warning, Arvydas! On my converters the optocoupler was not installed.
Of course it was not – an 1..2$ dollar piece is too expensive in China… so they avoid putting it on the PCB. You have to do it at home, by the soldering iron.
According to the MIDI standard, the output (pins 4-5) should both float over the ground. What our eastern friends have done, they omitted the optocoupler and grounded the input signal. In tense installations it could bring in the ground hum or result in electrical damage of your musical equipment.
To start the modification, an input wire has to be relocated:
As the tradition requires, least expensive and least termosensitive details are to be mounted to PCB first. Here you see an 220 Ohm resistor mounted as R5 (sorry guys, it’s night, my SMD shop is closed).
That was the easy part. Let’s remove the unnecessary resistor R11, that is easy, too:
Now we have to mount the diode. Before being able to do so, we have to make it very sure, which probe on our multimeter is the anode and which is the cathode. One can take a diode with the symbol marked on it (I use Russian D7/D226 diodes for the purpose). Thus – my multimeter will show some numbers when the anode is connected to the red probe (logical, eh?).
Another way to be very sure is to look ad Arvydas’ schematics and take the note that the cathode of the diode (1N1418) must to be connected to pin 1 of the optocoupler chip U1. 1N1418 is marked by ring on the cathode. Let’s mount D1 now:
Last but not least, it’s time to solder the optocoupler. The absolute majority of 4-pin optocouplers have the same pinout, thus the risk is low. However, there are rare chips that do not pass MIDI speed (31.25 kBauds) well. I consulted the datasheets and found that an NEC PS2561 optocoupler from my scrap box should mostly satisfy the speed requirements.
Some ppl could argue that it is not nice to use 4-pin optocouplers where the MIDI standard prescribe more complex 8-pin 6N138 devices. I fully agree, but our friends in distant China have only put the 4-pin footprint onto the PCB and that is the reality we should cope with.
It seems like it is possible to clap the two halfs of the device body together again. Now it’s test time.
Open some sequencing program (like Rosegarden under Linux), define MIDI ports and ask the program to output some MIDI sync (playing an empty track is OK). The middle (blue) LED will periodically blink (disregarding whether you have an actual device connected to DIN-5 output connector or not).
After that it is time to check the input (remember, design shortcuts were taken at the input!). Use your musical keyboard, play some notes and look, whether or not the left (greenish) LED will blink. To be extremely sure, launch some midi monitor software (like midisnoop under graphical Linux or command “amidi -l ; amidi -d -p hw:2,0,0 -t 10” from the command line … and btw, look at your hw numbers twice, they may differ from my numbers).
Provided you have some HW synth available, test the SysEx messages passing trough. Chinese MIDI converters are told to suffer from buffer problems. There is some information available that Linux kernel is trying to take into account that deficiency. This is the reason, why these cheap toys might reach their full potential under Linux but not under Mac/Win.
The verdict: if you know what you are doing, do you?, then a $5 converter with some extra $2 details soldered onto it, could substitute 10 times more expensive converters, especially under Linux (incl. Raspberry Pi synths, although these might require some extra tweaking). However, it also can happen that today is not your lucky day… and then please do not accuse me for the risks you personally have taken 😉
[Later addition:] I discovered another beautiful DIY source, Frank Buß MIDI page. Frank has gone much further, measuring various MIDI gadgets by oscilloscope and test generator. Having looked at those awful “hairy” oscillograms, I decided to add some bypass capacitors to the gadget.
I modified two more instances of mentioned above USB-MIDI gadgets. The first one is now using a TLP621 optocoupler and a Russian КД522Б diode:
(sorry for somewhat dirty soldering 🙂 )
The second gadget was modified using a commodity 817 optocoupler and a Russian КД521А diode.
КД521/522 pair is a real mousetrap, because the pinouts are opposite. These particular diodes were used because I have plenty of these. Various optocouplers were used to give somewhat easier reference point to other DIYers. The critical parameter for 4-pin optocouplers is max frequency, which however heavily depends on the value of the collector resistor, which in turn is inside of the molded chip and thus out of our reach. Below is a characteristic diagram from a 817 clone datasheet:
All modified gadgets were tested by Linux midisnoop program. My next task probably is to write a simple test generator to reveal issues with longer SysEx sequences.