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.
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 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.
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)
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.