B
@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...