Hyperion.NG, Amlogic improvements

I will try to explain - but english is not my mother tongueā€¦

Well I do own a Mecool M8Spro+ box with Coreelec 9.2.2 stable.
I have installed Hyperion.ng as an addon. It is working fine with my ambilight.
My Led stripe has its own microcontroller with WLED and gets its data via udpraw.
As already said : everything is running fine.

Hyperion.ng has as standard its protocol buffer Server on port 19445.

I use android devices with my TV, too. On android is an app called Hyperion Android Grabber

see:

This application will run a background service to capture the content of your screen and send it to a local instance of hyperion to control ambilight-like lights.

Coreelec changed the Version of hyperion.ng some days ago.
In the new Version the Protobuf Server on Port 19445 does does not work anymore.
Its working only locally with Version 9.2.103.

I went back to hyperion.ng 9.2.101 : working fine again with the android app.

The same Problem in the living room :
Hyperion.ng running on a Mecool KI pro
Hyperion Android grabber running on a Shield TV
Version 9.2.101 running fine
Version9.2.103 not working with data grabbed on the shield

I guess itā€™s the Android App:

[hyperiond PROTOSERVER] (ERROR) The priority 50 is not in the proto-connection range between 100 and 199.

But I have adjusted the priority to 150 in the Android app!?

edit:
Itā€™s working! Adjust the priority between 100-199 and stop recording on the App. Start it again and itā€™s working.

I will test it tomorrow and report
thank you for your support.
It was hard work for me to get the ambilight thing done ( self made ).

tried this time with my new Magenta TV Stick (S905y2/2G)
and installed Coreelec NG stable

Had again to step back to Hyperion.ng 9.2.101 because Version ā€¦103 did not work with TVheadend live TV client and not with Disney plus addon , too (using internal grabber)

u know that u have to setup a new hyperion.ng configuration?
without any debug log what should I tell you?

Maybe best to consult the magic lamp :face_with_hand_over_mouth:.

Hey guys, I am having troubles with my hyperion setup and the current coreelec 9.22 release. I have tried to reinstall the hyperion NG addon several times but my LED strips donā€™t do anything.

I can see that the addon is set up correctly as I get a ā€œlive videoā€ stream in the web interface. When I switch back to coreelec 9.21 everything works as expected. Is there anything that might need additional activation?

I am running corelec on a odroid C2 with APA102 LED stripes. I can provide a debug log if needed.

You need to setup a new LED hardware configuration by Hyperion web interface.

Hi, thank you for the quick reply. That was the first thing I did when nothing worked. So I did not load a precious configuration. Instead I created a completely new config. But this did not solve the problem.

Are your leds even working at all? Do you see the rainbow ā€œanimationā€ when you boot your box?

They are not doing anything with Coreelec 9.22. With the previous version everything works normally and i can see the rainbow animation and the ambilight during movies.

What you like to hear? What should I tell you how to solve the issue? When no log or config is provided I can tell you everything. Maybe when you start/stop your car it solve the Hyperion.NG issue!?

Seriously, no debug info, no help.

Hey guys, Sorry for not providing any Debug Information. I couldnĀ“t grab it this morning. Here is some more information and it seems like this could be the error :

[hyperiond LEDDEVICE] SPI failed to write. errno: 14, Bad address

