Close
0%
0%

SmartLED Shield for Teensy 4

Drive high density and low cost HUB75 RGB Matrix Panels with the Teensy 4. Best way to use panels with the powerful SmartMatrix Library.

Similar projects worth following
SmartLED Shield enables the Teensy 4 to drive high-quality graphics to HUB75 RGB LED panels, with 36-bit color and 240 Hz refresh rate across large panels (e.g. 128x64 pixels). A Teensy 4.0 or Teensy 4.1 with pins fits into the socket on the shield, and the shield can attach directly to the HUB75 panel or through a ribbon cable. The SmartMatrix library for Arduino makes it easy to draw basic graphics, create scrolling and static text, draw beautiful patterns using FastLED, and play animated GIFs on the panel. Example code is provided so you can get started as quickly as possible. The Shield and library use special features and peripherals of the Teensy 4 processor to send graphics data to your display with minimal CPU usage, so you can use the processor to do other tasks in parallel such as SPI communication, file decoding, or complex rendering.

SmartLED Shield enables the Teensy 4 to drive high-quality graphics to HUB75 RGB LED panels, with 36-bit color and 240 Hz refresh rate across large panels (e.g. 128x64 pixels). A Teensy 4.0 or Teensy 4.1 with pins fits into the socket on the shield, and the shield can attach directly to the HUB75 panel or through a ribbon cable. The SmartMatrix library for Arduino makes it easy to draw basic graphics, create scrolling and static text, draw beautiful patterns using FastLED, and play animated GIFs on the panel. Example code is provided so you can get started as quickly as possible. The Shield and library use special features and peripherals of the Teensy 4 processor to send graphics data to your display with minimal CPU usage, so you can use the processor to do other tasks in parallel such as SPI communication, file decoding, or complex rendering.

Using SmartLED Shield with SmartMatrix library and the Teensy 4 is the easiest way to drive high-quality and high pixel count graphics to RGB LED panels with a microcontroller. Use a simple API to tell the library what to draw on the screen, and the library takes care of refreshing in the background. Advanced features like these are enabled automatically:

  • 36-bit Color Refresh - See the full color range in the image or pattern you're displaying, with no noticeable brightness steps when dimming pixels down to black. Up to 48-bit color refresh is available.
  • Color (Gamma) Correction - Your source graphics are probably 24-bit color, but SmartMatrix library applies automatic color correction so they have good contrast, smooth gradients, and don't look washed out.
  • Global Brightness Control - When you don't need the full brightness of the LED panel, lower the brightness without having to sacrifice color depth of your graphics.

The shield is easy to assemble and connect to a panel, and there’s no soldering required beyond adding pins to the Teensy. The Teensy is removable, so you can swap between the 4.0 and 4.1 if you want. All long edge Teensy signals are brought out to expansion rows for easy prototyping.

Features

  • Ease-of-use:
    • SmartLED Shield is fully assembled. If your Teensy has pins, then no soldering is required.
    • Teensy can easily be inserted into and removed from the shield.
    • SmartMatrix library for Arduino provides an easy development platform, along with others such as FastLED.
    • Example code is included for a quick start.
  • Flexibility:
    • Drives displays with up 9k pixels (e.g. 96 x 96) with high quality settings, and even larger displays with reduced quality settings.
    • Signals on the long edges of the Teensy are brought out to expansion rows for easy prototyping.
    • The 4-pin JST-SM connector may be used to provide power to the Teensy separate from the USB connector.
    • Optionally drive DotStar/APA102-compatible LEDs using the onboard 5 volt buffers and 4-pin JST-SM connector. Mating JST-SM cable is included.
    • Panels can be daisy-chained to make large, bright, high-resolution displays.
    • Drives all 14 signals on HUB75 panels using 5 volt buffered outputs, using only 9 GPIO pins on the Teensy 4.0 or 4.1.
  • Quality:
    • Provides up to a 240 Hz refresh rate.
    • Up to 48-bit color refresh is available.
    • Color (gamma) correction, and global brightness control features allow for a high level of visual quality control.

HUB75 Panels

HUB75 RGB panels are typically used for LED billboards (e.g. Times Square), making them cost-effective and readily available. They’re much cheaper per-pixel than addressable LEDs, and available in a wide range of pixel pitch (as of now, 2 mm spacing up to 10 mm spacing per LED). They do require an external controller to continually send data to the panels to refresh them line by line, and that’s where the SmartLED Shield and SmartMatrix library come in. Adafruit, Sparkfun, and other distributors carry panels that are known to be compatible with SmartLED Shield and the SmartMatrix library, but most panels on AliExpress and other sources are compatible as well....

Read more »

  • Adding Teensy 4 Support to Fadecandy Server - Streaming 8k pixels at 60FPS over USB

    Louis Beaudoin09/14/2020 at 13:23 2 comments

    I'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

    Louis Beaudoin09/14/2020 at 13:19 0 comments

    SmartMatrix 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

    Louis Beaudoin09/14/2020 at 13:16 0 comments

    I 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.

View all 3 project logs

Enjoy this project?

Share

Discussions

Dan Maloney wrote 09/14/2020 at 20:32 point

Love the design of this, and what you can accomplish using it. Nice work!

  Are you sure? yes | no

Louis Beaudoin wrote 09/14/2020 at 21:36 point

Thanks Dan!

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates