@Chris-Stratton I took the pins numbers from the documentation for the Omega 2, so the page is probably not up-to-date ! So, thanks for pointing me in the right direction ! I now can drive my led strip ... but only the first 16 values ! If I do : values = [0] * 16 # 16 or any lower number values[5] = 255 spi.write(values) time.sleep(0.5) values[5] = 0 spi.write(values) time.sleep(0.5) I can see the led flashing. But if instead of 16, I use a bigger number, I get : onion-spi:: Trasferring 0x00, 17 bytes ERROR: SPI transfer failed and the led doesn't blink anymore (I have way more than enough rgb leds, and they all work, so it shouldn't be a problem from this side). Also, I only switch one ON at a time, not to draw too much current. So I told myself that maybe the Omega wasn't able to send more than 16 bytes, so I tried to directly send values to the pixels using their addresses, but this method doesn't work as expected (as I expected, at least). I get : spi.writeBytes(5, [255, 0, 0]) # does the same as this : spi.write([5, 255, 0, 0]) # instead of being roughly an equivalent to this : spi.write([0, 0, 0, 0, 0, 255, 0, 0]) # or more exactly that wouldn't set previous values to 0 Am I missing something about SPI in general, or is there something about Omega's implementation? Adafruit's implementation for SPI doesn't contain any writeByte() equivalent, only a write(), so I can't really compare the way the bits are assigned...