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 (Linux)
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>
  
 
== OSC ==
 
== OSC ==

Revision as of 17:44, 7 December 2014

Anyma

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:

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

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.

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:

# udev rules for ftdi devices
SUBSYSTEM=="usb|usb_device", ACTION=="add", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", 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, by editing /etc/modprobe.d/raspi-blacklist.conf and commenting 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


To allow non-root access, add the following to /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.

USB Pro

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-usbpro.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>

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.

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?.