USB Host Board – MIDI Software

This software allows you to connect a USB midi device to one of our USB Host boards (or IC’s) for 2-way communication using the MIDI protocol.

It translates the USB MIDI data packets to/from Serial data packets at the MIDI baud rate of 31250.

This is a free software download for our USB Host Board and USB Host IC’s (SOICDIPSSOP).

Please note: This software is free to download but only works on one of our USB boards or chips which must be bought separately.
To order, simply select which of our boards or IC products you wish to have the software loaded onto. See the USB Host Board and IC product pages for details on pricing and installing this software.

With this software on one of our USB Host devices you can now communicate with USB MIDI devices using Arduino / Teensy / Raspberry Pi and many other microcontroller boards using the standard MIDI message format.

Use your USB MIDI device without having to connect it to a computer.


  • Convert your USB MIDI device to Serial TTL
  • Operates at 31250 BAUD
  • Override MIDI Channel Number of device

Supported Devices

  • Standard MIDI compliant devices are supported.

We have a list of known supported devices

Un-Supported Devices

  • Some Complex MIDI devices use a built-in USB Hub. These MIDI devices are not supported and will NOT work with our USB Host Boards. You can determine if your device has a built-in hub by running the free Windows program USB Tree Viewer. If, when you plug in your MIDI device it appears as a new Hub plus one or more devices then it will not work.

Connections required for Midi Software

The USB MIDI device must be connected directly to the USB Host, it cannot be connected through a USB Hub.

Serial TTL connections are at 31250 baud

  • 5V power in
  • 0V
  • TX out
  • RX in


The USB Host Board has the following configuration options available for the MIDI software

[NEW] – As of V1.18 command mode is now inactive by default. The reason is that if you have the board connected to MIDI IN and OUT but no USB MIDI device attached, then serial MIDI data received would be echoed back out on MIDI OUT.

So, in order to get into command mode you must do the following..
1. Boot up the board without a USB MIDI device attached
2. Send two consecutive dollar characters “$$” in the first 10 bytes of serial data. If $$ is not received within the first 10 bytes, a reboot is needed to try command mode again.

The following Commands are available. Connect the board/chip to a suitable serial connection at 31250 BAUD and a Terminal program. The Help screen and configuration settings can only be made when there is no MIDI device attached.

DEVICE <value>Turn ON/OFF MIDI DEVICE Attached Indicator
FILTER <value>Filter incoming MIDI Channel data
[0-OFF|1-16 Channel to be filtered]
DEBUGTemporarily turns on debug output
MODE <value>Set mode of operation
0 – Standard Mode, 1 – Midi Thru mode – Default is 0
CHANNEL <value>Turn ON/OFF MIDI Channel Override
[0-OFF|1-ON] – Default is OFF
HELP or ?Display Help Screen


The DEVICE indicator when turned ON will set the SS pin HIGH when a MIDI device is attached and LOW when removed. This is useful if connecting the board to another microcontroller as it indicates if a MIDI device is attached.

Because the DEVICE option and CHANNEL option use the same SS pin, only one option can be activated.


The FILTER option allows you to block ALL incoming MIDI channel data received on the serial RX pin EXCEPT for the MIDI channel selected.

This is useful for MIDI Effects devices which run in OMNI mode only (which means the effect would be applied to ALL channel data)


Temporarily turns on debug output. This is useful if you have a USB MIDI device that is not working. The debug output can be sent to us at Hobbytronics to determine the problem.


The MODE command is only realy applicable to the MIDI USB to DIN Converter. If you only need to send midi data to the attached MIDI USB device, you can can use the MIDI OUT port as a THRU port


No configuration needs to be done for normal operation. However, we have added the option to be able to override the outgoing MIDI Channel number. By default this is turned off. This is a very useful feature when connected to a device like the WAV Trigger as it can be used to switch between different set of WAV files – effectively switching instruments.

Turn it on by using the command


The channel number is set using the unused pins on the board. This can be done using a BCD Rotary Switch.
How they are to be set is shown in the Help Screen (as shown below)

? - USB Host MIDI Driver v1.13

  REALTIME <value>       - Enable RealTime MIDI Messages
   [ON]                    0 / OFF - Disabled, 1 / ON - Enabled
  DEVICE <value>         - MIDI Device Attached indicator (SS pin)
   [ON]                    0 / OFF - Disabled, 1 / ON - Enabled
                         ** Turning ON disables CHANNEL override **
  FILTER <value>         - Filter MIDI Channel Number
   [OFF]                   0 / OFF - Disabled, 1 - 16 - Filter channel
  CHANNEL <value>        - Override MIDI Channel Number
   [OFF]                   0 / OFF - Override OFF, 1 / ON - Override ON
                         ** Turning ON disables DEVICE Attached Ind **

       Channel Override can be set using the following pins
       Channel  SDO SCL SDA SS       Channel  SDO SCL SDA SS
          1      0   0   0   0          9      1   0   0   0
          2      0   0   0   1         10      1   0   0   1
          3      0   0   1   0         11      1   0   1   0
          4      0   0   1   1         12      1   0   1   1
          5      0   1   0   0         13      1   1   0   0
          6      0   1   0   1         14      1   1   0   1
          7      0   1   1   0         15      1   1   1   0
          8      0   1   1   1         16      1   1   1   1

  HELP or ?               - display help

If using the CHANNEL override function, the channel number pins should either be connected to +3.3V or to GND. They should not be left floating.


This option allows you to turn off MIDI Realtime messages. The default is to turn Realtime message OFF


Sparkfun MIDI Tutorial

Shopping Basket
Scroll to Top