Electronic – arduino – Why do some WS2813 Ledstrips shift/randomize colors

arduinoled stripteensy

The Problem

I have a project using multiple WS2813 ledstrips, one variant which uses a white PCB and one that uses a black PCB. When setting the colors of these ledstrips multiple times, I noticed that the black PCB strips frequently show an incorrect result. Most of the times it shifts the colors by a few leds but it will also change the colors or shift the leds by 10+.

The PCB

The strips are both WS2813 (at least they were advertised as such). I've attached an image of both the strips below.

Image of Black PCB

Image of White PCB

Video Example

The following gifs demonstrate the problem I'm having. Both strip types got the command to set leds 25 to 50 to Red.

Gif of Black PCB shifting

Gif of Black PCB shifting

Gif of White PCB not shifting

Gif of White PCB not shifting

Gif of White & Black PCB on the same data pin. Data is coming from the right, so the shift is always later on the strip.

Gif of White & Black PCB on the same data pin

Connections

The strips are connected as follows:

Strip — Teensy 4.0

+5V — External 5V

D0 — Teensy Output pin (i.e. 19)

B0 — External GND

GND — External GND

The Teensy is also powered by the external power supply.

The ledstrips are connected in parallel, with every strip on one of the following pins: 19, 18, 14, 15, 17 and 16.

The strips are only connected at the front, not the back.

Edit: Connecting the back to the power supply does not seem to have any effect on the shifting.

The external power supply is an RSP-200-5 (5V, 40A).

Voltage Measures with only 5 leds active

Led #0: 4.99V

Led #60: 4.97V / 4.98V

Led #110: 4.95V (Sometimes drops to 4.84 on the White PCB)

Datasheets

White PCB Led Datasheet

Diagram

Electrical Diagram

Best Answer

The Teensy revisions 3+ use 3.3V internally. The pinouts will provide no more than this voltage. The LED, on the other hand, requires 0.7 x 5V = 3.5V as high input.

You need a voltage translator or buffer chip. Any 74ACT or 74HCT logic chip will do. It also helps to connect a 100 Ohm resistor between buffer output and LED data input. See https://www.pjrc.com/store/octo28_adaptor.html for related information.