I’m building a “Weighted Companion Cube” for the game Portal. It’s for Burning Man, so I’ve got a TON of LED’s on it. (it’s a motorized mutant vehicle, about 3 feet square).
I’m using 7 strands of 144/led DotStars (4 wire, APA102).
I find these great chips, but I think I’m running into speed problems.
If I have only 288 LED’s, I can run an update so fast you can’t see which marquee lights are going and which aren’t.
If I go up to my full 1752 LED’s, then the LED’s when I call “Show” will update at about 1Hz - I can watch the marquee crawl around my LED strands.
Geez, I thought I picked the fastest Arduino that was reasonable (It’s a Mega2560).
So - do I need to update to a faster processor? I was looking at the Due but it’s a 3.3v solution, so I’d need level shifters, right?. I need a total of 36 digital out pins (the way the strands are wired up).
I hadn’t wanted to network these updates, but might have to.
The Mega2560 is 16 MHz (the same as the Uno)
The Due is 84 MHz
The Teensy 3.2 is 72 MHz (overclockable to 96)
If you went with a Due or Teensy, yes you will need to use a level shifter. The 74HCT245 is recommended.
If you network things together and split the 1752 pixels into:
4 strips of 438 pixels then you could use 8 outputs and one level shifter, or
8 strips of 219 pixels each and 16 outputs with two level shifters.
No way to speed it up by using any HW features, like interrupts or anything? Looks like not.
Doing more testing, it looks like the Mega can’t really keep up, especially if I’m receiving serial input. The LED’s pause - probably an expected result with any board, I guess it would depend on the serial buffering. I picked the Mega as it was the fastest 5V board I could find, but looks like I need to upgrade to a Due.
I’ll need to split out functionality looks like, keep the Mega (or Due) JUST doing the LED’s for now. It’s more or less fast enough, but I really wanted to show off some fast lights (Disco mode cube!) I can wait for the Due upgrade for that.
I was originally going to use SynthOS or FreeRTOS to keep everything running with their own ‘threads’ but if it’s running flat out, fancy RTOS stuff won’t help.
So, I’ll split the navigation / control / communication / Bluetooth out to a separate board (I have a Leonardo) and just use the Mega for the LED’s I guess. I’ll use some I/O between the boards to cycle effects.
Hmm … if I get a Due, this shield looks promising, and cheaper than the chips+proto board:
Ultimately though, that setup comes down the the Teensy 3. Which, really, any Teensy 3 variant running OctoWS2811 is the right tool for the job. I’ve used it on structures out there, it was solid (it ran for a few days buried in a drift of dust)
I’m using APA102’s, but yea, the Teensy looks good. I actually ended up getting the Due, mostly as I already had some Mega prototyping shields I can experiment with. Future projects, I think the Teensy is the way to go. OctoWS2811 looks nice, but I don’t have equal lengths really. It’s complicated. Geez I’m going to suck down batteries fast this thing might have to be attached to camp mostly.
Thanks, I did order the 75HCT’s. However, what about SPI output? On Adafruit, someone mentioned it would be faster than bit-banging. I checked the docs but they are just pulled from .h files. Poking around some more … (the faster boards came in today, but I don’t get the buffers until Tuesday, and have to pack Wednesday )