Kodi Community Forum

Full Version: [RELEASE] Official XBMC boblight Addon
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
(2012-03-13, 09:27)phil65 Wrote: [ -> ]i´m tryin to run boblightd on my fritzbox router now with freetz installed.
if i run it with a config file which works on ubuntu it says that it cannot find any devices, colors and lights... any ideas?
here´s the output. using r 417.
could it have to do with the filesystem (squashfs) the router is using?

Code:
[email protected]:/var/tmp/boblight# boblightd
(InitLog)                       start of log /mod/root/.boblight/boblightd.log
(PrintFlags)                    starting boblightd
(CConfig::LoadConfigFromFile)   opening /etc/boblight.conf
(CConfig::CheckConfig)          checking config lines
(CConfig::CheckDeviceConfig)    ERROR: /etc/boblight.conf no devices defined
(CConfig::CheckColorConfig)     ERROR: /etc/boblight.conf no colors defined
(CConfig::CheckLightConfig)     ERROR: /etc/boblight.conf no lights defined

and here´s some info about the compiled binaries.

Code:
> file packages/target-mipsel_uClibc-0.9.31.1/boblight-417/root/usr/bin/boblightd
packages/target-mipsel_uClibc-0.9.31.1/boblight-417/root/usr/bin/boblightd: ELF 32-bit LSB executable, MIPS, MIPS32 version 1 (SYSV), dynamically linked (uses shared libs), with unknown capability 0xf41 = 0x756e6700, with unknown capability 0x70100 = 0x3040000, stripped

[email protected]:/var/media/ftp/uStor01/archiv# ldd ./boblightd
        libdl.so.0 => /lib/libdl.so.0 (0x2aabe000)
        libm.so.0 => /lib/libm.so.0 (0x2aad1000)
        librt.so.0 => /lib/librt.so.0 (0x2aaf9000)
        libpthread.so.0 => /lib/libpthread.so.0 (0x2ab0a000)
        libuClibc++.so.0 => /usr/lib/freetz/libuClibc++.so.0 (0x2ab2d000)
        libc.so.0 => /lib/libc.so.0 (0x2ab61000)
        libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x2abdc000)
        ld-uClibc.so.0 => /lib/ld-uClibc.so.0 (0x2aaa8000)

[email protected]:/var/media/ftp/uStor01/archiv# ldd ./boblight-constant
        libdl.so.0 => /lib/libdl.so.0 (0x2aabe000)
        libm.so.0 => /lib/libm.so.0 (0x2aad1000)
        librt.so.0 => /lib/librt.so.0 (0x2aaf9000)
        libpthread.so.0 => /lib/libpthread.so.0 (0x2ab0a000)
        libuClibc++.so.0 => /usr/lib/freetz/libuClibc++.so.0 (0x2ab2d000)
        libc.so.0 => /lib/libc.so.0 (0x2ab61000)
        libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x2abdc000)
        ld-uClibc.so.0 => /lib/ld-uClibc.so.0 (0x2aaa8000)

[email protected]:/var/media/ftp/uStor01/archiv# ./boblightd --help
Usage: boblightd [OPTION]

  options:

ERROR: Unknown option -
  -c  set the config file, default is /etc/boblight.conf
  -f  fork

Can you post your boblight.conf?
http://www.gtwf-koeln.de/boblight.conf

it even happens when using the sample config from boblight trunk which is automatically added to the squashfs image by the build system.

EDIT: I know that I should take ttyUSB0, but it should at least find the [DEVICE] section, doesn´t it?
(2012-03-15, 00:27)POst05 Wrote: [ -> ]Sorry for this stupid question, but i couldn't find a statement why it isn't supported. I thought i would be easy Sad



Read the first post of this thread. I clearly stated this limitation under "Features" point "1.". Also in this thread i have stated it at least 5
times. Better luck in searching next time Wink
(2012-03-15, 02:11)phil65 Wrote: [ -> ]http://www.gtwf-koeln.de/boblight.conf

it even happens when using the sample config from boblight trunk which is automatically added to the squashfs image by the build system.

