cheseball / boblight

Automatically exported from code.google.com/p/boblight
0 stars 0 forks source link

OLA support #9

Closed GoogleCodeExporter closed 8 years ago

GoogleCodeExporter commented 8 years ago
OLA is the open lighting architecture. It's a mature client/server based 
lighting system, mainly for use with DMX lighting fixtures.  You will find OLA 
at http://code.google.com/p/linux-lighting/

olabob.tar.gz contains:

* a native OLA driver for boblightd. 
* a popen protocol plugin for boblightd (not so good)

OLA supports the following devices & protocols:

ArtNet  
E1.31 / ACN     
ESP Net     
Pathport    
Sandnet     
ShowNet     

Anyma uDMX  
Arduino RGB Mixer   
DMX 4 Linux     
DMX USB Pro     
DMX-TRI     
DMXking USB DMX512-A    
Open DMX USB    
Packetheads USB_DMX Dongle  
RDM-TRI     
StageProfi (Ethernet version only)
uDMX_asp    
USBDMX2         
Velleman K8062

To build either, you will need to build and install ola first. (see 
http://opendmx.net/index.php/OLA_on_Linux)

the src directory contains only the files i've changed/created from the SVN 
version I obtained on 28th July 2010.

Automake could not be convinced to search /usr/local/lib from the AM_CHECK_LIBS 
so I had to add LD flags in src/Makefile.am 

Hippy (2010)

Original issue reported on code.google.com by dmx...@gmail.com on 1 Aug 2010 at 6:19

GoogleCodeExporter commented 8 years ago
sorry, it's not meant to be listed as a defect :)

Original comment by dmx...@gmail.com on 1 Aug 2010 at 6:20

GoogleCodeExporter commented 8 years ago
note: an interval of about 25000 is needed, or OLA will be overloaded and 
disconnect, you will get a lot of these messages:

StreamRpcChannel.cpp:230: RPC Socket closed, not sending messages

Original comment by dmx...@gmail.com on 2 Aug 2010 at 8:28

GoogleCodeExporter commented 8 years ago
LED fixtures with a dimmer channel will need something like the following to 
set it to full:

[color]
name        dimmer
rgb         FFFFFF
blacklevel  0.99999

[light]
name         led
color        dimmer device1 1
color        red    device1 2
color        green  device1 3
color        blue   device1 4

Original comment by dmx...@gmail.com on 2 Aug 2010 at 8:32

GoogleCodeExporter commented 8 years ago
OLA should easily be able to handle messages sent at 20ms intervals (that's 
what an interval of 20000 is right?). From 
http://opendmx.net/index.php/OLA_Performance_Stats, olad should handle around 
20k updates / second on a semi modern machine.

You may want to take a look at the /debug page and look at the rpc-received and 
rpc-received-type counters, that should give you a reasonable idea of how many 
messages your client is sending.

Original comment by nomis52 on 2 Aug 2010 at 10:31

GoogleCodeExporter commented 8 years ago
That's what I thought!  It's odd because I jacked it up to 35000 (35ms i 
believe) and eventually it still stopped.  I'll check out the OLA /debug page 
tonight.  

I checked the boblightd timer & wait functions and it does seem like it is a 
delay in uS, so 20000 would be 20 ms. 

I running on mythbuntu 10.04.  

Original comment by dmx...@gmail.com on 3 Aug 2010 at 1:08

GoogleCodeExporter commented 8 years ago
Thanks, I'll look into it.

Original comment by bob.loo...@gmail.com on 3 Aug 2010 at 10:18

GoogleCodeExporter commented 8 years ago

Original comment by bob.loo...@gmail.com on 3 Aug 2010 at 10:19

GoogleCodeExporter commented 8 years ago
If a short interval is a problem, then be careful with the sync mode, if a 
client sends at a short interval (or multiple clients) then you can overload 
the server just as good.

Also I want the license to be GPL, not one with curse words in it :P

Original comment by bob.loo...@gmail.com on 3 Aug 2010 at 10:42

GoogleCodeExporter commented 8 years ago
Could you be so kind to post the boblight config you're using ?
I want to use it with boblight-x11 -> boblightd -> ola -> oksid-dmx -> scrapdmx 
on my myth box, untill I've build my entec open usb dmx dongle

Original comment by jo.vanvo...@gmail.com on 6 Aug 2010 at 1:41

GoogleCodeExporter commented 8 years ago
Hey Bob,
   Here is the updated source, there was an issue where it would crash after a while, sorted now i think.   Included is an example boblight.conf with only one fixture (i've yet to test with all my others.  The fixture has a dimmer channel (1) which needs to be at full, so I created a fake colour called control with a blacklevel of 0.9999 

One thing I would love is an ability to set a channel to a specific level 
without having to fake colours.  I have a moving head LED fixture that needs 
pan/tilt channels to be set to a specific position, but with boblight.conf it's 
not really possible i dont think.

something like this would be cool for setting the channels we don't want to 
change...

[control]
name pan
value 0.50

[control]
name strobe
value 0

[control]
name dimmer
value 1.0

hope you plan on integrating my code in the main source.

Cheers,
  Hip 

Original comment by dmx...@gmail.com on 8 Aug 2010 at 12:48

GoogleCodeExporter commented 8 years ago
Interval can now be 20000 and it works fine.

Original comment by dmx...@gmail.com on 8 Aug 2010 at 11:47

GoogleCodeExporter commented 8 years ago
Is there any way I can set up ola without any hardware to test this 
implementation?

License has to be GPL btw.

Original comment by bob.loo...@gmail.com on 9 Aug 2010 at 10:24

GoogleCodeExporter commented 8 years ago
OLA has a dummy plugin, all you need do is compile and install OLA, then run 
olad.

GPL is fine, as the license implies, just do FTW you want :)

Original comment by dmx...@gmail.com on 11 Aug 2010 at 7:53

GoogleCodeExporter commented 8 years ago
dmxout, not sure if you're interested, but I ported the dmx4linux kernel 
modules to the latest lucid kernel. the dmxdummy and okddmx modules are loading 
fine (these are the ones I use). I haven't tested them with my hardware, since 
that's still in my moving boxes (new house etc.)
If you would like to test them, feel free to mail me, and I'll sent you a copy 
of the sources.

Original comment by jo.vanvo...@gmail.com on 11 Aug 2010 at 10:29

GoogleCodeExporter commented 8 years ago
Cheers Jo, though you will find that OLA supports many more devices than 
dmx4linux did, and OLA has a dmx4linux plugin which allows dmx4linux software 
to use OLA devices. Check out OLA.

Original comment by dmx...@gmail.com on 11 Aug 2010 at 11:17

GoogleCodeExporter commented 8 years ago
just as a reference,  you didn't add the patched configuration.h file to your 
olabob.tgz archive. That caused the first build error 
steps to reproduce:

svn checkout http://boblight.googlecode.com/svn/trunk/ boblight-read-only  -r 
322
then unzip your .tgz file in the boblight-read-only dir
run ./configure and make.

vim src/configuration.h
>>    bool BuildOla(CDevice*& device, int, CClientsHandler& clients);

make again, next error. The Makefile itself doesn't include any reference to 
the ola device. Also added, next finding out that boblightd doesn't link to ola.

I guess there is some serious work to be done, to make the archive you posted 
working as a patch on the svn source

Original comment by jo.vanvo...@gmail.com on 12 Aug 2010 at 7:49

GoogleCodeExporter commented 8 years ago
Woops.  I'll post a new file with the missing file soon.  You probably need to 
run autoreconf as the Makefile.am has the nessessary ld flags to link to OLA.  
Not much work needs to be done at all, just I can't post to the svn so we need 
to wait for bob. 

Original comment by dmx...@gmail.com on 12 Aug 2010 at 8:07

GoogleCodeExporter commented 8 years ago
New file with missing configuration.h...

You need to run autoreconf to pick up the changes in Makefile.am 

the changes are only 

boblightd_LDFLAGS =-lola -lolacommon -lprotobuf

That is because OLA installs to /usr/local/lib but AC_CHECK_LIB does not search 
that directory, but ld does.  So until OLA is installed in /usr/lib it will 
have to be.

This will also mean people can't build without OLA, even if they dont want to 
use OLA, so a solution for that must be found.

Cheers

Original comment by dmx...@gmail.com on 12 Aug 2010 at 8:51

Attachments:

GoogleCodeExporter commented 8 years ago
it can probably be enabled as a feature using config, but I'm not that 
experienced with the make-utilities.
I managed to get it working with my patched source, connecting boblight-X11 to 
boblightd, to olad, dmx4linux, dmxdummy.
I will try it on my okddmx device as soon as I can.
I will also try your new archive, to see if it builds, I also added a deviceola 
section in the Makefile.am and some other stuff, but I'll diff with your 
version.

Another question, as this doesn't seem to be clear to me, how can you select an 
other universe ?

[device]
name            universe1
output          1 => selects univers ??
# channels        512
channels        16 => specifies how many channels are updated by boblightd ??
type            ola
interval        20000

Original comment by jo.vanvo...@gmail.com on 12 Aug 2010 at 9:03

GoogleCodeExporter commented 8 years ago
Hey Jo, 
   Yeah, output = universe and channels can be 1 - 512.  You can have multiple device sections too, so several universes are possible.  This is where boblightd could perform serious pixel mapping functions like GrandMA and Hippotizer do, with an appropriate conf file.

The only change from the original Makefile.am I made was the line:
boblightd_LDFLAGS =-lola -lolacommon -lprotobuf

I've tried google and searching for a way to make autoconf use /usr/local/lib 
but I could not work it out. I found a lot of people with the same problem.  I 
think it is possible, but requires righting a script inside Makefile.am, but I 
have not looked any further into. 

I also think it is possible to install OLA into /usr/lib with "configure  
--prefix=/usr/" but this isn't ideal either.  

Also, an interval of 20000 will give 50 updates per second, however only good 
DMX devices and ethernet protocols can truly update this fast.  Most DMX 
devices only work at about 25 frames per second.   I have been using Enttec DMX 
USB PRO and an Artnet<->DMX box at 20000 and it seems great.

OLA is good because I can merge universes with HTP or LTP, so QLC can be used 
to position moving fixtures and boblight can supply the colour information!

Cheers,
   Hip

Original comment by dmx...@gmail.com on 12 Aug 2010 at 10:16

GoogleCodeExporter commented 8 years ago
Hey,
   I've been testing for three days straight, and it's all working well.  I have an occasional glitch but I think it might be me not using a terminator, but its very rare and not a worry until I get a around to spending 5c on a resistor. 

I've got a little youtube video of it in action, 

http://www.youtube.com/watch?v=4cW9ec-WKc8

I'm very happy with it's performance (not the youtube vid, it's camera phone 
style dodgyness), boblight is very smooth and fast.  It seems perfectly in sync!
it is using about 9% CPU now though, with boblightd using 1-3%, boblight-X11 
using 2-3%, and olad using 1-3% using dmxusbpro.  Still have 40% overhead on 
the whole system 2ghz Athlon 1GB, Nvidia VDPAU.

I have more fixtures I have not hooked up yet, like an 50 watt LED moving head 
wash lamp, and a couple of other DMX dimmer channels.

Sweet!

Original comment by dmx...@gmail.com on 15 Aug 2010 at 8:31

GoogleCodeExporter commented 8 years ago
Nice work, I'll set up OLA soon and check how well things are working.
I will remove the WTFPL license, it allows me to do that.
I will keep your name in the copyright notice of course.

Also I'll probably make some cosmetic changes, for example I want all member 
variables to be prefixed with m_.

Original comment by bob.loo...@gmail.com on 16 Aug 2010 at 7:37

GoogleCodeExporter commented 8 years ago
[deleted comment]
GoogleCodeExporter commented 8 years ago
[deleted comment]
GoogleCodeExporter commented 8 years ago
Sorry, I've been a little busy with other things lately, I've got ola compiled 
now and I'm going to set it up so I can try this patch.

Original comment by bob.loo...@gmail.com on 16 Sep 2010 at 3:08

GoogleCodeExporter commented 8 years ago
Hey there, 
I've tried the miniDMX approach (http://www.ledstyles.de/ftopic16702.html) sry 
it's only in german. And I got my miniDMX(MDMX) Device working, it's very 
similar to the ATMO device which is already included in Boblight.
I love it, but every minute or two miniMDX is missing a byte, and all the DMX 
fixtures are blinking at once. I assume this is a problem in my USB->serial 
converter or something.
Well I would love to set up Boblight with OLA and soon i will have the Hardware 
to test. But I have a problem sorting out the instructions given in the 
comments above. Can someone write a quick How-To including the necessary steps? 
I've read something about a native OLA driver for boblight, but the link at the 
very top doesn't point to anything called "olabob.tar.gz". If someone could 
help me set OLA up with Boblight I'll summarize the steps here myself. But so 
far I'm stuck :-(

Another thing: Someone in the LEDstyles forum said(29. April 2011), that Bob 
agreed to support the MDMX device in the future. Did i miss it during install? 
I coulndn't find it in the sources either. Well is there a way for me to submit 
my modified code to boblight, so MDMX will be supportet oficially?
kind regards

Original comment by Hauke.Na...@gmail.com on 10 Nov 2011 at 1:40

GoogleCodeExporter commented 8 years ago
Sorry I've been a little absent on this, partly because I need to set up OLA 
for it before I can test if it compiles etc.

Original comment by bob.loo...@gmail.com on 31 Dec 2011 at 1:25

GoogleCodeExporter commented 8 years ago
I've been meaning to hook this all back up after I moved house 11 months ago.

I'll look over the code again in the next few days and make sure it works with 
the latest OLA.

You don't necessarily need OLA, Bob.
 If it works for me then it should work for anyone. 

It's quiet easy to setup/compile OLA and use a dummy plugin if you don't have 
any dmx, check out the wiki :)

