Hi All! I have a fairly large build in progress and recently realized there

Hi All! I have a fairly large build in progress and recently realized there are parallel output capabilities for the due and FastLED. I’ve been trying to set up a simple test to make sure it was all working, but I haven’t been able to get it to run properly. I have successfully run the ParallelOutputDemo in the examples, so I know that parallel output works to a degree.

My code is very simple, I’m just trying to fill each of my strips with a different color using the fill_solid method and reading in a color from a palette. However, when I power on my setup the LED’s all illuminate one color and the power cables get hot very quick. What am I missing? Can I not use methods like fill_soid or fill_palette with the parallel output array? Thanks in advance for taking a look!

#include<FastLED.h>

#define NUM_LED 90
#define NUM_STRIPS 8

CRGB leds[NUM_STRIPS * NUM_LED];

// WS2811_PORTD: 25,26,27,28,14,15,29,11
//

const CRGBPalette16 test(CRGB::Red, CRGB::Blue, CRGB::Orange, CRGB::Purple, CRGB::Yellow,
CRGB::Green, CRGB::White, CRGB::Pink, CRGB::Black, CRGB::Black,
CRGB::Black, CRGB::Black, CRGB::Black, CRGB::Black, CRGB::Black, CRGB::Black
);

void setup() {
LEDS.addLeds<WS2811_PORTD, NUM_STRIPS>(leds, NUM_LED).setCorrection(TypicalLEDStrip);
LEDS.setBrightness(32);
}

void loop() {

for (uint8_t ss = 0; ss < NUM_STRIPS; ss++) {
fill_solid(&(leds[ss * NUM_LED]), NUM_LED, ColorFromPalette(test, ss * 16, 32, LINEARBLEND));
}

LEDS.show();
LEDS.delay(10);
}

What kind of power supply do you have on your setup? 720 LEDs on is going to draw a bunch of power if you aren’t brightness limiting - and voltage drop is going to mess with the chip’s timing enough to treat 0’s as 1’s which will just lead to more attempts brightness and more power draw.

We have a 5V 60A power supply for the final build which uses significantly more LEDs. It’s a bit overkill for this test, but the FastLED parallel output demo ran totally fine with the current setup. We’ve been very mindful of grounding everything properly and sending power where needed to account for voltage drops across our leds. The part that confuses me, is the only difference I can see in my code and the FastLED example is that I use fill_solid instead of assigning the pixels individually. I can’t image this would be the issue but I am pretty stumped at this point in time.

You should be able to use fill_solid, fill_palette, or anything else with parallel output. If the wires are getting hot that sounds like a power and/or wiring issue. Can you give more detailed info on your test setup? Are you actually testing with 720 leds or something less? How are you providing power to each of your 8 strips? What size wire are you using?

@marmil Certainly! We are testing with 8 90 led strips, one on each of the 8 pins reserved for WS2811_PORTD. Each of the strips is being powered from our 5V 60A power supply with 12 or 14 gauge wire (I can’t remember right now) through a breadboard which acts a hub for all 8 of the strips power. The heating issue isn’t really a problem now though since we’ve stepped up from 24 gauge wire to 12 or 14.

@Daniel_Garcia as far as the brightness limiting is concerned, what am I doing differently in my code than the ParallelOutputDemo? Like I’ve said, this demo runs beautifully on this setup with none of these seemingly power related issues, so I am missing something about limiting the brightness.

I was thinking ColorFromPallete would keep me from sending the colors at full brightness to the strips. Is this incorrect?