-
Adding Teensy 4 Support to Fadecandy Server - Streaming 8k pixels at 60FPS over USB
09/14/2020 at 13:23 • 2 commentsI've been wanting to add a good option for streaming video to SmartLED Shield for Teensy 4 over USB, and I was able to make some good progress recently. After looking at what open source options exist for streaming video to LEDs over USB, Fadecandy seemed like the best project to use as a starting point, and I figured out how to add support for streaming to the Teensy 4 to Fadecandy. It's working quite well, and is able to drive a huge 128 x 64 panel at 60 FPS over USB. Here's a quick demo:
A little background: "Fadecandy is a tool for creating interactive light art using addressable LED lighting" designed by Micah Elizabeth Scott (scanlime), and was made to drive WS2811 "Neopixel" addressable LEDs over USB with higher color depth and smoother interpolation than they normally have. I'm a fan of the high quality fades and colors that can be made with Fadecandy.
Fadecandy is designed to work with multiple types of controllers in parallel, so you can have a project that uses a mix of WS2811 LEDs using a Fadecandy Controller, and HUB75 and APA102 LEDs using a SmartLED Shield for Teensy 4, and just add more controllers to drive larger displays.
-
Improved Transparent Layers and Larger Fonts
09/14/2020 at 13:19 • 0 commentsSmartMatrix Library allows you to use several layers to build up the graphics on your LED panel. Typically you'll have one full color layer holding your patterns or animations, and you can optionally add one or more transparent overlays on top to show a menu, or debug information, or scrolling text. Over the past week I started working on improving the graphical layers.
A little history: When SmartMatrix Library was first released, it had relatively nice font support compared to other display libraries, but a lot has changed in the last six years. The max pixel count supported by the library has gone up a lot, from 32x32 to 128x64 and larger, making the small fonts in SmartMatrix Library look relatively tiny and weak. Font support in other display libraries have improved too, with the popular Adafruit_GFX library going from one monospaced font option to 53 built-in options, and virtually limitless options with custom font support.
I took a look at the options out there in open source font support, and Adafruit_GFX seemed like the best option for working with SmartMatrix Library. There are quite a few displays that are compatible with Adafruit_GFX, so if you are already familiar with drawing to displays with those commands, it will be easy to use the new SmartMatrix Library layers. The Adafruit_GFX font format is popular enough there are open source tools made outside of Adafruit to convert custom fonts to the Adafruit_GFX format, including this handy graphical online tool.
I'm pretty far along in adding support for drawing to the layers with Adafruit_GFX, and making backwards-compatible changes so existing SmartMatrix Library sketches can use Adafruit_GFX fonts. While making those changes I made the transparent layers a lot more efficient to refresh on the LED panel, and now you can add many layers affecting the refresh rate, as seen in the demo video above.
-
New Demo Project - Slow Motion Art Display
09/14/2020 at 13:16 • 0 commentsI created a LED Art project I've been wanting to do for a long time, but wasn't really possible before the SmartLED Shield for Teensy 4 - check out the video below. This project involves the Teensy 4 playing back an animated GIF in slow motion, and interpolating between frames 240 times per second to really smooth out the slow motion effect.
Continuum is a light art display that is continuously in motion, with options to move quickly, slowly, or incredibly slow. The RGB LEDs in the display are updated 240 times per second, with unique images calculated each update. A slider on the side of the display controls if the LEDs play back the content - currently Animated GIFs - in normal 1x speed, 1000x slower than normal, or anywhere in-between.
The frame is powered by the Teensy 4.1, and the SmartMatrix Library, using the [SmartLED Shield for Teensy 4](https://www.crowdsupply.com/pixelmatix/smartled-shield-for-teensy-4). The LED panels are 32x32 pixel P5 (5mm pitch) RGB HUB75 panels combined to make a 96x96 pixel 480mm (18.9") square display that fits into an Ikea Ribba shadowbox frame.
I posted more details here on Hackaday.io, and more details including instructions on how to build your own over on Instructables.