Chaining 32x32 panel with 64x32 panel both 1/16 scan

Hi SmartMatrix Community! Apologies in advance for any lack of clarity resulting from my limited experience working with LED matrixes.

I am trying to chain together a 32x32 1/16 scan rate panel and a 64x32 1/16 scan rate panel (both from Adafruit) using a Smart shield v5 and a Teensy 4.1. I have no issues chaining 32x32 panels together but I was hoping to add on my new 64x32 panel and thought there would be no issues as they have the same scan rate.

Unfortunately, when I try to chain the 32x32 with the 64x32, both panels show up with glitchy scan lines, and the 32x32 shows bits of the image while the 64x32 only shows red.
This is running the FeatureDemo sketch:

I’ve run a few tests but thought I would post here before going through too much headache in case someone else has encountered this. I’ve scoured the forums and can’t find a preexisting answer, but I apologize if there is one. (Especially if it is obvious and I am just completely missing it in my distress!)

Thank you so much in advance!!

If you connect up just one panel at a time with the sketch, do each work individually?

Are both panels connected with the same power supply? Grounds connected if not? Can the supply handle the current needed by both panels? What’s the supply’s current rating

Might as well paste the code or at least the config section at the top here too

Hi Louis! Thank you so much for your quick reply!

Both panels have been tested separately and run fine, they run the demo sketches and my own gifs perfectly. Also I should add I have tested both chained to panels of the same size (ie the 32x32 to another 32x32 and the 64x32 to another 64x32) and they also have no issues, no problems with playback or mapping.

Both panels are connected to the same power supply, which is 5v 10a which I thought should be plenty of current but I will try a higher current and separate power supplies as well now.

Current config (very simple)


// uncomment one line to select your MatrixHardware configuration - configuration header needs to be included before <SmartMatrix.h>
//#include <MatrixHardware_Teensy3_ShieldV4.h> // SmartLED Shield for Teensy 3 (V4)
#include <MatrixHardware_Teensy4_ShieldV5.h> // SmartLED Shield for Teensy 4 (V5)
//#include <MatrixHardware_Teensy3_ShieldV1toV3.h> // SmartMatrix Shield for Teensy 3 V1-V3
//#include <MatrixHardware_Teensy4_ShieldV4Adapter.h> // Teensy 4 Adapter attached to SmartLED Shield for Teensy 3 (V4)
//#include <MatrixHardware_ESP32_V0.h> // This file contains multiple ESP32 hardware configurations, edit the file to define GPIOPINOUT (or add #define GPIOPINOUT with a hardcoded number before this #include)
//#include “MatrixHardware_Custom.h” // Copy an existing MatrixHardware file to your Sketch directory, rename, customize, and you can include it like this
#include <SmartMatrix.h>

#define COLOR_DEPTH 24 // Choose the color depth used for storing pixels in the layers: 24 or 48 (24 is good for most sketches - If the sketch uses type rgb24 directly, COLOR_DEPTH must be 24)
const uint16_t kMatrixWidth = 96; // Set to the width of your display, must be a multiple of 8
const uint16_t kMatrixHeight = 32; // Set to the height of your display
const uint8_t kRefreshDepth = 36; // Tradeoff of color quality vs refresh rate, max brightness, and RAM usage. 36 is typically good, drop down to 24 if you need to. On Teensy, multiples of 3, up to 48: 3, 6, 9, 12, 15, 18, 21, 24, 27, 30, 33, 36, 39, 42, 45, 48. On ESP32: 24, 36, 48
const uint8_t kDmaBufferRows = 4; // known working: 2-4, use 2 to save RAM, more to keep from dropping frames and automatically lowering refresh rate. (This isn’t used on ESP32, leave as default)
const uint8_t kPanelType = SM_PANELTYPE_HUB75_32ROW_MOD16SCAN; // Choose the configuration that matches your panels. See more details in MatrixCommonHub75.h and the docs:
const uint32_t kMatrixOptions = (SM_HUB75_OPTIONS_NONE); // see docs for options:
const uint8_t kBackgroundLayerOptions = (SM_BACKGROUND_OPTIONS_NONE);
const uint8_t kScrollingLayerOptions = (SM_SCROLLING_OPTIONS_NONE);
const uint8_t kIndexedLayerOptions = (SM_INDEXED_OPTIONS_NONE);

Ok well…connecting both panels to a separate power supply did the trick!! It is working perfectly now. I am wondering why that would be as both panels are supposed to be drawing 4amp max as far as I understood. I am going to do some more tests as I suspect there was a bad cable or connection in the original set up…

Looks amazing and just how I needed it. Thank you for the support, I’m sorry to waste your time with my poor troubleshooting! Very appreciative of this forum.

If it wasn’t the power supply, it could have been the wires or connectors used between the supply and the panels.

Glad you got it working!

both panels are supposed to be drawing 4amp max as far as I understood. I am going to do some more tests as I suspect there was a bad cable or connection in the original set up…

If they’re the same LED size and scan rate, one should be drawing up to twice as much as the other as twice the number of pixels could be lit at any time. I’ve found some vendors downplay the current requirements for these panels. In my testing a while back, a 32x32 P6 panel could draw close to 4A at full bright white. I’m guessing a 64x32 could be up to 8A.