Cheers and new years!

Hip

Original comment by dmx...@gmail.com on 31 Dec 2011 at 2:24

GoogleCodeExporter commented 8 years ago
Hey Bob, 
  I've updated to the latest OLA and boblight about 12 hours ago, made a few changes to the code to make it work again, and it's all good :)

I am not very good with automake though, there should be someway to define 
./configure --with-ola  but I dunno know how.

The file attached are the only ones modified, from the svn I pulled about 12 
hours ago. 

Only minor changes.

Cheers,

Original comment by dmx...@gmail.com on 3 Jan 2012 at 5:34

Attachments:

GoogleCodeExporter commented 8 years ago
I've pushed the changes to a github repo, making ola optional ('--with-ola' 
like suggested).

I just got it to compile, did not test it yet.

See the repo at https://github.com/doits/boblight. When patch is 
stable/accepted by maintainer, it should be synced in here.

Original comment by markus.d...@gmail.com on 1 Jul 2012 at 6:55

GoogleCodeExporter commented 8 years ago
Sweet!  Thanks Bob,  now many many many more devices can be used :)

Original comment by dmx...@gmail.com on 2 Jul 2012 at 4:08

GoogleCodeExporter commented 8 years ago
i mean markus :)

Original comment by dmx...@gmail.com on 2 Jul 2012 at 10:42

