Posts by Blokmeister

    I experience a bug where video artifacts show up when I activate the grabber. I use an Odroid N2 and CoreELEC 19.5 and hyperion.ng build coreelec-19, see code snippet for copy-paste of system info. I realise this might also be an issue with CoreELEC, but since I have pointed it to the grabber, it seems fair to post it here too.

    A short history of the problem. I have been using Hyperion.ng (and og Hyperion) for a long time, my latest setup being on an Odroid N2. I had this working completely fine using multiple LED-strips and devices until mid June. After this I moved to a different house and hadn't bothered to install ambilight until yesterday. Before yesterday I have been auto-updating CoreELEC and have been using the device for media consumption just fine, only without ambilight.

    Yesterday I started watching some 1080p content with ambilight on and it worked just fine until about 10 minutes in, when green decoding artifacts started showing up and wouldn't disappear. I tried enabling/disabling hardware acceleration but this didn't change anything. The artifacts were only present in the media, not in subtitles or the Kodi menus. Starting/stopping playback didn't help and once the artifacts appeared, they would show up immediately after restarting playback. A restart of the machine did not help. Playing from a different media source (smb instead of plexkodiconnect) or a different media type (e.g. 4K) show exactly the same artifacts.

    However, when I disable the Amlogic grabber in the Hyperion webUI, the artifacts disappear after a few seconds. Moreover, when I re-enable the grabber, they come back almost immediately and also appear in the webUI live video feed, see attached screenshot. I tried using a lower screen grab frequency and different decimation, but this would not cause a noticable change in the artifacts.

    As I'm writing this, I am watching another 1080p video and am about 10 minutes in, but the artifacts have not appeared yet. Switching to 4K content immediately shows the artifacts again. Nothing has changed since yesterday. Switching to a smaller decimation does not make the artifacts appear. Below is also a screenshot of the details of the 4K file.

    Can someone help me with this? Please let me know if you need additional information! Thanks in advance! :)

    Edit: I have been playing 1080p h264 content for over an hour and no artifacts. When I switch to 4K HEVC content, the artifacts are back within a second. I retried disabling hardware acceleration completely and the artifacts are gone, but video playback is super choppy and unwatchable. I think the problem lies somewhere in the combination of the Amlogic hardware decoder and the grabber. Probably something has changed in the past three months that cause this issue. In the meantime I might try to roll back to a previous version of CoreELEC and try to recreate the problem.

    Okay, I did a manual update by just downloading the artifact and copying that over my hyperion service. Now it starts properly. Moreover, no more errors in the logs. When I move tabs, the LED device stays enabled. However, my AtmoOrbs still don't light up.

    What could I be doing wrong?

    See logs below:

    I installed the latest PR using the procedure described earlier. However, it gives me an error when starting:

    I'm still troubleshooting a bit on my own to see if I have messed up myself or not.

    The device does not work after a restart of hyperion, but does not show the error. I was mostly highlighting the error after I disable/enable the device.

    Below is the output of journalctl -fu hyperion.service while I do a systemctl restart hyperion.service and then start a rainbow swirl fast through the web ui.

    No activity on the AtmoOrbs.

    I then go to the web ui and disable/enable the AtmoOrb device (showing overlapping logs to ensure I didn't miss anything):

    Code
    Sep 01 08:48:26 LibreELEC hyperiond[24534]: 2020-09-01T08:48:26.797 hyperiond HYPERION     : <DEBUG> PriorityMuxer.cpp:238:setInputImage() | Priority 1 is now active
    Sep 01 08:48:26 LibreELEC hyperiond[24534]: 2020-09-01T08:48:26.798 hyperiond HYPERION     : <DEBUG> PriorityMuxer.cpp:333:setCurrentTime() | Set visible priority to 1
    Sep 01 08:52:33 LibreELEC hyperiond[24534]: 2020-09-01T08:52:33.174 hyperiond COMPONENTREG : <DEBUG> ComponentRegister.cpp:36:setNewComponentState() | LED device: disabled
    Sep 01 08:52:35 LibreELEC hyperiond[24534]: QNativeSocketEngine::bind() was not called in QAbstractSocket::UnconnectedState
    Sep 01 08:52:35 LibreELEC hyperiond[24534]: 2020-09-01T08:52:35.098 hyperiond LEDDEVICE    : <ERROR> Device disabled, device 'atmoorb' signals error: '(-1) Unknown error, MulticastGroup: (239.15.18.2)'
    Sep 01 08:52:35 LibreELEC [24534]: Device disabled, device 'atmoorb' signals error: '(-1) Unknown error, MulticastGroup: (239.15.18.2)'

    One thing I am wondering is how do I tell hyperion which orb ID is left, and which is right? Or more specifically: how do I match the orb IDs to the LED IDs? I have two LEDs in the LED config and two orb IDs in the device config. Note: I have also tried it with one LED and one orb ID, but that didn't work either.

    Same issue.

    I disabled then enabled the device. After switching pages, the device was disabled.

    Code
    Aug 31 13:17:40 LibreELEC hyperiond[32436]: 2020-08-31T13:17:40.822 hyperiond COMPONENTREG : <DEBUG> ComponentRegister.cpp:36:setNewComponentState() | LED device: disabled
    Aug 31 13:17:41 LibreELEC hyperiond[32436]: QNativeSocketEngine::bind() was not called in QAbstractSocket::UnconnectedState
    Aug 31 13:17:41 LibreELEC hyperiond[32436]: 2020-08-31T13:17:41.348 hyperiond LEDDEVICE    : <ERROR> Device disabled, device 'atmoorb' signals error: '(-1) Unknown error, MulticastGroup: (239.15.18.2)'
    Aug 31 13:17:41 LibreELEC [32436]: Device disabled, device 'atmoorb' signals error: '(-1) Unknown error, MulticastGroup: (239.15.18.2)'
    Aug 31 13:17:44 LibreELEC hyperiond[32436]: QNativeSocketEngine::bind() was not called in QAbstractSocket::UnconnectedState

    Great! I'll give that a try.

    Code
    LibreELEC:~/downloads # wget -qO- https://git.io/JJr6Y | bash -s 961
    *******************************************************************************
    This script will download a specific Pull Request Artifact from Hyperion.NG on LibreELEC
    Created by Paulchen-Panther - hyperion-project.org - the official Hyperion source.
    *******************************************************************************
    ---> The specified PR #961 has no longer any artifacts.
    ---> It may be older than 14 days. Ask the PR creator to recreate the artifacts at the following URL:
    ---> https://github.com/hyperion-project/hyperion.ng/pull/961

    Could I also just manually download the artifact I needed, untar it and copy it over my install files? Which one would I need for the RPI2?

    Edit:
    Okay, I downloaded the artifact on my Raspberry Pi 2 and copied it over the old service. Didn't fix the issue:

    Code
    Aug 30 09:56:25 LibreELEC hyperiond[31074]: 2020-08-30T09:56:25.838 hyperiond LEDDEVICE    : <INFO> Start LedDevice 'atmoorb'.
    Aug 30 09:56:25 LibreELEC hyperiond[31074]: 2020-08-30T09:56:25.839 hyperiond LEDDEVICE    : <DEBUG> LedDevice.cpp:133:init() | deviceConfig: [{"colorOrder":"rgb","currentLedCount":2,"hardwareLedCount":2,"latchTime":1,"numLeds":24,"orbIds":"1,2","output":"239.15.18.2","port":49692,"type":"atmoorb","useOrbSmoothing":
    Aug 30 09:56:25 LibreELEC hyperiond[31074]: 2020-08-30T09:56:25.850 hyperiond COMPONENTREG : <DEBUG> ComponentRegister.cpp:36:setNewComponentState() | LED device: enabled
    Aug 30 09:56:37 LibreELEC hyperiond[31074]: 2020-08-30T09:56:37.037 hyperiond COMPONENTREG : <DEBUG> ComponentRegister.cpp:36:setNewComponentState() | LED device: disabled
    Aug 30 09:56:38 LibreELEC hyperiond[31074]: QNativeSocketEngine::bind() was not called in QAbstractSocket::UnconnectedState
    Aug 30 09:56:38 LibreELEC hyperiond[31074]: 2020-08-30T09:56:38.509 hyperiond LEDDEVICE    : <ERROR> Device disabled, device 'atmoorb' signals error: '(-1) Unknown error, MulticastGroup: (239.15.18.2)'
    Aug 30 09:56:38 LibreELEC [31074]: Device disabled, device 'atmoorb' signals error: '(-1) Unknown error, MulticastGroup: (239.15.18.2)'

    This morning I installed Hyperion.ng on my Intel NUC and ran into exactly the same problem. So likely it's an issue with my configuration or with Hyperion. Below is a log of what I did. Maybe it's a good idea to rule out user error, because I still have the nagging feeling that I'm doing something wrong.

    The code flashed to my Particle Photon AtmoOrb is located here: https://pastebin.ubuntu.com/p/pRRSSX8JdT/.
    My current configuration in hyperion is this:

    LED layout:

    Resulting in the following configuration:

    I have also tried using one orb. I did this by setting Hardware LED count to 1 and Orb ID(s) to 1 or 2 only, and in LED Layout set Left or Right to 0, so I have only 1 LED. This also didn't work.


    Reproduce the error on my Intel NUC running Ubuntu 18
    Download and untar hyperion:

    Code
    root@BlokmeisterNUC:/home/blokmeister/Downloads# wget https://github.com/hyperion-project/hyperion.ng/releases/download/2.0.0-alpha.7/Hyperion-                                                           2.0.0-alpha.7-Linux-x86_64.tar.gz
    root@BlokmeisterNUC:/home/blokmeister/Downloads# mkdir Hyperion
    root@BlokmeisterNUC:/home/blokmeister/Downloads# mv Hyperion-2.0.0-alpha.7-Linux-x86_64.tar.gz Hyperion/
    root@BlokmeisterNUC:/home/blokmeister/Downloads/Hyperion# tar -zxvf Hyperion-2.0.0-alpha.7-Linux-x86_64.tar.gz
    root@BlokmeisterNUC:/home/blokmeister/Downloads/Hyperion# cd bin

    I then ran hyperiond and configured my AtmoOrb device. This resulted in a crash (which I think is unrelated):

    Restarted hyperiond and configured my AtmoOrb device. I went to the Remote Control section and saw that the device was enabled. I disabled the device and re-enabled it, moved to another section (I think Capturing Hardware) and moved back, and saw that the device was disabled again. In the logs I found the same error as on CoreELEC:

    • Alpha.7 (see complete description below)
    • I have tried it on LibreELEC but gives the same error. I could give it a try and install Hyperion on Ubuntu if that is useful. Let me know.
    • Not familiar enough to do that on the fly, but willing to give a try if pointed to a right guide
    • I did not mark the topic as solved. I hooked in on the topic created by RKF since it seemed very similar and thought he might have a solution. His issue was solved. I did not mean to hijack this thread and am willing to start a new thread or github issue if preferred.


    @Lord-Grey I'd like to mention I'm very grateful that you're willing to help me out with this!

    System info:

    Error on LibreELEC on a raspberry pi 2B:

    Code
    Aug 27 21:40:27 LibreELEC hyperiond[21267]: QNativeSocketEngine::bind() was not called in QAbstractSocket::UnconnectedState
    Aug 27 21:40:27 LibreELEC hyperiond[21267]: 2020-08-27T21:40:27.463 hyperiond LEDDEVICE    : <ERROR> Device disabled, device 'atmoorb' signals error: '(-1) Unknown error, MulticastGroup: (239.15.18.2)'
    Aug 27 21:40:27 LibreELEC [21267]: Device disabled, device 'atmoorb' signals error: '(-1) Unknown error, MulticastGroup: (239.15.18.2)'


    System info of LibreELEC:

    @Blokmeister Let me have a look at the issue. According to the log the device ran into an error and was disabled.

    That's great! Thanks a bunch! :)

    Perhaps this error originated from stopping and starting the LED device. This is my log from a hyperion.ng restart command:

    I then reconfigured my LED device and saw it was turned off in the remote control section. This is the log until then:

    I then turned on the LED device through the web UI:

    Code
    Aug 27 18:54:06 CoreELEC sh[3474]: [hyperiond LedDeviceWrapper] <INFO> LedDevice 'atmoorb' closed
    Aug 27 18:54:06 CoreELEC sh[3474]: 2020-08-27T18:54:06.644 hyperiond LEDDEVICE    : <INFO> Start LedDevice 'atmoorb'.
    Aug 27 18:54:06 CoreELEC sh[3474]: 2020-08-27T18:54:06.644 hyperiond LEDDEVICE    : <DEBUG> LedDevice.cpp:133:init() | deviceConfig: [{"colorOrder":"rgb","currentLedCount":2,"hardwareLedCount":2,"latchTime":1,"numLeds":24,"orbIds":"1,2","output":"239.15.18.2","port":49692,"type":"atmoorb","useOrbSmoothing":true}]
    Aug 27 18:54:06 CoreELEC sh[3474]: 2020-08-27T18:54:06.647 hyperiond COMPONENTREG : <DEBUG> ComponentRegister.cpp:36:setNewComponentState() | LED device: disabled
    Aug 27 18:54:06 CoreELEC sh[3474]: 2020-08-27T18:54:06.648 hyperiond COMPONENTREG : <DEBUG> ComponentRegister.cpp:36:setNewComponentState() | LED device: enabled
    Aug 27 18:54:06 CoreELEC sh[3474]: 2020-08-27T18:54:06.652 hyperiond COMPONENTREG : <DEBUG> ComponentRegister.cpp:36:setNewComponentState() | LED device: disabled
    Aug 27 18:56:20 CoreELEC sh[3474]: QNativeSocketEngine::bind() was not called in QAbstractSocket::UnconnectedState
    Aug 27 18:56:20 CoreELEC sh[3474]: 2020-08-27T18:56:20.128 hyperiond LEDDEVICE    : <ERROR> Device disabled, device 'atmoorb' signals error: '(-1) Unknown error, MulticastGroup: (239.15.18.2)'
    Aug 27 18:56:20 CoreELEC hyperiond[3495]: [116B blob data]

    When I switched to a different page on the web UI and switched back to the remote control section, and saw it was off again. So likely there is an error that turns off the device.

    Please ask me stupid questions to make sure I have setup the component correctly.

    Things I have checked:

    • UDP multicast IP is set correctly
    • Port is set correctly
    • Multicast forwarding is turn on on my switch
    • Connect Odroid C2 (which runs hyperion.ng) directly to my router, doesn't work

    Thanks for the response.

    My issue is not that I'm running multiple devices. I just used that to prove that the grabber works, and that hyperion can correctly forward the data from one instance to the other. The AtmoOrb is also setup correctly, as I can control it using the android app. Therefore the issue must be that hyperion cannot send the data to the AtmoOrb correctly.

    I tried to look in to the ESPixelstick like you suggested, however, I could not find any code that I could write to my Particle Photon. I think that type of device is simply not supported.

    I have tried many different settings trying to get the device to work. I tried using only one orb, or the other. I tried different numbers of lights, but all to no avail.

    Could you maybe share the configuration that you used when the AtmoOrb was working at your end?

    Hey @RKF! Thanks so much for the fast response!

    As a bit of context: I have an Odroid C2 board connected to my TV that I use as my media player with the internal grabber. However, I have an RPI2 hooked up to my APA102 strip around my TV that also runs hyperion.ng, and my Odroid forwards to the RPI instance. On the Odroid I had no LED device configured. Now I changed that to the AtmoOrb device, which I also had in the past.

    Do you have a guide on how to do your suggestion? I have two Particle Photons with an Adafruit LED ring and use this code as a particle app: https://github.com/ambilight-4-me…AtmoOrb_UDP.ino. Do I use a different app for that, or just change my hyperion config?

    Edit: I checked the logs and found the entries below. Maybe there is something wrong with the atmoorb device in hyperion.ng?

    Code
    Aug 23 10:13:07 CoreELEC sh[30730]: [hyperiond LedDeviceWrapper] <INFO> LedDevice 'atmoorb' closed
    Aug 23 10:13:11 CoreELEC sh[30730]: QNativeSocketEngine::bind() was not called in QAbstractSocket::UnconnectedState
    Aug 23 10:13:11 CoreELEC sh[30730]: 2020-08-23T10:13:11.954 hyperiond LEDDEVICE    : <ERROR> Device disabled, device 'atmoorb' signals error: '(-1) Unknown error, MulticastGroup:
    Aug 23 10:13:11 CoreELEC hyperiond[30748]: Device disabled, device 'atmoorb' signals error: '(-1) Unknown error, MulticastGroup: (239.15.18.2)'

    Hey RKF! How did you get your AtmoOrbs setup? I have used them in the past, but for some reason when I tried to set them up today with alpha 7, they don't respond. They do respond to the AtmoOrb Android app and the windows executable with the same IP and port settings. Probably I have done something stupid with the configuration.

    The grabber works, as the primary LED strip around my TV does light up through the forwarder.

    Config down below:

    How do you capture the image? I am running Kodi on an Odroid C2 (RPI alternative), and Hyperion.ng also runs on the Odroid. I therefore do not have any external electronics to actually capture the image. You see some people that have an external solution. They connect their HDMI signal using an HDMI splitter/HDMI2AV converter. Do you have your HDMI cable going into an external box OTHER than your TV, and connect that box to the raspberry pi?

    I use a different grabber on a different system, and I remember from the old days that there have always been issues with hyperion and 4k. I haven't tested that on my old system. Maybe it can help to switch grabbers?