Beiträge von peter

    So you have a separate 5v PSU for the leds ? I tried both cases with separate PSU and with one common PSU. (changed nothing)


    A good ground connection between - yes, I rechecked and added two additional wires for ground to cover it twice. (changed nothing)


    Is the 74hct00 powered by the pi or the led power supply ? I tried both ways. (changed nothing)


    I'm beginning to wonder if the 1st led is faulty ? I have more strips and tried with each. (changed nothing) So I think first LED is not faulty.


    I really appreciate your huge effort to help. Thanks again mate!



    P.S. on RPi first led is off - this is interesting, too. So maybe a software issue (?). Btw when uint8_t tx[num_leds*3*4+6]; and unsigned spi_ptr=3 work together, can I use change it somewhere in hyperion files and recompile it with these values? (and can they be used for normal long using of hyperion?)

    so I used 74HCT and this https://hyperion-project.org/wiki/Supported-hardware wiring scheme. I connected just mosi line (not clk) but result is the same.


    P.S. No Idea why all LEDs flashing crazy when I turn on power source (even when Pi is booting). So I wait for a while until it stopped and then I tried all scenarios with +6,+3,0,3. Only scenario with +6 and 3 worked (as mentioned above). So I don't think it is a question of level shifter.


    btw, can be used these values (uint8_t tx[num_leds*3*4+6]; unsigned spi_ptr=3) for a long time period without problems?


    Ca you try one more thing ?
    Don't change this line back:
    unsigned spi_ptr=0; But make the other change (with +6).


    yes, sure. Please, do you mean this:
    uint8_t tx[num_leds*3*4+6];
    unsigned spi_ptr=6;


    or this
    uint8_t tx[num_leds*3*4+3];
    unsigned spi_ptr=6;
    ?

    ground connection in my case is perfect.


    Change to:
    uint8_t tx[num_leds*3*4+6];
    unsigned spi_ptr=3;


    @penfold42, this really helped (thank You!), now everything seems to be fine, 1st LED included. I have no idea what these two values do, so I experimented with old line "uint8_t tx[num_leds*3*4+3];" and new line "unsigned spi_ptr=3;" and with this it works good, too.

    https://github.com/penfold42/stuff/blob/master/ws2812_spi.c
    This was my 1st proof of concept code to test my idea before writing the Hyperion driver.


    I tried compiled version of your ws2812_spi.c but green channel is somehow always ON on first led (from connector end going to Pi).


    I am playing with your .c script. I tried to change 0b10001000 to 0b00001000 and now green channel on first LED is not set to ON, but other colors don't match testing pattern. Then I changed it to 0b01000100. It is a bit better (first led is changing too), but I don't know what these values mean and how it affects other leds - I have just found out consistency of color effect is altered with this change (last LEDs are not showing good pattern colors cca 8 leds at the end of 30leds long strip are miscolored and one is randomly off).


    I made few pictures with your ws2812_spi.c:
    Original pattern from ws2812_spi configuration:


    Rpi colors:


    OPi colors:


    Opi matches template pattern colors (but first led has always ON green channel - 1st led is not on my picture here). But RPi does not match template pattern colors.
    It is quite strange. Any idea how to change 0b10001000 on Opi to properly work first led?

    Please, looks like closing data via spi are somehow corrupted for first led. I'd like to manually send data to leds. Please, How could I manually try to send other data to first and second LED? (I mean via scrpit, e.g. python, .sh, etc, and not via hyperion-remote)

    Thanks, so on RPi3:
    - with level shifter - first LED is always off, other LEDs work ok
    - without level shifter - after I start hyperiond (without framegrabber, without v4l2grabber) - for 2 seconds I see rainbow and then all leds go to white. With hyperion-remote I can set any color (tested red, green, blue) and for fraction of second all leds go to specified color (first one is ok in specified color too), but after that they go white again


    Level shifter - made by friend of mine via gpio pins (pins3.V-5V, parts 4701, 1003, logic). I have one according to tutorial from this hyperion site, too.
    Ground - is ok, I rechecked it twice.
    I try with 5 up to 150 strip scenario.

    but on the other hand, no idea why first led has similar symptoms on RPi3, too (1st LED is white or completely off).
    Maybe some idea how to use pwm on OPi? According to my opinion it would fix these troubles.

    008000 - 1st matches the rest (all green).
    0000FF- 1st matches the rest (all blue)
    FF0000- all red, but 1st yellowish


    oscilloscope - unfortunatelly, I don't have here, I have just multimeter.

    CPU usage is quite interesting, Via "top":
    - With usb grabber directly in v4l2-grabber in json hyperiond: Total CPU 18% (hyperiond 73%)
    - Without usb grabber hyperiond (without v4l2-grabber): Total CPU 0.3% (hyperiond 3.6%)
    - With usb grabber via hyperion-v4l2, (hyperiond runs too without v4l2-grabber in json): Total CPU 20.9% (hyperiond 23%, hyperion-v4l2 71%) - colors in this scenario works nice.


    It means, when hyperiond and hyperion-v4l2 runs in the separate cores, then it works on opi. But when v4l2-grabber runs via hyperiond in one core, performance is worse.

    Did the level shifter make any difference to this symptom ?


    What level shift are you using ?


    No, with/without it is behaviour the same (on opi). On Rpi I must use levelshifter because without my LEDs are not working correctly (valid for spi, but via pwm leds work even without levelshifter).
    Tried my own levelshifter as well as bought from ebay.

    Hi friends,
    I found out this behaviour compiled on OPI, ws2812b LEDs via SPI (MOSI, 19pin), master (GitHub-69f4b32/6445c35-1481143098. When I run hyperiond (no grabber, just rainbow color effect), first LED stays green. In these scenarios, just first LED is problematic:
    - if I pick black static color, first led is GREEN
    - if I pick red color, first LED is yellowish
    - if I pick blue color, first LED is blue, too
    - if I pick green color, first LED is green, too
    - if I use usb grabber, first led behaviour is the same as above
    - if I uplug power from LEDs, terminate hyperion then power leds on again, start hyperion again, first LED is green again.


    I tried downloaded version V1.03.2 (brindosch-99d9396/d3713a8-1469452981) on RPi and there is first led always off regardless the color I choose.


    I think there must be problem on the first LED somewhere in hyperion core for spi. Any idea how to solve it?

    so with level shifter is behaviour the same.
    - when I start hyperiond via cmd line , it slows down on orangepi after line "INFO: Proto server created and started on port 19445" when starting v4l2 grabber. I found out on rpi this step is very quick. It looks like it is really slowed down on opi, but no idea why (even when color changes on LEDs, it has visible "steps/chopping" when generating colors from grabber)
    It has definitely something to do with usb grabber (slower response with v4l2).