Blinkstick Square vs. Nano

Writing a monitoring application in C++… Lots of network stuff going on and most of it is expected to fail from time to time.

I have been digging through the libblinkstick stuff and noticing some documentation missing. I see the single LED vs. indexed LED USB messages and it would seem that there could be multiple indexed LED color assignments sent in a single USB message. But I can’t seem to confirm that with the firmware source.

Is there any documentation on the USB interface?

Questions:

  1. Can I set colors of the 8 LEDs in a single USB transaction? Or do I need to send multiple transactions? The libblinkstick interface seems to not support sending multiple colors at once. It looks like it is reading multiple LED colors at once.

  2. Is there a way of determining the number of LEDs present? Basically, for my application there are only two devices that make sense, the Nano and the Square.

After digging through the client application code I have discovered the technique for identifying the device type and the number of LEDs.
I have also discovered that sending a USB command to the Square device cannot be immediately followed by another USB command - I put in a 10 millisecond delay and that is working properly. Is this expected?

Still wondering about being able to set multiple LEDs in a single USB transaction. After looking at the firmware code it does not appear that this is supported, but there is a lot to dig through there and I can’t say I am a VUSB expert.