Hello all, I am having some issues using a Teensy 3.1 with 253 WS2812B

Hello all,

I am having some issues using a Teensy 3.1 with 253 WS2812B LEDs. I have them connected per the below diagram. They wrap around a ceiling inset and are divided into groups. They are connected together using plastic twist wire connectors.

The setup was working fine for a while. However, with some very intermittent noise. That noise has gotten worse and now the setup is just plain unusable. Sometimes only the first 2 or so strips will illuminate. Sometimes the whole setup will look OK, but then start to glitch and eventually freeze (using the built in rainbow function as a test).

The LEDs are these: http://www.aliexpress.com/store/product/5m-DC5V-WS2812B-led-pixel-srip-IP68-in-silicon-tube-30pcs-WS2812B-M-with-30pixels-36W/701799_949715127.html

The Power Supplies are these:
http://www.trcelectronics.com/View/Mean-Well/IRM-30-5ST.shtml

Is this a noise issue, can I filter it out somehow? Does anyone have any ideas? Thanks for your help.

Have you tried capacitors across your power supplies?
Have you checked the voltages of both power supplies?

Both supplies are operating at 5V, I’ve actually switched one out with a spare to double check.

I haven’t tried any caps. What size and where should they go? What do they do?

Thanks.

“Before connecting NeoPixels to any large power source (DC “wall wart” or even a large battery), add a capacitor (1000 µF, 6.3V or higher) across the + and – terminals as shown above. The capacitor buffers sudden changes in the current drawn by the strip.”

Might also need a level shifter, since the Teensy digital outputs are 3.3v but the strips are 5v. I’ve had very intermittent results when not using one.

Nice, I’ll give it a shot. But apparently I might have already killed my stips too…

Looks like I should up the resistance too? That post says minimum of 300 OHM. Thanks for everything.

I normally use 100 ohm, the resistor should be fine. If you up the resistance without a level shifter it might stop altogether :wink:

The octows2811 teensy add on board uses 100 ohm resistors…

maybe a 74hct245 buffer chip will be useful. Paul has made an ws2811 adapter, I myself use it in a few projects with these leds and they work perfectly fine. Here is a link https://www.pjrc.com/store/octo28_adaptor.html

Add a 74hct245 or a NULL pixel very close to the Teensy as a voltage level shifter

What do you mean by a NULL pixel?

I tried a 1200 uF cap across one of the power supplies, upped the resistance to 470 OHM, and lit up half the setup. That stabilized the noise enough for me to notice a dead pixel. Everything beyond that pixel appears to get a good control signal for a bit after initial power on. After 30 seconds or so, noise takes over and those pixels begin freezing or doing erratic things. Everything before the dead pixel is perfectly fine, and continues with the rainbow pattern just fine.

So that’s progress. I’ll replace the pixel as soon as I can (hopefully tonight) and continue troubleshooting. I think the voltage shifter is a still a very good idea though. Even the pixels that do work seem to be somewhat sensitive. When I move the breadboard I have the Teensy on they’ll flicker or go out of sync. They eventually come back though.

Thanks for all the suggestions everyone, it’s great to make progress with this.

Try checking the voltage at different points along the strips. I suspect with certain patterns the current draw causes it to drop too low for the pixels to correctly regenerate the data signal. You may need to insert 5V at extra places, either with extra PSUs or heavier wiring in parallel with the strip.

You can possibly verify that with a simple animation like using just a single lit pixel (drawing very little power) running back and forth, and watch to see if it still has issues.

@Paul_Posedly_III A NULL Pixel is the equivelent of a Voltage Level Shifter.
1.Cut off 1 pixel
2.Connect +5 and GND to your power supply, make sure GND is shared with the TEENSY
3.connect the DATA IN pin to the TEENSY(as physically close as possible)
4.Connect the output of the pixel to the rest of your pixels
When you create you animations, do not address pixel 0, this will allow it to boost the Teensy voltage from 3.3 to 5v

Interesting… I’ll have to give the null pixel a shot. Seems like a quick and dirty way to give some extra stability to the setup.

So far, so good. I took out my bad pixel and replaced it, hooked 1,200 uF caps to each of my power supplies, and so far so good. I’ve been able to run the rainbow animation flawlessly. Although I did take my resistor value back down to 130 OHM. The 470 OHM was causing some noise issues itself.

One more question, the only caps I was able to find quickly are 50V, 10x the 5V power supply voltage. Is that a bad thing? Does it matter?

Thanks everyone.

Caps rated for a higher voltage wont hurt at all, they’re just physically bigger.
The NULL pixel concept can work, but you’re still using it outside specification. I prefer to use a 74AHCT125 which is actually designed and properly specified to do level shifting from 3.3V to 5V.

@Kean_Maizels not outside of specs at all! Have a look at thr ws2812 datasheet, its logic low is in the 3v range

I thought we weren’t supposed to attach ground at both ends (ground loops)?

@Leon_Yuhanov not in any copy of the datasheet I have seen. They’ve all said min is 70% of Vdd (i.e. standard CMOS), which at 5V supply is 3.5V. Of course, World Semi has a history of publishing conflicting data sheets, and changing specifications between production batches.

@dougal where do you see a ground loop in the diagram?