Page 1 of 1

An Enttec Open DMX device works on Windows but not on Linux

Posted: Thu Jun 20, 2024 10:50 pm
by unfa
Hi!

TL;DR: USB PID mismatch, see section Workaround below

I've gotten an Enttec Open DMX compatible USB-DMX device. It's based on an FTDI chip.

The device works without issues with QLC+ on Windows. I connect it via USB, QLC+ detects it, I can drive my lights, all is great.

Problem

When I tried the same under Linux however things were different. The device would not be discovered by QLC+. It would not show up on the DMX USB device list.

I checked dmesg, the device was detected and identified:

Code: Select all

[pią cze 21 00:03:10 2024] usb 1-4: New USB device found, idVendor=0403, idProduct=6001, bcdDevice=10.00                                                                                                                                                                                                00:06:23 [1359/1941]
[pią cze 21 00:03:10 2024] usb 1-4: New USB device strings: Mfr=1, Product=2, SerialNumber=3                                                                 
[pią cze 21 00:03:10 2024] usb 1-4: Product: FT230X Basic UART                                                                                               
[pią cze 21 00:03:10 2024] usb 1-4: Manufacturer: FTDI                                                                                                       
[pią cze 21 00:03:10 2024] usb 1-4: SerialNumber: D30CCAIR                                                                                                   
[pią cze 21 00:03:10 2024] ftdi_sio 1-4:1.0: FTDI USB Serial Device converter detected                                                                       
[pią cze 21 00:03:10 2024] usb 1-4: Detected FT-X                                                                                                            
[pią cze 21 00:03:10 2024] usb 1-4: FTDI USB Serial Device converter now attached to ttyUSB0
It took me some time but I figured it out. At least I think.

I looked into the files that QLC+ package installed on my Linux system and found there some udev rules and found this one for USB devices:

Code: Select all

# Generic FTDI Products
SUBSYSTEM=="usb*", ACTION=="add|change", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", MODE="0666"
I thought: my device clearly is FDTI-based, so it should work, right? It does work on Windows, so why not on Linux?

I checked the manufacturer ID: 0403, that checks out.
What about the product ID?

And here's the problem. QLC+ expects all FTDI devices to have a product id of 6001, but my interface has a product ID of 6015...

Workaround

Long story short, I've installed ftx-prog, an open-source programmer for the FTDI chips, and flashed a different Product ID to my interface using this command:

Code: Select all

ftx_prog --new-pid 0x6001
The program automatically detects the FTDI chip and reprograms it to report a different product ID.
And now it works with QLC+ on Linux.

I don't know why QLC+ on Windows had no problem with the device reporting product ID of 6015 and accepted it regardless.
Or rather - I don't understand why it does not accept it on Linux.

May I kindly ask for some kind of fix :)