EDIT: I know that I should take ttyUSB0, but it should at least find the [DEVICE] section, doesn´t it?

Are the read permissions for boblight.conf set correctly?
@bobo1on1
Since your here now, what is best to adjust colors? Changing RGB code or tweak adjust value?
Changing the RGB value is probably better, because then you can still use the full range of the leds when possible, for example if you define blue as 00007F and you run "boblight-constanf 0000FF" boblightd will set the blue channel to 100%, if red is defined as FF0000 and you run "boblight-constant FF00FF" boblightd will set the red channel to 100% and the blue channel to 50%.

If you use the adjust value, the range itself will be decreased, so if you use 0.5 for the blue color the blue channel will never go above 50%.
(2012-03-13, 23:13)schumi2004 Wrote: [ -> ]I'm posting my question because i noticed something in beta-j's config.
It's about the color section in boblight.conf

I went back to boblight wiki at google code page and noticed this example.

Code:
[color]
name            red
rgb             FF0000

[color]
name            green
rgb             00FF00

[color]
name            blue
rgb             0000FF

[color]
name            yellow
rgb             FFFF00
adjust          0.5
blacklevel      0.1
gamma           2.3

[color]
name            white
rgb             FFFFFF
adjust          0.3
blacklevel      0.7
gamma           1.6

I'm running boblight on OpenELEC using Arduino Uno R3 and the led strands from Adafruit and so far it's working perfect.
Only playing with some color settings to fit my needs.
In the default config shipped in boblight i only saw RED, GREEN and BLUE but when i saw beta-j's post and reading the wiki i noticed YELLOW and WHITE as well.
Can i add these 2 colors to my config or doesn't that make sense and is it only for certain setups? The led strands i'm using only have RED, GREEN and BLUE so i'm guessing it doesn't make sense to add WHITE and YELLOW to it or am i wrong?

You could do that, but the result won't be pretty, different leds have different viewing angles, and the leds will be slightly spaced apart, so you'll get lots of shadows in different colors.
What looks best are RGB leds like on this strip: http://www.dealextreme.com/p/rgb-multico...-12v-14965
The leds don't have a lens, so they have a very wide viewing angle, and the red, green and blue dies are very close together, so you won't get colored shadows.
So here's a recap of what i've managed to achieve so far and what problems I'm experiencing.

I am running an XBMCBuntu on an Intel Pentium 4 device. For the time beign I'm keeping things extra simple to eliminate possible points of failure. My circuit consists of an Arduino Uno connected to the PC's USB port. A single RGB LED is connected to the arduino with the GND connected to the GND pin on the Arduino and the remaining 3 pins connected to PWM outputs 9,10 and 11.

Running $ boblightd& on xbmc gives me the following output:

Code:
[email protected]:~$ boblightd&
[1] 1941
[email protected]:~$ (InitLog)                       start of log /home/james/.bob                                                                             light/boblightd.log
(PrintFlags)                    starting boblightd
(CConfig::LoadConfigFromFile)   opening /etc/boblight.conf
(CConfig::CheckConfig)          checking config lines
(CConfig::CheckConfig)          config lines valid
(CConfig::BuildConfig)          building config
(CConfig::BuildConfig)          built config successfully
(main)                          starting devices
(CClientsHandler::Process)      opening listening socket on 127.0.0.1:19333
(CDevice::Process)              arduino: starting with output "/dev/ttyACM0"
(CDevice::Process)              arduino: setting up
[email protected]:~$ (CDevice::Process)              arduino: setup succeeded
(CClientsHandler::Process)      127.0.0.1:42906 connected
(CClientsHandler::ParseMessage) 127.0.0.1:42906 said hello
(CClientsHandler::ParseSet)     127.0.0.1:42906 priority set to 255
(CClientsHandler::ParseSet)     127.0.0.1:42906 priority set to 128
^C

At this point the Rx indicator on the Arduino is on and steady.

The plugin on the XBMC GUI says it has successfully connected to boblight, but the LED does not light up at all!

