MIDI over USB - hardware vs software V-USB vs UART/SPI bridges

I'm looking for more knowledge about using MCUs as USB devices with custom name appearing when connected to PC. One of the devices I want to build is MIDI controller and I think which MCU to choose. I like ESP32, but I'm not sure if MIDI over BLE will be reliable.
I know there are MCUs with hardware USB support (Teensy, ESP32-S2, Micro, Raspberry Pico, STM32). But I also saw software USB - V-USB. There are also UART bidges: MCP2221 and CP2110. It seems it's not possible to use bidges as HID devices (mouse or keyboard). And SPI bridge MAX3421.

Is there anyone who could write advantages and disadvantages of hardware vs software vs bridge?

1 Like

In considering STM32, this post may be helpful:
USB Composite library - Arduino for STM32 (stm32duino.com)

I'm very familiar with V-USB;
V-USB Port to Arduino.. - Using Arduino / Programming Questions - Arduino Forum

String numeric output with V-USB HID - Community / Exhibition / Gallery - Arduino Forum

V-USB enabled prototyping (Picture Review) - Projects Discussion and Showcase / Device Hacking - Arduino Forum

It does well as HID, but

V-USB is a software-only implementation of a low-speed USB device for Atmel’s AVR® microcontrollers

Other good links are:

Four Walled Cubicle - LUFA (Formerly MyUSB)

AVR ATtiny USB Tutorial Part 1 | Code and Life

PS:
Any links of mine to hackster.io should be disregarded as I severed my relationship with them over their insistence that users were forced to have a (free) login before reading full article or downloading. This ran afoul of my desire to host openly accessible projects (as was originally promised.)
Ray

PPS:
Any links to flicker are dead after the Yahoo deal.

2 Likes

I think you should probably forget about software USB solutions at this point; they're apparently "not quite conformant", and increasingly fail to work with newer host-side USB chipsets (USB3, USB-C, etc.) besides, chips with HW USB support have become much more common, much cheaper, and with better library support.

It seems it's not possible to use bidges as HID devices (mouse or keyboard).

Sure it is. You just need a different bridge chip. For example, Here's a HID chip from the people who make the CH340 USB/Seral chip.

2 Likes

Agreed.
However, I pulled out a 10 year old ATtiny85 running V-USB and My Surface Pro running Win-11 enumerated it fine. So, as long as the USB hub can do USB 1.1 it still works.


h

Added ref link:
work in progress » V-USB tutorial (software-only usb for mega & tiny)

  • & -

V-USB with ATtiny45 / ATtiny85 without a crystal | Code and Life

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.