Half of WS2811 LEDs not working?

Status
Not open for further replies.

jcharney

New member
I did a project last year that had 8 LED strips fed by a Teensy 3.2 + OctoWS2811 shield beautifully. I am adapting the light fixtures for a new project now, and seem to have a problem where only half of the LEDs (strips 1-4) are driven at once from the OctoWS2811 shield (each set of 4 has its own 12V, 1A power supply). This problem manifested while adapting new code, but also manifests with the old code and BasicTest sketch included with the OctoWS2811 Arduino library. I didn't change anything in the programming or the wiring, it just sat in storage.

Things I've tried to troubleshoot so far:

Tried different power supplies. Either power supply I'm using works to drive the first strip.

Tried feeding the jack for strips 5-8 into strips 1-4. Strips 1-4 now have the part of image that 5-8 should be displaying. So, there is no fault between the Teensy + OctoWS2811 shield.

Made sure strips 5-8 weren't burnt out or faulty. I was able to test them with the data from 1-4.

Checked the strips to make sure they are receiving power. A voltmeter shows they're getting full voltage at the contact point between my wiring and strip.

Tried making an new CAT-6 breakout. Used a fresh cable to break out the signals from the shield's bottom CAT-6 jack, wired the same way as the old one. Still no good.

Any ideas???
 
It’s hard to say without seeing some code. It’s seems you ruled out some possible hardware issues which is good.
 
It’s hard to say without seeing some code. It’s seems you ruled out some possible hardware issues which is good.

Yeah, I understand. Here's the code I'm intending to use, adapting Lucas Morgan's TouchDesigner -> serial port system:
Code:
// Lucas Morgan - www.enviral-design.com //

#define USE_OCTOWS2811
#include<OctoWS2811.h>
#include<FastLED.h>

// ------------ Change these as neccesary -----------//
#define NUM_LEDS_PER_STRIP 24
#define NUM_STRIPS 8

CRGB leds[NUM_STRIPS * NUM_LEDS_PER_STRIP];
const int numOfBytes = NUM_LEDS_PER_STRIP * NUM_STRIPS * 3;
const int numLeds = NUM_LEDS_PER_STRIP * NUM_STRIPS;
char inputBuffer[numOfBytes];

// ------------------- Setup -------------------- //
void setup() {
  LEDS.addLeds<OCTOWS2811>(leds, NUM_LEDS_PER_STRIP);
  LEDS.setBrightness(255);
  delay(500);
  Serial.begin(115200);
  Serial.setTimeout(500);
  LEDS.show();
}

// ------------------- Main Loop -------------------- //
void loop() {
  if(Serial.available() > 0) {
    Serial.readBytes(inputBuffer, numOfBytes);
  }
      for (int j = 0; j < numLeds; j++) {
        leds[j] = CRGB(inputBuffer[(j*3)],inputBuffer[(j*3)+1],inputBuffer[(j*3)+2]);
      }
      LEDS.show();
}

Also tried the "BasicTest" code included with the OctoWS2811 library. Same behavior.
 
Can you use the teensy on a bread board and manually connect the octo pins to the shield and rule out the level shifter as the issue? We can make sure each octo teensy pin is working using the known working port off the level shifter.
 
Well, I feel dumb. It turns out one of the test leads I was using to connect my power supply to the strips was disconnected within the clip's rubber jacket –*d'oh! Replaced it and now I have 8 LED strips rendering stuff out of TouchDesigner in perfect working order.

Thanks for the quick help anyway :)
 
Status
Not open for further replies.
Back
Top