WS2812B neopixel strip extremely slow

Posted on
  • I have an Espruino Wifi which I've used with WS2811 which performs really well. I've been testing a new neopixel strip of 144 LEDs but they are painfully slow like even with an interval of 10ms they barely change colour every half second. The brightness and colours are fine, just updating too slow.

    I've also tried to power the strip separately from the Espruino Wifi but that also makes no difference.

    I've been using the pattern examples on the main Espruino site to test my hardware. If there are any tips to improve the speed I'm all ears.

  • With 144 LEDs it could be a bit slow - are there particular effects you're having trouble with?

    There's a Uint24Array now which is pretty nifty - you can set a whole LED at once with it, which should speed things up quite a lot...

    var arr = new Uint24Array(25*3);
    
    function getPattern() {
      pos++;
      for (var i=0;i<arr.length;i++)
        arr[i]=E.HSBtoRGB((i+pos)*0.01,1,1);
    }
    
    function onTimer() {
      getPattern();
      require("neopixel").write(B15, arr.buffer);
    }
    
    setInterval(onTimer, 50);
    
  • Thanks Gordon, this does indeed speed things up a little bit.

  • Also worth adding that if you have the LEDs arranged as a grid, you can use Graphics.createArrayBuffer(width,height,­24) to get a graphics instance where you can do lines/text/etc

  • Post a reply
    • Bold
    • Italics
    • Link
    • Image
    • List
    • Quote
    • code
    • Preview
About

WS2812B neopixel strip extremely slow

Posted by Avatar for Coder2012 @Coder2012

Actions