LED Matrix: 3.5 or 3.6?

Status
Not open for further replies.

BuffaloFan32

Well-known member
I have been using a 3.2 along with an Octo to control strips of WS2812s. I have had success driving about 1200 of them with a single 3.2 (8 strips of 150). There is a great tutorial for using that exact setup but I was wondering if there is anything similar for the new 3.5 and 3.6 boards that do not have an Octo adapter.

https://www.pjrc.com/teensy/td_libs_OctoWS2811.html

I still consider myself to be a novice so I like things to be broken down into small parts. My matrix is a lot bigger and will require multiple Teensy's so I was hoping I could drive more and longer strips with the new 3.5 or 3.6. Any suggestions on whether the 3.5 or 3.6 would work better with ws2812 LEDs?
 
Teensy 3.5 and 3.6 can be used with the Octo board with the longer pins and sockets.

DSC_0547_web.jpg

Longer strips should work fine (with the understanding each LED in a strip takes 30us), but as far as I know nobody has actually tried more than about 5000 from a single Teensy.
 
Ah, I see. I was thinking that would not work because the 3.5 and 3.6 are capable of handling more than 8 strips of output (maybe I am incorrect on that). Do you have a recommendation for which board to use with WS2812's? I want to drive as many LEDs as possible with each board.
 
Use Teensy 3.6. It's only $10 more, a tiny extra cost compared to the thousands of LEDs you're connecting. Teensy 3.2 might work fine, but if you're doing something complex the extra CPU speed of a 3.6 might help.

Theoretically, 8000 LEDs (8 strips of 1000) ought to be possible. I'm pretty sure it'll work, but of course nobody has actually tried this as far as I know. We definitely built a project years ago with 540 per strip using Teensy 3.2, and it worked great.

Eight strips is the most officially supported. I recommend staying on that well worn path. But if you want to fiddle, I believe FastLED has an approach where you can use OctoWS2811 and it can do 8 more by bitbashing. That comes with some real downsides, so I'd recommend scaling by keeping it to 8 per board and scale up with more boards.
 
I guess I was thinking the 3.6 could handle more strips because it has all those new pins. At the risk of sounding like a total idiot, if I did not use the Octo board, would the 3.6 then be able to output to more strips? Also, I agree that the 3.6 is favorable because it has a faster processer but it is only 3.3V tolerant. How would you power it considering all the power supplies I am using for the strips are outputting 5V?
 
Either a T3.5 or 3.6 would be powered by 5V on the Vin pin and through the internal 3.3V regulator to the chip. That said it's often a good idea to either filter or have a separate logic 5V supply when you have masses of LEDs to reduce the noise on the supply as the brightness swings.

With number of strips there's two parts, one is the level conversion and the Octo board is a robust way to get 8 channels worth of 3.3V logic to 5V to drive the strips, noting you need very fast and sharp transitions so rolling your own can be tricky but you certainly can do that. The second part is actually producing the waveform the strips need. 2812/2811/assorted clone chips need a tightly controlled series of pulses to successfully decode the colour so most libraries can only feed data to one strip at a time and block while doing so reducing ability to get the next frame ready. The Octo library uses the on chip DMA hardware to produce the wave form on 8 pins at once without blocking the CPU, much like a graphics card unloads the CPU in a PC. While it would probably be possible to hack onto the carefully tuned DMA code to add another port worth of pins, nobody has been keen enough to go down that rabbit hole yet given it's pretty deep and the map has several thousand pages.

So as noted above you can add more strips by running the hardware supported Octo library on 8 pins, and the software drive fastLED on another 8, or you could look at what fastLED is up to and see if you can bump the number of pins there. Adding fastLED of course reduces the amount of CPU time you have to process the next frame, which may or may not matter depending on how you get that many pixels into the Teensy in the first place.

A point in all this is how many strips in parallel you need, since single strips chained end to end are generally far simpler to wire so generally you work out your target frame rate, work out how long a single strip can be and still meet that and then work out how many drivers you need.
 
I am still tinkering with my small prototype but it is growing in size so I wanted to revisit this thread. @GremlinWrangler, you made a good point about powering the 3.6's with separate power supplies. Is it possible to power all the Teensy's on one power supply and the LEDs on different supplies? I know the wiring requires the LED strip to be grounded to both the power supply that is powering it as well as another ground to the Octo so I wasn't sure if having the Octo on a different supply would cause any problems. If the Teensy is connected to a USB drive, do you recommend cutting the VIN-VUSB and powering externally or getting power from the USB hub? Ultimately, I will be using a bunch of Teensey's.
 
Main thing with the power is to make sure all share a solid ground, and that none of them have enough noise to cause trouble.

That sorted cutting vin and using a teensy voltage supply is quite reasonable. May also allow you to power peripheral bits and pieces that should be online before you stage up the LEDs.

For belt and braces approach you can also solder diodes across the cut USB-vin trace and put a diode on your power out to allow things to work from either source, allowing for the fact that 5V vin will give ~4.5V on the actual board if anything there is going to have problems with that.
 
Status
Not open for further replies.
Back
Top