GoogleCodeExporter commented 8 years ago
I successfully tested it: it is working on my arm router. I also updated the 
configure.ac to check for the libs (and add a missing define). AFAIK it should 
be merged into mainline if there are no further suggestions.

Original comment by markus.d...@gmail.com on 8 Jul 2012 at 2:51

GoogleCodeExporter commented 8 years ago
any intentions to merge this into mainline?

Original comment by markus.d...@gmail.com on 19 Jul 2012 at 7:43

GoogleCodeExporter commented 8 years ago
Committed in http://code.google.com/p/boblight/source/detail?r=443
Please check if it still works.

Original comment by bob.loo...@gmail.com on 20 Jul 2012 at 8:23

GoogleCodeExporter commented 8 years ago
unfortunately it does not: at least "deviceola.{cpp,h}" are missing

Original comment by markus.d...@gmail.com on 24 Jul 2012 at 5:09

GoogleCodeExporter commented 8 years ago
Fixed in http://code.google.com/p/boblight/source/detail?r=444

Original comment by bob.loo...@gmail.com on 24 Jul 2012 at 6:20

GoogleCodeExporter commented 8 years ago
Fixed in http://code.google.com/p/boblight/source/detail?r=444

Original comment by bob.loo...@gmail.com on 24 Jul 2012 at 6:26

