Hello, I am working on a large outdoor project using Adafruit's DotStar strips,

Hello,
I am working on a large outdoor project using Adafruit’s DotStar strips, FastLED 3.0, Arduino UNO, Arduino 1.6.4, and OSX 10.10.2.
For off-site testing purposes I have been using a NeoPixel strip. I wrote the following code and tested it using the NeoPixels with great results. It behaved exactly as expected. When I tried to upload the same code - slightly modified for the APA102 chipset - I got absolutely nothing. None of the LEDs light up.
Are there any known problems with the APA102 chipset, or is there something simple that I’m overlooking?
Any help would be much appreciated.
Thank you!

(The github link contains the code.
Increment.ino and _09_07_15_00.ino are just two tabs within the sketch for sake of ease while reading. Blocks.h is another tab for the Block class. )

https://github.com/aerobeehi/WindTower_ArduinoCode/tree/master/_09_07_15_00

Did you check the obvious first? Voltage levels at strip Vcc and GND? Try to light exactly one LED only – this should not exceed the limitations of any power supply. Check resistance between controller GND and strip GND. Try to connect to a (very) short test strip.
In most trouble cases, it’s a simple connection problem.

And just to answer your question directly: we love APA102’s and they’re fully supported.

Do make sure you have the latest FastLED “3.1” from github so you have all the latest patches, but APA102 should work just fine.

The hardware seemed to be functioning - it worked as expected with an older, significantly different version of code.
Good to know about the APA102s.
So far they’ve been really great for me as well.

I do wonder, since I see you’re doing dynamic memory allocation (“new Block”), if you’re running low on SRAM.

Does your test setup have the same number of pixels (etc) as the ‘real’ setup?

Also I see you’re including SPI.h, but I don’t see it being used. Is there SPI code involved somewhere (that could be conflicting in some way)?

Ah that’s a good thought, there 140 in the real thing. However, I did try using only the first 30 LEDs in the APA102 strip and didn’t have any luck.
I’ll try investigating that again though. Thanks for the suggestion.

140 LEDs should be fine on an Uno – unless there’s something else big going on in memory.

The Blocks look to be about 16 bytes each. Five of them would be 80 bytes, which should also be fine, but then there’s the stack, and serial buffer, and who knows.

I’m not convinced it’s SRAM shortage actually, but it might be. Worth ruling it out anyway.

I’m not sure if calling FastLED inside an ISR is a good idea. Maybe that is source or part of the problem?

Oh… yeah. Avoid that.
Calling show() takes way too long to be done inside the ISR anyway. Inside the ISR should just be things like setting flags and incrementing counters – and then returning from the ISR ASAP.

Then have regular code in your loop() function that checks the flags and does whatever work needs to be done – OUTSIDE of the ISR.

@Mark_Kriegsman ​ would this be the reason the code worked with neopixels? I.e interrupts would be disabled?

Thanks so much for the suggestions!
I was able to get everything was working again within an hour or so. Knew I shouldn’t have been using interrupts like that, but had forgotten to go back and re-evaluate after making some other changes…