Shared Power Pins with different LED colour orders?


Can two sets of LEDs with different colour orders but their own data lines successfully share LED power pins without the colours being askew on one of them?

I want to wire up the front end of a chassis with 2 x pixel accent LEDs in series as sub-blades, with data looping out of the first into the second, controlled from data pad 1;

then have the main Shtok blade connector wired from data 2.

I want all the LEDs to use the same LED power pads 2/3 using the ‘#define SHARED_POWER_PINS’.

The issue is the accent LEDs colour order is RGB whereas the Shtok connector is GRB.

My question is, will it work with the shared power pins, or will I end up with inverted colours on one set of LEDs?

Here’s a crude wiring pic showing what I mean:

Thanks in advance.

As long as they are on different data pads, and therefore have their own appropriate blade definitions in the blades[] array, it should be fine?

Someone correct me if I’m wrong, but I think the FETs only do variable power regulation when setup with traditional LEDs, whereas they are just full on or off when used with addressable pixel LEDs because the data is what’s controlling the brightness.

SHARED_POWER_PINS simply tells the board to keep the FETs active so other shared blades have power even if one is turned off.

I could be totally mistaken though. I only know that a test pixel strip straight to battery negative looks the same as an LED pad. :man_shrugging:

1 Like

Not quite accurate.
It introduces ref-counting for the FETs, and the FETs are kept on if any of the blades that use them need them.


longer answer: byte order only matters for the data line, but even that can sometimes be shared by using the ByteOrder<>. At some point I will implement a subblade() with a byteorder argument to make that easier.

1 Like

Thanks so much guys - glad I’m thinking along the right lines.
Blade array built and seems to compile. Build in earnest happens tomorrow all being well. :slight_smile:

BladeConfig blades[] = {
  { 0,
//  Main Blade:
 	WS281XBladePtr<122, blade2Pin, Color8::GRB, PowerPINS<bladePowerPin2, bladePowerPin3>>(),
//  Crystal Chamber:
    SubBlade(0, 0, WS2811BladePtr<2, WS2811_800kHz | WS2811_RGB, bladePin, PowerPINS<bladePowerPin2, bladePowerPin3>>()),
//  Plasma Emitter:
    SubBlade(1, 1, NULL), 
//  Accent Red:
 	WS281XBladePtr<1, blade3Pin, Color8::GRB, PowerPINS<bladePowerPin4>>(),
//  Accent Green:
 	WS281XBladePtr<1, blade4Pin, Color8::GRB, PowerPINS<bladePowerPin5>>(),
CONFIGARRAY(presets) },