WS2812B strip not lighting, and screen capture intermittent

  • I'm trying to get this set up for the first time. Bought a bunch of bits and pieces and followed the Dr ZZ's video as close as possible, but using HyperBian on a Pi3.


    I have a 5m strip of 30 led/m WS2812B LEDs, running off GPIO18 powered by a 5V 10A supply. Using an NVI Tech 4K capture device.


    I beleive I have the software setup properly, but I cannot get the LEDs to work. I have LED 1 and 2 white, and LED 3 green. That's it, no change ever. I can't run effects, no boot up effect, no idle effect.


    When I first turned on the debug logging earlier, I saw this error a number of times.


    2021-10-01T02:09:27.854Z [hyperiond LEDDEVICE] (ERROR) Device disabled, device 'ws281x' signals error: 'Failed to open. Error message: mmap() failed'


    But now I see this in the log, which gives me some hope that maybe the LEDDEVICE might possibly be somewhat working...



    2021-10-01T02:09:27.848Z [hyperiond LEDDEVICE] (INFO) Start LedDevice 'ws281x'.
    2021-10-01T02:09:27.848Z [hyperiond LEDDEVICE] (DEBUG) (LedDevice.cpp:148:init()) deviceConfig: [{"colorOrder":"rgb","currentLedCount":134,"dma":5,"gpio":18,"hardwareLedCount":134,"invert":true,"latchTime":0,"leds":256,"pwmchannel":0,"rewriteTime":1000,"rgbw":false,"type":"ws281x","whiteAlgorithm":"subtract_minimum"}]
    2021-10-01T02:09:27.848Z [hyperiond COMPONENTREG] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) Smoothing: enabled
    2021-10-01T02:09:27.848Z [hyperiond LEDDEVICE] (DEBUG) (LedDevice.cpp:413:setLatchTime()) LatchTime updated to 0ms
    2021-10-01T02:09:27.848Z [hyperiond LEDDEVICE] (DEBUG) (LedDevice.cpp:438:setRewriteTime()) Refresh interval = 1000ms
    2021-10-01T02:09:27.848Z [hyperiond SMOOTHING] (DEBUG) (LinearColorSmoothing.cpp:701:selectConfig()) cfg [0]: Type: linear - Time: 200 ms, outputRate 25.000000 Hz, interpolationRate: 25.000000 Hz, timer: 40 ms, Dithering: 0, Decay: 1.000000 -> HalfTime: 100.000000 ms
    2021-10-01T02:09:27.850Z [hyperiond LEDDEVICE] (DEBUG) (LedDevice.cpp:444:setRewriteTime()) RewriteTime updated to 1000ms
    2021-10-01T02:09:27.850Z [hyperiond LEDDEVICE] (DEBUG) (LedDeviceWS281x.cpp:59:init()) ws281x strip type : 1050624


    The next line in the log file is the error I posted above.


    I'm guessing that if I can get the LEDs talking, that the idle effect should run when there is no capture image. I just have to try and figure out what settings are required with HyperBian. Dr ZZs and some other threads talk about running the daemon as root rather than pi, but I can't seem to make that work with HyperBian.


    I also run into a issue where my capture card only works some times. I thought I had the wrong kind of capture card because the live view only showed static, but after letting the setup sit for a while, I came back to it, and I have an image showing. After a restart the static (snow) came back, but there is some sequence of events that can cause the image to show up again.


    In live view, do the LEDs change colour to match the live view image, or are they static with the rainbow hue all the time, just for reference?


    Anyone have any solutions to my issues?


  • first you need to deactivate setting invert signal


    Second you need Root permission for Hyperion to run PWM on GPIO 18, look at my latest posts for info.


    Thirth, bootup Hyperion without the grabber inserted and then deactivate and activate and save, the grabber should be visible now after a few tries.

    It's a know software bug

  • Thanks for the reply...


    I will clear that invert signal. I tried that as an attempt to see if it would fix the issue, forgot to flip it back.


    I tried searching for anything from you with root permission, and don't get anything that seems to talk about setting root permission for PWM on GPIO18.


    https://hyperion-project.org/i…highlight=Root+permission


    Is this what you are talking about?



    sudo systemctl disable --now hyperiond@pi


    sudo systemctl enable --now hyperiond@root


    I tried those commands from the SSH session, and it didn't seem to do anything.


    I saw that in the Dr. Zzs video, but he is running Hyperion with the Raspberry Pi Lite OS, where I am running the HyperBian image.


    https://docs.hyperion-project.org/en/user/HyperBian.html

  • when i react during the day it will be brief, its on the phone and lunchbrakes, you get my drift.

    after the work i can zoom in on the problems ahead


    Is this what you are talking about?

    no wait, i am going to post it for you


    You need to run hyperion as root with this configuration (device 'ws281x) PWM


    first is dtparam=audio=off in config.txt boot section.




    if that doesn't work> in terminal of raspi;




    sudo systemctl disable --now hyperiond@pi


    sudo systemctl enable --now hyperiond@root


    sudo reboot now



    or,



    copy and paste this code line with ctrl/shift +V in terminal then press enter



    sudo nano /etc/systemd/system/hyperiond@.service




    Remove the User sessionline and save with CTRL+O and exit CTRL+x.


    Don't forget to reboot



    note: try the codes with and without d at the end> hyperion(d)




    goodluck!

    5 Mal editiert, zuletzt von Ambientheater77 () aus folgendem Grund: Merged a post created by Lightning-guy77 into this post.

  • Thanks for clarifying... I have been searching for the "mmap() failed" error in the forum, and I find a lot of suggestions to run hyperion as root.


    I will give that a go when I have access to the equipment again today.


    I made the changes while I was at home for lunch, and we have success!


    first is dtparam=audio=off in config.txt boot section.


    Didn't know where to look for this, but I recall checking it when I first set up Hyperion, so I was pretty sure it was set up properly.


    if that doesn't work> in terminal of raspi;



    sudo systemctl disable --now hyperiond@pi


    sudo systemctl enable --now hyperiond@root


    sudo reboot now


    I had tried that before, with no success. But the note at the end that says:


    note: try the codes with and without d at the end> hyperion(d)


    That was the key.


    From another thread I found this:


    ps aux | grep hyperion


    I ran this command and was able to see that I had one entry that used hyperiond, and a second that had hyperion.


    The commands:


    sudo systemctl disable --now hyperion@pi


    sudo systemctl enable --now hyperion@root


    sudo reboot now


    Worked. When Hyperion restarted, I had to go through the full configuration again, telling the program what kind of LEDs I had, the layout, and the type of capture card I had. Immediately the LEDs started flashing colours. I checked the live view, and found the static (snow) showing. I deactivated and reactivated my capture card a couple times, and the LEDs settled down. Checking the live view, I once again had a proper capture image.


    I ran the LED channel wizard and found I needed to swap R and G channels.


    And that's it... Now I need to mount everything and get it all cleaned up.


    My wife has seen all the wires, boxes, and the LED strip scotch taped haphazardly to the TV and is wondering what kind of stupidity I am up to now...


    My daughter did a single colour static LED strip on her TV a few years ago, and I suspect that my wife thinks this is the same thing.


    Hyperion running the LEDs doesn't look very good with the daylight streaming in the windows, but later this evening, it should look much more impressive.


    Thanks for the pointer in the right direction, and the commands required to get hyperion root access.


    8o

    Einmal editiert, zuletzt von ve6srv () aus folgendem Grund: Merged a post created by ve6srv into this post.

Jetzt mitmachen!

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