CoreELEC:~ # hyperiond --userdata /storage/.kodi/userdata/addon_data/service.hyp
erion.ng -d
[hyperiond MAIN] <INFO> Set user data path to '/storage/.kodi/userdata/addon_dat                                                                                                                                                             a/service.hyperion.ng'
[hyperiond DAEMON] <DEBUG> <PythonInit.cpp:20:PythonInit()> Initializing Python                                                                                                                                                              interpreter
[hyperiond SettingsManager] <DEBUG> <SettingsManager.cpp:101:SettingsManager()>                                                                                                                                                              Settings database initialized
[hyperiond EFFECTFILES] <INFO> 37 effects loaded from directory :/effects/
[hyperiond EFFECTFILES] <INFO> 20 effect schemas loaded from directory :/effects                                                                                                                                                             /schema/
[hyperiond EFFECTFILES] <INFO> 0 effects loaded from directory /storage/.kodi/us                                                                                                                                                             erdata/addon_data/service.hyperion.ng/custom-effects
[hyperiond SettingsManager] <DEBUG> <SettingsManager.cpp:101:SettingsManager()>                                                                                                                                                              Settings database initialized
[hyperiond BLACKBORDER] <DEBUG> <BlackBorderProcessor.cpp:65:handleSettingsUpdat                                                                                                                                                             e()> Set mode to: default
[hyperiond ComponentRegister] <DEBUG> <ComponentRegister.cpp:67:componentStateCh                                                                                                                                                             anged()> Blackborder detector: enabled
[hyperiond ComponentRegister] <DEBUG> <ComponentRegister.cpp:67:componentStateCh                                                                                                                                                             anged()> LED device: enabled
[hyperiond LEDDEVICE] <INFO> LedDevice 'apa102' configured.
[hyperiond LEDDEVICE] <DEBUG> <ProviderSpi.cpp:48:open()> _baudRate_Hz 1000000,                                                                                                                                                               _latchTime_ns 1
[hyperiond ComponentRegister] <DEBUG> <ComponentRegister.cpp:67:componentStateCh                                                                                                                                                             anged()> Smoothing: enabled
[hyperiond LEDDEVICE] <DEBUG> <ProviderSpi.cpp:49:open()> _spiDataInvert 0,  _sp                                                                                                                                                             iMode 0
[hyperiond FLATBUFCONNECTION] <INFO> Connecting to Hyperion: 127.0.0.1:19401
[hyperiond EFFECTENGINE] <INFO> run effect Rainbow swirl fast on channel 0
[hyperiond HYPERION] <DEBUG> <PriorityMuxer.cpp:153:registerInput()> Register ne                                                                                                                                                             w input 'System/EFFECT' with priority 0 as inactive
[hyperiond HYPERION] <INFO> Initial foreground effect 'Rainbow swirl fast' start                                                                                                                                                             ed
[hyperiond EFFECTENGINE] <INFO> run effect Warm mood blobs on channel 254
[hyperiond HYPERION] <DEBUG> <PriorityMuxer.cpp:153:registerInput()> Register ne                                                                                                                                                             w input 'System/EFFECT' with priority 254 as inactive
[hyperiond HYPERION] <INFO> Inital background effect 'Warm mood blobs' started
[hyperiond HYPERION] <DEBUG> <PriorityMuxer.cpp:153:registerInput()> Register ne                                                                                                                                                             w input 'System/GRABBER' with priority 250 as inactive
[hyperiond ComponentRegister] <DEBUG> <ComponentRegister.cpp:67:componentStateCh                                                                                                                                                             anged()> Framegrabber: enabled
[hyperiond BOBLIGHT] <DEBUG> <BoblightServer.cpp:28:BoblightServer()> Instance c                                                                                                                                                             reated
[hyperiond SettingsManager] <DEBUG> <SettingsManager.cpp:101:SettingsManager()>                                                                                                                                                              Settings database initialized
[hyperiond BLACKBORDER] <DEBUG> <BlackBorderProcessor.cpp:65:handleSettingsUpdat                                                                                                                                                             e()> Set mode to: default
[hyperiond ComponentRegister] <DEBUG> <ComponentRegister.cpp:67:componentStateCh                                                                                                                                                             anged()> Blackborder detector: enabled
[hyperiond LEDDEVICE] <ERROR> SPI failed to write. errno: 14, Bad address
[hyperiond DAEMON] <INFO> set screen capture device to 'amlogic'
[hyperiond AMLOGICGRABBER] <DEBUG> <Grabber.cpp:33:setVideoMode()> Set videomode                                                                                                                                                              to 0
[hyperiond FRAMEBUFFERGRABBER] <DEBUG> <Grabber.cpp:33:setVideoMode()> Set video                                                                                                                                                             mode to 0
[hyperiond FRAMEBUFFERGRABBER] <INFO> Display opened with resolution: 1920x1080@                                                                                                                                                             32bit
[hyperiond AMLOGICGRABBER] <DEBUG> <AmlogicGrabber.cpp:31:AmlogicGrabber()> cons                                                                                                                                                             tructed(160 x 160), grabber device: /dev/amvideocap0
[hyperiond DAEMON] <INFO> AMLOGIC grabber created
[hyperiond V4L2:auto] <DEBUG> <Grabber.cpp:33:setVideoMode()> Set videomode to 0
[hyperiond V4L2:auto] <INFO> Signal threshold set to: {12, 12, 12}
[hyperiond V4L2:auto] <INFO> Signal detection is now disabled
[hyperiond V4L2:auto] <INFO> Signal detection area set to: 0.250000,0.250000 x 0                                                                                                                                                             .750000,0.750000
[hyperiond DAEMON] <DEBUG> <hyperiond.cpp:440:handleSettingsUpdate()> V4L2 grabb                                                                                                                                                             er created
[hyperiond JSONSERVER] <DEBUG> <JsonServer.cpp:25:JsonServer()> Created instance
[hyperiond JSONSERVER] <INFO> Started on port 19444
[hyperiond ComponentRegister] <DEBUG> <ComponentRegister.cpp:67:componentStateCh                                                                                                                                                             anged()> LED device: enabled
[hyperiond FLATBUFSERVER] <INFO> Started on port 19400
[hyperiond LEDDEVICE] <INFO> LedDevice 'apa102' configured.
[hyperiond PROTOSERVER] <INFO> Started on port 19445
[hyperiond LEDDEVICE] <DEBUG> <ProviderSpi.cpp:48:open()> _baudRate_Hz 1000000,                                                                                                                                                               _latchTime_ns 1
[hyperiond LEDDEVICE] <DEBUG> <ProviderSpi.cpp:49:open()> _spiDataInvert 0,  _sp                                                                                                                                                             iMode 0
[hyperiond LEDDEVICE] <ERROR> SPI failed to write. errno: 14, Bad address
[hyperiond ComponentRegister] <DEBUG> <ComponentRegister.cpp:67:componentStateCh                                                                                                                                                             anged()> Smoothing: enabled
[hyperiond HYPERION] <INFO> Hyperion instance 'First LED Hardware instance' has                                                                                                                                                              been started
[hyperiond AMLOGICGRABBER] <INFO> FB mode
[hyperiond HYPERION] <DEBUG> <PriorityMuxer.cpp:153:registerInput()> Register ne                                                                                                                                                             w input 'System/COLOR' with priority 0 as inactive
[hyperiond HYPERION] <DEBUG> <PriorityMuxer.cpp:193:setInput()> Priority 0 is no                                                                                                                                                             w active
[hyperiond HYPERION] <DEBUG> <PriorityMuxer.cpp:333:setCurrentTime()> Set visibl                                                                                                                                                             e priority to 0
[hyperiond HYPERION] <INFO> Initial foreground color set (0 0 255)
[hyperiond EFFECTENGINE] <INFO> run effect Warm mood blobs on channel 254
[hyperiond HYPERION] <DEBUG> <PriorityMuxer.cpp:153:registerInput()> Register ne                                                                                                                                                             w input 'System/EFFECT' with priority 254 as inactive
[hyperiond HYPERION] <INFO> Inital background effect 'Warm mood blobs' started
[hyperiond HYPERION] <DEBUG> <PriorityMuxer.cpp:153:registerInput()> Register ne                                                                                                                                                             w input 'System/GRABBER' with priority 250 as inactive
[hyperiond ComponentRegister] <DEBUG> <ComponentRegister.cpp:67:componentStateCh                                                                                                                                                             anged()> Framegrabber: enabled
[hyperiond BOBLIGHT] <DEBUG> <BoblightServer.cpp:28:BoblightServer()> Instance c                                                                                                                                                             reated
[hyperiond WEBSERVER] <DEBUG> <WebServer.cpp:105:handleSettingsUpdate()> Set doc                                                                                                                                                             ument root to: :/webconfig[hyperiond WEBSERVER] <DEBUG> <WebServer.cpp:105:handl                                                                                                                                                             eSettingsUpdate()> Set document root to: :/webconfig

