Personal tools
The Open Lighting Project has moved!

We've launched our new site at www.openlighting.org. This wiki will remain and be updated with more technical information.

Difference between revisions of "OLA Device Specific Configuration"

From wiki.openlighting.org

Jump to: navigation, search
m (Mac)
 
(19 intermediate revisions by 3 users not shown)
Line 1: Line 1:
==Anyma ==
+
==Anyma uDMX==
  
  
Line 47: Line 47:
 
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.
 
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:
+
You may also need the following [http://www.reactivated.net/writing_udev_rules.html udev rule] like this in /etc/udev/rules.d/10-local.rules
  
 
<pre>
 
<pre>
Line 69: Line 69:
 
</pre>
 
</pre>
  
You'll also need to ensure that the user olad runs as has permission to write to the pins.  
+
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:
  
 +
<pre>
 +
/sys/class/gpio/gpio23/direction
 +
/sys/class/gpio/gpio23/value
 +
</pre>
 +
 +
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.
 +
<pre>
 +
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
 +
</pre>
 +
 +
== Ja Rule ==
 +
 +
===Linux===
 +
 +
You need the following [http://www.reactivated.net/writing_udev_rules.html udev rule] like this in /etc/udev/rules.d/10-local.rules
 +
<pre>
 +
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"
 +
</pre>
 
== OSC ==
 
== OSC ==
  
Line 116: Line 138:
 
There are two options, the 'Open DMX' plugin that requires the kernel module and the native FTDI driver.
 
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.
+
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 [https://www.openlighting.org/ola/get-help/ola-faq/#What_is_the_difference_between_the_different_USB_plugins 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://stevenbreuls.com/2014/04/dmx-rs485-wrong-board-fix/]
 +
*[http://falconchristmas.com/forum/index.php/topic,858.msg9877.html#msg9877 http://falconchristmas.com/forum/index.php/topic,858.msg9877.html#msg9877]
  
 
=== Linux, Open DMX Kernel Module ===
 
=== Linux, Open DMX Kernel Module ===
Line 131: Line 157:
 
=== Linux, FTDI ===
 
=== Linux, FTDI ===
  
Same as Mac, but you also need to make sure that you add the following udev rule:
+
Same as Mac, but you also need to make sure that you add the following [http://www.reactivated.net/writing_udev_rules.html udev rule] like this in /etc/udev/rules.d/10-local.rules:
  
 
<pre>
 
<pre>
 
# udev rules for ftdi devices
 
# udev rules for ftdi devices
 
SUBSYSTEM=="usb|usb_device", ACTION=="add", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", GROUP="plugdev"
 
SUBSYSTEM=="usb|usb_device", ACTION=="add", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", GROUP="plugdev"
 +
</pre>
 +
 +
==Scanlime Fadecandy==
 +
 +
===Linux===
 +
 +
You need a [http://www.reactivated.net/writing_udev_rules.html udev rule] like this in /etc/udev/rules.d/10-local.rules
 +
 +
<pre>
 +
# udev rules file for the Scanlime Fadecandy device
 +
SUBSYSTEM=="usb|usb_device", ACTION=="add", ATTRS{idVendor}=="1d50", ATTRS{idProduct}=="607a", GROUP="plugdev"
 
</pre>
 
</pre>
  
Line 142: Line 179:
 
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]].
 
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, by editing /etc/modprobe.d/raspi-blacklist.conf and commenting out the "blacklist spi-bcm2708" line. The file should look something like this:
+
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:
  
 
<pre>
 
<pre>
Line 151: Line 196:
 
</pre>
 
</pre>
  
 
+
In both cases, to allow non-root access, add the following [http://www.reactivated.net/writing_udev_rules.html udev rule] like this in /etc/udev/rules.d/99-spi.rules
To allow non-root access, add the following to /etc/udev/rules.d/99-spi.rules
 
  
 
<pre>
 
<pre>
Line 185: Line 229:
 
Another useful link is [http://fw.hardijzer.nl/?p=138 http://fw.hardijzer.nl/?p=138].
 
Another useful link is [http://fw.hardijzer.nl/?p=138 http://fw.hardijzer.nl/?p=138].
  
==USB Pro==
+
 
 +
=====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/ 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===
 
===Mac===
Line 195: Line 253:
 
   ls /dev/cu.usbserial-*
 
   ls /dev/cu.usbserial-*
  
Make sure your ~/.ola/ola-usbpro.conf file matches the path above:  
+
Make sure your ~/.ola/ola-usbserial.conf file matches the path above:  
  
 
   device_dir = /dev
 
   device_dir = /dev
Line 202: Line 260:
  
 
i.e. Look for devices at /dev/ttyUSB*  , /dev/cu.usbserial-*
 
i.e. Look for devices at /dev/ttyUSB*  , /dev/cu.usbserial-*
 +
 +
<blockquote>Note that, at least in MacOS Mojave, it may be necessary to reboot if you ever disconnect the DMX interface and want to use it another time. There has been at least one incident of the /dev/cu.usbserial-* device disappearing until reboot under 10.14.5 on a 2018 MacBook Pro.</blockquote>
  
 
OLA also comes with a tool to update the firmware on a USB Pro:
 
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>
 
   ./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==
 
==USBDMX2==
Line 240: Line 303:
  
 
Then make sure the user olad runs as is a member of 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 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==
 
==KarateLight, KarateDMX==

Latest revision as of 12:31, 22 May 2019

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:

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-*

Note that, at least in MacOS Mojave, it may be necessary to reboot if you ever disconnect the DMX interface and want to use it another time. There has been at least one incident of the /dev/cu.usbserial-* device disappearing until reboot under 10.14.5 on a 2018 MacBook Pro.

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.

  1. Blacklist comedi and vmk60xx in /etc/modprobe.d/blacklist.conf, see https://wiki.debian.org/KernelModuleBlacklisting
  2. Reboot and then run lsusb in the terminal. (Make sure K8062 is connected.)
  3. 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?.