Learn how easy it is to sync an existing GitHub or Google Code repo to a SourceForge project! See Demo
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?
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 ?
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.
Ok, can you please read the XSwitch firmware version displayed in the input/output panel ?
Also, which fixtures/addresses are you trying to control ?
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
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.
Please add this at line 77 of peperonidevice.cpp
qDebug() << "Firmware version:" << m_firmwareVersion;
Then recompile and send me the output result.
the first file is the output of the rodin1 (debug2)
the second is with a usbdmx (debug3)
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 ??
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
the debug files
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.
i have done.
now i can see firmware version in input-output panel
and usbdmx not.
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;
configuration = PEPERONI_CONF_TXONLY;
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..
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.
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
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 :(
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.
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)
After last Git update it works Great !!!!
and no auto movements
and in debug there are not broken pipe!!!
Thanks Massimo !!!!
.... i have re-connected rodin1 to that pc.
and the problem now i have on it:
while xswitch give a correctly output, rodin1 don't move nothing (give a dmx signal found by moving head).
i have made 2 debug files that attach here
Very weird. Jan just added the support for newer firmwares ( > 0x600) but the previous code hasn't been touched.
My Rodin1 works fine but I've got a 0x60x firmware. Maybe you can upgrade yours too ?
Hi Massimo, i attach new debug files obtained after last git upgrade....
all my peperoni interfaces are freezing after some movements or some inputs....
and when freeze, their led are not blinking or are blinking in a different way
when i have used only rodin1 in output, all was working well ...
Jan hasn't sent me new firmware too. he asked me if it is necessary.
Tolmino, excuse me but I'm getting lost with all this information you're posting.
I don't understand the setup you're using for each test and I don't have time to guess it from the debug logs.
- open a new topic as this is not related anymore to X-Switch not being recognized
- for each debug log note which device/s connected, which settings (input/output) and all the info that can help
Note also that input and output at the same time is allowed but not supported. It seems to be the case of debug.rodin1