The definitive MIDI controller | This is not rocket science

Second iteration: USBmidi2

usbmidi2 full frontal

usbmidi2 full frontal

* Download datasheet *

USBmidi2 is a USB MidiStreaming class-compliant device, in double. It connects your computer, over MIDI, to another computer.

USBmidi2 is also a component that you can embed in your own musical instruments. Add a USB MIDI device port to your project, along with the three standard MIDI jacks!

To skip to the end of the story, I built a few of them to share.

Drop me an email if you are interested in acquiring one at a reasonable price.

USBmidi 1x1Sold out!
USBmidi 4x4Almost there!

I got a few requests for a MIDI interface for the Raspberry Pi, so that the Pi could be used as a component in a hardware synth module. The point was that most MIDI interfaces only have a single USB device port for connecting to a computer, and that one is taken when you plug it to your Pi. Yet a synth should behave like a USB MIDI device itself, so there should be a second port for a laptop.

So two computers, talking to each other over MIDI over USB, both acting as USB hosts… no problem! Stijn had told me about these really really nice Kinetis KL26 microcontrollers with plenty of UARTs and a built-in USB interface. One USB interface, per chip.

The only MCU with two USB interfaces that could possibly fit this purpose was the NXP LPC43xx series that I used in the signal analyzer. But the LPC is massive – TQFP144 – while the KL26 is small and flexible. So it was clear: there should be two KL26’s, with one USB port each, connected together. And the overall design seems simple enough, this way:

usbmidi2 design

The board appears as two MIDI ports on both computers. First port goes directly to the other USB host. The second one is connected to the MIDI jacks, and data is interleaved from both computers.

usbmidi2 connections

You can see the MIDI in/thru/out ports and the slave USB connector in the picture of the front of the device, at the top of this page. The backside has just the USB jack for the Pi, and looks like this:

usbmidi2 left profile

First batch of usbmidi2. Fresh hand-made boards, mmm! :)

First batch of usbmidi2. Fresh hand-made boards, mmm! :)

This is how it works in practice:

usbmidi2 connected to a Raspberry Pi

usbmidi2 connected to a Raspberry Pi; the board is intended to be mounted behind a panel, so that the Pi fits inside the same enclosure.

I’m also working on the expanded version; since you read all the way down here, here’s a teaser ;-)
usbmidi2 4x4 front viewusbmidi 4×4 – not announced yet!

Mounting dimensions: See datasheet.

Further technical details: TBD

Source distribution:

3 Responses

  1. David Kim

    Hey I’m very interested in acquiring one or two of these fromm you to use. Let me know if you still have them. My email is thanks!

    April 14, 2016 at 19:16

  2. Frank

    I would like to connect my keyboard to the Raspberry . ( Midi IN / Out / Thru ) to transfer MIDI files ( sequences ) in the standard format ( GM / GS ) .
    Would that be possible with your solution ?
    Price with shipping to Germany


    September 3, 2016 at 09:09

    • ld

      Hi Frank,

      yes, transferring standard MIDI sequences will work.

      – Lauri

      September 4, 2016 at 14:15

Leave a Reply

Your email address will not be published. Required fields are marked *