Using user-space USB drivers: Part 6

Feature image

Yesterday I described how the first step when connecting to a TUSB3410 chip is to upload firmware to it. After losing quite a few hairs with my TI TUSB3410 user-space driver not working on macOS while working perfectly fine on Linux, I've come to a few conclusions.

After the firmware is sent to the TUSB3410 chip, it stops responding until you perform a soft reset. The only problem is that since El Capitan, macOS ignores soft resets from libusb, the library used by node-usb. I have verified this by looking at the Wireshark traces. Nothing appears on the bus after the firmware is sent.

There seems to be a workaround, which involves re-enumerating the device instead of a soft reset, but this means modifying the libusb library itself. I think I've spent enough time on this for now, and will maybe look into again in future.