OpenLightingProject / ola

The Open Lighting Architecture - The Travel Adaptor for the Lighting Industry
https://www.openlighting.org/ola/
Other
634 stars 202 forks source link

Eurolite DMX512-Pro not sending Data #1934

Closed dhelleberg closed 4 months ago

dhelleberg commented 4 months ago

Hi, I'm running ola 0.10.9 on a raspberry pi and I have a Eurolite DMX512-Pro connected via USB. I deactivated all plugins except dummy, Artnet and ftdidmx From the logs (attached) I thinkt that the device was discovered correctly, I could also patch the device as output to a universe.

Screenshot 2024-02-25 at 12 21 49

But changing DMX Values on that universe will not result in sending the data to the device. Also the LED on the device is flashing RED which is an indicator that the device is not initialized correctly.

Does the Eurotlite needs some special treatment? Should I use a different plugin then the FTDI? I'm happy to support debugging or testing patches Thanks for any help.

Logs from OLAD loglevel 3

pi@raspberrypi:~ $ olad  -l 3
olad/Olad.cpp:98: OLA Daemon version 0.10.9
olad/OlaDaemon.cpp:121: Using configs in /home/pi/.ola
common/thread/Thread.cpp:200: Thread pref-saver, policy SCHED_OTHER, priority 0
olad/OlaServer.cpp:194: Server UID is 7a70:86b2a8c0
olad/OlaServer.cpp:206: Server instance name is OLA Server
olad/AvahiDiscoveryAgent.cpp:201: Client state changed to AVAHI_CLIENT_S_RUNNING
common/thread/Thread.cpp:200: Thread http, policy SCHED_OTHER, priority 0
common/http/HTTPServer.cpp:509: HTTP Server started on port 9090
olad/AvahiDiscoveryAgent.cpp:236: State for OLA Server._http._tcp,_ola, group 0x55d42dd9c0 changed to AVAHI_ENTRY_GROUP_UNCOMMITED
olad/AvahiDiscoveryAgent.cpp:334: Adding _ola._sub._http._tcp
olad/OlaServer.cpp:481: Updated PID definitions.
olad/OlaServer.cpp:489: PID store is at 0x55d435b560
olad/AvahiDiscoveryAgent.cpp:236: State for OLA Server._http._tcp,_ola, group 0x55d42dd9c0 changed to AVAHI_ENTRY_GROUP_REGISTERING
common/thread/Thread.cpp:200: Thread signal-thread, policy SCHED_OTHER, priority 0
olad/PluginManager.cpp:73: Skipping E1.31 (sACN) because it was disabled
olad/PluginManager.cpp:73: Skipping ESP Net because it was disabled
olad/PluginManager.cpp:73: Skipping GPIO because it was disabled
olad/PluginManager.cpp:73: Skipping KarateLight because it was disabled
olad/PluginManager.cpp:73: Skipping KiNET because it was disabled
olad/PluginManager.cpp:73: Skipping Milford Instruments because it was disabled
olad/PluginManager.cpp:73: Skipping Enttec Open DMX because it was disabled
olad/PluginManager.cpp:73: Skipping Open Pixel Control because it was disabled
olad/PluginManager.cpp:73: Skipping OSC because it was disabled
olad/PluginManager.cpp:73: Skipping Renard because it was disabled
olad/PluginManager.cpp:73: Skipping SandNet because it was disabled
olad/PluginManager.cpp:73: Skipping ShowNet because it was disabled
olad/PluginManager.cpp:73: Skipping SPI because it was disabled
olad/PluginManager.cpp:73: Skipping StageProfi because it was disabled
olad/PluginManager.cpp:73: Skipping Serial USB because it was disabled
olad/PluginManager.cpp:73: Skipping USB because it was disabled
olad/PluginManager.cpp:73: Skipping Pathport because it was disabled
olad/PluginManager.cpp:73: Skipping UART native DMX because it was disabled
olad/PluginManager.cpp:195: Trying to start Dummy
olad/plugin_api/DeviceManager.cpp:105: Installed device: Dummy Device:1-1
olad/PluginManager.cpp:200: Started Dummy
olad/PluginManager.cpp:195: Trying to start ArtNet
olad/plugin_api/DeviceManager.cpp:105: Installed device: ArtNet [192.168.178.134]:2-1
olad/plugin_api/Universe.cpp:523: Full RDM discovery triggered for universe 2
olad/plugin_api/PortManager.cpp:119: Patched 2-1-I-0 to universe 2
olad/PluginManager.cpp:200: Started ArtNet
olad/PluginManager.cpp:195: Trying to start FTDI USB DMX
plugins/ftdidmx/FtdiWidget.cpp:133: Found 1 FTDI devices with PID: 24577.
plugins/ftdidmx/FtdiWidget.cpp:189: Found FTDI device. Vendor: 'FTDI', Name: 'FT232R USB UART', Serial: 'A5066G6Q'
plugins/ftdidmx/FtdiWidget.cpp:133: Found 0 FTDI devices with PID: 24593.
plugins/ftdidmx/FtdiDmxDevice.cpp:60: Widget FT232R USB UART has 1 interfaces.
plugins/ftdidmx/FtdiWidget.cpp:230: Setting interface to: 1
common/thread/Thread.cpp:200: Thread , policy SCHED_OTHER, priority 0
plugins/ftdidmx/FtdiDmxDevice.cpp:75: Successfully added 1/1 interfaces.
olad/plugin_api/DeviceManager.cpp:105: Installed device: FT232R USB UART with serial number : A5066G6Q :13-A5066G6Q
olad/plugin_api/PortManager.cpp:119: Patched 13-A5066G6Q-O-1 to universe 2
olad/PluginManager.cpp:200: Started FTDI USB DMX
plugins/ftdidmx/FtdiDmxThread.cpp:175: Granularity for FTDI thread is GOOD
olad/AvahiDiscoveryAgent.cpp:236: State for OLA Server._http._tcp,_ola, group 0x55d42dd9c0 changed to AVAHI_ENTRY_GROUP_ESTABLISHED
peternewman commented 4 months ago