Any ideas? I'm running out of possible options here.

if it helps, this is my boblight.conf:

Code:
[global]
interface       127.0.0.1
port            19333

[device]
name            arduino
output          /dev/ttyACM0
channels        3
type            momo
interval        20000
rate            38400
prefix          55 AA

#arduino bootloader runs when opening the serial port for the first time
#delay transmission one second after opening so we don.t send shit to the bootloader
delayafteropen  2000000
#debug          on

[color]
name            red
rgb             FF0000

[color]
name            green
rgb             00FF00

[color]
name            blue
rgb             0000FF

[color]
name            yellow
rgb             FFFF00
adjust          0.5
blacklevel      0.1
gamma           2.3

[color]
name            white
rgb             FFFFFF
adjust          0.3
blacklevel      0.7
gamma           1.6

[light]
name            main
color           red     arduino 1
color           green   arduino 2
color           blue    arduino 3
hscan           0 100
vscan           0 100

and here is the code on my Arduino:

Code:
void setup()
{
  Serial.begin(38400);
}

  //arduno
  uint8_t outputs[] = {9, 10, 11};

#define NROUTPUTS (sizeof(outputs))
uint8_t values[NROUTPUTS];

void loop()
{
  WaitForPrefix();

  for (uint8_t i = 0; i < NROUTPUTS; i++)
  {
    while(!Serial.available());
    values[i] = Serial.read();
  }

  for (uint8_t i = 0; i < NROUTPUTS; i++)
    analogWrite(outputs[i], values[i]);
}

//boblightd needs to send 0×55 0xAA before sending the channel bytes
void WaitForPrefix()
{
  uint8_t first=0, second=0;
  while (second !=0x55 || first !=0xAA);
  {
    while (!Serial.available());
    second = first;
    first = Serial.read();
  }
}
(2012-03-15, 20:49)beta-j Wrote: [ -> ]So here's a recap of what i've managed to achieve so far and what problems I'm experiencing.

I am running an XBMCBuntu on an Intel Pentium 4 device. For the time beign I'm keeping things extra simple to eliminate possible points of failure. My circuit consists of an Arduino Uno connected to the PC's USB port. A single RGB LED is connected to the arduino with the GND connected to the GND pin on the Arduino and the remaining 3 pins connected to PWM outputs 9,10 and 11.

Running $ boblightd& on xbmc gives me the following output:

Code:
[email protected]:~$ boblightd&
[1] 1941
[email protected]:~$ (InitLog)                       start of log /home/james/.bob                                                                             light/boblightd.log
(PrintFlags)                    starting boblightd
(CConfig::LoadConfigFromFile)   opening /etc/boblight.conf
(CConfig::CheckConfig)          checking config lines
(CConfig::CheckConfig)          config lines valid
(CConfig::BuildConfig)          building config
(CConfig::BuildConfig)          built config successfully
(main)                          starting devices
(CClientsHandler::Process)      opening listening socket on 127.0.0.1:19333
(CDevice::Process)              arduino: starting with output "/dev/ttyACM0"
(CDevice::Process)              arduino: setting up
[email protected]:~$ (CDevice::Process)              arduino: setup succeeded
(CClientsHandler::Process)      127.0.0.1:42906 connected
(CClientsHandler::ParseMessage) 127.0.0.1:42906 said hello
(CClientsHandler::ParseSet)     127.0.0.1:42906 priority set to 255
(CClientsHandler::ParseSet)     127.0.0.1:42906 priority set to 128
^C

At this point the Rx indicator on the Arduino is on and steady.

The plugin on the XBMC GUI says it has successfully connected to boblight, but the LED does not light up at all!

Any ideas? I'm running out of possible options here.

if it helps, this is my boblight.conf:

Code:
[global]
interface       127.0.0.1
port            19333

[device]
name            arduino
output          /dev/ttyACM0
channels        3
type            momo
interval        20000
rate            38400
prefix          55 AA

#arduino bootloader runs when opening the serial port for the first time
#delay transmission one second after opening so we don.t send shit to the bootloader
delayafteropen  2000000
#debug          on

