Shop OBEX P1 Docs P2 Docs Learn Events
WS2812 reset timing — Parallax Forums

WS2812 reset timing

I have a 8x1 WS2812 board (they might be WS2812B, I can't tell). $1 or so on eBay.

I had a problem with "smearing" of the individual led settings (an adjacent WS2812 would flicker with that color even though it should have been completely dark).

I fixed it by increasing the "reset" time (the time used to tell the chips to display their settings) from 50us to 60us. The specs I have state a reset time greater or equal to 50us. 55us reduced the smearing but didn't eliminate it.

So, has anyone else experienced this? I have other WS2811/WS2812 strips that don't have this issue... Maybe just some bad or out-of-spec parts?

Comments

  • I'd look at the other timing (high/low timing).

    There's some good info on this page exploring timing such as the rest timing. It indicates 6uS or longer should be sufficient. So I think the problem will lie elsewhere
    https://wp.josh.com/2014/05/13/ws2812-neopixels-are-not-so-finicky-once-you-get-to-know-them/
  • Changing the high/low timing did nothing.

    The issue is that the correct color is displayed on the wrong ws2812.

    At 6uS none of the LED's light up. Not until about 47-48 uS do they start to light.

    56uS appears to be the very minimum. I'm going to stick with 60uS.

    BTW, I'm using JonnyMac's jm_ws2812 object. Which has worked perfectly in the past.

    In all, I think my module is out of spec. Unfortunately, I only have one sample to test with. Fortunately, the latch timing can be anything > 50uS for the other modules, so all that's affected is the update frequency.

    Walter
  • Okay, well thats interesting and something I haven't seen.

    Out of interest how long are the wires from prop to first ws2812?
  • Let me suggest you switch to my updated pixel driver:

    -- http://obex.parallax.com/object/868

    It handles more pixel types and allows you to declare the pixel storage array in the calling object which means you can size it as you need. You can also define multiple arrays and switch easily between them. I've done a lot of timing tweaks to ensure the bit values are correct in less-than-idea situations.
  • The total path is about 9" for the wires.
  • wmosscrop wrote: »
    The total path is about 9" for the wires.
    Technically, 3.3v falls under the 3.5v minimum spec for these devices -- but is usually not a problem. In situations where there is more than a few inches and a very clean connection, I insert a TC4427 level shifter to drive the LEDs. I did this for a TV costume recently; see this thread:

    -- http://forums.parallax.com/discussion/167866/propeller-powered-costume-element-controller#latest

  • Hi Jon, I see you mention the TC4427 quite often but i see that it is not just a level shifter but a dual MOSFET driver. Wouldn't it be easier for most people to source a 74hctxx device which works from 5v rails but accepts 2V TTL levels? I normally just use a tiny cheap single gate 74HCT86 XOR gate in an SOT23 pack which can be strapped as an inverter or non-inverter.
  • JonnyMacJonnyMac Posts: 9,104
    edited 2018-02-11 20:41
    You're absolutely right, there are other great choices -- the TC4427 just seems to fit into what I happen to be doing, and I like the stiff output as I often have to drive smart LEDs or other things through a bit of cable. On the recent TV project, my friend wanted through-hole parts and the TC4427 is available in a DIP-8 package. What I especially like is that I can set the output level through the Vdd pin (up to 18v). On a focus/zoom accessory I coded for a friend, the servo cables were very long. We updated the power supply to 6v and used that for the servos and the Vdd of the TC4427. Even with very long control cables the device worked like a charm.

    In the end there are many roads that lead to Rome.
Sign In or Register to comment.