QLC effects generator for LED panels

Here is another script I wrote some months ago. It’s called qlc-effects-generator.py. It’s a quick and dirty hack that generate chasers, groups and scenes for QLC (a QT-based DMX lighting software). It just produce XML statements you copy’n'paste in your .qxw QLC workspace file.

I used it to create some effects for my 4 el-cheapo Mac-Mah LED wider panels. This script helped me generate column and row presets of my 4×8 pixels LED matrix for some basic colors:

Here are some photos of my preliminary tests at home:

And finally photos of the panels on stage (taken by Toma Heroow during Cool Cavemen’s concert in last november):

As usual, use and hack this script at you own risks, and feel free to send me bug reports and contributions ! :)

QLC 3.0.0 for Mandriva 2009.1

qlc-3-on-mandriva-2009 I’ve upgraded my old QLC RPM to the 3.0.0 version. This release is built for Mandriva 2009.1 and x86_64 architecture only, and do not depends on LLA. I also had to remove the FTDI output plugin as it doesn’t compile on my machine. You can find the QLC RPM in my repository.

In the end, this RPM is quite a prototype. I didn’t checked that it works well beyond the UI (check the screenshot for a proof). So use it at your own risks !

Enttec DMX-USB firmware upgrade with Qemu

A year ago, I brought a Enttec Pro USB/DMX widget. Since then, a new firmware was released. If it doesn’t fix any critical bug to me, I still have to upgrade it (don’t mind asking why… ;) ). And to make things fun (read “dangerous”), I choose to do it with Qemu.

This article explains how I upgraded the firmware of my Enttec DMX/USB widget under linux thanks to Qemu.

First, plug your device in one of your computer’s USB port. We need to get the hardware UID of the widget. We can do so as root in a linux terminal:

cat /proc/bus/usb/devices

This command output a big mess in which you should find a block of lines separated by two blank lines (one above and one below) corresponding to your USB device. It’s easy to spot, as it contain the ENTTEC string. Mine look like this:

T:  Bus=02 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#=  2 Spd=12  MxCh= 0
D:  Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs=  1
P:  Vendor=0403 ProdID=6001 Rev= 6.00
S:  Manufacturer=ENTTEC
S:  Product=DMX USB PRO
S:  SerialNumber=ENQXXXXX
C:* #Ifs= 1 Cfg#= 1 Atr=a0 MxPwr=300mA
I:* If#= 0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=ftdi_sio
E:  Ad=81(I) Atr=02(Bulk) MxPS=  64 Ivl=0ms
E:  Ad=02(O) Atr=02(Bulk) MxPS=  64 Ivl=0ms

What we are looking for is the vendor’s ID and the product’s ID, that’s all Qemu needs to talk to the device. This is found on the line starting with P:. For me:

  • Vendor ID: 0403
  • Products ID: 6001

With this information, we can launch Qemu and bind it to the device. Assuming you already have a Qemu image containing a working version of windows XP, the command looks like this:

qemu -m 512 -usb -usbdevice host:0403:6001 -hda ./qemu-win-xp-with-freestyler.qcow

Alternatively, you can “hotplug” the USB device once inside Qemu. This can be done by calling the Qemu interactive shell by pressing Ctrl + Alt + 2 simultaneously. Then, to hotplug the USB device, type:

usb_add host:0403:6001

If you’re as unlucky as I am, you’ll get this error message:

Could not add USB device 'host:0403:6001'

Which is doubled by the following message from your legacy console:

/proc/bus/usb/002/002: Permission denied

The latter point to the restrictive access rights on our device, which can be fixed by:

chmod -R a+rw /proc/bus/usb/002/002

qemu-usb-console

Instead, if you get the following error message:

usb_host: device already grabbed

It probably mean that your linux kernel has already identified the device when you plugged in and has loaded some drivers. To unload them and free the device, I had to do:

lsmod
rmmod dmx_usb
rmmod ftdi_sio

At last, you can check under the emulated Windows that your Enttec widget is recognized by windows:

enttec-usb-dmx-widget-on-windows-xp-through-qemu

And finally you’re free to upgrade (at your own risks) your widget’s firmware with the tools available on Enttec’s official website:

enttec-dmx-usb-widget-firmware-upgrade-on-windows-xp-through-qemu

FYI, all these operations where performed on a Mandriva 2008.1, Qemu 0.9.0 and linux kernel 2.6.24.

QLC 2.6.1 for Mandriva 2008.1

QLC 2.6.1 on Mandriva 2008.1

I’ve just backported QLC 2.6.1 from Fedora Core to Mandriva 2008.1. Q Light Controller is a software designed to pilot lights (both moving and static ones) on stages via the DMX communication protocol. This is my first step to bring together two of my main recent interests: stage lighting and linux.

These RPMs are currently only available for the x86_64 version of Mandriva but includes the Open DMX USB drivers and Lighting Architecture for Linux (LLA) packages. All the sources of these packages came from the repository I found in the “LLA, OpenDMX USB and Q Light Controller Tutorial” tutorial.

I haven’t played with QLC yet: I’ve just started it and as you can see on the screenshot it seems to work. Happy testing ! ;)