Hyperion boots correctly, but can't restart the service

Hi guys - I’m running OSMC march on a RPi3, with a USB Lightberry kit + Hyperion to control the LEDs.

The hyperion service boots correctly, and the lights work perfectly - I can stop the service (either through the command line or using Hypercon on my PC.)

However, re-starting the service doesn’t work at all (either through the command line or Hypercon). I want to write a script and map it to a remote control key so I can switch the lights on/off, but that’s a future step.

I’m using the same commands that Hypercon sends through SSH, i.e:

sudo systemctl start hyperion.service && sudo /sbin/initctl start hyperion

I’ve (re)installed Hyperion using the official script through Hypercon, and I’m using the settings provided by the manufacturer - could the issue be how the service is running under OSMC after booting? What could be different from running the service at the boot or restarting?

It seems that the service freezes at the following step, every time:

  • hyperion.service - Hyperion Systemd service
    Loaded: loaded (/etc/systemd/system/hyperion.service; enabled; vendor preset: enabled)
    Active: active (running) since Tue 2018-03-20 19:26:18 CET; 4s ago
    Main PID: 6246 (hyperiond)
    CGroup: /system.slice/hyperion.service
    `-6246 /usr/bin/hyperiond /etc/hyperion/hyperion.config.json
    Mar 20 17:37:39 osmc2 hyperiond[2028]: INFO: Boot sequence ‘Rainbow swirl fast’ EFFECTENGINE INFO: run effect Rain
    Mar 20 17:37:39 osmc2 hyperiond[2028]: BLACKBORDER INFO: threshold set to 0 (0)
    Mar 20 17:37:39 osmc2 hyperiond[2028]: BLACKBORDER INFO: mode:default
    Mar 20 17:37:39 osmc2 hyperiond[2028]: started
    Mar 20 17:37:39 osmc2 hyperiond[2028]: INFO: Json server created and started on port 19444
    Mar 20 17:37:39 osmc2 hyperiond[2028]: INFO: Proto server created and started on port 19445
    Mar 20 17:37:39 osmc2 hyperiond[2028]: DISPMANXGRABBER INFO: Display opened with resolution: 1920x1080
    Mar 20 17:37:39 osmc2 hyperiond[2028]: BLACKBORDER INFO: threshold set to 0 (0)
    Mar 20 17:37:39 osmc2 hyperiond[2028]: BLACKBORDER INFO: mode:default
    Mar 20 17:37:39 osmc2 hyperiond[2028]: _INFO: Frame grabber created and started

Here’s my hyperion.config.json.

Any users out there with similar troubles / ideas on how to fix this?

Many thanks!

Not a fix, rather a redneck-engineering-ish workaround. I’m using Hyperion with a home-made LED apparatus according to this tutorial on a RPi 3 B.
Hyperion is running all the time, but to stop the LEDs from flashing all the time as well, I simply used a cheap remote power socket connected to the LEDs’ PSU. The remote only has a button for on, and one for off – simple yet effective. I’m aware this is fixing symptoms, not causes (which is always better) in your case, but if you want a simple solution, try it.

Thanks for the tip!
If all else fails I might resort to a physical solution, but as you said, I’d rather fix (and understand!) the cause, and have less moving parts on my setup.

Your hyperion.config.json looks fine if you have the ADA102 lights (and just 20 lights?)

What happens if you just start it with sudo systemctl start hyperion

Yep, ADA102, but more than 20 LEDs (I kept the tape rolled so far to get the software up and running before un-mouting the TV and messing with the hardware). So I picked a random low number of LEDs to try it out, could that be the cause? It shouldn’t work correctly on boot if that was the case, no?

I just rebooted, (everything works fine, I get the rainbow swirl, then proper lights depending on image), stopped the service through hypercon, and ran the command you suggested.
The lights don’t turn back on, and running sudo systemctl status hyperion just returns the same as my original post, looks like hyperion crashes at the step " _INFO: Frame grabber created and started".

Not sure what it could be. You can try my config // Automatically generated configuration file for Hyperion ambilight daemon// - Pastebin.com The part with xbmcVideoChecker is different but should not make or break things.

Many thanks - looks like you’re using an external grabber, though (I’m just using it with the video source coming from the pi itself). Tried it anyway and it didn’t even start at boot, so back to square one.

  • hyperion.service - Hyperion Systemd service
    Loaded: loaded (/etc/systemd/system/hyperion.service; enabled; vendor preset: enabled)
    Active: failed (Result: signal) since Wed 2018-03-21 23:40:22 CET; 40s ago
    Process: 488 ExecStart=/usr/bin/hyperiond /etc/hyperion/hyperion.config.json (code=killed, signal=ABRT)
    Main PID: 488 (code=killed, signal=ABRT)

I think I got it… Had a look at your config file and the only other difference I could find was this:

// BLACKBORDER CONFIG
“blackborderdetector” :
{
“enable” : true,
"threshold" : 0.05,

Mine was set to 0… So maybe it was crashing on account of the detector being enabled, but no threshold set? Doesn’t explain how it worked on boot, though…

For what it’s worth, if you ever want a less redneckish solution, I followed this tutorial and just mapped a key on my TV remote to execute the script (the one further down the comments, osmc-compatible).

1 Like

You got a problem with my red neck? o.O

2 Likes