I’m excited to announce that the SmartLED Shield for Teensy 4 campaign has launched on Crowd Supply!
The shield makes it easy to drive high quality graphics to HUB75 RGB matrix panels using the Teensy 4. As with my previous Teensy 3 based shields, this is a fully open source project: you can find the hardware files, and the work in progress but very functional latest branch of the SmartMatrix Library up on GitHub. If you don’t want to wait for the shield to come out, there’s an adapter board you can order (e.g. through OSH Park) that plugs into the SmartLED Shield for Teensy 3, or pick up a few ICs and a bunch of jumper wires and you can wire up the circuit yourself.
The Teensy 4 shield truly wouldn’t exist if not for open source, as I wasn’t planning on porting SmartMatrix Library to run on the Teensy 4. SmartMatrix Library user Eric Eason figured out how to drive HUB75 panels with the DMA and FlexIO peripherals in the Teensy 4 (not an easy task!), and integrated his work into SmartMatrix Library, and we collaborated on the new SmartLED Shield.
As with SmartMatrix Library and SmartLED Shield for Teensy 3, you get easy to assemble hardware, an accessible to program but powerful Arduino Library with a variety of examples, and the refreshing happens in the background (using interrupts and DMA) with high-quality graphics by default (36-bit color refresh, high refresh rate, automatic gamma correction). The Teensy 4 is so powerful, both the pixel count and refresh rate can be doubled compared to the Teensy 3 while keeping the same quality graphics. You can drive 128x64 pixels with 240Hz refresh rate, 36-bit color refresh, and plenty of CPU cycles and memory left to generate cool graphics or do other things needed for your application. 120 Hz refresh rate looks pretty smooth to most people, but 240Hz looks good on camera too, and just a little bit above 240Hz even looks good on a phone’s 240Hz slow motion video setting.
If you’re willing to lower the quality a bit, you can drive even more pixels. 128x128 is very doable even with 36-bit color, though that is a long string of data that needs to be refreshed thousands of times a second. The long string is limiting the max refresh rate to 168 Hz, and limiting the max brightness as the LEDs need to be off sometimes while waiting to shift out the next set of data.
The latest SmartMatrix Library branch (which will be released later this year as SmartMatrix Library 4.0) has support for driving APA102 LEDs using DMA and FlexIO on the Teensy 4. The Library takes advantage of the Global Brightness Control (GBC) bits on APA102 LEDs to get more color depth, and refreshing is done in the background just like with HUB75 panels.
I’m really looking forward to seeing what kind of projects can be made with SmartMatrix Library and the power of the Teensy 4.