This page collects together any “ready to go” MIDI interfaces that I’ve used for any of my projects. It will be updated as I discover and try new ones. If you want to build your own, there are plenty of ideas on the Arduino MIDI Interfaces page.
Note: I have no affiliation or interest in any of the companies or modules described here, but I’ve only mentioned interfaces I’ve personally tried and used. There are many others and the basic principles of their use are largely the same.
There are modules supporting by serial 5-pin DIN MIDI and USB MIDI.
Warning! I strongly recommend using an old or second hand keyboard for your MIDI experiments. I am not responsible for any damage to expensive instruments!
These are the key Arduino tutorials for the main concepts used in this project:
If you are new to Arduino, see the Getting Started pages.
All of these modules will interface to the Arduino using the built-in serial interface on pins 0 and 1 (for RX an TX). The Arduino MIDI Library automatically sets up the interface and handles all communications to the module.
Note: while the MIDI module is active and connected to the RX/TX pins it isn’t usually possible (at least on an Arduino Uno or Nano) to upload sketches to the board.
Try any of the examples sketches that come with the MIDI library, or any of the MIDI projects listed on this site.
Arduino Uno MIDI Shield
- MIDI 5-pin DIN In, Out and Thru.
- Arduino Uno Shield form factor.
- Switch to disable shield when uploading sketches.
- Break-outs for rest of the Arduino IO pins.
- Simply plug-in and use. Nothing else really to note.
- Widely, and cheaply, available on typical auction or electronics sites.
- Common design, there are many variants of this same basic theme.
Summary – if you want a ready made MIDI interface for the Arduino Uno, this is about as simple as it gets. More details here.
Data Point MIDI Serial Interface
- MIDI 5-pin DIN In, Out and Thru.
- Simple 5V, GND, TX, RX interface to microcontrollers.
- In and Out activity LEDs.
- There is no “disable” to turn off the interface if uploading new sketches to the Arduino so you have to manually disconnect the RX/TX links.
- RX connects to RX on the Arduino and TX connects to TX (often for a UART interface you’d expect them to cross-over).
- Developed by UK company Data Point Ltd.
- Available on Tindie for around £13 (inc UK postage) – https://www.tindie.com/products/data_point_ltd/midi-serial-interface-with-thru-led-indicators/
- Also available with no Thru port as a smaller (and cheaper) module.
Summary: This is a nice, simple, inexpensive module if you don’t want a shield form factor.
Hobbytronics MIDI Breakout Board
- MIDI 5-pin DIN In and Out.
- 5V or 3.3V logic operation (always requires 5V power).
- Simple 5V, GND, In, Out interface to microcontrollers.
- Connect MIDI In to RX and MIDI Out to TX.
- There is a solder jumper to choose the 3.3V signal for the MIDI In/RX link.
- There is no disable option to disconnect the RX/TX links when uploading new sketches.
- You’ll need to solder on four header pins (not supplied).
NOTE: This may not work as a 3.3V MIDI OUT if the 5V VCC is too high (i.e. more than 5V), but if you only need a 3.3V MIDI out it does seem to work if you use 3.3V as the VCC rather than 5V. But it depends on the following:
- The exact supply voltage (5.1V from a USB supply might be too much).
- The exact opto-coupler used in the receive circuit.
I had problems using it with the Raspberry Pi Pico’s 5V VBUS supply to my Clumsy MIDI interface (which uses a H11L1M optocoupler). But using it from a Circuit Playground Express 5V VOUT supply was fine.
- Developed in UK by and available from Hobbytronics for just under £10 (inc UK postage).
Summary: This is another nice, simple, inexpensive module with a small board footprint.
Adafruit MIDI FeatherWing
- 5-pin DIN MIDI In and Out.
- Can replace DIN sockets with MIDI over 3.5mm jack sockets.
- Send/Recv LEDs (underneath).
- Adafruit FeatherWing format.
- Largely just plugs in and works.
- Doesn’t work with Feather boards that have a USB-serial link – i.e. not compatible with the 328P or ESP8266 based Feather boards.
- Adafruit product page.
- Any supplier that distributes Adafruit products – example, £6.60 from Pimoroni (plus postage).
Summary – by far the simplest way to get MIDI talking to your Feather board. More details here.
Hobbytronics USB MIDI
- Simple power and UART interface to microcontrollers.
- Supports any class-compliant USB MIDI device.
- Generic USB host module that can have alternative firmware loaded for other applications.
- Command interface over serial port to enable MIDI channel filtering, filtering of real-time messages, etc.
- Option to set channel using additional IO pins on the board.
- Firmware can be selected on purchase in which case it comes “ready to go”.
- Connect up 5V, GND, RX and TX and talk at 31250 baud.
- RX on the module goes to TX on the microcontroller.
- 5V operation.
- Developed in UK by and available from Hobbytronics for just just under £20 (inc UK postage).
Summary – a simple way to get USB MIDI running “out of the box” for all class compliant devices. More details here.
If you don’t want the hassle of building your own MIDI interface, then any of these should do the job nicely and inexpensively.