Clone panels - Teensy 4.1

Hi guys !

I was wondering about the best method to clone 2x 128x32 panels.
I’m trying to build a scoreboard, with 2 panels separated by 5m, on a teensy 4.1 + smartmatrix v5.

The 2 pannels are linked as follow : Teensy → Panel 1 → Panel 2.

The 2nd display clones the first one without any code update, but I have a few columns which remain black at the end of the 2nd pannel, and it seems the 2nd pannel indexedlayer is shifted compared to the 1st pannel :

Here is my config :

#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 = 128;       // 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 = 24;       // 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: https://github.com/pixelmatix/SmartMatrix/wiki

Are there specific options to clone 2 pannels ?
Or will the second pannel naturally inherits of the pixels drawn on the 1st panel as soon as the limit configured are overpassed (128x32) ?
Shall I rather duplicate the pins at the output of Teensy (parallel cabling)
Teensy → Panel1
Teensy → Panel2

Do you think it’s possible to have a data cable of 5m between the 2 pannels without any amplification or shall I buy some cards to clone and eventually amplify the signal from Teensy ?

Thanks again for your nice support !
Seb

Hi @Louis,
do you have any recommendation for cloning 2 screens ?
do you think the behavior I get is only a matter of padding and the cloning does not require extra code ?
Thanks
Seb

On the SmartLED Shield for Teensy 4 or other shields using the latch/flipflop chip, you can’t clone the panels by adding extra panels on the end as the address bits are sent out on the data lines directly after the last pixels have been shifted, so the pixels going to the extra panels will be at least slightly corrupted.

What you’re describing is different that what I’d expect, which is some extra rainbow pixels (the address bits) showing up, not black columns. I haven’t tried this with a SmartLED Shield for Teensy 4 recently though, and maybe it shows up as black columns, not rainbow.

To drive the exact same content to multiple panels in parallel, you could make a custom ribbon cable with two outputs. It’s not too expensive to buy bulk ribbon cable and connectors, and easy to crimp with a vice (or a cheap IDC tool). Depending on the length, there may be too much capacitance in the cable and two panels to drive correctly. In that case you’d need to buffer the signals (with chips like the 74AHCT245 that SmartLED Shield uses) going to the second panel.

Louis, when you’re pushing pixels on existing panels, aren’t the pixels from the previous push, shifted out on the panels daisy chained if you double the output?
Doing so with rpi-rgb-panel does not work well because I think the BCM planes are output in the opposite order, but with your lib, even though we were surprised that it worked, it did for me.
In these pictures, the 2 panels are a single 64x96 output that is using shifted out pixels from the first set of panels to feed the 2nd set, and it just works (brightness is different because of the diffuser sheet)

Not for circuits with the flipflop/latch chip

On the SmartLED Shield for Teensy 4 or other shields using the latch/flipflop chip, you can’t clone the panels by adding extra panels on the end as the address bits are sent out on the data lines directly after the last pixels have been shifted, so the pixels going to the extra panels will be at least slightly corrupted.

It does work for you as you use an ESP32 with no flipflop/latch circuit