Support for custom VCP device
Posted: Tue Aug 17, 2021 8:00 pm
I am trying to create my own DMX device which uses STM32 microcontroller and USB VCP. Basically, once plugged into USB it shows as virtual COM port (but also as an MIDI device, not really relevant to this question). I have implemented the widget API from Enttec.
Naturally, QLC+ cannot recognize this device since I am using my own VID, PID, manufacturer name and product name. Once I've changed the VID/PID combination to the ones of FTDI (0x0403 / 0x6001), set the manufacturer name to "ENTTEC" and product name to "DMX USB PRO", QLC+ can see my device. However, no data is being sent to my device, so I've tried to run QLC+ with debug flag. This is what I see:
I am guessing that this is due to the fact I am using standard VCP implementation and not the actual FTDI chip. The communication between my device and PC works fine in terminal, BTW (eg. "echo hello! > /dev/ttyACM0) - the issue is only between my device and QLC+ (and/or FTDI driver). My question is basically this:
Since I am in complete control of DMX timing on my device, what I need from PC/QLC+ side is DMX packets only. What steps would be needed for something like this to be supported in QLC+? Is it maybe already supported but I am not seeing it? Can I try to emulate some other device which doesn't use FTDI driver but their own VCP implementation? If so, then I could just open PR on GitHub with the added VID/PID combination which would use that driver.
Sorry I am missing anything obvious here.
Naturally, QLC+ cannot recognize this device since I am using my own VID, PID, manufacturer name and product name. Once I've changed the VID/PID combination to the ones of FTDI (0x0403 / 0x6001), set the manufacturer name to "ENTTEC" and product name to "DMX USB PRO", QLC+ can see my device. However, no data is being sent to my device, so I've tried to run QLC+ with debug flag. This is what I see:
Code: Select all
virtual bool LibFTDIInterface::open() "DMX USB PRO" ftdi_usb_reset failed
virtual bool LibFTDIInterface::clearRts() "DMX USB PRO" USB device unavailable
Since I am in complete control of DMX timing on my device, what I need from PC/QLC+ side is DMX packets only. What steps would be needed for something like this to be supported in QLC+? Is it maybe already supported but I am not seeing it? Can I try to emulate some other device which doesn't use FTDI driver but their own VCP implementation? If so, then I could just open PR on GitHub with the added VID/PID combination which would use that driver.
Sorry I am missing anything obvious here.