GoogleCodeExporter commented 8 years ago
horray, it works!

I'd update the wiki with new information if you gave me the rights to.

Original comment by markus.d...@gmail.com on 24 Jul 2012 at 7:01

GoogleCodeExporter commented 8 years ago
I couldn't compile without a small modification to the deviceola.cpp file, as 
it pointed to ola/io/SelectServer.h  whereas is should be 
ola/network/SelectServer.h
I submitted a patch :)

Original comment by dmx...@gmail.com on 30 Jul 2012 at 5:26

GoogleCodeExporter commented 8 years ago
are you using latest ola? afaik the file was renamed to ola/io/SelectServer.h 
(see 
http://code.google.com/p/open-lighting/source/browse/#git%2Finclude%2Fola%2Fnetw
ork, there is no SelectServer.h)

Original comment by markus.d...@gmail.com on 30 Jul 2012 at 8:17

GoogleCodeExporter commented 8 years ago
whoops, possibly not :)
Trying now...

Original comment by dmx...@gmail.com on 30 Jul 2012 at 8:24

GoogleCodeExporter commented 8 years ago
Indeed I was using an old version of ola when compiling...  Bob, please ignore 
my patch for deviceola.cpp

Original comment by dmx...@gmail.com on 30 Jul 2012 at 10:35

GoogleCodeExporter commented 8 years ago

Original comment by bob.loo...@gmail.com on 15 Feb 2013 at 8:26

GoogleCodeExporter commented 8 years ago
Does anybody could do a Dummies proof tutorial in order to make works boblight 
with DMX output?

Thanks 

Original comment by carlospl...@gmail.com on 22 May 2014 at 11:33

GoogleCodeExporter commented 8 years ago
may I pay for a help or gui config method.

Original comment by carlospl...@gmail.com on 28 May 2014 at 9:42

GoogleCodeExporter commented 8 years ago
Please how to config boblight to use Artnet output. QLCplus may get the color 
info for local ip/Artnet and then use it with DMXking/Enttec/other DMX products.
Help needed. Please how to do it?

Original comment by carlospl...@gmail.com on 3 Jun 2014 at 7:13

Attachments: