Hyperion.NG, Amlogic improvements

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

Thanks for your help. My setup I’m looking at purchasing are these WS2812Bs, with this 5V 18A PSU, a nodemcu esp8266, and an Odroid C4 for my 49" tv.

Is this all I need? What power supply are you using? And do you think 18gauge wire is enough?

I have a 55", 101 ws2812b LEDs. Current max is around 7A for 30led/m. 30led/m is enough, you will not see a difference (my opinion).
What I remember it was 64mA/LED. So max for me is 7.04A…

Awesome glad to hear there isn’t a difference, that was going to be my next question. Do you mind sharing how you wired the Arduino?

Also have a question about power injecting. Do I just solder a 5v and ground from the power supply wherever I need it on the led strip? It won’t up the voltage to 10v, right? Just the amperage?

EDIT: Think I found the wiring you used for the Arduino https://hyperion-project.org/threads/diy-amblight-project-guide-hyperion-ws2801-ws2812b-apa102.8/ but I see it mentions a Raspberry Pi. Should work on an Odroid right?

Is there any reason / benefit to use the Arduino IF converter, compared to direct SPI setup?
I would prefer the more lean SPI setup, but have read also about some issues with SPI above…

Some strips like WS2812B aren’t spi.

Thanks for pointing out, but according to the wiki they should also be supported:

Or are not all of the mentioned IF supported on the AML branch?

Hi, just a quick update from my side. I have updated my setup and included an AdurinoUno to control the LED´s ( APA 102) and now everything works as it should. I just need to get Hyperion Control to work.

1 Like

Glad to hear!

Finally got my setup the other night, haven’t had time to calibrate colors yet but it looks pretty good. Using an uno and a ws2812b. I regret getting the 30led meter, I would heavily recommend the 60. There’s a few scenes like with a persons head where the light is longer than it should be. Reaction time is instant, unlike some other popular ambilight solutions.

Edit: thanks for your help and patience rho-bot and Portisch