Closed austinwitherspoon closed 1 year ago
Hey! What device are you using, and do you have the required drivers installed?
Entec DMX USB Pro, and I believe so. QLC works fine with it.
Hm, I don't have access to a DMX Pro, so I can't say I've tested the library with it. Assuming it is OpenDMX compatible, perhaps you need to set a different vendor/product ID when you instantiate the controller?
This is similar to an issue I had a couple of months ago. Python could see my controller but not talk to it.
My solution:
There could be a downside to updating your controller's WinUSB drivers. That is, my controller's OEM software is a little dated so after the driver update, the software no longer worked. That was okay for me since it's on a developer machine.
My above solution worked on my Win10 Dell simple desktop PC. However, on my simple HP desktop PC, it's a no go. I'm back to the same error as above (no backend available). Help, please.
Traceback (most recent call last):
File "C:\Users\Zot\Documents\Python\DMXPlay v3.py", line 17, in
Ok so same problem here. Working with QLC+. I have a noname generic spot connected through a FTDI cable. I tried to change the vendor and product id, but did not help.
Any other idea?
Going further:
I copied libusb-1.0.dll to windows/system32, and am able to confirm that my ftdi is detected through python with the right vendor and product id. No backend available has disappeared.
Now I get this:
dmx = OpenDMXController() File "C:\Python39\lib\site-packages\PyDMXControl\controllers_OpenDMXController.py", line 29, in init super().init(*args, kwargs) File "C:\Python39\lib\site-packages\PyDMXControl\controllers_TransmittingController.py", line 34, in init self.run() File "C:\Python39\lib\site-packages\PyDMXControl\controllers_TransmittingController.py", line 92, in run self._connect() File "C:\Python39\lib\site-packages\PyDMXControl\controllers_OpenDMXController.py", line 41, in _connect self.ftdi.open(self.ftdi_vendor_id, self.ftdi_product_id, serial=self.ftdi_serial) File "C:\Python39\lib\site-packages\pyftdi\ftdi.py", line 527, in open device = UsbTools.get_device(devdesc) File "C:\Python39\lib\site-packages\pyftdi\usbtools.py", line 191, in get_device config = dev.get_active_configuration() File "C:\Python39\lib\site-packages\usb\core.py", line 921, in get_active_configuration return self._ctx.get_active_configuration(self) File "C:\Python39\lib\site-packages\usb\core.py", line 113, in wrapper return f(self, *args, *kwargs) File "C:\Python39\lib\site-packages\usb\core.py", line 249, in get_active_configuration self.managed_open() File "C:\Python39\lib\site-packages\usb\core.py", line 113, in wrapper return f(self, args, kwargs) File "C:\Python39\lib\site-packages\usb\core.py", line 131, in managed_open self.handle = self.backend.open_device(self.dev) File "C:\Python39\lib\site-packages\usb\backend\libusb1.py", line 804, in open_device return _DeviceHandle(dev) File "C:\Python39\lib\site-packages\usb\backend\libusb1.py", line 652, in init _check(_lib.libusb_open(self.devid, byref(self.handle))) File "C:\Python39\lib\site-packages\usb\backend\libusb1.py", line 600, in _check raise NotImplementedError(_strerror(ret)) NotImplementedError: Operation not supported or unimplemented on this platform
And the solution, at last!
Using Zadig, I forced the install of the winusb driver instead of ftdibus, and it now works perfectly ! QLC+ doesn't work anymore, so you have to choose your drive depending on what you want to do !
Thomas-C258 --
Thanks for sharing. I'm convinced my problem is also a driver issue. Last spring, had the same issue with a Dell but able to solve it with Zadig and replacing a USB driver. Unfortunately, that same solution didn't work for an HP so I'm really hoping what you found is the solution. It looks very promising.
ZotAlan
Thomas-C258 --
I have success! The solution I found in April works on my Dell computer but not my HP. Your driver suggestion did not work on my HP, but you made me realize to think more broadly. I tried installing another driver (third effort), libusb-win32 (v1.2.7.3), which works on the HP.
The moral of the story, try different drivers. The caveat is be careful because installing other drivers may impact something else. Always take note of the current driver before installing another driver.
ZotAlan
Closing as this appears to be a local driver issue, not a library issue. Feel free to open a PR to add a note to the README with a summary of fixing driver issues if you wish :)
Follows the instructions, pip installed via
pip install -U PyDMXControl
.Tried to run the example code, but when I run
dmx = OpenDMXController()
I get the following exception:Running Windows 11, Python 3.10