Many WS2812B strips not working

Hi all,
I am having problems with WS2812B strips that I recently purchased. The first two systems I built work perfectly, but since then the next strips have not been able to turn on at all, and if . I can sometimes get a single LED light to turn on, and sometimes up to 10 but besides that nothing.

I have two code examples, the first one is designed to run just a single led strip, the second code is for two strips connected to the same arduino clone. There is a 330ohm resistor between the data line and the arduino.

Like I said, I have been able to run two sets of strips off of this code, so maybe it is the Arduino (i ran the blink test and it worked) that I am using or did I get a batch of defective strips? Seems unlikely...

Any information would be amazing I have been hitting my head against the wall for weeks trying to figure out what is wrong.

CODE #1

[code]
#include <FastLED.h>
#define LED_PIN     7
#define NUM_LEDS    153
#define MAX_BRIGHTNESS 50
CRGB leds[NUM_LEDS];

void setup() {
  FastLED.addLeds<WS2812B, LED_PIN, GRB>(leds, NUM_LEDS);
  FastLED.setBrightness(0);
  for (int i = 0; i <= 154; i++) {
    leds[i] = CRGB(0xFFFFFF);
    FastLED.show();
    delay(0); }  
  }

void loop()    {
  while(true){
    brightnessUp(50);
    delay(100); //time that it stays at the max time 
    brightnessDown(50);
    delay(10); //time that it stays off
      }
    }

void brightnessDown(int time){
  for (int i=MAX_BRIGHTNESS; i >= 0; i--){
    FastLED.setBrightness(i);
    FastLED.show();
    delay(time);
    }
   }
  
void brightnessUp(int time){
  for (int i=0; i < MAX_BRIGHTNESS; i++){
    FastLED.setBrightness(i);
    FastLED.show();
    delay(time);
    }
  }

CODE #2

[code]
#include <FastLED.h>
// A, 0 refers to the side leds, B, 1 refers to the background ones
#define LED_PIN_A     7
#define LED_PIN_B     8
#define NUM_LEDS_A    154
#define NUM_LEDS_B    125
#define LEDS_A_BRIGHT 255
#define LEDS_B_BRIGHT 255
CRGB leds_A[NUM_LEDS_A];
CRGB leds_B[NUM_LEDS_B];
CLEDController *controllers[2];
;

void setup() {
  controllers[0] = &FastLED.addLeds<WS2812,LED_PIN_A>(leds_A, NUM_LEDS_A);
  controllers[1] = &FastLED.addLeds<WS2812,LED_PIN_B>(leds_B, NUM_LEDS_B);
  fill_solid(leds_A, NUM_LEDS_A, CRGB::LightCoral);
  controllers[0]->showLeds(LEDS_A_BRIGHT);
  // draw led data for the second strand into leds
  fill_solid(leds_B, NUM_LEDS_B, CRGB::Bisque);
  controllers[1]->showLeds(LEDS_B_BRIGHT);
}

void loop() {
  // draw led data for the second strand into leds
  fill_solid(leds_B, NUM_LEDS_B, CRGB::Bisque);
  controllers[1]->showLeds(LEDS_B_BRIGHT);
  brightnessDown(100);
  delay(100);
  brightnessUp(100);
  delay(100);
  }

void brightnessUp(int time){
  int i = 0;
  while(i < LEDS_A_BRIGHT){
    controllers[0]->showLeds(i);
    i++;
    delay(time);}}
void brightnessDown(int time){
  int i = LEDS_A_BRIGHT;
  while(i > 0){
    controllers[0]->showLeds(i);
    i--;
    delay(time);}}

OK, first things first.

You need to go and read the forum instructions so that you can go back and modify your original post (not re-post it) - using the "More -> Modify" option below the right hand corner of your post - to mark up your code as such using the "</>" icon in the posting window. Just highlight each section of code (or output if you need to post that) from the IDE and click the icon.

In fact, the IDE itself has a "copy for forum" link to put these markings on a highlighted block for you so you then just paste it here in a posting window. But even before doing that, don't forget to use the "Auto-Format" (Ctrl-T) option first to make it easy to read. If you do not post it as "code" it can as you now see, be variously garbled and is always more difficult to read due to the font.

It is inappropriate to attach it as a ".ino" file unless it is clearly too long to include in the post proper. People can usually see the mistakes directly and do not want to have to actually load it in their own IDE. And even that would also assume they are using a PC and have the IDE running on that PC.

Also tidy up your blank space. Do use blank lines, but only single blanks between complete functional blocks.

arduino.jpg

Thank you very much Paul__B for the needed etiquette primer,

Now is there anything especially wrong with this code or my wiring?

Could not having the capacitor be impacting this even though it not having it wasn't a problem on my previous build??

Thanks again for reading!

Hmmm.

Bogus UNO but that should not be a problem, you can have problems driving the LEDs from an ESP8266 due to logic voltage but an Arduino is fine.

Vaguely possible that the lack of capacitor could be a problem as there is a long cable between power supply itself (which has a capacitor in it) and the LED strip. Another concern is leaving wires looping around - both the two power wires and the data wire and ground should always be kept together as a bundle.

I haven't used these codes much, so not commenting on that at present. If it works on other strips - same Arduino device, same code - then it should work for these strips unless they are a different type of poor quality "clone".

Hi all,
Finally came back around to this project and was able to find a solution.

I think that the wires looping around were the problem like Paul_B suggested.

I installed new shorter wires and prevented them from looping around by adding electrical tape.

I also added another wire to attach to the 5v pin on the arduino to the 5v pad on the ws2812bs.

in your second sketch you not have the full led type

void setup() {
  controllers[0] = &FastLED.addLeds<WS2812,LED_PIN_A>(leds_A, NUM_LEDS_A);
  controllers[1] = &FastLED.addLeds<WS2812,LED_PIN_B>(leds_B, NUM_LEDS_B);
void setup() {
  controllers[0] = &FastLED.addLeds<WS2812B,LED_PIN_A>(leds_A, NUM_LEDS_A);
  controllers[1] = &FastLED.addLeds<WS2812B,LED_PIN_B>(leds_B, NUM_LEDS_B);