The NeoPixel Gas Mask, as presented by the Ruiz Brothers on the Adafruit web site, wires both LED “data in” ports to the GEMMA’s “data out” port. This means that lighting up “pixel number 1” lights up two pixels: pixel number 1 on the 16 LED ring, and pixel number 1 on the 24 LED ring.
Two important notes: the pixel numbers actually start with zero, and the pixel numbers go clockwise on all NeoPixel rings except the 16-LED ring, which go counter-clockwise.
We wanted to be able to control all of the LEDs individually, and this is very easy to do. Instead of wiring both NeoPixel “data in” ports to the GEMMA’s “data out” port, we wired only the 24-LED ring’s “data in” to the GEMMA “data out”, and then wired the 16-LED ring’s “data in” to the 24-LED ring’s “data out”. This essentially “cascades” the 16-LED ring behind the 24-LED ring, making the first pixel in the 16-LED ring be pixel number 24!
Why 24? The pixels on the 24-LED ring are “first out” of the GEMMA, and are numbered 0 to 23. This makes the 16 pixels on the later-in-the-setup 16-LED ring numbered 24 to 39. All for a total of 40 LEDS numbered 0 to 39.
Now you can turn on a pixel on the inner ring without turning on a pixel on the outer ring, and vice versa. This makes it possible, for example, to light up a single LED at a time on outer ring going in a circle… and then when you reach the starting point, jumping into the inner circle and having a single LED going around that… and then back to the outer circle.