Hi @dhelleberg ,

Yeah, you need the USB DMX plugin, rather than the FTDI one (you'll need to disable the FTDI one too). It should then work as expected.

Depending on your exact model of Eurolite you might need to enable the Mk2 option too. See here for more: https://docs.openlighting.org/ola/conf/ola-usbdmx.conf.html

dhelleberg commented 4 months ago

Thanks, i disabled the FTDI interface, enabled the usb-dmx interface. I have the following config:

enable_eurolite_mk2 = true enabled = true libusb_debug_level = 4

also tried it with enable_eurolite_mk2 = false. But I never get an output device. The interface is listed in the device tree here:

/dev/ttyUSB0

I have no clue how to proceed from here...

common/network/InterfacePicker.cpp:92: Using interface wlan0 (192.168.178.134)
olad/OlaServer.cpp:194: Server UID is 7a70:86b2a8c0
olad/OlaServer.cpp:206: Server instance name is OLA Server
common/io/EPoller.cpp:82: EPOLL_CTL_ADD 9, events 2001, descriptor: 0x55cdb825b0
olad/AvahiDiscoveryAgent.cpp:201: Client state changed to AVAHI_CLIENT_S_RUNNING
common/thread/Thread.cpp:200: Thread http, policy SCHED_OTHER, priority 0
common/http/HTTPServer.cpp:509: HTTP Server started on port 9090
common/io/EPoller.cpp:82: EPOLL_CTL_ADD 13, events 2001, descriptor: 0x55cdc24280
olad/AvahiDiscoveryAgent.cpp:236: State for OLA Server._http._tcp,_ola, group 0x55cdc24620 changed to AVAHI_ENTRY_GROUP_UNCOMMITED
olad/AvahiDiscoveryAgent.cpp:334: Adding _ola._sub._http._tcp
olad/OlaServer.cpp:481: Updated PID definitions.
olad/OlaServer.cpp:489: PID store is at 0x55cdca2b70
olad/AvahiDiscoveryAgent.cpp:236: State for OLA Server._http._tcp,_ola, group 0x55cdc24620 changed to AVAHI_ENTRY_GROUP_REGISTERING
common/thread/Thread.cpp:200: Thread signal-thread, policy SCHED_OTHER, priority 0
common/io/EPoller.cpp:82: EPOLL_CTL_ADD 21, events 2001, descriptor: 0x55cdbb56b0
olad/PluginManager.cpp:73: Skipping E1.31 (sACN) because it was disabled
olad/PluginManager.cpp:73: Skipping ESP Net because it was disabled
olad/PluginManager.cpp:73: Skipping GPIO because it was disabled
olad/PluginManager.cpp:73: Skipping KarateLight because it was disabled
olad/PluginManager.cpp:73: Skipping KiNET because it was disabled
olad/PluginManager.cpp:73: Skipping Milford Instruments because it was disabled
olad/PluginManager.cpp:73: Skipping Enttec Open DMX because it was disabled
olad/PluginManager.cpp:73: Skipping Open Pixel Control because it was disabled
common/io/EPoller.cpp:306: ss process time was 0.000005
olad/PluginManager.cpp:73: Skipping OSC because it was disabled
olad/PluginManager.cpp:73: Skipping Renard because it was disabled
common/io/EPoller.cpp:306: ss process time was 0.000004
olad/PluginManager.cpp:73: Skipping SandNet because it was disabled
olad/PluginManager.cpp:73: Skipping ShowNet because it was disabled
olad/PluginManager.cpp:73: Skipping SPI because it was disabled
common/io/EPoller.cpp:306: ss process time was 0.000005
olad/PluginManager.cpp:73: Skipping StageProfi because it was disabled
olad/PluginManager.cpp:73: Skipping Serial USB because it was disabled
olad/PluginManager.cpp:73: Skipping Pathport because it was disabled
olad/PluginManager.cpp:73: Skipping FTDI USB DMX because it was disabled
olad/PluginManager.cpp:73: Skipping UART native DMX because it was disabled
olad/PluginManager.cpp:195: Trying to start Dummy
olad/plugin_api/DeviceManager.cpp:105: Installed device: Dummy Device:1-1
olad/PluginManager.cpp:200: Started Dummy
olad/PluginManager.cpp:195: Trying to start ArtNet
common/network/PosixInterfacePicker.cpp:168: Skipping lo because it's a loopback
common/network/PosixInterfacePicker.cpp:256: Found: wlan0, 192.168.178.134, dc:a6:32:24:2a:94
common/network/InterfacePicker.cpp:92: Using interface wlan0 (192.168.178.134)
common/network/Socket.cpp:144: Binding to 0.0.0.0:6454
common/io/EPoller.cpp:82: EPOLL_CTL_ADD 23, events 2001, descriptor: 0x55cdb998c0
olad/plugin_api/DeviceManager.cpp:105: Installed device: ArtNet [192.168.178.134]:2-1
olad/plugin_api/Universe.cpp:523: Full RDM discovery triggered for universe 2
plugins/artnet/ArtNetNode.cpp:764: Sending ArtTodRequest
olad/plugin_api/PortManager.cpp:119: Patched 2-1-I-0 to universe 2
olad/PluginManager.cpp:200: Started ArtNet
olad/PluginManager.cpp:195: Trying to start USB
libs/usb/HotplugAgent.cpp:85: libusb_set_option(LIBUSB_OPTION_LOG_LEVEL, 4)
libs/usb/HotplugAgent.cpp:94: HotplugSupported(): 1
[timestamp] [threadID] facility level [function call] <message>
--------------------------------------------------------------------------------
[ 0.009676] [00000507] libusb: error [usbi_get_context] API misuse! Using non-default context as implicit default.
[ 0.009708] [00000507] libusb: debug [libusb_hotplug_register_callback] new hotplug cb 0x55cdbaff60 with handle 1
[ 0.009727] [00000507] libusb: debug [libusb_get_device_list]
libs/usb/HotplugAgent.cpp:172: USB hotplug event: 2:1 @0x55cdbc2fb0 [add]
[ 0.009861] [00000507] libusb: debug [libusb_get_device_descriptor]
plugins/usbdmx/AsyncPluginImpl.cpp:272: USB device added, checking for widget support, vendor 0x1d6b, product 0x0003
libs/usb/HotplugAgent.cpp:172: USB hotplug event: 1:5 @0x55cdbd19b0 [add]
[ 0.009944] [00000507] libusb: debug [libusb_get_device_descriptor]
plugins/usbdmx/AsyncPluginImpl.cpp:272: USB device added, checking for widget support, vendor 0x0403, product 0x6001
libs/usb/HotplugAgent.cpp:172: USB hotplug event: 1:2 @0x55cdbc32b0 [add]
[ 0.010002] [00000507] libusb: debug [libusb_get_device_descriptor]
plugins/usbdmx/AsyncPluginImpl.cpp:272: USB device added, checking for widget support, vendor 0x2109, product 0x3431
libs/usb/HotplugAgent.cpp:172: USB hotplug event: 1:1 @0x55cdbd1bf0 [add]
[ 0.010059] [00000507] libusb: debug [libusb_get_device_descriptor]
plugins/usbdmx/AsyncPluginImpl.cpp:272: USB device added, checking for widget support, vendor 0x1d6b, product 0x0002
libs/usb/LibUsbThread.cpp:50: -- Starting libusb thread
common/thread/Thread.cpp:200: Thread , policy SCHED_OTHER, priority 0
libs/usb/LibUsbThread.cpp:35: ----libusb event thread is running
olad/PluginManager.cpp:200: Started USB
[ 0.010524] [0000050e] libusb: debug [libusb_handle_events_timeout_completed] doing our own event handling
[ 0.010560] [0000050e] libusb: debug [handle_events] event sources modified, reallocating event data
common/io/EPoller.cpp:306: ss process time was 0.000010
[ 0.010586] [0000050e] libusb: debug [usbi_wait_for_events] poll() 2 fds with timeout in 60000ms
common/io/EPoller.cpp:306: ss process time was 0.000002
common/io/EPoller.cpp:306: ss process time was 0.000002
olad/AvahiDiscoveryAgent.cpp:236: State for OLA Server._http._tcp,_ola, group 0x55cdc24620 changed to AVAHI_ENTRY
peternewman commented 4 months ago

Sorry @dhelleberg . I forgot this isn't in a release yet (it only went in as part of #1556 ), so you'll need to compile from scratch unfortunately.

There are some work in progress instructions here you can follow, just use the Debian/Ubuntu instructions: https://github.com/OpenLightingProject/website/blob/f68f1b08d5046f34a0cf0ffc14db51c5d5a3f925/download_and_install/compiling_from_source.md

If you use the following configure line, it should do what it looks like you need (I'm assuming you're ultimately trying to do Art-Net to Eurolite?): ./configure --disable-all-plugins --enable-usbdmx --enable-artnet --enable-dummy

dhelleberg commented 4 months ago

Hi Peter, thanks for the hint. I compiled olad master on the pi using your configure parameters. The ola-usbdmx.conf now looks like this:

enable_eurolite_mk2 = true
enabled = true
eurolite_mk2_serial = A5066G6Q
libusb_debug_level = 4

I also tried it without the serial and with enable_eurolite_mk2 = false but I can't get it to work :(

I tried to hotplug USB, and also different USB ports... but there's never an output device shown.

Is there a way to make sure that olad runs on the latest (compiled) version?

Or maybe I'm missing USB access rules? I've added this:

/etc/udev/rules.d# cat 10-local.rules
# udev rules for ftdi devices
SUBSYSTEM=="usb|usb_device", ACTION=="add", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", GROUP="plugdev"

Here's the output from olad:


pi@raspberrypi:~ $ olad -l 3
olad/Olad.cpp:98: OLA Daemon version 0.10.9
olad/OlaDaemon.cpp:121: Using configs in /home/pi/.ola
common/thread/Thread.cpp:200: Thread pref-saver, policy SCHED_OTHER, priority 0
olad/OlaServer.cpp:194: Server UID is 7a70:86b2a8c0
olad/OlaServer.cpp:206: Server instance name is OLA Server
olad/AvahiDiscoveryAgent.cpp:201: Client state changed to AVAHI_CLIENT_S_RUNNING
common/thread/Thread.cpp:200: Thread http, policy SCHED_OTHER, priority 0
common/http/HTTPServer.cpp:509: HTTP Server started on port 9090
olad/AvahiDiscoveryAgent.cpp:236: State for OLA Server._http._tcp,_ola, group 0x559ebee9c0 changed to AVAHI_ENTRY_GROUP_UNCOMMITED
olad/AvahiDiscoveryAgent.cpp:334: Adding _ola._sub._http._tcp
olad/OlaServer.cpp:481: Updated PID definitions.
olad/AvahiDiscoveryAgent.cpp:236: State for OLA Server._http._tcp,_ola, group 0x559ebee9c0 changed to AVAHI_ENTRY_GROUP_REGISTERING
olad/OlaServer.cpp:489: PID store is at 0x559ec6c560
common/thread/Thread.cpp:200: Thread signal-thread, policy SCHED_OTHER, priority 0
olad/PluginManager.cpp:73: Skipping E1.31 (sACN) because it was disabled
olad/PluginManager.cpp:73: Skipping ESP Net because it was disabled
olad/PluginManager.cpp:73: Skipping GPIO because it was disabled
olad/PluginManager.cpp:73: Skipping KarateLight because it was disabled
olad/PluginManager.cpp:73: Skipping KiNET because it was disabled
olad/PluginManager.cpp:73: Skipping Milford Instruments because it was disabled
olad/PluginManager.cpp:73: Skipping Enttec Open DMX because it was disabled
olad/PluginManager.cpp:73: Skipping Open Pixel Control because it was disabled
olad/PluginManager.cpp:73: Skipping OSC because it was disabled
olad/PluginManager.cpp:73: Skipping Renard because it was disabled
olad/PluginManager.cpp:73: Skipping SandNet because it was disabled
olad/PluginManager.cpp:73: Skipping ShowNet because it was disabled
olad/PluginManager.cpp:73: Skipping SPI because it was disabled
olad/PluginManager.cpp:73: Skipping StageProfi because it was disabled
olad/PluginManager.cpp:73: Skipping Serial USB because it was disabled
olad/PluginManager.cpp:73: Skipping Pathport because it was disabled
olad/PluginManager.cpp:73: Skipping FTDI USB DMX because it was disabled
olad/PluginManager.cpp:73: Skipping UART native DMX because it was disabled
olad/PluginManager.cpp:195: Trying to start Dummy
olad/plugin_api/DeviceManager.cpp:105: Installed device: Dummy Device:1-1
olad/PluginManager.cpp:200: Started Dummy
olad/PluginManager.cpp:195: Trying to start ArtNet
olad/plugin_api/DeviceManager.cpp:105: Installed device: ArtNet [192.168.178.134]:2-1
olad/plugin_api/Universe.cpp:523: Full RDM discovery triggered for universe 2
olad/plugin_api/PortManager.cpp:119: Patched 2-1-I-0 to universe 2
olad/PluginManager.cpp:200: Started ArtNet
olad/PluginManager.cpp:195: Trying to start USB
[timestamp] [threadID] facility level [function call] <message>
--------------------------------------------------------------------------------
[ 0.006936] [0000044e] libusb: error [usbi_get_context] API misuse! Using non-default context as implicit default.
[ 0.006960] [0000044e] libusb: debug [libusb_hotplug_register_callback] new hotplug cb 0x559eb7a500 with handle 1
[ 0.006973] [0000044e] libusb: debug [libusb_get_device_list]
libs/usb/HotplugAgent.cpp:172: USB hotplug event: 2:1 @0x559eb9be30 [add]
[ 0.007123] [0000044e] libusb: debug [libusb_get_device_descriptor]
libs/usb/HotplugAgent.cpp:172: USB hotplug event: 1:3 @0x559eb9c060 [add]
[ 0.007166] [0000044e] libusb: debug [libusb_get_device_descriptor]
libs/usb/HotplugAgent.cpp:172: USB hotplug event: 1:2 @0x559eb8d080 [add]
[ 0.007194] [0000044e] libusb: debug [libusb_get_device_descriptor]
libs/usb/HotplugAgent.cpp:172: USB hotplug event: 1:1 @0x559eb9bd20 [add]
[ 0.007222] [0000044e] libusb: debug [libusb_get_device_descriptor]
libs/usb/LibUsbThread.cpp:50: -- Starting libusb thread
common/thread/Thread.cpp:200: Thread , policy SCHED_OTHER, priority 0
libs/usb/LibUsbThread.cpp:35: ----libusb event thread is running
olad/PluginManager.cpp:200: Started USB
[ 0.007594] [00000455] libusb: debug [libusb_handle_events_timeout_completed] doing our own event handling
[ 0.007637] [00000455] libusb: debug [handle_events] event sources modified, reallocating event data
[ 0.007667] [00000455] libusb: debug [usbi_wait_for_events] poll() 2 fds with timeout in 60000ms
olad/AvahiDiscoveryAgent.cpp:236: State for OLA Server._http._tcp,_ola, group 0x559ebee9c0 changed to AVAHI_ENTRY_GROUP_ESTABLISHED
peternewman commented 4 months ago

Is there a way to make sure that olad runs on the latest (compiled) version?

You can: sudo apt-get remove ola

Which will mean only the compiled version exists. Also in a more ad-hoc way, running ./olad/olad -l 4 from within the directory where you compiled OLA will launch your version.

Or maybe I'm missing USB access rules?

Good call, but you'll at least get some messages saying it couldn't access it if that was the problem.

Our udev rules for Debian are here, but it seems that one has escaped: https://github.com/OpenLightingProject/ola/blob/master/debian/ola.udev

dhelleberg commented 4 months ago

Oh yes! It finally works! I think that i was running the old binary from the release instead of the compiled version. I'm not exactly sure why, as I removed the package with sudo apt-get remove ola before... but I finally have the artnet 2 eurolite bridge running. thanks a lot for your help!

peternewman commented 4 months ago

Excellent, glad to hear you got it sorted @dhelleberg !