Thought I would share this with you guys.

Thought I would share this with you guys. Lots of hard work and resources coming together at a really fun event

Unfortunately, it’s running the Adafruit library and not FastSPI since I kept getting flickering colors past ~60 pixels. It seemed to be a timing issue since it was not power related, and the Adafruit library handled it perfectly.
I also needed 4 independent output pins, and the Adafruit library seemed to be more compact, allowing me to use the rest of the 30K memory limit for programming patterns.

Regardless, here is a fairly large scale implementation of addressable RGB LEDs
http://youtu.be/pH-TNXqueXI

Wow! Looks GREAT. (Sadly, I’m on the wrong side of the continent to have easily attended.)

Naturally, I have questions about the pixel flicker, but for now I’ll just appreciate the great work. Looks great.

Thanks, I’d like to figure that one out too. I tried playing with some of the timing settings in the fastSPI library but alas, could not get it to work

I kept thinking it was a power or grounding issue but that hypothesis was busted when I tried a different library

What chipset are the LEDs? And what microcontroller does it use? (And did you have a chance to try the RC4 version of the library?)

Standard WS2811’s, can’t remember the exact chip but I can check later
Arduino Nano v3.1, and I was playing with RC3. Was really pressured on time building this and didn’t get a chance to play with RC4 yet. Maybe I’ll give that a test sometime the next few days

Ah - the point of RC4 was to fix the ws timing problems :). Looks great though, I’m sorry I missed it at the event!

Haha, of course I find out about better solutions to my problems afterwards…
In testing, I really like the fastSPI hsv->rgb converter. Adafruit uses a meh “color wheel” and I ended up having to input my own hsv->rgb converter. It worked, but wasn’t as refined or balanced as the fastSPI one

For future reference, there’s no reason why you couldn’t use the FastSPI_LED code for hsv to rgb conversion and then use some other code for the actual rgb data - there’s no code size penalty with that (if you never use addLeds, none of that code would end up a part of your final build). That’s an example to add to the library… (using the non-led-writing bits of the code to do other rgb related stuff - e.g. when using someone else’s library to write data out, or using something else entirely, e.g. using the HSV library to prepare data for an rgb lcd panel :slight_smile:

Yeah, that was my original thought, to port in your hsv to rgb converter. I did try that initially but got discouraged with the adaptive code needed, and figuring out which are the right files to include (turns out the converter also references other files, and I’m still relatively new at C in general)
I managed to write a lightweight hsv-rgb converter as a simple function in the main file, maybe 10-20 lines of code

You wouldn’t have even needed to port it, you could include FastSPI_LED2.h as well as the neopixel library. Then you could simply do:

CRGB temp(CHSV(x, y, z));
neopixels.set(i, temp.r, temp.g, temp.b);

I will make sure we put this into the examples code. (I also want to write up examples for using FastPin and FastSPI classes to do pin and SPI i/o without necessarily being related to led work, as those classes were also designed to work on their own).

Ah, that’s nice and simple
Does it add extra bulk to the program though? Since I’m effectively loading all of FastSPI but only using the hsv converter

As far as I can tell, the linker does ‘tree shaking’ and only includes in the binary functions that are actually called (and class static storage aka global variables). Since the library has very small global storage requirements, that means basically you only “pay for” what you actually use.

Thanks for the info! Really elucidating to someone new to this type of code

That’s really cool, reminds me of a project i did with ws2801 and dmx512

thanks! got any pictures/videos of your project?