DMX4ALL NanoDMX Interface on Raspberry Pi

All the topics related to QLC+ on the Raspberry Pi
Post Reply
stjosh
Posts: 3
Joined: Sat Jan 02, 2016 12:26 pm
Real Name: Josua Hunziker

Hi,

First of all thank you so much for this cool Software! I'm really amazed and very happy about it!

I'm using the latest Raspberry Pi Image (4.10.2b) and trying to get QLC+ working with my brand-new DMX4ALL NanoDMX interface. However, it seems that the interface can not be initialized:

Code: Select all

root@raspberry-pi:~# /usr/bin/qlcplus --web --operate --overscan --kiosk --debug 0 --open /root/.qlcplus/autostart.qxw
Unable to query physical screen size, defaulting to 100 dpi.
To override, set QT_QPA_EGLFS_PHYSICAL_WIDTH and QT_QPA_EGLFS_PHYSICAL_HEIGHT (in millimeters).

Q Light Controller Plus version 4.10.2b
This program is licensed under the terms of the Apache 2.0 license.
Copyright (c) Heikki Junnila (hjunnila@users.sf.net)
Copyright (c) Massimo Callegari (massimocallegari@yahoo.it)

"/usr/share/qlcplus/fixtures/BoomToneDJ_Slim_PAR_7x3W_LED_RGB.qxf" not in FixturesMap.xml
bool QLCFixtureDefCache::addFixtureDef(QLCFixtureDef*) Cache already contains "BoomToneDJ Slim PAR 7x3W LED RGB"
"/usr/share/qlcplus/fixtures/Showtec-Atmos-F350.qxf" not in FixturesMap.xml
OLA: common/network/TCPSocket.cpp:158: connect(127.0.0.1:9010): Connection refused
olaout: Connect failed, is OLAD running?
[OLA] Start thread failed
virtual bool LibFTDIInterface::openByPID(int) "NanoDMX Interface" device not found
virtual bool LibFTDIInterface::write(const QByteArray&) "NanoDMX Interface" USB device unavailable
virtual bool Stageprofi::open(quint32, bool) "NanoDMX Interface" Initialization failed
virtual bool LibFTDIInterface::write(const QByteArray&) "NanoDMX Interface" USB device unavailable
virtual bool LibFTDIInterface::openByPID(int) "NanoDMX Interface" device not found
virtual bool LibFTDIInterface::write(const QByteArray&) "NanoDMX Interface" USB device unavailable
virtual bool Stageprofi::open(quint32, bool) "NanoDMX Interface" Initialization failed
virtual bool LibFTDIInterface::write(const QByteArray&) "NanoDMX Interface" USB device unavailable
So here's the first strange thing: Why is QLC+ trying to initialize a Stageprofi interface and not a NanoDMX? Of course, the interface can not be found, since the VID of the NanoDMX is not the FTDI VID (0x0403) but rather the ATMEL VID (0x03EB) as the following dmesg output proves:

Code: Select all

[  850.347282] usb 1-1.4: new full-speed USB device number 7 using dwc_otg
[  850.460835] usb 1-1.4: New USB device found, idVendor=03eb, idProduct=2018
[  850.460861] usb 1-1.4: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[  850.460879] usb 1-1.4: Product: NanoDMX Interface
[  850.460895] usb 1-1.4: Manufacturer: DMX4ALL
[  850.462194] cdc_acm 1-1.4:1.0: ttyACM0: USB ACM device
I have looked through the code on GitHub a bit, but I'm not sure whether I have found the place where the wrong initialization takes place (i.e., a Stageprofi is initialized instead of a NanoDMX). I *think* it could be in dmxusbwidget.cpp on line 117:

Code: Select all

                case DMXUSBWidget::DMX4ALL:
                    widgetList << new Stageprofi(iface, output_id++);
                break;
However, I'm really not sure whether this could be the issue - it just seems strange to me that a Stagrprofi widget is returned regardless whether it's actually a NanoDMX or a Stageprofi widget.

Lust but not least what also puzzles me quite a bit: On my MacBook Air with QLC+ 4.10.2b, the NanoDMX works like a charm. How is this possible, since it should be built from the same source I guess?

Many thanks for your suggestions & comments!
stjosh
Posts: 3
Joined: Sat Jan 02, 2016 12:26 pm
Real Name: Josua Hunziker

No idea whether it has to do with this topic here? viewtopic.php?f=7&t=9233
User avatar
mcallegari
Posts: 4807
Joined: Sun Apr 12, 2015 9:09 am
Location: Italy
Real Name: Massimo Callegari
Contact:

I think you manually forced the device protocol and didn't mention it in your post.
Either show us your configuration file or delete it and start over from factory defaults.
I have looked through the code on GitHub a bit, but I'm not sure whether I have found the place where the wrong initialization takes place (i.e., a Stageprofi is initialized instead of a NanoDMX). I *think* it could be in dmxusbwidget.cpp on line 117
That's not really the code for the NanoDMX
Lust but not least what also puzzles me quite a bit: On my MacBook Air with QLC+ 4.10.2b, the NanoDMX works like a charm. How is this possible, since it should be built from the same source I guess?
Because Linux and OSX are different operating systems...
No idea whether it has to do with this topic here? viewtopic.php?f=7&t=9233
And in fact that topic is marked as SOLVED
stjosh
Posts: 3
Joined: Sat Jan 02, 2016 12:26 pm
Real Name: Josua Hunziker

Many thanks for your quick reply Massimo! And now I realize that my question was a bit stupid indeed, i.e., it based on some wrong assumptions. And I totally forgot that I have indeed played around with forcing a device mode when testing with another (unsupported) DMX interface before I bought the NanoDMX. :shock: Sorry about that!

I assumed that the I/O mapping was also stored in the project file - that's why I was puzzled that the same project is working on OS X but not on the Raspberry. However, they seem to be stored in the local configuration. Many thanks for the reminder however that Linux and OS X are different OSes - it seems I tend to forget. ;)

Now, after resetting my config (i.e., deleting the parameters file in ~/.config/qlcplus), I *think* it should be working now, even though I still see the following Debug log line:

Code: Select all

virtual bool NanoDMX::open(quint32, bool) "NanoDMX Interface" Initialization failed
I will be able to verify it tomorrow, because I don't have any DMX devices around to see whether the NanoDMX outputs something right now. I would report back in case it's still not working.

Well - thanks again for replying so quickly! And HAPPY NEW YEAR! :D
Post Reply