[color]
name            red
rgb             FF0000

[color]
name            green
rgb             00FF00

[color]
name            blue
rgb             0000FF

[color]
name            yellow
rgb             FFFF00
adjust          0.5
blacklevel      0.1
gamma           2.3

[color]
name            white
rgb             FFFFFF
adjust          0.3
blacklevel      0.7
gamma           1.6

[light]
name            main
color           red     arduino 1
color           green   arduino 2
color           blue    arduino 3
hscan           0 100
vscan           0 100

and here is the code on my Arduino:

Code:
void setup()
{
  Serial.begin(38400);
}

  //arduno
  uint8_t outputs[] = {9, 10, 11};

#define NROUTPUTS (sizeof(outputs))
uint8_t values[NROUTPUTS];

void loop()
{
  WaitForPrefix();

  for (uint8_t i = 0; i < NROUTPUTS; i++)
  {
    while(!Serial.available());
    values[i] = Serial.read();
  }

  for (uint8_t i = 0; i < NROUTPUTS; i++)
    analogWrite(outputs[i], values[i]);
}

//boblightd needs to send 0×55 0xAA before sending the channel bytes
void WaitForPrefix()
{
  uint8_t first=0, second=0;
  while (second !=0x55 || first !=0xAA);
  {
    while (!Serial.available());
    second = first;
    first = Serial.read();
  }
}

activate debug log in boblight.conf and see if the correct data is sent.

(2012-03-15, 16:05)bobo1on1 Wrote: [ -> ]
(2012-03-15, 02:11)phil65 Wrote: [ -> ]http://www.gtwf-koeln.de/boblight.conf

it even happens when using the sample config from boblight trunk which is automatically added to the squashfs image by the build system.

EDIT: I know that I should take ttyUSB0, but it should at least find the [DEVICE] section, doesn´t it?

Are the read permissions for boblight.conf set correctly?

Code:
[email protected]:/var/mod/root# boblightd -c /var/media/ftp/uStor01/boblight.conf
(InitLog)                       start of log /mod/root/.boblight/boblightd.log
(PrintFlags)                    starting boblightd -c /var/media/ftp/uStor01/boblight.conf
(CConfig::LoadConfigFromFile)   opening /var/media/ftp/uStor01/boblight.conf
(CConfig::CheckConfig)          checking config lines
(CConfig::CheckDeviceConfig)    ERROR: /var/media/ftp/uStor01/boblight.conf no devices defined
(CConfig::CheckColorConfig)     ERROR: /var/media/ftp/uStor01/boblight.conf no colors defined
(CConfig::CheckLightConfig)     ERROR: /var/media/ftp/uStor01/boblight.conf no lights defined
[email protected]:/var/mod/root#
[email protected]:/var/mod/root# cd /var/media
media/      mediapath/
[email protected]:/var/mod/root# cd /var/media/ftp/uStor01/
[email protected]:/var/media/ftp/uStor01# ls -l
drwxrwxrwx    3 root     root          4096 Mar 13 17:07 FRITZ
-rwxrwxrwx    1 root     root          1800 Mar 13 16:51 boblight.conf
drwxrwxrwx    8 1000     1000          4096 Nov  6 19:14 cs
drwxrwxrwx    3 1000     1000          4096 Oct 22 16:12 fbf
drwxrwxrwx    2 1000     1000          4096 Mar 13 21:06 logs
drwxrwxrwx    2 root     root         16384 Mar 13 16:47 lost+found
drwxrwxrwx   10 1000     1000          4096 Nov  6 19:11 tools
normally you connect the pwm rgb wires to the arduino output and the 4th wire has to go to +12V ... am i wrong here? Be carefull i'm not sure how much current the arduino pins can sink. ... but i'm pretty sure your leds have the wrong polarity the way you connected them... so they won't light up of course.
Check first by running "boblight-constant FFFFFF" if the leds light up that way.
http://ikennd.ac/pictures/for_posts/2011...Wiring.png

that´s how it should look like (with less arduino PWM pins of course and with an external power supply)

