Too many neopixels?

Hi, I have a ring of 60 neopixels, its 4 boards of 15 leds each in the shape of a 90 degree arc.
The last quarter doesnt work so well. If I restrict the brightness to 0x111111 it works fine, but if I let it be full brightness then often I get no lights at all in that quarter [the other quarters work fine]. I'm trying to decide if this is too many neopixels, or the soldering is too bad, or the final arc is faulty. Would be interested to know what is the most likely cause? I have tried powering it from a USB port on my PC and from a battery pack that states max output is 2Amps. Same result everytime. I cant easily switch out the arcs as soldering them together is a real nightmare for me, super tiny. Appreciate any thoughts, this is my 1st time working with circuits to be honest. Cheers, Richard.

Voltage drop along the length of the strip of LEDs could be a culprit. Try powering the strip from both ends

Also worth checking the soldering and the gauge of the wire feeding power to the strip

2 Likes

Thanks, Ill try connecting the power and ground to the end of the strip as well as the start.
When you talk about the gauge of the wire, does it need to be 'fatter' or 'thinner' to be best? It's multistranded but maybe not all the strands are nicely in the solder.
Appreciate you taking the time to reply, thank you :slight_smile:

Fatter is generally better because it will give you less of a voltage drop and can handle more current. Sometimes if the target cannot handle the size it becomes a problem. Your strips have the problem that the power conductors on them will not handle a lot of extra current.

for the power lines fatter is better. The data line should remain thin.

Also have you got a large capacitor (about 1000uF) between power and ground, at both ends where you feed in the power?

That is a very odd brightness level, equal to a decimal value of 1118481.
Normally brightens values are from 0 to 255.

Can you post the code you are using please.

maybe the OP meant 0b111111 which equals 63. On the other hand the brightness value is an 8-bit value, so 0x111111 = 0x11, which comes down to 17

Maybe he did, but that is not what he wrote.

This is why we need to see his code.

Using the USB is useless and you would not expect it to work. However using a battery pack would be expected to work - if you wire it correctly, which sounds like you are not. So we need to see a schematic as well.

Hi, thanks for thinking about my problem. Here is my code:

In the setup...

    FastLED.addLeds<NEOPIXEL, DATA_PIN>(leds, NUM_LEDS);  // GRB ordering is assumed
    FastLED.setMaxPowerInVoltsAndMilliamps(5, 2000);
    FastLED.setCorrection(0x111111);

I chose 0x111111 as I understood this would reduce the brightness and therefore power consumption equally for all colours?? Without this line I get lots more randomness.
Also I notice with this line included the system works better [6 chasing LEDS work perfectly].
But when I cross some threshold trying to switch on all leds, LEDs on the final arc misbehave. Here is my loop code:

for (int i=0;i<60;i++)
  leds[i]=0;
FastLED.show();   // works ok
delay(2000);
for (int i=0;i<60;i++)
  leds[i]=0xFF0000;
FastLED.show();   // works ok
delay(2000);    
for (int i=0;i<60;i++)
  leds[i]=0x00FF00;
FastLED.show();   // works ok
delay(2000);
for (int i=0;i<60;i++)
  leds[i]=0x0000FF;
FastLED.show();   // works ok
delay(2000);
for (int i=0;i<60;i++)
  leds[i]=0xFFFFFF;
FastLED.show();   // works ok
delay(2000);
for (int i=0;i<60;i++)
  leds[i]=0;
FastLED.show();   // leaves on some random different coloured lights on final piece of circle everytime
delay(10000);

Really odd to me that the 1st 'turn all lights off' code works and is identical to the final one which leaves some lights on. I haven't tried including capacitors yet so I think that's my next step, thank you for the suggestion. I need to go and buy some first. Schematically I only connect 3 wires from an esp32 chip, VIN, GND and D13 to data. My battery pack has a USB 2Amp output so thats how I drive my ESP32. Thanks again.

NO.

Well that is wrong to start off. An ESPxx chip will only produce a 3V3 signal, and a Neopixel needs a signal equal to the supply, normally 5V.

I did ask for a schematic, this shows where every wire goes, in an unambiguous way. Word salad does not cut it with electronics, a schematic is the way you communicate what you have.

Without being able to tell us exactly what you have then you are just wasting every bodies time.

As to the code well!
Please post ALL your code in one continuous piece. Again we are missing vital things. For example you have no setup function. We need to see it all so we can see if there are any mistakes. For example the mistake you already made about using 0x111111 to control the brightness.

You also need the ability to be able to take advice and not stick doggedly to the "it works so I am right" attitude. Remember it is you who are asking the questions so stop thinking like this. If you are right about everything then you wouldn't be here would you?

So let's try again.
Please can you post a schematic and your code.

eh, well in some ways, yes. Though also No.

You see

FastLED.setCorrection(0x111111);

is not the same as

FastLED.setBrightness(0x111111);

Also it is not meant to do the same thing.
It is meant to correct any color offsets that may exist within different types of ledstrip.

void CFastLED::setCorrection(const struct CRGB & correction) {
    CLEDController *pCur = CLEDController::head();
    while(pCur) {
        pCur->setCorrection(correction);
        pCur = pCur->next();
    }
}

And although the actual function is somehow nested, and the OP instead of using an actual CRGB struct just used a 24-bit value in HEX representation, the syntax is more or less correct. Still if the individual colors are actually corrected with the same value (0x11) then the use of the function is not correct and setBrightness() is the function that should be used.

Totally !! Thanx Mike !!

Now this particular part is all rather trivial, since

That has already been pointed towards, and a lack of power in general may also be the cause, fiddling about the code without the wiring in both schematic and in pictures seems a little pointless.