dmh
September 7, 2015, 6:37pm
1
Hello,
Any plans to support the larger 32x64 display now being sold on Adafruit?
Louis
September 7, 2015, 8:15pm
2
Yes! I’m days away from a prerelease of SmartMatrix library v3.0 which will have support for larger displays. It’s very usable now if you don’t want to wait:
opened 05:50PM - 15 Jul 15 UTC
closed 03:53PM - 16 Sep 15 UTC
https://github.com/pixelmatix/SmartMatrix/tree/sm3.0
I'm working on a major rev… ision to the SmartMatrix Library that simplifies the SmartMatrix Class into just refreshing the display, and moves the foreground and background layers into separate Layer classes. Instead of using a unique header file to describe the hardware, the configuration is set in the user's sketch, so you can have one version of the library and use it with different sizes of displays. You can create your own Layer outside of the library - for example I made a Fadecandy Layer class that I used to convert the buffers from a port of Fadecandy to SmartMatrix - and you can make your own stackup of layers, with multiple Foreground layers for example.
This requires a lot more code to set up the classes in the sketch, which I was trying to minimize with the initial release of the library, but I think this more flexible approach supports more use cases. The code is hidden away by using a couple #defines that support the most common use cases, and we can add more. I chose to declare buffers in the sketch instead of using malloc in the classes as I wanted the large buffers to show up in memory usage at the end of compilation, and there's no malloc support for creating DMAMEM buffers.
After separating into classes, refactoring to be more generic (no dependencies on MATRIX_WIDTH/HEIGHT defines) and testing on both 16x32 and 32x32 panels, I found the classes worked with 32x64 with barely any changes. I didn't get a chance to use any code from the >32x32 size pull requests from @ncortot, @GaryBoone, and @mrwastl, though maybe I will when adding support for C-shape chaining.
I have the library in a decent state, and FeatureDemo has been tested on 16x32, 32x32, and 32x64 panels. There's an occasional flicker in the 32x64 I haven't tracked down yet. Only the FeatureDemo example is updated to use the new library, though it should be easy to update the rest. (Except for FastLED_Controller, which will need an update to the FastLED Library with SmartMatrix 3.x support)
It's probably a month or more away from an official release as I'm going to be traveling without a laptop for a couple weeks, and want to add support for more display configurations (especially C-shape paneling), to do more testing, and make some efficiency improvements after I get back.
If there are any other features you'd like to see in the next major release, let's start discussing.
Not yet supported:
- C-shape paneling for >32-pixel height
- 24-bit (or fewer) color - this is probably best handled through C++ templates which I haven't used before, and isn't a high priority for me, let me know if it is for you (@mrwastl)
- FastLED_Controller example
dmh
September 8, 2015, 2:14am
3
Awesome news, I will order a panel now to replace my defective 32x32!
Louis
September 16, 2015, 3:50pm
4
Beta version of the library is released: SmartMatrix 3.0 Beta