[hyperiond WEBSERVER] <INFO> Started on port 8090 name 'Hyperion Webserver'
[hyperiond LEDDEVICE] <ERROR> SPI failed to write. errno: 14, Bad address
[hyperiond LEDDEVICE] <ERROR> Previous line repeats 1 times
[hyperiond HYPERION] <DEBUG> <PriorityMuxer.cpp:233:setInputImage()> Priority 25                                                                                                                                                             0 is now active
[hyperiond HYPERION] <DEBUG> <PriorityMuxer.cpp:333:setCurrentTime()> Set visibl                                                                                                                                                             e priority to 0
[hyperiond HYPERION] <INFO> Hyperion instance 'Hyperion Coreelec' has been start                                                                                                                                                             ed
[hyperiond HYPERION] <DEBUG> <PriorityMuxer.cpp:233:setInputImage()> Priority 25                                                                                                                                                             0 is now active
[hyperiond LEDDEVICE] <ERROR> SPI failed to write. errno: 14, Bad address
[hyperiond LEDDEVICE] <ERROR> Previous line repeats 3 times
[hyperiond WEBSERVER] <DEBUG> <WebServer.cpp:171:handleSettingsUpdate()> Setup S                                                                                                                                                             SL certificate
[hyperiond WEBSERVER] <DEBUG> <WebServer.cpp:187:handleSettingsUpdate()> Setup p                                                                                                                                                             rivate SSL key
[hyperiond WEBSERVER] <INFO> Started on port 8092 name 'Hyperion Webserver'
[hyperiond LEDDEVICE] <ERROR> SPI failed to write. errno: 14, Bad address
[hyperiond HYPERION] <DEBUG> <PriorityMuxer.cpp:193:setInput()> Priority 254 is                                                                                                                                                              now active
[hyperiond LEDDEVICE] <ERROR> SPI failed to write. errno: 14, Bad address
[hyperiond HYPERION] <DEBUG> <PriorityMuxer.cpp:233:setInputImage()> Priority 0                                                                                                                                                              is now active
[hyperiond LEDDEVICE] <ERROR> SPI failed to write. errno: 14, Bad address
[hyperiond LEDDEVICE] <ERROR> Previous line repeats 1 times
[hyperiond HYPERION] <DEBUG> <PriorityMuxer.cpp:193:setInput()> Priority 254 is                                                                                                                                                              now active
[hyperiond LEDDEVICE] <ERROR> SPI failed to write. errno: 14, Bad address
[hyperiond LEDDEVICE] <ERROR> Previous line repeats 43 times
[hyperiond WEBSOCKET] <DEBUG> <WebSocketClient.cpp:30:WebSocketClient()> New con                                                                                                                                                             nection from ::ffff:192.168.178.20
[hyperiond WEBSOCKET] <DEBUG> <JsonAPI.cpp:107:handleInstanceSwitch()> Client ':                                                                                                                                                             :ffff:192.168.178.20' switch to Hyperion instance 0
[hyperiond LEDDEVICE] <ERROR> SPI failed to write. errno: 14, Bad address
[hyperiond LEDDEVICE] <ERROR> Previous line repeats 99 times
[hyperiond HYPERION] <DEBUG> <PriorityMuxer.cpp:293:setCurrentTime()> Timeout cl                                                                                                                                                             ear for priority 0
[hyperiond LEDDEVICE] <ERROR> SPI failed to write. errno: 14, Bad address
[hyperiond LEDDEVICE] <ERROR> Previous line repeats 12 times
[hyperiond HYPERION] <DEBUG> <PriorityMuxer.cpp:333:setCurrentTime()> Set visibl                                                                                                                                                             e priority to 250
[hyperiond LEDDEVICE] <ERROR> SPI failed to write. errno: 14, Bad address
[hyperiond LEDDEVICE] <ERROR> Previous line repeats 136 times
[hyperiond HYPERION] <DEBUG> <PriorityMuxer.cpp:293:setCurrentTime()> Timeout clear for priority 0
[hyperiond LEDDEVICE] <ERROR> SPI failed to write. errno: 14, Bad address
[hyperiond LEDDEVICE] <ERROR> Previous line repeats 9 times
[hyperiond HYPERION] <DEBUG> <PriorityMuxer.cpp:333:setCurrentTime()> Set visible priority to 250
[hyperiond HYPERION] <DEBUG> Previous line repeats 1 times
[hyperiond LEDDEVICE] <ERROR> SPI failed to write. errno: 14, Bad address
[hyperiond LEDDEVICE] <ERROR> Previous line repeats 200 times
[hyperiond LEDDEVICE] <ERROR> Previous line repeats 200 times
[hyperiond LEDDEVICE] <ERROR> Previous line repeats 200 times
[hyperiond LEDDEVICE] <ERROR> Previous line repeats 200 times
[hyperiond LEDDEVICE] <ERROR> Previous line repeats 200 times
[hyperiond LEDDEVICE] <ERROR> Previous line repeats 200 times
[hyperiond LEDDEVICE] <ERROR> Previous line repeats 200 times
[hyperiond LEDDEVICE] <ERROR> Previous line repeats 200 times
[hyperiond LEDDEVICE] <ERROR> Previous line repeats 200 times
[hyperiond LEDDEVICE] <ERROR> Previous line repeats 200 times
CoreELEC:~ # hyperiond --userdata /storage/.kodi/userdata/addon_data/service.hyp
erion.ng -d
[hyperiond MAIN] <INFO> Set user data path to '/storage/.kodi/userdata/addon_dat                                                                                                                                                             a/service.hyperion.ng'
[hyperiond DAEMON] <DEBUG> <PythonInit.cpp:20:PythonInit()> Initializing Python                                                                                                                                                              interpreter
[hyperiond SettingsManager] <DEBUG> <SettingsManager.cpp:101:SettingsManager()>                                                                                                                                                              Settings database initialized
[hyperiond EFFECTFILES] <INFO> 37 effects loaded from directory :/effects/
[hyperiond EFFECTFILES] <INFO> 20 effect schemas loaded from directory :/effects                                                                                                                                                             /schema/
[hyperiond EFFECTFILES] <INFO> 0 effects loaded from directory /storage/.kodi/us                                                                                                                                                             erdata/addon_data/service.hyperion.ng/custom-effects
[hyperiond SettingsManager] <DEBUG> <SettingsManager.cpp:101:SettingsManager()>                                                                                                                                                              Settings database initialized
[hyperiond BLACKBORDER] <DEBUG> <BlackBorderProcessor.cpp:65:handleSettingsUpdat                                                                                                                                                             e()> Set mode to: default
[hyperiond ComponentRegister] <DEBUG> <ComponentRegister.cpp:67:componentStateCh                                                                                                                                                             anged()> Blackborder detector: enabled
[hyperiond ComponentRegister] <DEBUG> <ComponentRegister.cpp:67:componentStateCh                                                                                                                                                             anged()> LED device: enabled
[hyperiond LEDDEVICE] <INFO> LedDevice 'apa102' configured.
[hyperiond LEDDEVICE] <DEBUG> <ProviderSpi.cpp:48:open()> _baudRate_Hz 1000000,                                                                                                                                                               _latchTime_ns 1
[hyperiond ComponentRegister] <DEBUG> <ComponentRegister.cpp:67:componentStateCh                                                                                                                                                             anged()> Smoothing: enabled
[hyperiond LEDDEVICE] <DEBUG> <ProviderSpi.cpp:49:open()> _spiDataInvert 0,  _sp                                                                                                                                                             iMode 0
[hyperiond FLATBUFCONNECTION] <INFO> Connecting to Hyperion: 127.0.0.1:19401
[hyperiond EFFECTENGINE] <INFO> run effect Rainbow swirl fast on channel 0
[hyperiond HYPERION] <DEBUG> <PriorityMuxer.cpp:153:registerInput()> Register ne                                                                                                                                                             w input 'System/EFFECT' with priority 0 as inactive
[hyperiond HYPERION] <INFO> Initial foreground effect 'Rainbow swirl fast' start                                                                                                                                                             ed
[hyperiond EFFECTENGINE] <INFO> run effect Warm mood blobs on channel 254
[hyperiond HYPERION] <DEBUG> <PriorityMuxer.cpp:153:registerInput()> Register ne                                                                                                                                                             w input 'System/EFFECT' with priority 254 as inactive
[hyperiond HYPERION] <INFO> Inital background effect 'Warm mood blobs' started
[hyperiond HYPERION] <DEBUG> <PriorityMuxer.cpp:153:registerInput()> Register ne                                                                                                                                                             w input 'System/GRABBER' with priority 250 as inactive
[hyperiond ComponentRegister] <DEBUG> <ComponentRegister.cpp:67:componentStateCh                                                                                                                                                             anged()> Framegrabber: enabled
[hyperiond BOBLIGHT] <DEBUG> <BoblightServer.cpp:28:BoblightServer()> Instance c        [hyperiond LEDDEVICE] <ERROR> Previous line repeats 200 times

