I've gotten some great info from this topic, (and others) so I hope its okay that I necroposted. I'm starting down this path myself. Following all the great tips I can control my LEDS individually (mostly) using fastspi, but in seeing the last few posts I know I'm running up against my next obstacle soon
That is because the ethernet add-on that you're using is more than likely also using the SPI bus.
For my own project last year, I went the bit-bang route. I only had two strings of 20 LEDs each. I used the analog pins (of all things) to control the strings, A0 and A1 for one, and A2 and A3 for the other.
Note: bit banging IS slower than SPI, so depending on how fast you plan on sending data to the LEDs, bit-banging them may not work for you. For me it was plenty fast still.
Could you go into a bit more detail about bitbanging these pixels? Like most people, I'd like to write a function that will do most of the lifting and let me do changeLED(LED,'blue'); Since I'll be using the standard Ethernet shield on 13, I'll need a way to go without fastSPI. I'm hoping my project will accept http requests to turn a pixel a certain color, and then another digital out to set of an alarm (when a project needs attention) So I dont think it needs to be fast, the colors wont change rapidly and will stay solid lit.
Should I just look at a basic spi library? https://github.com/adafruit/Adafruit-WS2801-Library/blob/master/examples/strandtest/strandtest.pde
I'm at work and cant check that out, but it seems close to what I'll need. I don't have the adafruit string, but I assume most 2801 will be similar
You also said
Just set everything to white first (you don't need an array for that), then cycle through the BlueLEDgroup array and turn those blue. When you're done with that, then you can call FastSPI_LED.show() which will turn the LEDs on.
Even though I'll be moving off fastspi after your advice, I'm curious what the single command is to set the whole string white