Hyperion + Kodi intermittent black screen flashes - too much for a RPi to handle?

  • So I have been trying to make the following setup work:


    - RPi 3 + Arduino Uno
    - 189 WS2812B LED
    - 5V 20A PSU
    - no external grabber, I want it working just with Kodi
    - the RPi is powered through the GPIO pins from the LED PSU. One external HDD is connected to the Pi.


    With hyperion stopped movie playback is completely normal. When I start hyperion the ambilight works fine but the screen flashes black every second or so - as if the RPi was struggling to play the movie. The screen turns completely black and the ambilight does not get interrupted. Sometimes there are longer periods without flashing but I cannot find out what causes them.


    I tried disabling the black border detection but it didn't help.
    It is actually pretty much impossible to turn it off as commenting out the whole black border section of the config file does nothing and the top LEDs remain on despite the top and bottom black border.


    Further analysis showed that the screen starts flashing only with larger videos (ex. BluRay Playback). If I play a movie with a lower resolution or if I stream youtube videos everything is fine. Could it be that Kodi+BluRay and Hyperion are simply too much for a RPi 3 to handle?


    Any ideas?


    Here is my configuration file (with black border detection):


  • Does dropping the franegrabber resolution help ?


    I wonder if there's IO contention


    No, it didn't, but I must confess that I do not understand the parameters. I tried the following configurations:


    Option 1: horizontal and vertical LED count. Result: A lot of screen flashing

    Code
    "framegrabber" :
        {
            "width" : 65,
            "height" : 38,
            "frequency_Hz" : 10.0,
            "priority" : 890


    Option 2: Default setting 64x64. Result: Intermittent flashing.

    Code
    "framegrabber" :
        {
            "width" : 64,
            "height" : 64,
            "frequency_Hz" : 10.0,
            "priority" : 890


    Option 3: Reducing the resolution in half. Result: It works only for the bottom right corner

    Code
    "framegrabber" :
        {
            "width" : 32,
            "height" : 32,
            "frequency_Hz" : 10.0,
            "priority" : 890



    What is height and width? Pixels? LEDs? Percent? I couldn't find much info on the wiki page.


    No matter what media I am playing, the hyperiond process takes no more than 2,5% CPU usage. Kodi needs about 45% for a 720p video (ex. shot with the a phone camera) and 70% for a BluRay. So I guess the bottleneck is not CPU power.. What could it be?

  • How would this help?


    After some further investigation now I am sure that the black screen flashing only occurs when playing large 1080p video files or BluRay videos.


    Do you think it would help to add a hdmi splitter and frame grabber and use the raspberry for hyperion only? In this case I would play the videos either on a second raspberry or old laptop or bluray player...

  • Regarding width/height. This is the pixel resolution the screen is scaled down. Then color analysis is done on the tiny picture. The values should not be lower then you have leds. E.g. when you have 96 leds horizontal and 55 vertical, w/h shouldn't be smaller then 96x55. Another thing is that the ratio should fit to your original resolution to get best results

  • Ok, so I tried the above solution: https://hyperion-project.org/wiki/3-Wire-PWM


    The new setup without arduino and with no level shifter worked but there was no improvement regarding the black screen flashes. However, I tried doubling the frame grabber resolution:


    Code
    "framegrabber" :
        {
            "width" : 130, //instead of 65
            "height" : 76, //instead of 38
            "frequency_Hz" : 10.0,
            "priority" : 890
        },


    And it seems to work. I have not experienced any screen flashes ever since I did this. I am not marking the thread as solved just yet because this is a first impression, I have to analyze some more.


    In the meantime it would like to ask why doubling the screen resolution results in no flashes.. maybe it is easier for the Pi to define the LED colors from a bigger frame?

  • Hey guys found this thread after investigating this very issue on Raspberry Pi 3 running libreelec 8.0.2. I have doubled the framegrabber's resolution but the problem persists. Any ideas?


    Thanks in advance.

  • sorry @FilthX , cannot provide a solution here. I had the same issue and I can confirm that doubling the framegrabber resolution solved the issue for me, too. I am running librelec (newest stable release) with over 400 leds on a Raspberry Pi 3.

  • Thanks for your reply @cloud2 . Mine has not more than 100 and I can't make it work for 1080p videos. I have tried playing from my usb hdd and I had no problems. When I try and stream something that is 1080p problems start. Since this is a thread marked as solved, should I open a new one?


    Thanks in advance guys

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!