Error initialization Peperoni lights's USBDMX-xswitch

tolmino

Hi, i have some USBDMX-xswitch that was working with the old qlc version on windows with windows driver supplied by peperoni staff.

Now i wonna use them with qlcplus on linux machines.....
I have compiled version 4.6.1 before and after 4.7.0 and i have the same problem with all the version:
the USBDMX keep the startcode when qlcplus is starting, and i can see this because led USB start blink, led RC DMX start blink and led TX DMX is emetting light.

At the same time all my DMX devices find a dmx signal (i can see that with DMX light on scanners)....

Qlcplus find it on input-output devices and i can choose it as a device for output an universe...

but machines don't moves!!!

I have also some rodin1 output interfaces that work perfectly!!

How can i help you to debug it?
Massimo Callegari

Unfortunately the debug log you attached doesn't help.
I see a whole bunch of MIDI messages, but no errors from the Peperoni plugin.

Now 2 questions:
1) can you confirm that the Rodin1 works instead ? On the same machine and same operating system ?
2) can you confirm the XSwitch is detected and you can see it on the input/output panel ? If so, does anything happen when you select it ?

Also, can you try to manually raise channel 512 in the Simple Desk and see if the XSwitch output data after that ?
tolmino

1) Rodin1 works correctly. on the same machine.
2) it is correctly detected, and after qlcplus start it has blinking led as in working condition. also moving heads find a dmx signal.
i attach a photo

i have tryed to move channel 512 with simple desk and after that i have played with channels where is moving head, but nothing is moving.
Attachments
IMG_4631.JPG
IMG_4631.JPG (102.74 KiB) Viewed 4013 times
Massimo Callegari

Ok, can you please read the XSwitch firmware version displayed in the input/output panel ?

Also, which fixtures/addresses are you trying to control ?
tolmino

i don't find version in any place in input-output panel

neither with rodin1 that works

where i must find the string ?

i have attached an image of things i see
Attachments
IMG_4872.JPG
IMG_4872.JPG (85.14 KiB) Viewed 4013 times
Massimo Callegari

That's weird. According to the source code, the bottom panel should display something like

"The device is working correctly.
Firmware version: ...."

Unfortunately I cannot try it cause I don't have the device.
Massimo Callegari

Please add this at line 77 of peperonidevice.cpp

qDebug() << "Firmware version:" << m_firmwareVersion;

Then recompile and send me the output result.
tolmino

the first file is the output of the rodin1 (debug2)
the second is with a usbdmx (debug3)
Massimo Callegari

Ok, now please try to build with the attached file and send me the output debug as before. You need to replace the one in plugins/peperoni/unix

I noticed you have a mess with the fixtures (all the messages at the beginning shouldn't appear). Did you manually move/copy them ??
Attachments
peperoni.cpp
(5.51 KiB) Downloaded 197 times
tolmino

Here the debug files
i have too rodin1 in working state, and usbdmx not.
i have made nothing with fixture, simply i have loaded a test program i have done. i attach it
Attachments
test.qxw
(20.19 KiB) Downloaded 232 times
Massimo Callegari

Interesting. It seems the problem is in the actual write function, but I still don't understand why.
I found a couple of errors in the code and fixed them.
Now you should see the correct information in the IO panel too.
Please replace the whole peperoni folder with the attached one, rebuild and send me the results.

This time, please use an empty project, no input, just one universe. Enable the peperoni output and move a slider with the Simple Desk.

Thanks
Attachments
peperoni.tar.gz
(21.33 KiB) Downloaded 169 times
tolmino

i have done.
now i can see firmware version in input-output panel
rodin1 works
and usbdmx not.
Massimo Callegari

Tolmino, this is going to be very tough.
With the device I would probably take a few hours to figure out what's going on, but with debug messages it's very hard.

I see a lot of errors, even on the Rodin output, so I'm thinking this integration has something wrong on its ground.

I have written an email to the Peperoni team. Let's see if they are going to support me or not.

The last 3 things you can try are:
- see if there is any firmware update for the X-Switch. It has a very old version and maybe with a newer one it will work with QLC+
- try to force the TX only mode. Just go to line 167 of peperonidevice.cpp and turn the code into this:

//if (m_device->descriptor.idProduct == PEPERONI_PID_XSWITCH)
// configuration = PEPERONI_CONF_TXRX;
//else
configuration = PEPERONI_CONF_TXONLY;
- build with the attached .h file to be placed in the peperoni/common folder, over the sources I sent you before (the tar.gz)
Attachments
peperonidefs.h
(3.67 KiB) Downloaded 196 times
tolmino

Hi Massimo, here the new debug files...
the things are different now:

rodin1 is working too....

and usbdmx has one led not flashing (maybe for PEPERONI_CONF_TXONLY ), and generate a dmx output now !!!

Only the problem is that is slow to respond to commands (in some cases 2 seconds) and the other problem is that generate casual movements sometime:
it moves pan and tilt sometime in a random mode, and i can see a moving head V200 that i have here moving, and returning in the right position after 1 second.

i have also contacted Dr. Jan Menzel for a firmware upgrade..
Massimo Callegari

OK, maybe we're getting close.
In the debug messages I see lot of write timeout failures on the X-Switch.
Now it might be a timing issue or a bad configuration.

You said you switched to TX only. What if you don't ? I need to understand if the .h has made it "work" or if it is the TX only mode.
tolmino

Hi, now i'm in TX-RX mode
and that is the actual situation:

leds on usbdmx are lighting all as to be.

i have dmx comands sent slow to respond ( 1-2 seconds of delay) and i have too auto movements.

in qlcplus's input-output panel i don't see input checkbox near usbdmx-xswitch .

here the new debug file
Massimo Callegari

Ok, so it seems the .h made the difference, right ?
As far as I can see, the device is too slow to receive data (or QLC+ is too fast) so it refuses it and makes QLC+ to timeout very frequently.

This is indeed a code design aspect and it would require to be reviewed with the device in my hands.

What happens if instead of channel 50 you move only the first 10 channels ? Less data would be sent and probably the device would accept them.

Do the Peperoni guys replied to you ? Cause they didn't reply to me :(
tolmino

hi Massimo,
i have set start address of machine: i have 1 now (instead of 49)...

and now i need only half second to respond
and there are no auto movements !!

Dr. Jan Menzel don't reply to me. but i think because he live in Germany and he is out of office until monday.... I hope will find a response next monday.

I have gave a look to peperoni .cpp and .h files in plugins/peperoni directory, but i haven't find nothing that seems to have reference at speed of trasmission.

if you help me to find that portion of code, i can test to add latence step by step, so to have no error to trasmission until ch 512 (that can be the most hard to work !!)

i have done a debug file that attach here.
tolmino

After last changes in Git, i have less auto-movements but they are.....
and USBDMX-xswitch sends signal with a delay of 1/2 second (against 1-2 seconds of precedent version)
Post Reply