Hi team-
I’m continuing my journey to get a SLB working, and today managed to spend some time on a WS2812B LED strip plugged into the RING
light port. (FWIW, the first two strips linked from the SLB Technical Manual now 404 on Amazon.ca…) It seems to me that a WS2812B should behave the same as a WS2812, but please correct me if this isn’t the case.
I’m using a 30 LED strip for now, but noticed that only the first 4 of the LEDs track the status color of the SLB, the rest remain white.
If I change the $664
parameter to 8
, only 8 of the 30 LEDs light up as expected, so it does seem like some aspect of the LED addressing is working correctly. In this configuration, only the first 1.5 LEDs follow the status color (it looks like the 2nd is maybe getting two of the three RGB channels worth of data or something?), the rest similarly remain white. Running M356 P1 Q2
to turn the ring lights off turns off all channels of LED 1, but only red & blue channels of LED 2. The remaining 6 LEDs are on full white. Changing to any other value in $664
will power up that number of LEDs, with some other variation of how many might actually respond to the status color.
I had a quick skim through the neopixel code in the grblHAL source, but didn’t see anything that immediately jumped out at me as an issue aside from a weird special-casing of neopixel1_out
vs neopixels1_write
.
Also the strip seems to be in a fairly non-sensical state prior to homing completing, only lighting up the first few LEDs. The first LED tends to reflect the machine state (RED) when it is alarmed coming up and then the first LED changes to BLUE during homing, the rest are gibberish. It is not clear to me what this is intended to indicate.
Has anyone else gotten this to work as expected? It sort of seems to work if I only enable 1 LED, maybe because of neopixel1_out
instead of neopixel1_write
?
Please let me know if this is better filed against grblHAL.
Thanks for considering!