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 "Open Lighting Architecture"
From wiki.openlighting.org
Peternewman (talk | contribs) m (→Advanced Topics: Add description) |
Peternewman (talk | contribs) m (→Developer Documentation: More APIs) |
||
(14 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
[[Image:OLA-Logo-Fitted-48px.png|right]] | [[Image:OLA-Logo-Fitted-48px.png|right]] | ||
− | Link: http:// | + | Link: http://www.openlighting.org/ola/ <br> |
− | {{Features|free=yes|tx=yes|rx=yes|linux=yes|osx=yes|http=yes|rdm=yes}} | + | {{Features|free=yes|tx=yes|rx=yes|linux=yes|osx=yes|http=yes|rdm=yes|win=yes}} |
[[Image:Ola-download.png |right|link=http://opendmx.net/index.php/Download_%26_Install_OLA]] | [[Image:Ola-download.png |right|link=http://opendmx.net/index.php/Download_%26_Install_OLA]] | ||
[[Image:Llad_home.png| thumb |200px|right|Universe Settings]] | [[Image:Llad_home.png| thumb |200px|right|Universe Settings]] | ||
Line 16: | Line 16: | ||
{| border=1 cellspacing="0" | {| border=1 cellspacing="0" | ||
− | ! '''Protocol'''!! Linux !! '''Mac OS X''' || '''FreeBSD''' | + | ! '''Protocol'''!! Linux !! '''Mac OS X''' || '''FreeBSD''' || '''Windows''' |
|- | |- | ||
− | || [[:Category:ArtNet|ArtNet, ArtNet 2, ArtNet 3]] || [[Image:Green-tick.png|center]] [[Image:Rdm.gif|center]] || [[Image:Green-tick.png|center]][[Image:Rdm.gif|center]] || [[Image:Green-tick.png|center]][[Image:Rdm.gif|center]] | + | || [[:Category:ArtNet|ArtNet, ArtNet 2, ArtNet 3]] || [[Image:Green-tick.png|center]] [[Image:Rdm.gif|center]] || [[Image:Green-tick.png|center]][[Image:Rdm.gif|center]] || [[Image:Green-tick.png|center]][[Image:Rdm.gif|center]] || [[Image:Green-tick.png|center]] [[Image:Rdm.gif|center]] |
|- | |- | ||
− | || [[E1.31]] / [[ACN]] || [[Image:Green-tick.png|center]] || [[Image:Green-tick.png|center]] || [[Image:Green-tick.png|center]] | + | || [[E1.31]] / [[ACN]] || [[Image:Green-tick.png|center]] || [[Image:Green-tick.png|center]] || [[Image:Green-tick.png|center]] || Not yet |
|- | |- | ||
− | || [[:Category:ESP Net|ESP Net]] || [[Image:Green-tick.png|center]] || [[Image:Green-tick.png|center]] || [[Image:Green-tick.png|center]] | + | || [[:Category:ESP Net|ESP Net]] || [[Image:Green-tick.png|center]] || [[Image:Green-tick.png|center]] || [[Image:Green-tick.png|center]] || [[Image:Green-tick.png|center]] |
|- | |- | ||
− | || [[KiNET]] || [[Image:Trans.gif|center]] || [[Image:Trans.gif|center]] || [[Image:Trans.gif|center]] | + | || [[KiNET]] || [[Image:Trans.gif|center]] || [[Image:Trans.gif|center]] || [[Image:Trans.gif|center]] || [[Image:Trans.gif|center]] |
|- | |- | ||
− | || [[OSC]] (Open Sound Control) || [[Image:Green-tick.png|center]] || [[Image:Green-tick.png|center]] || ? | + | || [[OSC]] (Open Sound Control) || [[Image:Green-tick.png|center]] || [[Image:Green-tick.png|center]] || ? || [[Image:Green-tick.png|center]] |
|- | |- | ||
− | || [[:Category:Pathport|Pathport]] || [[Image:Green-tick.png|center]] || [[Image:Green-tick.png|center]] || [[Image:Green-tick.png|center]] | + | || [[:Category:Pathport|Pathport]] || [[Image:Green-tick.png|center]] || [[Image:Green-tick.png|center]] || [[Image:Green-tick.png|center]] || [[Image:Green-tick.png|center]] |
|- | |- | ||
− | || [[:Category:Sandnet|Sandnet]] || [[Image:Green-tick.png|center]] || [[Image:Green-tick.png|center]] || [[Image:Green-tick.png|center]] | + | || [[:Category:Sandnet|Sandnet]] || [[Image:Green-tick.png|center]] || [[Image:Green-tick.png|center]] || [[Image:Green-tick.png|center]] || [[Image:Green-tick.png|center]] |
|- | |- | ||
− | || [[:Category:ShowNet|ShowNet]] || [[Image:Green-tick.png|center]] || [[Image:Green-tick.png|center]] || [[Image:Green-tick.png|center]] | + | || [[:Category:ShowNet|ShowNet]] || [[Image:Green-tick.png|center]] || [[Image:Green-tick.png|center]] || [[Image:Green-tick.png|center]] || [[Image:Green-tick.png|center]] |
|} | |} | ||
Line 39: | Line 39: | ||
{| border=1 cellspacing="0" | {| border=1 cellspacing="0" | ||
− | ! '''Device'''!! Linux !! '''Mac OS X''' || '''FreeBSD''' | + | ! '''Device'''!! Linux !! '''Mac OS X''' || '''FreeBSD''' || '''Windows''' |
|- | |- | ||
− | || [[Anyma uDMX]] || [[Image:Trans.gif|center]] || [[Image:Trans.gif|center]] || ? | + | || [[Anyma uDMX]] || [[Image:Trans.gif|center]] || [[Image:Trans.gif|center]] || ? || no |
|- | |- | ||
− | || [[Arduino RGB Mixer]] || [[Image:Green-tick.png|center]] [[Image:Rdm.gif|center]] || [[Image:Green-tick.png|center]] [[Image:Rdm.gif|center]] || ? | + | || [[Arduino RGB Mixer]] || [[Image:Green-tick.png|center]] [[Image:Rdm.gif|center]] || [[Image:Green-tick.png|center]] [[Image:Rdm.gif|center]] || ? || no |
|- | |- | ||
− | || [[DMX 4 Linux]] || [[Image:Trans.gif|center]] || || ? | + | || [[DMX 4 Linux]] || [[Image:Trans.gif|center]] || || ? || no |
|- | |- | ||
− | || [[DMX USB Pro]] || [[Image:Trans.gif|center]] [[Image:Recv.gif|center]] [[Image:Rdm.gif|center]] || [[Image:Trans.gif|center]] [[Image:Recv.gif|center]] [[Image:Rdm.gif|center]] || [[Image:Trans.gif|center]] [[Image:Recv.gif|center]] [[Image:Rdm.gif|center]] | + | || [[DMX USB Pro]] || [[Image:Trans.gif|center]] [[Image:Recv.gif|center]] [[Image:Rdm.gif|center]] || [[Image:Trans.gif|center]] [[Image:Recv.gif|center]] [[Image:Rdm.gif|center]] || [[Image:Trans.gif|center]] [[Image:Recv.gif|center]] [[Image:Rdm.gif|center]] || no |
|- | |- | ||
− | || [[DMX USB Pro MkII]] || [[Image:Trans.gif|center]] [[Image:Recv.gif|center]] [[Image:Rdm.gif|center]] || [[Image:Trans.gif|center]] [[Image:Recv.gif|center]] [[Image:Rdm.gif|center]] || [[Image:Trans.gif|center]] [[Image:Recv.gif|center]] [[Image:Rdm.gif|center]] | + | || [[DMX USB Pro MkII]] || [[Image:Trans.gif|center]] [[Image:Recv.gif|center]] [[Image:Rdm.gif|center]] || [[Image:Trans.gif|center]] [[Image:Recv.gif|center]] [[Image:Rdm.gif|center]] || [[Image:Trans.gif|center]] [[Image:Recv.gif|center]] [[Image:Rdm.gif|center]] || no |
|- | |- | ||
− | || [[DMX-TRI]] || [[Image:Trans.gif|center]] || [[Image:Trans.gif|center]] || [[Image:Trans.gif|center]] | + | || [[DMX-TRI]] || [[Image:Trans.gif|center]] || [[Image:Trans.gif|center]] || [[Image:Trans.gif|center]] || no |
|- | |- | ||
− | || [[DMXking USB DMX512-A]] || [[Image:Trans.gif|center]] [[Image:Recv.gif|center]] || [[Image:Trans.gif|center]] [[Image:Recv.gif|center]] || ? | + | || [[DMXking USB DMX512-A]] || [[Image:Trans.gif|center]] [[Image:Recv.gif|center]] || [[Image:Trans.gif|center]] [[Image:Recv.gif|center]] || ? || no |
|- | |- | ||
− | || [[DMXter4 RDM]] / [[MiniDMXter]] || [[Image:Rdm.gif|center]] || [[Image:Rdm.gif|center]] || ? | + | || [[DMXter4 RDM]] / [[MiniDMXter]] || [[Image:Rdm.gif|center]] || [[Image:Rdm.gif|center]] || ? || no |
|- | |- | ||
− | || [[Eurolite USB DMX512 PRO]] || [[Image:Trans.gif|center]] || [[Image:Trans.gif|center]] || ? | + | || [[Eurolite USB DMX512 PRO]] || [[Image:Trans.gif|center]] || [[Image:Trans.gif|center]] || ? || no |
|- | |- | ||
− | || [[KarateLight]] || [[Image:Trans.gif|center]] || || ? | + | || [[KarateLight]] || [[Image:Trans.gif|center]] || || ? || no |
|- | |- | ||
− | || [http://kmtronic.com/kmtronic-dmx-adapter.html KMtronic DMX Adapter] || [[Image:Trans.gif|center]] || || ? | + | || [http://kmtronic.com/kmtronic-dmx-adapter.html KMtronic DMX Adapter] || [[Image:Trans.gif|center]] || || ? || no |
|- | |- | ||
− | || [[Open DMX USB]] || [[Image:Trans.gif|center]] || || ? | + | || [[Open DMX USB]] || [[Image:Trans.gif|center]] || || ? || no |
|- | |- | ||
− | || [[Milford Instruments 1-463]] || [[Image:Trans.gif|center]] || ? || ? | + | || [[Milford Instruments 1-463]] || [[Image:Trans.gif|center]] || ? || ? || no |
|- | |- | ||
− | || [[Packetheads USB_DMX Dongle]] || [[Image:Green-tick.png|center]] || [[Image:Green-tick.png|center]] || ? | + | || [[Packetheads USB_DMX Dongle]] || [[Image:Green-tick.png|center]] || [[Image:Green-tick.png|center]] || ? || no |
|- | |- | ||
− | || [[RDM USB Pro]] || [[Image:Trans.gif|center]] [[Image:Recv.gif|center]] || [[Image:Trans.gif|center]] [[Image:Recv.gif|center]] || ? | + | || [[RDM USB Pro]] || [[Image:Trans.gif|center]] [[Image:Recv.gif|center]] || [[Image:Trans.gif|center]] [[Image:Recv.gif|center]] || ? || no |
|- | |- | ||
− | || [[RDM-TRI]] || [[Image:Trans.gif|center]] [[Image:Rdm.gif|center]] || [[Image:Trans.gif|center]] [[Image:Rdm.gif|center]] || [[Image:Trans.gif|center]] [[Image:Rdm.gif|center]] | + | || [[RDM-TRI]] || [[Image:Trans.gif|center]] [[Image:Rdm.gif|center]] || [[Image:Trans.gif|center]] [[Image:Rdm.gif|center]] || [[Image:Trans.gif|center]] [[Image:Rdm.gif|center]] || no |
|- | |- | ||
− | || [ | + | || [http://www.doityourselfchristmas.com/wiki/index.php?title=Renard Renard Serial Protocol (Renard SS24, SS8, etc)] || [[Image:Trans.gif|center]] || ? || ? || no |
|- | |- | ||
− | || [[ | + | || [[Robe Universal Interface]] || [[Image:Trans.gif|center]] [[Image:Recv.gif|center]] [[Image:Rdm.gif|center]] || [[Image:Trans.gif|center]] [[Image:Recv.gif|center]] [[Image:Rdm.gif|center]] || ? || no |
|- | |- | ||
− | || | + | || [[RUNIT WTX]] || [[Image:Trans.gif|center]] [[Image:Recv.gif|center]] [[Image:Rdm.gif|center]] || [[Image:Trans.gif|center]] [[Image:Recv.gif|center]] [[Image:Rdm.gif|center]] || ? || no |
|- | |- | ||
− | || [[ | + | || [[OLA_LED_Pixels|SPI control of LED pixels]] || [[Image:Trans.gif|center]] [[Image:Rdm.gif|center]] || ? || ? || no |
|- | |- | ||
− | || [ | + | || [[StageProfi]] || [[Image:Trans.gif|center]] || [[Image:Trans.gif|center]] (Ethernet version only) || ? || no |
|- | |- | ||
− | || [ | + | || [http://machosehead.wordpress.com/2010/06/12/udmx_asp/ uDMX_asp] || [[Image:Trans.gif|center]] || [[Image:Trans.gif|center]] || ? || no |
|- | |- | ||
− | || [[ultraDMX | + | || [[ultraDMX Pro]] || [[Image:Trans.gif|center]] [[Image:Recv.gif|center]] || [[Image:Trans.gif|center]] [[Image:Recv.gif|center]] || ? || no |
|- | |- | ||
− | || [[ | + | || [[ultraDMX Micro]] || [[Image:Trans.gif|center]] [[Image:Recv.gif|center]] || [[Image:Trans.gif|center]] [[Image:Recv.gif|center]] || ? || no |
|- | |- | ||
− | || [ | + | || [[USBDMX2]] || [[Image:Trans.gif|center]] || [[Image:Trans.gif|center]] || ? || no |
|- | |- | ||
− | || [ | + | || [http://www.soh.cz/produkty/modul-usb-dmx512 USB-DMX512] || [[Image:Trans.gif|center]] || [[Image:Trans.gif|center]] || ? || no |
|- | |- | ||
− | || [[Velleman_K8062_Upgrade|VX8062]] || [[Image:Trans.gif|center]] || [[Image:Trans.gif|center]] || ? | + | || [[Velleman K8062]] || [[Image:Trans.gif|center]] || [[Image:Trans.gif|center]] || ? || no |
+ | |- | ||
+ | || [[Velleman_K8062_Upgrade|VX8062]] || [[Image:Trans.gif|center]] || [[Image:Trans.gif|center]] || ? || no | ||
|} | |} | ||
Line 121: | Line 123: | ||
* [[OLA Merging Algorithms]] | * [[OLA Merging Algorithms]] | ||
* [[OLA DiffServ support]] (QOS settings) | * [[OLA DiffServ support]] (QOS settings) | ||
+ | * [[OLA Thread Scheduling]] (Control latency) | ||
* [[OLA DMX Trigger]] - Using OLA and DMX to trigger events on a computer | * [[OLA DMX Trigger]] - Using OLA and DMX to trigger events on a computer | ||
* [[OLA Patch persistency]] | * [[OLA Patch persistency]] | ||
===Developer Documentation=== | ===Developer Documentation=== | ||
+ | |||
+ | The developer documentation is in the process of being re-written as doxygen comments in the src tarball. The latest generated copy of the docs is hosted at https://docs.openlighting.org/doc/latest/ versions for specific releases are hosted at https://docs.openlighting.org/doc/. | ||
+ | |||
* [[OLA developer info]] - about the source code and structure | * [[OLA developer info]] - about the source code and structure | ||
* [[doc:index|OLA Doxygen Docs]] - Generated Doxygen docs aimed at developers creating clients. | * [[doc:index|OLA Doxygen Docs]] - Generated Doxygen docs aimed at developers creating clients. | ||
− | * OLA APIs | + | ** See [[OLA_on_Linux#Doxygen_Documentation|here]] for info on generating Doxygen docs locally. |
+ | * [[code-raw:plugins/osc/README|Walkthrough of the OSC plugin code]] - good for people wanting to create new plugins | ||
+ | * OLA APIs - See also [https://www.openlighting.org/ola/apis/ https://www.openlighting.org/ola/apis/] | ||
** Protobufs Based | ** Protobufs Based | ||
*** [[doc:client_tutorial|OLA Client API]] - the C++ API, (also [[OLA Client API|older examples]]) | *** [[doc:client_tutorial|OLA Client API]] - the C++ API, (also [[OLA Client API|older examples]]) | ||
*** [[OLA Python API]] - easy DMX programming | *** [[OLA Python API]] - easy DMX programming | ||
− | *** [ | + | *** [[code:java|Java]] - currently a work in progress (see an example using it [https://github.com/neophob/ola-to-tpm2net here]) |
** Alternatives | ** Alternatives | ||
*** [[OLA JSON API|JSON]] - Browse to /help on your OLA webserver to see the available commands (append ?help=1 to the end of a command for more info in newer versions of OLA) | *** [[OLA JSON API|JSON]] - Browse to /help on your OLA webserver to see the available commands (append ?help=1 to the end of a command for more info in newer versions of OLA) | ||
Line 137: | Line 145: | ||
* [[Build OLA Mac Packages]] - notes for building the .dmg images | * [[Build OLA Mac Packages]] - notes for building the .dmg images | ||
* [[Building OLA for Windows]] - Notes on Windows support (in progress) | * [[Building OLA for Windows]] - Notes on Windows support (in progress) | ||
+ | * [[OLA on Android]] - Notes on Android support (in progress) | ||
* [[Cross Compiling OLA]] | * [[Cross Compiling OLA]] | ||
* [[OLA Buildbot|Buildbot]] - For continuous build and testing | * [[OLA Buildbot|Buildbot]] - For continuous build and testing | ||
Line 145: | Line 154: | ||
* [[OLA Performance Stats]] | * [[OLA Performance Stats]] | ||
* [[OLA TimeCode]] | * [[OLA TimeCode]] | ||
+ | * [[doc:rpc_system|RPC Protocol]] (or "How do I talk to OLA in a different language") | ||
===Old Tutorials=== | ===Old Tutorials=== |
Latest revision as of 14:10, 24 March 2016
Link: http://www.openlighting.org/ola/
{{ #if: yes | }}{{ #if: yes | }}{{ #if: yes | }}{{ #if: yes | }}{{ #if: yes | }}{{ #if: yes | }}{{ #if: yes | }}{{ #if: | }}{{ #if: yes | }}
The Open Lighting Architecture (OLA) is part of the Open Lighting Project and provides applications with a mechanism to send and receive DMX512 & RDM commands using hardware devices and DMX over IP protocols. This enables software lighting controllers to communicate with hardware either via Ethernet or traditional DMX512 networks.
OLA can also convert DMX512 data sent using DMX over IP protocols from one format to another, allowing devices from different manufacturers to interact with one another. For example a Strand Lighting Console using ShowNet can send DMX512 to an Enttec EtherGate. When combined with a physical DMX interface such as the DMX USB Pro, OLA can send and receive data from wired DMX512 networks.
Supported Protocols
Protocol | Linux | Mac OS X | FreeBSD | Windows |
---|---|---|---|---|
ArtNet, ArtNet 2, ArtNet 3 | ||||
E1.31 / ACN | Not yet | |||
ESP Net | ||||
KiNET | ||||
OSC (Open Sound Control) | ? | |||
Pathport | ||||
Sandnet | ||||
ShowNet |
Supported Devices
Device | Linux | Mac OS X | FreeBSD | Windows |
---|---|---|---|---|
Anyma uDMX | ? | no | ||
Arduino RGB Mixer | ? | no | ||
DMX 4 Linux | ? | no | ||
DMX USB Pro | no | |||
DMX USB Pro MkII | no | |||
DMX-TRI | no | |||
DMXking USB DMX512-A | ? | no | ||
DMXter4 RDM / MiniDMXter | ? | no | ||
Eurolite USB DMX512 PRO | ? | no | ||
KarateLight | ? | no | ||
KMtronic DMX Adapter | ? | no | ||
Open DMX USB | ? | no | ||
Milford Instruments 1-463 | ? | ? | no | |
Packetheads USB_DMX Dongle | ? | no | ||
RDM USB Pro | ? | no | ||
RDM-TRI | no | |||
Renard Serial Protocol (Renard SS24, SS8, etc) | ? | ? | no | |
Robe Universal Interface | ? | no | ||
RUNIT WTX | ? | no | ||
SPI control of LED pixels | ? | ? | no | |
StageProfi | (Ethernet version only) | ? | no | |
uDMX_asp | ? | no | ||
ultraDMX Pro | ? | no | ||
ultraDMX Micro | ? | no | ||
USBDMX2 | ? | no | ||
USB-DMX512 | ? | no | ||
Velleman K8062 | ? | no | ||
VX8062 | ? | no |
Getting Started
Start here if you've never used OLA before and read these in order.
- Download & Install OLA
- Using OLA - A basic introduction
- OLA Command Line Tools - Documentation for the tools in ola-examples
- OLA Device Specific Configuration
- OLA Tips & Tricks
- RDM with OLA
Tutorials
- OLA on Windows with VMWare
- OLA Live CD, instructions on how to use the Live CD
- OLA Raspberry Pi
- OLA on Beaglebone
- OLAGuruPlug - Running OLA on a GuruPlug
- OLA RDM Responder Testing
- OLA LED Pixels - Using OLA and a Pi to drive SPI LED tape
- OlaOutput Max External - Setup OlaOutput on Mac OS X to send DMX messages from Max/MSP/Jitter
- OlaLED - control RGB LED via HTTP
Advanced Topics
- OLA Merging Algorithms
- OLA DiffServ support (QOS settings)
- OLA Thread Scheduling (Control latency)
- OLA DMX Trigger - Using OLA and DMX to trigger events on a computer
- OLA Patch persistency
Developer Documentation
The developer documentation is in the process of being re-written as doxygen comments in the src tarball. The latest generated copy of the docs is hosted at https://docs.openlighting.org/doc/latest/ versions for specific releases are hosted at https://docs.openlighting.org/doc/.
- OLA developer info - about the source code and structure
- OLA Doxygen Docs - Generated Doxygen docs aimed at developers creating clients.
- See here for info on generating Doxygen docs locally.
- Walkthrough of the OSC plugin code - good for people wanting to create new plugins
- OLA APIs - See also https://www.openlighting.org/ola/apis/
- Protobufs Based
- OLA Client API - the C++ API, (also older examples)
- OLA Python API - easy DMX programming
- Java - currently a work in progress (see an example using it here)
- Alternatives
- JSON - Browse to /help on your OLA webserver to see the available commands (append ?help=1 to the end of a command for more info in newer versions of OLA)
- OSC - Not technically an API, but not strictly a lighting protocol either, enable the OSC plugin and use it to communicate with OLA from a variety of software
- Protobufs Based
- Build OLA Mac Packages - notes for building the .dmg images
- Building OLA for Windows - Notes on Windows support (in progress)
- OLA on Android - Notes on Android support (in progress)
- Cross Compiling OLA
- Buildbot - For continuous build and testing
- Using OLA with Xcode - on a Mac, in Objective-C++
- Writing RDM Responder Tests
- Port Throttling
- RDM PID Definitions
- OLA Performance Stats
- OLA TimeCode
- RPC Protocol (or "How do I talk to OLA in a different language")
Old Tutorials
These refer to the previous release but parts of them are still relevant.
- LLA Sandnet Tutorial - Setup Horizon using Sandnet and LLA
- LLA and Q Light Controller Ubuntu Tutorial - Setup LLA on Ubuntu/Debian-type distro with QLC
- LLA and Q Light Controller OSX Tutorial - Setup LLA on Mac OS X with QLC