Question #1
I’m just not too sure how it works when you chain panels after that
The panels are basically shift registers and multiplexers. The address lines for the multiplexers are shared with all panels. When you add another panel to the chain, the chain of shift registers gets longer.
Question #2
The “5th address line” for 64x64 isn’t shown in the pinouts I’ve found. Does it take a redundant ground line
When I started the SmartMatrix Library and made pinout diagrams and photos, there were only /16 panels available (at least where I looked). Yes, one of the redundant ground pins is used for the “E” line.
You can address twice as many rows by adding a 5th address line. You have to scan through 32 rows instead of 16, so that’s twice as much shifting (and waiting) that needs to be done, it’s not faster. I guess there’s a tradeoff between the time it takes to shift out a longer chain of data and the time it takes to shift a shorter chain of data out to more rows, but in general I think it’s slower and results in dimmer LEDs to have more address lines.
Question #3
Is there a limit to how many panels you can chain in theory?
Look at this project for an example of what you can do with a lot more memory: GitHub - hzeller/rpi-rgb-led-matrix: Controlling up to three chains of 64x64, 32x32, 16x32 or similar RGB LED displays using Raspberry Pi GPIO
I don’t think that library has as good color depth as SmartMatrix Library, but I’m not following it closely and haven’t tried it myself, I could be wrong.
Question #4
Has anyone used multiple teensies to drive each panel at higher speed and somehow made a bigger display
I’m not aware of anyone syncing Teensys to each other to make a larger panel. I (partially) ported Fadecandy over to the SmartMatrix Library, and you could use several of those to make a large panel with content sent by an external computer to several Teensys. Others have ported other streaming protocols which I believe could be used in parallel to drive multiple Teensy/panel combinations: