1

I have an arduino UNO hooked up to a neopixel LED strip with 148 lights. Most of the time it works fine, but when I upload a program that changes the brightness frequently, particularly when I increase brightness, only the first 8 LEDs continue responding. The rest get stuck.

Here's an example of the kind of code that sets this issue off. To fix it, I usually have to restart the lights and the arduino and sometimes upload a blank program to the arduino.

I'm pretty new to arduino programming so and help would be really appreciated. Thank you.

#include "FastLED.h"

FASTLED_USING_NAMESPACE 

// FAST LED definitions
#define DATA_PIN    3
#define LED_TYPE    WS2812B
#define COLOR_ORDER GRB
#define NUM_LEDS    148

CRGB leds[NUM_LEDS];
#define DATA_PIN 3 // Output Pin to Data Line on Strip

int fadeAmount = 5;  
int brightness = 0;

void setup()
{
   FastLED.addLeds<LED_TYPE,DATA_PIN,COLOR_ORDER>(leds, NUM_LEDS).setCorrection(TypicalLEDStrip);
}

void loop()
{
   for(int i = 0; i < NUM_LEDS; i++ )
   {
   leds[i].setRGB(0,255,0);  
   leds[i].fadeLightBy(brightness);
  }
  FastLED.show();
  brightness = brightness + fadeAmount;
  // reverse the direction of the fading at the ends of the fade:
  if(brightness == 0 || brightness == 255)
  {
    fadeAmount = -fadeAmount ;
  }   
  delay(20);
}
1

After doing more research and getting feedback on the Adafruit forum here, it appears that the problem was a cracked solder joint. I managed to get access to the strip and wiggled it a little and the problem has gone away. The recommendation is to reflow the joint by adding a little solder over the data connection between where the LEDs stop being responsive.

| improve this answer | |
  • If it's only the solder, you can indeed resolder/reflow it. At one of my strips, the solder-joint ripped out some of the strip, then it will be best to cut out the pixel completely. You can easily re-attach them (without the single pixel). – Paul Mar 4 '16 at 7:27
  • You might indeed also check the heat generation, if it becomes hot enough to reflow the solder, it won't last long. – Paul Mar 4 '16 at 7:28
  • I replaced the pixel and the set up appears to be working without issue now. – Lorenz Mar 16 '16 at 2:16
1

It is almost certainly a power issue. The Adafruit page about one of those types of Neopixels says:

Don't forget, with 256 LEDs, you could use over 15A of current if you turn on all the LEDs on to white (which we really do not recommend because we don't think the flex PCB can handle that much current). Try to keep the current draw at under 5A ...

Increasing the brightness increases the current drawn. Do you have a heavy-duty power supply? Are the connecting leads sufficient for (say) 8 amps of current?


New information based on comments made

Based on comments by Lorenz I now think it is more likely to be that they are overheating.

I have the strip embedded in a picture frame with epoxy resin over it.

That makes it difficult for the ICs to cool down, and LEDs generate heat. If you search for "neopixels heat" you find quite a few matches. Some suggestions made are to use a heat sink or a fan. If this isn't practical for you, then running at a lower PWM rate (ie. not as bright) and not as saturated colour, could help keep the heat down.

You don't want to "cook" one of the early pixels, because each one has to pass the data on to the next one in sequence, so if you lose an early one, you lose everything after it, particularly if you can't get at it to replace one.


Postscript regarding heat

I have been testing a NeoPixel with a temperature sensor. Displaying full white (255/255/255) it has reached about 44°C. So clearly it warms up. However this is in the open air with just some sticky-tape holding the sensor onto the LED. According to the spec the chip can operate at up to 80°C, so this is within range.

However if the whole thing was sealed in epoxy, then the heat being generated would have much less chance of escaping into the ambient air, and thus would be likely to get a lot hotter.

| improve this answer | |
  • I'm pretty sure I'm good on the power supply side. I have a 5V 10A supply hooked up (adafruit.com/products/658). – Lorenz Feb 26 '16 at 0:01
  • What do you mean by are the connecting leads sufficient for (say) 8 amps of current? – Lorenz Feb 26 '16 at 0:01
  • I'm using basic jumper wires (adafruit.com/products/1957) connected through a 2.1mm DC barrel jack and a mini breadboard. – Lorenz Feb 26 '16 at 0:04
  • I see. From that page Each wire is 28 AWG (7 strands @ 36 AWG) and from Wire Gauge and Current Limits Including Skin Depth and Strength 28 AWG wire has a maximum of 1.4 amps for chassis wiring. Thus I suspect your wiring cannot carry the load. Try measuring the voltage on the Neopixel end (ie. at the end of the wire). I am guessing that, when the brightness is up, you won't be getting 5V there. – Nick Gammon Feb 26 '16 at 0:15
  • Nick - I've rewired the neopixel wires to go directly to the 5v power supply without any jumper cables in between. I'm still getting the problem. I have the strip embedded in a picture frame with epoxy resin over it. I cannot actually get to the other end of the strip to measure the voltage there. Is it possible that the epoxy enclosure is causing the LED to overheat. Usually the strip works fine for a few minutes (if I haven't plugged it in in a while) and then craps out. Any thoughts on how I might be able to fix this without tearing up the frame? – Lorenz Feb 29 '16 at 18:43

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.