The 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.
We’re three weeks into the campaign with just one week left to go! Thanks again for backing and sharing this project and helping make it a success. If you haven’t backed the project yet, now’s the time!