I have added a neoq () command to Eval file. Its exactly like the neo command but doesnt update the pixel.
then when I use the neo() command next all the pixels are updated.
This is about 200% or more faster when updating a lot of pixels and appears to be instantaneous.
I dont know if neoq() is a good name for a command however, maybe neoset() ?.
Also would be nice to have a neoshift() command that will shift all the neopixels that amount.
ie neoshift(-1) would move them all down 1. This would allow much faster rolling animations, which at present are not really possible.
neoshift(1) would move them up 1. neoshift(5) would move them up 5. etc.
Thanks for considering this. Im not a good enough programmer to try adding this to Github etc,
Hamish
----------my code- all I did was add a command name and comment out pixels->show()
else if ( fname == F("neoq") && num_args > 0 ) {
// function neo(led no, r, g, b)
if (pixels == NULL)
{
pixels = new Adafruit_NeoPixel(512, 15, NEO_GRB + NEO_KHZ800);
pixels->begin();
}
pixels->setPixelColor(args[0], pixels->Color(args[1], args[2], args[3]));
//pixels->show();
return PARSER_STRING;
}