Which Arduino board shoudl I use

Hi there,

I have been a software developper on Linux and BSD platforms since 1994.

However, I am entirely new to the Arduino world.

Though I scrutinized the archives, read the specs of many Arduino boards, as well as the notes about the libraries and their compatibilities (quite an intimidating bit to figure out ), it is still unclear at this stage which Arduino board I should use for my MIDI-only project.

On the hardware side, the choosen Arduino board should natively, or thru extensions (shields ?), provide the following communication sockets :


  • 1 USB-HOST MIDI (Socket A), to accept any incoming connections from MIDI Devices
  • 1 SERIAL DIN 5-pin female, to provide the classic MIDI-IN


  • 1 USB-DEVICE MIDI (Socket B), to provide full Class Compliant MIDI Device capabilities with up to 16 virtual cables/ports
  • 2 SERIAL DIN 5-pin female, to provide the classic MIDI-OUT and MIDI-THRU

On the software side, I would need to identify which compatible Arduino libraries are needed to provide the choosen Arduino board and her hw extensions with the following :

  • Full MIDI-USB-HOST capabilities (host mode) able to provide support for several incoming USB-MIDI devices (as Linux/OSX/Windows PC do),
  • Full Class Compliant USB-MIDI device capabilities (device mode) able to provide full support up to 16 virtual MIDI cables/ports

Any tip or advice pointing me to the right direction will be greatly appreciated.

Also, I have not yet understood whether it is better to use the Arduino IDE, the classical production chain (eg. vi, make, ...), or if they are simply equivalent (I have mainly used language-customized vi as my main IDE and the classic terminal-based development toolchain for the last 30 years or so, and feel just perfectly happy and highly productive with them)

Thanks for your help and time,


Dr. Blue


Perhaps the STM32F407VG could be an option, because it has two USB ports that can operate in Host or Device (OTG) mode. Unfortunately STM32 is more difficult to find examples.

I believe that there is no Arduino board that can offer this configuration of two USB ports, one being HOST and the other Device.

I found a library related to USB and MIDI, which was written for use with a shield, that is, it would not be with a board that has native USB (Host):

Arduino DUE has a USB Device port:

Arduino ADK had a built-in shield:


Note that in order to sell a device with USB Device, it is necessary to license it and this usually makes the projects unfeasible:


@RTEK - Thanks for your time and your tips. I also found Teensy boards 3.5, 3.6, 4.1 that do both USB-MIDI-HOST and USB-MIDI-Device (HID) with 2 independant USB sockets. I will review the specs , libs, and ease of use prior to making a choice.

Also, a great thank you for the tip regarding getting a USB vendor ID from www.usb.org. A 6000 USD salty bill, yet worth considering if the project get going...


Dr. Blue