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
m (→Linux) |
|||
Line 69: | Line 69: | ||
</pre> | </pre> | ||
− | You'll also need to ensure that the user olad runs as has permission to | + | 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
Contents
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?.