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 "RDM with OLA"
From wiki.openlighting.org
Line 1: | Line 1: | ||
− | [[RDM]] devices can be configured through the web interface (only partially complete) or from the command line. Even if you don't have any RDM devices you can still experiment | + | [[RDM]] devices can be configured through the web interface (only partially complete) or from the command line. Even if you don't have any RDM devices you can still experiment using the fake RDM device created by the Dummy Plugin. |
+ | |||
+ | To follow these examples, patch the Dummy Port to universe 1. | ||
== Device Discovery == | == Device Discovery == | ||
− | The ''ola_rdm_discovery'' tool displays the UIDs found for each universe. | + | Each RDM device has a unique ID (UID) made up of a two byte manufacturer ID and a four byte device ID. The ''ola_rdm_discovery'' tool displays the UIDs found for each universe. |
+ | |||
<pre> | <pre> | ||
$ ola_rdm_discover -u 1 | $ ola_rdm_discover -u 1 | ||
− | + | 7a70:ffffff00 | |
</pre> | </pre> | ||
− | Passing the -f | + | A single device should be found with a manufacturer ID of 7a70 (Open Lighting) and a device ID of ffffff00 (the dummy device). |
+ | |||
+ | Passing the -f option will force the discovery algorithm to be run for the particular universe. This won't produce any output unless an error occurs. | ||
<pre> | <pre> | ||
Line 17: | Line 22: | ||
== Device Configuration == | == Device Configuration == | ||
− | The ''ola_rdm_get'' and '' | + | Now that a device has been found, we can query it to find the parameters it supports. Each parameter is assigned a two byte identifier known as a PID. The ''ola_rdm_get'' and ''ola_rdm_set'' commands are used to read / write the values of parameters. The first thing to do is to view a list of all known parameters: |
<pre> | <pre> | ||
Line 32: | Line 37: | ||
</pre> | </pre> | ||
− | + | This doesn't query the RDM device at all, it simply lists out the names of standard parameters. To see which particular parameters a device supports use: | |
+ | |||
+ | <pre> | ||
+ | $ ola_rdm_get --universe 1 --uid 7a70:ffffff00 supported_parameters | ||
+ | Supported Parameters | ||
+ | 0x50 (supported_parameters) | ||
+ | 0x60 (device_info) | ||
+ | 0x80 (device_model_description) | ||
+ | 0x81 (manufacturer_label) | ||
+ | 0x82 (device_label) | ||
+ | 0xc0 (software_version_label) | ||
+ | 0xf0 (dmx_start_address) | ||
+ | </pre> | ||
+ | |||
+ | One of the most useful parameters is device_info: | ||
<pre> | <pre> | ||
− | $ ola_rdm_get --universe 1 --uid | + | $ ola_rdm_get --universe 1 --uid 7a70:ffffff00 device_info |
+ | Device Info | ||
+ | RDM Protocol Version: 1.0 | ||
+ | Device Model: 0x1 | ||
+ | Product Category: other | ||
+ | Software Version: 0x1 | ||
+ | DMX Footprint: 10 | ||
+ | DMX Personality: 1 / 1 | ||
+ | DMX Start Address: 1 | ||
+ | # of Subdevices: 0 | ||
+ | Sensor Count: 0 | ||
</pre> | </pre> | ||
− | + | Here we see some general information about the device including the DMX start address and the # of DMX channels used (DMX Footprint). We can also get the DMX start address by using the dmx_start_address parameter directly: | |
<pre> | <pre> | ||
− | $ | + | $ ola_rdm_get --universe 1 --uid 7a70:ffffff00 dmx_start_address |
+ | DMX Start Address: 1 | ||
</pre> | </pre> | ||
− | + | To set the start address, the ''ola_rdm_set'' program is used: | |
+ | |||
+ | <pre> | ||
+ | $ ola_rdm_set --universe 1 --uid 7a70:ffffff00 dmx_start_address 10 | ||
+ | </pre> | ||
+ | |||
+ | No output is displayed unless the request failed. Now we can check that the set worked: | ||
+ | |||
+ | <pre> | ||
+ | $ ola_rdm_get --universe 1 --uid 7a70:ffffff00 dmx_start_address | ||
+ | DMX Start Address: 10 | ||
+ | </pre> | ||
+ | |||
+ | |||
+ | Finally, the full list of options for ''ola_rdm_get'' and ''ola_rdm_set'' can be found by running with --help: | ||
<pre> | <pre> |
Revision as of 18:47, 7 August 2010
RDM devices can be configured through the web interface (only partially complete) or from the command line. Even if you don't have any RDM devices you can still experiment using the fake RDM device created by the Dummy Plugin.
To follow these examples, patch the Dummy Port to universe 1.
Device Discovery
Each RDM device has a unique ID (UID) made up of a two byte manufacturer ID and a four byte device ID. The ola_rdm_discovery tool displays the UIDs found for each universe.
$ ola_rdm_discover -u 1 7a70:ffffff00
A single device should be found with a manufacturer ID of 7a70 (Open Lighting) and a device ID of ffffff00 (the dummy device).
Passing the -f option will force the discovery algorithm to be run for the particular universe. This won't produce any output unless an error occurs.
$ ola_rdm_discover -u 1 -f
Device Configuration
Now that a device has been found, we can query it to find the parameters it supports. Each parameter is assigned a two byte identifier known as a PID. The ola_rdm_get and ola_rdm_set commands are used to read / write the values of parameters. The first thing to do is to view a list of all known parameters:
$ ola_rdm_get --list_pids boot_software_version_id boot_software_version_label capture_preset clear_status_id comms_status default_slot_value device_hours device_info ...
This doesn't query the RDM device at all, it simply lists out the names of standard parameters. To see which particular parameters a device supports use:
$ ola_rdm_get --universe 1 --uid 7a70:ffffff00 supported_parameters Supported Parameters 0x50 (supported_parameters) 0x60 (device_info) 0x80 (device_model_description) 0x81 (manufacturer_label) 0x82 (device_label) 0xc0 (software_version_label) 0xf0 (dmx_start_address)
One of the most useful parameters is device_info:
$ ola_rdm_get --universe 1 --uid 7a70:ffffff00 device_info Device Info RDM Protocol Version: 1.0 Device Model: 0x1 Product Category: other Software Version: 0x1 DMX Footprint: 10 DMX Personality: 1 / 1 DMX Start Address: 1 # of Subdevices: 0 Sensor Count: 0
Here we see some general information about the device including the DMX start address and the # of DMX channels used (DMX Footprint). We can also get the DMX start address by using the dmx_start_address parameter directly:
$ ola_rdm_get --universe 1 --uid 7a70:ffffff00 dmx_start_address DMX Start Address: 1
To set the start address, the ola_rdm_set program is used:
$ ola_rdm_set --universe 1 --uid 7a70:ffffff00 dmx_start_address 10
No output is displayed unless the request failed. Now we can check that the set worked:
$ ola_rdm_get --universe 1 --uid 7a70:ffffff00 dmx_start_address DMX Start Address: 10
Finally, the full list of options for ola_rdm_get and ola_rdm_set can be found by running with --help:
-d, --sub_device <device> target a particular sub device (default is 0) -h, --help display this help message and exit. -l, --list_pids display a list of pids -u, --universe <universe> universe number. --uid <uid> the UID of the device to control.
Useful Tricks
If you're using bash, it's worthwhile to set up tab completion of PIDs:
$ complete -W "$(ola_rdm_get -l | xargs)" ola_rdm_get $ complete -W "$(ola_rdm_get -l | xargs)" ola_rdm_set