I'm having an issue driving 12 volt WS2811 pixels with a teensy 3.2.

I’m having an issue driving 12 volt WS2811 pixels with a teensy 3.2. I am using four output pins. The first three pins have 100 pixels each and the fourth pin has 71 pixels. The first two pins output fine but I am getting a lot of artifacts and incorrect color on the last two pins. If I swap the strands around they all work fine on the first two pins. I am running a simple test pattern. I tested the pixels with an Arduino Due and the same test code and they work fine. Is there some kind of power issue?

Possibly. How are you powering them? 371 pixels at a max of 60mA each (full bright, full white) is 22 amps.

A few quick suggestions: Tied all the grounds together (all strips and the Teensy)? Tried running power and ground to both ends of each strip? Measured the voltage at the problematic strands?

Other ideas to try:
Add a resistor (inline) to each data line. Put it on the end of the data line at/near the strip. Try something in the range of 200 to 470 ohm. (I’ve always used 470 ohm.)

Maybe run the data lines through a level shifter (74HCT245)?

Try running at 5v. I had a strip of supposedly 12v LEDs that ran a whole load better at 5v.

How far are the strips from the controller? I had similar issues another set up, I swapped out the data wires for shielded cat6 network cable and this solved the problem. I also use 100 ohm resistors near to the controller on the data lines.

They are all being powered with a 12V 30A power suppply and all the grounds are tied together. The Teensy is being powered through the computer USB port and a ground line running to the PSU. I tried 180 ohm and 470 ohm resistors and they completely block the data signal. I don’t get anything on the pixels. If I connect them directly to the output pins I get a signal but with the same issues described above. There is about 3 feet of data wire from the controller to the pixels. I will look into a level shifter.