Getting a baseline reaction to the Witch Lights from cats.
This is with the acceleration and scanner animation code from last year.
Thinking out loud
Getting a baseline reaction to the Witch Lights from cats.
This is with the acceleration and scanner animation code from last year.
One of the problems I anticipated facing while on-site with the Witch Lights is the failure of a NeoPixel strip. Because of the architecture of the lights, a bad strip will take out not just its five meter section of LEDs, but also all strips plugged in downstream.
As one diagnostic tool in my on-site kit, I have this Arduino Uno, which is linked up to one of the waterproof 4-pin connectors that the Witch Lights pixel strips have on each end. To use it, you simply plug one end of a NeoPixel strip into it, and plug in the battery.
It runs a color test pattern down the strip, which tells you that the strip works, and also that it doesn't have any bad pixels. So that's what I put it together for.
Right now, though, it's coming out because I'm going to plug it into this new 5-meter pixel strip, which will be used for my workshop test rig.
Here we are, about to upgrade the test rig on my workbench.
The current build of witchlights-fastled.ino does not run on the Arduino Mega. It gives memory errors. I don't want to get bogged down with memory optimization at this point in the game. So I'm replacing it with an Arduino Due.
The Due I'm installing is a drop-in replacement module for the control board of the Witch Lights. That way, I'm testing on the exact hardware that will be in production.
The LED strip is a five-meter WS2812B addressible LED strip, with 30 LEDs/meter. Just like the Adafruit NeoPixel strips I used in production, except without the waterproofing. Which won't matter in my home workspace, I sincerely hope.
And that was fast.
The test rig is in place, and the WS2812B strip works fine.
Next up is creating a new Sprite animation subclass, editing its scanner
routine to map to the animation that I was working on the other day.
Speaking of which, it looks like this exported into the arduino sketch format:
// 1234567890123456789012345678901234567890123456012345678901
strcpy(afc_timing-test, "123456788 ");
strcat(afc_timing-test, "1234567888 ");
strcat(afc_timing-test, " 1234567888 ");
strcat(afc_timing-test, " 1234567888 ");
strcat(afc_timing-test, " 123456677888 ");
strcat(afc_timing-test, " 1223344556667788 ");
strcat(afc_timing-test, " 111122233344556667788 ");
strcat(afc_timing-test, " 11111222233344556667788 ");
strcat(afc_timing-test, " 11111222333444555666788 ");
strcat(afc_timing-test, " 1111112223344556788 ");
strcat(afc_timing-test, " 11111223456788 ");
strcat(afc_timing-test, " 11123456788 ");
strcat(afc_timing-test, " 1123467831 ");
strcat(afc_timing-test, " 12468531 ");
strcat(afc_timing-test, " 11386421 ");
strcat(afc_timing-test, " 1287543211 ");
strcat(afc_timing-test, " 18865432211");
strcat(afc_timing-test, " 886443211 ");
strcat(afc_timing-test, " 88765431 ");
strcat(afc_timing-test, " 4887654321 ");
strcat(afc_timing-test, " 4886421 ");
strcat(afc_timing-test, " 138831 ");
strcat(afc_timing-test, " 138831 ");
strcat(afc_timing-test, " 138831 ");
strcat(afc_timing-test, " 138831 ");
strcat(afc_timing-test, " 138831 ");
So that's some progress. Taking a break now.