You have SPI LEDs directly connected to your device? If not you have a wrong LED configuration.
If it was working with 9.2.1 with SPI itā€™s maybe something missing in new kernel as we do not use Hardkernel kernel anymore. I never used SPI directly on a Hardkernel device and donā€™t know if it is even working.

Hi,
So the APA 102 are directly connected to the SPI on the odroid C2 and as mentioned before. Everything used to work with Coreelec 9.21. So your suggestion that there might be something missing in the kernel seems like a good explanation. Iā€™ll try to reverse my setup to coreelec 9.2.1 and report back with a new log.

@ThomasB you are using a Odroid C2, isnā€™t it?
So the SPI should work as before because on kernel side it wasnā€™t changed on not -ng devices. You still have the ā€œoldā€ 3.14 kernel. Maybe the SPI connection got changed in Hyperion.NG and @Paulchen-Panther have some more idea what happend to this interface:

Hi, that is correct. I am using the odroid C2.
After a lot of further reading I gave in and ordered myself a adruino to connect the APA 102 via the suggested method to the odroid and Hyperion. But of course I would still be interested in why it stopped working directly with the odroid C2 hardware and SPI.

Is the spi on the N2 working for my apa102 leds or do i need an arduino?

If so which pin to connect the wires?

Iā€™m looking at doing one of these setups myself on either an Odroid C2 or a C4. Do I have to purchase an HDMI splitter/ā€œgrabberā€? Iā€™ve seen some posts saying CoreELEC has a built in grabber for amlogic cpus, but I donā€™t have LEDs yet to test.

There is a inbuilt grabber, yes. If you want to show other HDMI data you will need a external USB grabber.
For Kodi use only are the LED, power supply and something like a Arduino needed to convert the Hyperion.ng UART data to SPI data.

I currently replaced my broken ws2801 LEDs by ws2812b LED strip. Working perfectly.

1 Like