Wall ... Head ...

Wall … Head … BANGING! I spent days chasing this, thinking I had an issue with my custom controllers. The past two days I spent completely redoing the design, moving traces around, in case I had electrical interference. Then tonight I decided to move everything back to the test rig I’ve been working on since day one, the one on a breadboard. Much to my surprise the problem persisted. It was working fine before. So what changed?

Then it hit me! The last thing I did with FastLED was abusing a tiny85 and following a suggestion from @Daniel_Garcia I installed the dithering branch of 2.1. Could that be it? I rolled back to 2.0 and the problem disappeared. Re-installed the 2.1-dithering branch and sure enough, there’s the problem again.

Moral of the story: if you’re testing out different versions of the library, REMEMBER THAT when you suddenly encounter a problem.

The pictures below show what the effect is supposed to look like, and what it looks like with the 2.1-dithering branch. The non-dithering doesn’t do this, but there are other odd things happening with one of the effects that’s supposed to cycle through the full hue range, but instead it only cycled between red and white. Another effect has trouble with lower values (some show up, some don’t.)

Yes I know I should not be using neither 2.1 nor 2.1-dithering because it’s not ready for production yet. But, then, how would we find problems? :slight_smile: I’m back on 2.0 and everything works.

Oh, dithering and POV likely would not get along well at all.

Now he tells me. :slight_smile: I’m going to re-install the regular 2.1 branch and continue testing that. It seemed to work okay except for one of the dynamically generated effects. I need to chase that. I also need to run a battery of images from SD through it, hoping not to see problems.

“Never ‘change’ the hardware and the code at the same point in time.”

A rule of thumb I have had for many years…

Hardware needed changing as I need to test the new modules. I just forgot that I had previously changed the library …

Also - re 2.1 - you can disable dithering on the fly when adding leds:

addLeds<WS2811,DATA_PIN>(leds,NUM_LEDS).setDither(DISABLE_DITHER);