Check if your strip is +RGB or -RGB
boblightd doesn't seem to connect after I wake from sleep. I have to restart or disconnect and reconnect the usb cable.

this is what it is saying in the log file
Code:
(CDeviceRS232::WriteOutput)     ERROR: ambilight: /dev/ttyACM0: Input/output error
(CDevice::Process)              ambilight: closed
(CDevice::Process)              ambilight: setting up

when I disconnect then reconnect the USB cable I get this in the log file, then it works fine
Code:
(CDeviceRS232::SetupDevice)     ERROR: ambilight: /dev/ttyACM0: Input/output error
(CDevice::Process)              ERROR: ambilight: setting up failed, retrying in 10 seconds
(2012-03-17, 23:09)lrusak Wrote: [ -> ]boblightd doesn't seem to connect after I wake from sleep. I have to restart or disconnect and reconnect the usb cable.

this is what it is saying in the log file
Code:
(CDeviceRS232::WriteOutput)     ERROR: ambilight: /dev/ttyACM0: Input/output error
(CDevice::Process)              ambilight: closed
(CDevice::Process)              ambilight: setting up

when I disconnect then reconnect the USB cable I get this in the log file, then it works fine
Code:
(CDeviceRS232::SetupDevice)     ERROR: ambilight: /dev/ttyACM0: Input/output error
(CDevice::Process)              ERROR: ambilight: setting up failed, retrying in 10 seconds

i think i had the same problem. if you´re using linux I could send you a small binary which resets the usb port.
you´d have to integrate that in /etc/pm/sleep.d.
(2012-03-18, 06:55)phil65 Wrote: [ -> ]
(2012-03-17, 23:09)lrusak Wrote: [ -> ]boblightd doesn't seem to connect after I wake from sleep. I have to restart or disconnect and reconnect the usb cable.

this is what it is saying in the log file
Code:
(CDeviceRS232::WriteOutput)     ERROR: ambilight: /dev/ttyACM0: Input/output error
(CDevice::Process)              ambilight: closed
(CDevice::Process)              ambilight: setting up

when I disconnect then reconnect the USB cable I get this in the log file, then it works fine
Code:
(CDeviceRS232::SetupDevice)     ERROR: ambilight: /dev/ttyACM0: Input/output error
(CDevice::Process)              ERROR: ambilight: setting up failed, retrying in 10 seconds

i think i had the same problem. if you´re using linux I could send you a small binary which resets the usb port.
you´d have to integrate that in /etc/pm/sleep.d.

I'm using Openelec, so I can't do that.

Thanks though
(2012-03-18, 07:45)lrusak Wrote: [ -> ]
(2012-03-18, 06:55)phil65 Wrote: [ -> ]
(2012-03-17, 23:09)lrusak Wrote: [ -> ]boblightd doesn't seem to connect after I wake from sleep. I have to restart or disconnect and reconnect the usb cable.

this is what it is saying in the log file
Code:
(CDeviceRS232::WriteOutput)     ERROR: ambilight: /dev/ttyACM0: Input/output error
(CDevice::Process)              ambilight: closed
(CDevice::Process)              ambilight: setting up

when I disconnect then reconnect the USB cable I get this in the log file, then it works fine
Code:
(CDeviceRS232::SetupDevice)     ERROR: ambilight: /dev/ttyACM0: Input/output error
(CDevice::Process)              ERROR: ambilight: setting up failed, retrying in 10 seconds

i think i had the same problem. if you´re using linux I could send you a small binary which resets the usb port.
you´d have to integrate that in /etc/pm/sleep.d.

I'm using Openelec, so I can't do that.

Thanks though

i think you can, even when using openelec. some openelec addons have a sleep.d folder in their root, the boblightd addon seems to get it too I think ( https://github.com/OpenELEC/OpenELEC.tv/...6d3c9f77cf )
I´m still waitin for a new PVR build, if you don ´t use PVR an OpenELEC version with this change should be available from the official daily builds.
and if that does not work you can still build your own OpenELEC image.