Raspberry Pi4 WS2801 Kodi No LEDS Working

  • Been lurking for a while, and making changes to my setup and now I'm stuck....


    I have a current Hyperion setup with an old Raspberry Pi on network, with a PC running Kodi and the Hyperion add-on.


    This seup works ok, but the PC is old and being replaced with a Pi4


    I have setup a Pi4 with Raspberry Pi OS, installed Kodi and Hyperion. The capture seems to work, but no output to the LEDS.


    I have turned on SPI, and I know all the LEDS are working fine (from previous setup)


    The Pi is wired to the LEDS with GND, Mosi (pin 19) and SCLK (pin 23). I have a good 10amp 5v PSU.


    I cant understand why Hyperion isnt outputting to the LEDS.


    What am I doing wrong??


    Thank you.

  • Sorry, I'm a plonker.



    2020-10-01T11:13:16.952Z [hyperiond COMPONENTREG] (DEBUG) (ComponentRegister.cpp:50:handleCompStateChangeRequest()) Disable Hyperion, store current component states
    2020-10-01T11:13:16.955Z [hyperiond COMPONENTREG] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) Hyperion: disabled
    2020-10-01T11:13:16.955Z [hyperiond COMPONENTREG] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) Smoothing: disabled
    2020-10-01T11:13:16.955Z [hyperiond COMPONENTREG] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) Blackborder detector: disabled
    2020-10-01T11:13:16.955Z [hyperiond HYPERION] (DEBUG) (PriorityMuxer.cpp:255:clearInput()) Removed source priority 250
    2020-10-01T11:13:16.955Z [hyperiond HYPERION] (DEBUG) (PriorityMuxer.cpp:333:setCurrentTime()) Set visible priority to 254
    2020-10-01T11:13:16.956Z [hyperiond HYPERION] (DEBUG) (Hyperion.cpp:538:handlPriorityChangedLedDevice()) priority[254], previousPriority[250]
    2020-10-01T11:13:16.956Z [hyperiond COMPONENTREG] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) Framegrabber: disabled
    2020-10-01T11:13:16.959Z [hyperiond Dispmanx] (DEBUG) (GrabberWrapper.cpp:58:stop()) Grabber stop()
    2020-10-01T11:13:16.966Z [hyperiond COMPONENTREG] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: disabled
    2020-10-01T11:13:16.967Z [hyperiond WEBSOCKET] (DEBUG) (JsonAPI.cpp:1041:handleLoggingCommand()) log streaming deactivated for client ::ffff:42.1.1.50
    2020-10-01T11:13:18.807Z [hyperiond COMPONENTREG] (DEBUG) (ComponentRegister.cpp:63:handleCompStateChangeRequest()) Enable Hyperion, recover previous component states
    2020-10-01T11:13:18.807Z [hyperiond COMPONENTREG] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) Hyperion: enabled
    2020-10-01T11:13:18.807Z [hyperiond COMPONENTREG] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) Smoothing: enabled
    2020-10-01T11:13:18.808Z [hyperiond COMPONENTREG] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) Blackborder detector: enabled
    2020-10-01T11:13:18.808Z [hyperiond HYPERION] (DEBUG) (PriorityMuxer.cpp:159:registerInput()) Register new input 'System/GRABBER' with priority 250 as inactive
    2020-10-01T11:13:18.808Z [hyperiond COMPONENTREG] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) Framegrabber: enabled
    2020-10-01T11:13:18.811Z [hyperiond Dispmanx] (DEBUG) (GrabberWrapper.cpp:48:start()) Grabber start()
    2020-10-01T11:13:18.808Z [hyperiond COMPONENTREG] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: enabled
    2020-10-01T11:13:18.918Z [hyperiond HYPERION] (DEBUG) (PriorityMuxer.cpp:238:setInputImage()) Priority 250 is now active
    2020-10-01T11:13:18.918Z [hyperiond HYPERION] (DEBUG) (PriorityMuxer.cpp:333:setCurrentTime()) Set visible priority to 250
    2020-10-01T11:13:18.918Z [hyperiond HYPERION] (DEBUG) (Hyperion.cpp:538:handlPriorityChangedLedDevice()) priority[250], previousPriority[254]
    2020-10-01T11:13:27.656Z [hyperiond WEBSOCKET] (DEBUG) (WebSocketClient.cpp:204:sendClose()) send close: 1000
    2020-10-01T11:13:27.906Z [hyperiond WEBSOCKET] (DEBUG) (WebSocketClient.cpp:30:WebSocketClient()) New connection from ::ffff:42.1.1.50
    2020-10-01T11:13:27.907Z [hyperiond WEBSOCKET] (DEBUG) (JsonAPI.cpp:81:handleInstanceSwitch()) Client '::ffff:42.1.1.50' switch to Hyperion instance 0
    2020-10-01T11:13:28.080Z [hyperiond WEBSOCKET] (DEBUG) (JsonAPI.cpp:1032:handleLoggingCommand()) log streaming activated for client ::ffff:42.1.1.50

  • Set /dev/spidev0.0 if you dont have any other devices on SPI line, latchTime=1,rewriteTime: 5000
    Post your full debug after reboot and compare if wiring is the same as on the photo (Rpi4 is second setup but wiring is the same as for Rpi 3 on first picture link)
    From top: 4 empty, ground, 4 empty, MOSI, empty, CLOCK
    Level shifter: Rpi Mosi,ck on GPIO 3.3V -> 5V LED

  • Log with the changes you suggested....


    2020-10-01T14:44:11.977Z [hyperiond DAEMON] (INFO) CEC handler created
    2020-10-01T14:44:11.991Z [hyperiond EFFECTFILES] (INFO) 39 effects loaded from directory :/effects/
    2020-10-01T14:44:11.995Z [hyperiond EFFECTFILES] (INFO) 22 effect schemas loaded from directory :/effects/schema/
    2020-10-01T14:44:11.999Z [hyperiond EFFECTFILES] (INFO) 0 effects loaded from directory /home/pi/.hyperion/custom-effects
    2020-10-01T14:44:12.021Z [hyperiond SETTINGSMGR] (DEBUG) (SettingsManager.cpp:107:SettingsManager()) Settings database initialized
    2020-10-01T14:44:12.022Z [hyperiond BLACKBORDER] (DEBUG) (BlackBorderProcessor.cpp:64:handleSettingsUpdate()) Set mode to: default
    2020-10-01T14:44:12.023Z [hyperiond COMPONENTREG] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) Blackborder detector: enabled
    2020-10-01T14:44:12.100Z [hyperiond DAEMON] (INFO) set screen capture device to 'dispmanx'
    2020-10-01T14:44:12.101Z [hyperiond DISPMANXGRABBER] (DEBUG) (Grabber.cpp:30:setVideoMode()) Set videomode to 0
    2020-10-01T14:44:12.102Z [hyperiond DISPMANXGRABBER] (INFO) Display opened with resolution: 1920x1080
    2020-10-01T14:44:12.102Z [hyperiond DISPMANXGRABBER] (DEBUG) (Grabber.cpp:90:setWidthHeight()) Set new width: 80, height: 45 for capture
    2020-10-01T14:44:12.103Z [hyperiond DAEMON] (INFO) DISPMANX frame grabber created
    2020-10-01T14:44:12.104Z [hyperiond V4L2:AUTO] (DEBUG) (Grabber.cpp:30:setVideoMode()) Set videomode to 0
    2020-10-01T14:44:12.105Z [hyperiond V4L2:AUTO] (INFO) Signal threshold set to: {12, 12, 12}
    2020-10-01T14:44:12.105Z [hyperiond V4L2:AUTO] (INFO) CEC detection is now disabled
    2020-10-01T14:44:12.106Z [hyperiond V4L2:AUTO] (INFO) Signal detection is now disabled
    2020-10-01T14:44:12.106Z [hyperiond V4L2:AUTO] (INFO) Signal detection area set to: 0.250000,0.250000 x 0.750000,0.750000
    2020-10-01T14:44:12.106Z [hyperiond DAEMON] (DEBUG) (hyperiond.cpp:568:handleSettingsUpdate()) V4L2 grabber created
    2020-10-01T14:44:12.115Z [hyperiond JSONSERVER] (DEBUG) (JsonServer.cpp:27:JsonServer()) Created instance
    2020-10-01T14:44:12.130Z [hyperiond JSONSERVER] (INFO) Started on port 19444
    2020-10-01T14:44:12.109Z [hyperiond LEDDEVICE] (INFO) Start LedDevice 'ws2801'.
    2020-10-01T14:44:12.109Z [hyperiond LEDDEVICE] (DEBUG) (LedDevice.cpp:147:init()) deviceConfig: [{"colorOrder":"rgb","currentLedCount":80,"hardwareLedCount":1,"invert":false,"latchTime":1,"output":"/dev/spidev0.0","rate":1e+06,"rewriteTime":5000,"type":"ws2801"}]
    2020-10-01T14:44:12.109Z [hyperiond LEDDEVICE] (DEBUG) (LedDevice.cpp:403:setLatchTime()) LatchTime updated to 1ms
    2020-10-01T14:44:12.109Z [hyperiond LEDDEVICE] (DEBUG) (LedDevice.cpp:423:setRewriteTime()) Refresh interval = 5000ms
    2020-10-01T14:44:12.110Z [hyperiond LEDDEVICE] (DEBUG) (LedDevice.cpp:429:setRewriteTime()) RewriteTime updated to 5000ms
    2020-10-01T14:44:12.110Z [hyperiond LEDDEVICE] (DEBUG) (ProviderSpi.cpp:45:init()) _baudRate_Hz [1000000], _latchTime_ms [1]
    2020-10-01T14:44:12.110Z [hyperiond LEDDEVICE] (DEBUG) (ProviderSpi.cpp:46:init()) _spiDataInvert [0], _spiMode [0]
    2020-10-01T14:44:12.111Z [hyperiond COMPONENTREG] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) Smoothing: enabled
    2020-10-01T14:44:12.115Z [hyperiond FLATBUFCONN] (INFO) Connecting to Hyperion: 127.0.0.1:19401
    2020-10-01T14:44:12.131Z [hyperiond FLATBUFSERVER] (INFO) Started on port 19400
    2020-10-01T14:44:12.131Z [hyperiond EFFECTENGINE] (INFO) Run effect "Rainbow swirl fast" on channel 0
    2020-10-01T14:44:12.131Z [hyperiond PROTOSERVER] (INFO) Started on port 19445
    2020-10-01T14:44:12.131Z [hyperiond WEBSERVER] (DEBUG) (WebServer.cpp:32:initServer()) Initialize Webserver
    2020-10-01T14:44:12.132Z [hyperiond WEBSERVER] (DEBUG) (WebServer.cpp:32:initServer()) Initialize Webserver
    2020-10-01T14:44:12.230Z [hyperiond EFFECTENGINE] (DEBUG) (EffectEngine.cpp:183:runEffectScript()) Start the effect: name [Rainbow swirl fast], smoothCfg [2]
    2020-10-01T14:44:12.231Z [hyperiond HYPERION] (DEBUG) (PriorityMuxer.cpp:159:registerInput()) Register new input 'System/EFFECT' with priority 0 as inactive
    2020-10-01T14:44:12.231Z [hyperiond HYPERION] (INFO) Initial foreground effect 'Rainbow swirl fast' started
    2020-10-01T14:44:12.232Z [hyperiond EFFECTENGINE] (INFO) Run effect "Warm mood blobs" on channel 254
    2020-10-01T14:44:12.233Z [hyperiond EFFECTENGINE] (DEBUG) (EffectEngine.cpp:183:runEffectScript()) Start the effect: name [Warm mood blobs], smoothCfg [2]
    2020-10-01T14:44:12.233Z [hyperiond HYPERION] (DEBUG) (PriorityMuxer.cpp:159:registerInput()) Register new input 'System/EFFECT' with priority 254 as inactive
    2020-10-01T14:44:12.234Z [hyperiond HYPERION] (INFO) Inital background effect 'Warm mood blobs' started
    2020-10-01T14:44:12.235Z [hyperiond HYPERION] (DEBUG) (PriorityMuxer.cpp:159:registerInput()) Register new input 'System/GRABBER' with priority 250 as inactive
    2020-10-01T14:44:12.235Z [hyperiond COMPONENTREG] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) Framegrabber: enabled
    2020-10-01T14:44:12.236Z [hyperiond Dispmanx] (DEBUG) (GrabberWrapper.cpp:48:start()) Grabber start()
    2020-10-01T14:44:12.237Z [hyperiond BOBLIGHT] (DEBUG) (BoblightServer.cpp:28:BoblightServer()) Instance created
    2020-10-01T14:44:12.238Z [hyperiond HYPERION] (INFO) Hyperion instance 'Pi4-Kodi' has been started
    2020-10-01T14:44:12.237Z [hyperiond COMPONENTREG] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: enabled
    2020-10-01T14:44:12.287Z [hyperiond WEBSERVER] (DEBUG) (WebServer.cpp:90:handleSettingsUpdate()) Apply Webserver settings
    2020-10-01T14:44:12.287Z [hyperiond WEBSERVER] (DEBUG) (WebServer.cpp:108:handleSettingsUpdate()) Set document root to: :/webconfig
    2020-10-01T14:44:12.287Z [hyperiond WEBSERVER] (DEBUG) (WebServer.cpp:90:handleSettingsUpdate()) Apply Webserver settings
    2020-10-01T14:44:12.287Z [hyperiond WEBSERVER] (DEBUG) (WebServer.cpp:108:handleSettingsUpdate()) Set document root to: :/webconfig
    2020-10-01T14:44:12.288Z [hyperiond WEBSERVER] (INFO) Started on port 8090 name 'Hyperion Webserver'
    2020-10-01T14:44:12.324Z [hyperiond WEBSERVER] (DEBUG) (WebServer.cpp:174:handleSettingsUpdate()) Setup SSL certificate
    2020-10-01T14:44:12.325Z [hyperiond WEBSERVER] (DEBUG) (WebServer.cpp:190:handleSettingsUpdate()) Setup private SSL key
    2020-10-01T14:44:12.325Z [hyperiond WEBSERVER] (INFO) Started on port 8092 name 'Hyperion Webserver'
    2020-10-01T14:44:12.340Z [hyperiond HYPERION] (DEBUG) (PriorityMuxer.cpp:238:setInputImage()) Priority 250 is now active
    2020-10-01T14:44:12.341Z [hyperiond HYPERION] (DEBUG) (PriorityMuxer.cpp:333:setCurrentTime()) Set visible priority to 0
    2020-10-01T14:44:12.342Z [hyperiond HYPERION] (DEBUG) (Hyperion.cpp:538:handlPriorityChangedLedDevice()) priority[0], previousPriority[255]
    2020-10-01T14:44:12.342Z [hyperiond HYPERION] (DEBUG) (Hyperion.cpp:548:handlPriorityChangedLedDevice()) new source available -> switch LED-Device on
    2020-10-01T14:44:12.399Z [hyperiond HYPERION] (DEBUG) (PriorityMuxer.cpp:198:setInput()) Priority 254 is now active
    2020-10-01T14:44:12.411Z [hyperiond HYPERION] (DEBUG) (PriorityMuxer.cpp:238:setInputImage()) Priority 0 is now active
    2020-10-01T14:44:15.390Z [hyperiond HYPERION] (DEBUG) (PriorityMuxer.cpp:298:setCurrentTime()) Timeout clear for priority 0
    2020-10-01T14:44:15.643Z [hyperiond HYPERION] (DEBUG) (PriorityMuxer.cpp:333:setCurrentTime()) Set visible priority to 250
    2020-10-01T14:44:15.644Z [hyperiond HYPERION] (DEBUG) (Hyperion.cpp:538:handlPriorityChangedLedDevice()) priority[250], previousPriority[0]
    2020-10-01T14:51:17.921Z [hyperiond WEBSOCKET] (DEBUG) (WebSocketClient.cpp:30:WebSocketClient()) New connection from ::ffff:42.1.1.50
    2020-10-01T14:51:17.922Z [hyperiond WEBSOCKET] (DEBUG) (JsonAPI.cpp:81:handleInstanceSwitch()) Client '::ffff:42.1.1.50' switch to Hyperion instance 0
    2020-10-01T14:51:24.837Z [hyperiond WEBSOCKET] (DEBUG) (JsonAPI.cpp:1032:handleLoggingCommand()) log streaming activated for client ::ffff:42.1.1.50

  • CL - SCLK (Red Wire) goes to pin 23
    DI - MOSI (Green Wire) goes to pin19


    Below is my little pcb, main 4 wires to the input end of the LED, just power to the other side. Long wires from the Pi4

  • So my old setup is an original Pi B Rev 1. I was running the old Hyperion on this and a kodi addon from pc to grab.


    my new setup, the Pi 4 has 3 wires to gpio, 19, 23 and Ground.

  • Right this is sorted now.


    After your input it seemed thatone link in the chain was an issue, so when as requested I spotted that one connectors wires to the Pi didnt align corrently, so re-jigged and all is working great.


    Thank you all for your help!! Very impressed with the support.

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!