Page 1 of 1

TinyUSB MIDI example - works on Windows PC, but not on Sound Module

Posted: Thu Feb 09, 2023 3:46 pm
by ghost23
Hello all,

I am currently trying out the tinyUSB midi example:
https://github.com/espressif/esp-idf/tr ... /tusb_midi

After building and flashing, when I connect my board to my Windows PC, it works great.
I use the MIDI OX app to see the midi messages and everything looks fine.

Now I have a hardware sound module (from the company V3Sounds). It has USB over MIDI, so I plug in my board and was hoping to hear the melody, but it does not work. I managed to route the logs to a file and this is, what i get, but I am not yet experienced enough to understand what it actually means.

Is there a clue in there to what the problem might be?

Code: Select all

[0;32mI (445) example: USB initialization 1[0m
[0;33mW (445) TinyUSB: The device's device descriptor is not provided by user, using default.[0m
[0;32mI (455) tusb_desc: 
┌─────────────────────────────────┐
│  USB Device Descriptor Summary  │
├───────────────────┬─────────────┤
│bDeviceClass       │ 0           │
├───────────────────┼─────────────┤
│bDeviceSubClass    │ 0           │
├───────────────────┼─────────────┤
│bDeviceProtocol    │ 0           │
├───────────────────┼─────────────┤
│bMaxPacketSize0    │ 64          │
├───────────────────┼─────────────┤
│idVendor           │ 0x303a      │
├───────────────────┼─────────────┤
│idProduct          │ 0x4008      │
├───────────────────┼─────────────┤
│bcdDevice          │ 0x100       │
├───────────────────┼─────────────┤
│iManufacturer      │ 0x1         │
├───────────────────┼─────────────┤
│iProduct           │ 0x2         │
├───────────────────┼─────────────┤
│iSerialNumber      │ 0x3         │
├───────────────────┼─────────────┤
│bNumConfigurations │ 0x1         │
└───────────────────┴─────────────┘[0m
USBD init
MIDI init
[0;32mI (465) TinyUSB: TinyUSB Driver installed[0m
[0;32mI (465) example: USB initialization DONE[0m
[0;32mI (465) example: MIDI write task init[0m
[0;32mI (465) example: MIDI read task init[0m
USBD Bus Reset : Full Speed
[0;32mI (755) example: Writing MIDI data 74[0m
[0;32mI (1045) example: Writing MIDI data 78[0m
[0;32mI (1325) example: Writing MIDI data 81[0m

USBD Setup Received 80 06 00 01 00 00 08 00 
  Get Descriptor Device
  Queue EP 80 with 8 bytes ...
USBD Xfer Complete on EP 80 with 8 bytes
  Queue EP 00 with 0 bytes ...
USBD Xfer Complete on EP 00 with 0 bytes

USBD Setup Received 00 05 03 00 00 00 00 00 
  Set Address
USBD Xfer Complete on EP 80 with 0 bytes

USBD Setup Received 80 06 00 01 00 00 12 00 
  Get Descriptor Device
  Queue EP 80 with 18 bytes ...
USBD Xfer Complete on EP 80 with 18 bytes
  Queue EP 00 with 0 bytes ...
USBD Xfer Complete on EP 00 with 0 bytes

USBD Setup Received 00 09 01 00 00 00 00 00 
  Set Configuration
  Open EP 01 with Size = 64
  Open EP 81 with Size = 64
  Queue EP 01 with 64 bytes ...
  MIDI opened
  Bind EP 01 to driver id 0
  Bind EP 81 to driver id 0
  Queue EP 80 with 0 bytes ...
USBD Xfer Complete on EP 80 with 0 bytes
[0;32mI (1615) example: Writing MIDI data 86[0m
[0;32mI (1895) example: Writing MIDI data 90[0m

USBD Setup Received 80 06 00 02 00 00 09 00 
  Get Descriptor Configuration[0]
  Queue EP 80 with 9 bytes ...
USBD Xfer Complete on EP 80 with 9 bytes
  Queue EP 00 with 0 bytes ...
USBD Xfer Complete on EP 00 with 0 bytes

USBD Setup Received 80 06 00 02 00 00 65 00 
  Get Descriptor Configuration[0]
  Queue EP 80 with 64 bytes ...
USBD Xfer Complete on EP 80 with 64 bytes
  Queue EP 80 with 37 bytes ...
USBD Xfer Complete on EP 80 with 37 bytes
  Queue EP 00 with 0 bytes ...
USBD Xfer Complete on EP 00 with 0 bytes
[0;32mI (2185) example: Writing MIDI data 93[0m
[0;32mI (2475) example: Writing MIDI data 98[0m
[0;32mI (2755) example: Writing MIDI data 102[0m
... goes on ....
Update: For comparison, this is the out log for when I connect my board to my Windows PC:

Code: Select all

[0;32mI (480) example: USB initialization 1[0m
[0;33mW (480) TinyUSB: The device's device descriptor is not provided by user, using default.[0m
[0;32mI (500) tusb_desc: 
┌─────────────────────────────────┐
│  USB Device Descriptor Summary  │
├───────────────────┬─────────────┤
│bDeviceClass       │ 0           │
├───────────────────┼─────────────┤
│bDeviceSubClass    │ 0           │
├───────────────────┼─────────────┤
│bDeviceProtocol    │ 0           │
├───────────────────┼─────────────┤
│bMaxPacketSize0    │ 64          │
├───────────────────┼─────────────┤
│idVendor           │ 0x303a      │
├───────────────────┼─────────────┤
│idProduct          │ 0x4008      │
├───────────────────┼─────────────┤
│bcdDevice          │ 0x100       │
├───────────────────┼─────────────┤
│iManufacturer      │ 0x1         │
├───────────────────┼─────────────┤
│iProduct           │ 0x2         │
├───────────────────┼─────────────┤
│iSerialNumber      │ 0x3         │
├───────────────────┼─────────────┤
│bNumConfigurations │ 0x1         │
└───────────────────┴─────────────┘[0m
USBD init
MIDI init
[0;32mI (510) TinyUSB: TinyUSB Driver installed[0m
[0;32mI (510) example: USB initialization DONE[0m
USBD Bus Reset : Full Speed

USBD Setup Received 80 06 00 01 00 00 40 00 
  Get Descriptor Device
  Queue EP 80 with 18 bytes ...
USBD Xfer Complete on EP 80 with 18 bytes
  Queue EP 00 with 0 bytes ...
USBD Xfer Complete on EP 00 with 0 bytes
USBD Bus Reset : Full Speed

USBD Setup Received 00 05 0F 00 00 00 00 00 
  Set Address
USBD Xfer Complete on EP 80 with 0 bytes

USBD Setup Received 80 06 00 01 00 00 12 00 
  Get Descriptor Device
  Queue EP 80 with 18 bytes ...
USBD Xfer Complete on EP 80 with 18 bytes
  Queue EP 00 with 0 bytes ...
USBD Xfer Complete on EP 00 with 0 bytes

USBD Setup Received 80 06 00 02 00 00 FF 00 
  Get Descriptor Configuration[0]
  Queue EP 80 with 64 bytes ...
USBD Xfer Complete on EP 80 with 64 bytes
  Queue EP 80 with 37 bytes ...
USBD Xfer Complete on EP 80 with 37 bytes
  Queue EP 00 with 0 bytes ...
USBD Xfer Complete on EP 00 with 0 bytes

USBD Setup Received 80 06 03 03 09 04 FF 00 
  Get Descriptor String[3]
  Queue EP 80 with 14 bytes ...
USBD Xfer Complete on EP 80 with 14 bytes
  Queue EP 00 with 0 bytes ...
USBD Xfer Complete on EP 00 with 0 bytes

USBD Setup Received 80 06 00 03 00 00 FF 00 
  Get Descriptor String[0]
  Queue EP 80 with 4 bytes ...
USBD Xfer Complete on EP 80 with 4 bytes
  Queue EP 00 with 0 bytes ...
USBD Xfer Complete on EP 00 with 0 bytes

USBD Setup Received 80 06 02 03 09 04 FF 00 
  Get Descriptor String[2]
  Queue EP 80 with 30 bytes ...
USBD Xfer Complete on EP 80 with 30 bytes
  Queue EP 00 with 0 bytes ...
USBD Xfer Complete on EP 00 with 0 bytes

USBD Setup Received 80 06 00 06 00 00 0A 00 
  Get Descriptor Device Qualifier
  Stall EP0

USBD Setup Received 80 06 00 01 00 00 12 00 
  Get Descriptor Device
  Queue EP 80 with 18 bytes ...
USBD Xfer Complete on EP 80 with 18 bytes
  Queue EP 00 with 0 bytes ...
USBD Xfer Complete on EP 00 with 0 bytes

USBD Setup Received 80 06 00 02 00 00 09 00 
  Get Descriptor Configuration[0]
  Queue EP 80 with 9 bytes ...
USBD Xfer Complete on EP 80 with 9 bytes
  Queue EP 00 with 0 bytes ...
USBD Xfer Complete on EP 00 with 0 bytes

USBD Setup Received 80 06 00 02 00 00 65 00 
  Get Descriptor Configuration[0]
  Queue EP 80 with 64 bytes ...
USBD Xfer Complete on EP 80 with 64 bytes
  Queue EP 80 with 37 bytes ...
USBD Xfer Complete on EP 80 with 37 bytes
  Queue EP 00 with 0 bytes ...
USBD Xfer Complete on EP 00 with 0 bytes

USBD Setup Received 00 09 01 00 00 00 00 00 
  Set Configuration
  Open EP 01 with Size = 64
  Open EP 81 with Size = 64
  Queue EP 01 with 64 bytes ...
  MIDI opened
  Bind EP 01 to driver id 0
  Bind EP 81 to driver id 0
  Queue EP 80 with 0 bytes ...
USBD Xfer Complete on EP 80 with 0 bytes

USBD Setup Received 80 06 04 03 09 04 04 00 
  Get Descriptor String[4]
  Queue EP 80 with 4 bytes ...
USBD Xfer Complete on EP 80 with 4 bytes
  Queue EP 00 with 0 bytes ...
USBD Xfer Complete on EP 00 with 0 bytes

USBD Setup Received 80 06 04 03 09 04 28 00 
  Get Descriptor String[4]
  Queue EP 80 with 40 bytes ...
USBD Xfer Complete on EP 80 with 40 bytes
  Queue EP 00 with 0 bytes ...
USBD Xfer Complete on EP 00 with 0 bytes

USBD Setup Received 80 06 00 03 00 00 FF 00 
  Get Descriptor String[0]
  Queue EP 80 with 4 bytes ...
USBD Xfer Complete on EP 80 with 4 bytes
  Queue EP 00 with 0 bytes ...
USBD Xfer Complete on EP 00 with 0 bytes

USBD Setup Received 80 06 01 03 09 04 FF 00 
  Get Descriptor String[1]
  Queue EP 80 with 16 bytes ...
USBD Xfer Complete on EP 80 with 16 bytes
  Queue EP 00 with 0 bytes ...
USBD Xfer Complete on EP 00 with 0 bytes

USBD Setup Received 80 06 02 03 09 04 FF 00 
  Get Descriptor String[2]
  Queue EP 80 with 30 bytes ...
USBD Xfer Complete on EP 80 with 30 bytes
  Queue EP 00 with 0 bytes ...
USBD Xfer Complete on EP 00 with 0 bytes

USBD Setup Received 80 06 04 03 09 04 04 00 
  Get Descriptor String[4]
  Queue EP 80 with 4 bytes ...
USBD Xfer Complete on EP 80 with 4 bytes
  Queue EP 00 with 0 bytes ...
USBD Xfer Complete on EP 00 with 0 bytes

USBD Setup Received 80 06 04 03 09 04 28 00 
  Get Descriptor String[4]
  Queue EP 80 with 40 bytes ...
USBD Xfer Complete on EP 80 with 40 bytes
  Queue EP 00 with 0 bytes ...
USBD Xfer Complete on EP 00 with 0 bytes
[0;32mI (2510) example: MIDI write task init[0m
[0;32mI (2520) example: MIDI read task init[0m
[0;32mI (2800) example: Writing MIDI data 74[0m
USBD Xfer Complete on EP 81 with 4 bytes
  MIDI xfer callback
  Queue EP 81 with 4 bytes ...
USBD Xfer Complete on EP 81 with 4 bytes
  MIDI xfer callback
[0;32mI (3090) example: Writing MIDI data 78[0m
USBD Xfer Complete on EP 81 with 4 bytes
  MIDI xfer callback
  Queue EP 81 with 4 bytes ...
USBD Xfer Complete on EP 81 with 4 bytes
  MIDI xfer callback
[0;32mI (3380) example: Writing MIDI data 81[0m
USBD Xfer Complete on EP 81 with 4 bytes
  MIDI xfer callback
  Queue EP 81 with 4 bytes ...
USBD Xfer Complete on EP 81 with 4 bytes
  MIDI xfer callback
[0;32mI (3660) example: Writing MIDI data 86[0m
USBD Xfer Complete on EP 81 with 4 bytes
  MIDI xfer callback
  Queue EP 81 with 4 bytes ...
USBD Xfer Complete on EP 81 with 4 bytes
  MIDI xfer callback