JP_Roy
(JP Roy)
May 29, 2015, 7:34pm
1
Ok found something strange…
Using a Arduino UNO with Arduino 1.0.6 FastLED3.1 running on a PC Win-7
My setup has 8 strings of 25 WS2812b each driven by a seperate pin.
Here’s my sketch, reduced to a minimum that exhibits the strange effect…
#include “FastLED.h”
#define NUM_STRIPS 8
#define NUM_LEDS_PER_STRIP 25
CRGB leds[NUM_STRIPS][NUM_LEDS_PER_STRIP];
void setup() {
FastLED.addLeds<NEOPIXEL, 11>(leds[0], NUM_LEDS_PER_STRIP);
FastLED.addLeds<NEOPIXEL, 12>(leds[1], NUM_LEDS_PER_STRIP);
FastLED.addLeds<NEOPIXEL, 13>(leds[2], NUM_LEDS_PER_STRIP);
FastLED.addLeds<NEOPIXEL, 7>(leds[3], NUM_LEDS_PER_STRIP);
FastLED.addLeds<NEOPIXEL, 8>(leds[4], NUM_LEDS_PER_STRIP);
FastLED.addLeds<NEOPIXEL, 9>(leds[5], NUM_LEDS_PER_STRIP);
FastLED.addLeds<NEOPIXEL, 10>(leds[6], NUM_LEDS_PER_STRIP);
FastLED.addLeds<NEOPIXEL, 6>(leds[7], NUM_LEDS_PER_STRIP);
}
void loop() {
for(int strip = 0; strip < NUM_STRIPS; strip++) {
for(int pixel = 0; pixel < NUM_LEDS_PER_STRIP; pixel++) {
leds[strip][pixel] = CHSV(63,255,8);
}
}
FastLED.show();
}
The problem I get is that odd and even numbered pixels are visibly not the same !?
Also Odd numbered strips even numbered pixels are the same as the Even numbered strips odd numbered pixels.
Can anybody else reproduce this ?
I suspect you’re seeing the effect of dithering, try disabling it.
(Seriously, dude, get yourself onto a teensy 3.x!)
Also, when you say “visibly not the same” - can you elaborate a little bit more on what you mean - that’s not a terribly informative comment.
JP_Roy
(JP Roy)
May 29, 2015, 7:46pm
5
Gotcha (again) on the Teensy but I just want to do something useful and colorful with my couple of remaining UNO,s
I agree with the lack of info but expect that a picture is worth a thousand words and thought the setup would be easy for many here!
Just tried adding the line…
FastLED.setDither(0);
It works but my brightness level must be set to at least 16 to get any light output.
JP_Roy
(JP Roy)
May 29, 2015, 7:51pm
6
With the line…
leds[strip][pixel] = CHSV(63,255,8);
I get 1/2 of my pixels off and 1/2 of my pixels greenish colored. Ther’s a touch of red in there.
I get similar effect with many different hues and brightness.
How are you powering the leds and how many leds are physically in each strip?
(also, free time isn’t something that I have a lot of these days so vague problem descriptions just waste my time)
JP_Roy
(JP Roy)
May 29, 2015, 8:18pm
9
I appreciate your time and certainly do not expect you to jump on this so quickly.
Actually just checking to see if anybody else could reproduce this.
Setting the dithering OFF fixed it.
I also understand more the problem with low brightness levels on HSV while maintaining the specific hue.
My LEDs are powered by a small 7 Amps PSU.
As mentioned in my initial post, I have 8 strips each with 25 WS2812b.
Still I suspect there is an issue with dithering if it behaves differently with odd and even pixels !
And I promise, after this assembly, no more UNO’s or MEGA’s… Promise!!!
Dithering intentionally alternates it’s effect on adjacent pixels to minimize a pulsing appearance across the entire set of leds.
JP_Roy
(JP Roy)
May 29, 2015, 9:07pm
11
For now, with my current usage, I am satisfied with simply switching dithering off.
This odd behaviour would only be apparent in a static display and though I found it really odd looking, is it worth placing an issue in GitHub ?
No, there’s already a plan to disable dithering when the frame rate is below a certain amount.
JP_Roy
(JP Roy)
May 29, 2015, 9:13pm
13
In my case, the frame rate had to be over 100 fps for sure… 200 WS2811 and minimal code and no delays !?