* Issue was "fixed" by switching to an ATmega168 instead of ATmega 328 *

Issue was “fixed” by switching to an ATmega168 instead of ATmega 328

Need to check if anyone’s got a suggestion on what to do.
I have a ledstrip with 49 WS2811’s.
Got the strip working with a Chipkit Uno32 and some other library but when trying out this library on arduino all I get is white leds. If I set “NUM_LEDS 5” I get five white leds no matter what the code is.

Anyone had this issue and have found a solution?
I have an open logic sniffer available if any debugging is need to be done…

Code(removed all comments from “FirstLight”:

#include "FastSPI_LED2.h"
#define NUM_LEDS 5
#define DATA_PIN 7
CRGB leds[NUM_LEDS];
void setup() {
       delay(2000);
      FastLED.addLeds<WS2811, DATA_PIN, RGB>(leds, NUM_LEDS);
}
void loop() {
   for(int whiteLed = 0; whiteLed < NUM_LEDS; whiteLed = whiteLed + 1) {
      leds[whiteLed] = CRGB::Red;
      FastLED.show();
      delay(100);
      leds[whiteLed] = CRGB::Black;
   }
}

There’s enough clock drifting on the arduinos (16Mhz isn’t solidly 16Mhz on them) that on some hardware out there, the timings are now off. I have a variety of AVR hardware here, and I’ve got a higher resolution scope showing up later this week and I’m going to tweak/rewrite the AVR code for the clockline-less chips so keep them more in line with, roughly, the middle of the specs so that, hopefully, no matter how much the clock is drifting, either fast or slow, it’ll stay in tolerances - it doesn’t help that i’ve been overly focused on the ARM platform for the past couple months. This is the one major thing that’s keeping a final release of the library at the moment. I’m going to be checking AVR on the arduino mega, the uno, the leonardo, the teensy 2, and the teensy 2++.

Alright. I need to go to work now but I’ll try with a different ATmega tomorrow.

Is it possible to modify the library to just check the 800kHz pulse?

I just had to try my ATmega168 instead of 328 and it worked fine now. Seems like these ws2811’s are very sensitive to timing.

Wickedly sensitive to timing.