We've launched our new site at www.openlighting.org. This wiki will remain and be updated with more technical information.
OLA Device Specific Configuration
From wiki.openlighting.org
Contents
- 1 Anyma uDMX
- 2 ArtNet
- 3 Streaming ACN / E1.31
- 4 Eurolite USB DMX512 PRO
- 5 General Purpose I/O
- 6 Ja Rule
- 7 OSC
- 8 Open DMX USB / FTDI RS485
- 9 Scanlime Fadecandy
- 10 SPI
- 11 StageProfi
- 12 UART native DMX
- 13 USB Pro (including EntTec)
- 14 DMXter4 RDM and MiniDMXter 4
- 15 USBDMX2
- 16 Velleman VM166 / K8062
- 17 KarateLight, KarateDMX
Anyma uDMX
Linux
You need a udev rule like this in /etc/udev/rules.d/10-local.rules
# udev rules file for the anyma dmx device SUBSYSTEM=="usb|usb_device", ACTION=="add", ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="05dc", GROUP="plugdev"
ArtNet
If you've having problems sending ArtNet data is may be because your receivers don't support ArtNet II and/or send ArtPollReply messages. You can force OLA to always broadcast data by changing ~/.ola/ola-artnet.conf to contain:
always_broadcast = true
Streaming ACN / E1.31
All Platforms
Some older networking gear only supports an old revision of E1.31 Called Revision 20. To use this older version you need to change a line in ola-e131.conf. Change this line
revision = 0.46
to this line
revision = 0.2
Only do this if the older gear cannot accept the standardized version of E1.31.
Linux
If you are planning to receive large amounts of multicast traffic 20+, you will need to adjust the maximum amount of igmp memberships. Use the following command:
echo <number_of_memberships> | sudo tee /proc/sys/net/ipv4/igmp_max_memberships
For example this command sets the maximum number of igmp memberships to 256:
echo 256 | sudo tee /proc/sys/net/ipv4/igmp_max_memberships
Eurolite USB DMX512 PRO
Linux
Sometime the cdc_acm kernel module claims the device. If this happens you'll see errors like "Cannot claim device" and/or "another process has device opened for exclusive access". To avoid this you can remove the module (rmmod). A udev rule like what is used for the Anyma device should also work.
You may also need the following udev rule like this in /etc/udev/rules.d/10-local.rules
SUBSYSTEMS=="usb", ATTRS{idVendor}=="04d8",ATTRS{idProduct}=="0xfa63", MODE="0660", GROUP="plugdev"
Mac
Install the KEXT.
General Purpose I/O
This has only been tested on a Raspberry Pi device. You can find information about the GPIO features on a Pi at elinux.org
Linux
You'll need to export the GPIO pins. For example, to use pin 23, as root run:
$ echo 23 > /sys/class/gpio/export
You'll also need to ensure that the user olad runs as has permission to change the level of the Pins. Each of the following files should be writeable:
/sys/class/gpio/gpio23/direction /sys/class/gpio/gpio23/value
You could for example do this by running the following as root (assuming olad is in the plugdev group, which you can check with "groups olad"); on later Raspberry Pi builds, this may fail, instead just add the olad user to the gpio group.
chgrp plugdev /sys/class/gpio/gpio23/direction chmod g+w /sys/class/gpio/gpio23/direction chgrp plugdev /sys/class/gpio/gpio23/value chmod g+w /sys/class/gpio/gpio23/value
Ja Rule
Linux
You need the following udev rule like this in /etc/udev/rules.d/10-local.rules
SUBSYSTEM=="usb|usb_device", ACTION=="add", ATTRS{idVendor}=="1209", ATTRS{idProduct}=="aced", GROUP="plugdev" MODE="660" SUBSYSTEM=="usb|usb_device", ACTION=="add", ATTRS{idVendor}=="1209", ATTRS{idProduct}=="acee", GROUP="plugdev" MODE="660"
OSC
The message types are described in the OSC Spec .
Receiving DMX
The OSC plugin accepts a number of message formats:
Path | OSC Message Type | Data | Comments |
---|---|---|---|
/path | 'b' | Blob of length 1 to 512. | The most efficient way of sending DMX data over OSC. |
/path/N | 'i' | Slot value from 0 to 255 | Update a single slot. N is the slot number from 1 - 512. |
/path/N | 'f' | Slot value from 0.0 to 1.0 | Update a single slot. N is the slot number from 1 - 512. |
/path | 'ii' | Slot number from 0 to 511, slot value from 0 to 255 | Update a single slot. |
/path | 'if' | Slot number from 0 to 511, slot value from 0.0 to 1.0 | Update a single slot. |
Sending DMX
The following formats are available for sending data:
Config Option | Path | OSC Message Type | Data | Comments |
---|---|---|---|---|
blob | /path | 'b' | Blob of length 1 to 512. | The most efficient way of sending DMX data over OSC. |
float_array | /path | N * 'f' | Slot values from 0.0 to 1.0 | Not quite as efficient as the blob type. |
int_array | /path | N * 'i' | Slot values from 0 to 255 | Not quite as efficient as the blob type. |
individual_float | /path/N | 'f' | Slot value from 0.0 to 1.0 | N is the slot number from 1 - 512. Results in a lot of messages being sent, avoid using this. |
individual_int | /path/N | 'i' | Slot value from 0 to 255 | N is the slot number from 1 - 512. Results in a lot of messages being sent, avoid using this. |
Open DMX USB / FTDI RS485
There are two options, the 'Open DMX' plugin that requires the kernel module and the native FTDI driver.
The Open DMX Plugin requires the dmx_usb kernel module, which means it's Linux only. The FTDI driver can be used on either Mac or Linux. See here for more info.
If you're having issues with the device failing to transmit DMX, these links might help:
- http://stevenbreuls.com/2014/04/dmx-rs485-wrong-board-fix/
- http://falconchristmas.com/forum/index.php/topic,858.msg9877.html#msg9877
Linux, Open DMX Kernel Module
Make sure the opendmx plugin is enabled. Make sure the dmx_usb kernel module is loaded.
Mac FTDI
You must have libftdi-dev installed before you run ./configure. Otherwise the FTDI DMX plugin won't show up in the list of OLA plugins.
Enable the FTDI driver (ola-ftdidmx ) and disable the USB Serial and Open DMX drivers (ola-usbserial.conf & ola-opendmx.conf)
Linux, FTDI
Same as Mac, but you also need to make sure that you add the following udev rule like this in /etc/udev/rules.d/10-local.rules:
# udev rules for ftdi devices SUBSYSTEM=="usb|usb_device", ACTION=="add", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", GROUP="plugdev"
Scanlime Fadecandy
Linux
You need a udev rule like this in /etc/udev/rules.d/10-local.rules
# udev rules file for the Scanlime Fadecandy device SUBSYSTEM=="usb|usb_device", ACTION=="add", ATTRS{idVendor}=="1d50", ATTRS{idProduct}=="607a", GROUP="plugdev"
SPI
This plugin is designed for the Raspberry Pi. It may work on other hardware, but that's up to you. For instructions on the hardware side of things see OLA LED Pixels.
Enable the spi-bcm2708 module, depending on the version of Raspbian you're running it will either be via Device Tree or by editing /etc/modprobe.d/raspi-blacklist.conf.
For recent versions you can use raspi-config's Advanced Options then SPI, see here for more info: https://www.raspberrypi.org/documentation/configuration/raspi-config.md
Or alternatively by manually enabling the SPI Device Tree by uncommenting the dtparam=spi=on line in /boot/config.txt as explained here: https://www.raspberrypi.org/documentation/configuration/device-tree.md
For older machines, edit /etc/modprobe.d/raspi-blacklist.conf and comment out the "blacklist spi-bcm2708" line. The file should look something like this:
# blacklist spi and i2c by default (many users don't need them) #blacklist spi-bcm2708 blacklist i2c-bcm2708
In both cases, to allow non-root access, add the following udev rule like this in /etc/udev/rules.d/99-spi.rules
SUBSYSTEM=="spidev", MODE="0666"
StageProfi
This comes in two flavors, a USB model and an Ethernet/IP model.
device = /dev/ttyUSB0 device = 192.168.1.250
UART native DMX
Linux
Raspberry Pi
First stop anything else using the serial port; either use raspi-config (Advanced Options, Serial) or follow the instructions here:
http://elinux.org/RPi_Serial_Connection#Preventing_Linux_using_the_serial_port
To make this work, you will also need to raise the Pi's UART clock, because the default one maxes out at 115kbaud. So you will need to add
init_uart_clock=16000000
to the /boot/config.txt file on the system. This won't affect any other user of the serial port provided you have a recent kernel.
Another useful link is http://fw.hardijzer.nl/?p=138.
Raspberry Pi 3
For the Raspberry Pi 3 you need to disable Bluetooth and reclaim the PL011 UART from it.
Add:
dtoverlay=pi3-disable-bt
to your config.txt file in the /boot directory.
According to this, you can also swap them, so Bluetooth uses the software UART: http://spellfoundry.com/2016/05/29/configuring-gpio-serial-port-raspbian-jessie-including-pi-3/
If you use this instead: dtoverlay=pi3-miniuart-bt
USB Pro (including EntTec)
Mac
Make sure you install the drives: http://www.ftdichip.com/Drivers/VCP.htm
After a restart run:
ls /dev/cu.usbserial-*
Make sure your ~/.ola/ola-usbserial.conf file matches the path above:
device_dir = /dev device_prefix = ttyUSB device_prefix = cu.usbserial-
i.e. Look for devices at /dev/ttyUSB* , /dev/cu.usbserial-*
OLA also comes with a tool to update the firmware on a USB Pro:
./tools/usbpro_firmware -d /dev/cu.usbserial-0000101D -f <firmware_file>
DMXter4 RDM and MiniDMXter 4
Navigate to "RDM Controller" in the menu. Then press <LEFT> and <RIGHT> together, then also press <YES/Q>, then release <YES/Q>, finally release <LEFT> and <RIGHT>. It will then show USB DONGLE MODE and be discoverable in OLA.
USBDMX2
Linux
You need a udev rule like this in /etc/udev/rules.d/10-local.rules
# udev rules file for the usbdmx2 dmx device SUBSYSTEM=="usb|usb_device", ACTION=="add", ATTRS{idVendor}=="0962", GROUP="plugdev"
There is an issue where the device isn't detected correctly the first time. You may need to restart OLA once the DMX Transmit led comes on.
Mac
There is an issue where the device isn't detected correctly the first time. You may need to restart OLA once the DMX Transmit led comes on.
Velleman VM166 / K8062
Mac
If you're installed from source you'll need the codeless KEXT which is available for OS X 10.9 and above or OS 10.8 and below. If you installed OLA from the mac binary package this is already included.
Linux
You need a udev rule like this in /etc/udev/rules.d/10-local.rules
# udev rules file for the velleman dmx device SUBSYSTEM=="usb|usb_device", ACTION=="add", ATTRS{idVendor}=="10cf", ATTRS{idProduct}=="8062", GROUP="plugdev"
Then make sure the user olad runs as is a member of plugdev.
Some people have reported issues with the K8062 on Ubuntu 14.04. Symptoms: When you plug in your K8062, Ubuntu responds with Kernel Panic. Problem: comedi and vmk60xx kernel modules are loaded and crash the kernel. Solution: WARNING! Attempt at your own risk.
- Blacklist comedi and vmk60xx in /etc/modprobe.d/blacklist.conf, see https://wiki.debian.org/KernelModuleBlacklisting
- Reboot and then run lsusb in the terminal. (Make sure K8062 is connected.)
- After a short hang, the K8062 should come up as "Velleman Components, Inc."
KarateLight, KarateDMX
Linux
You need a udev rule like this in /etc/udev/rules.d/81-karate.rules
# udev rules file for the karate-device KERNEL=="ttyACM?", ATTRS{product}=="DMX2USB simple", SYMLINK+="kldmx0"
Then make sure the user olad runs as is a member of 'dialout' which is the default group owning ttyACM?.