Teensy 4.0 Released

Tl;dr there’s a lot of updates to HUB75 code, and any existing projects using stacked panels need to be updated as SMARTMATRIX_OPTIONS_BOTTOM_TO_TOP_STACKING logic is now reversed.

The teensy4 branch has a lot of new updates:

I added the missing C-shaped stacking to all platforms, and added MultiRowRefresh to Teensy 4. In the process of adding these I realized that the SMARTMATRIX_OPTIONS_BOTTOM_TO_TOP_STACKING option was reversed. By default stacking was bottom to top, and enabling SMARTMATRIX_OPTIONS_BOTTOM_TO_TOP_STACKING would stack top to bottom. I fixed the logic, but anyone using stacking in the Teensy 4 branch will end up with reversed stacking logic when they update, so be careful there.

It turned out to be difficult to support MultiRowRefresh panels with C-shaped stacking, so they aren’t supported. MultiRowRefresh panels can only use Z-shaped stacking.

@easone’s loadMatrixBuffers() refactoring for the Teensy 4 is a lot easier to read, and is more efficient (~30% more) than my old code for Teensy 3, so I refactored the Teensy 3 loadMatrixBuffers() to get the improved efficiency, and also allowing kRefreshDepth to be any multiple of 3 instead of just 24, 36, 48.

I also added the hardware files for SmartLED Shield for Teensy 4 V5 (the production version that will be shipping to Crowd Supply backers).