I had a general understanding on how they worked, address lines to select which line, then shift registers to select which pixels need to be lit up for each color, and then the display it cut in 2 halves (R1 vs R2) to add a bit of efficiency.
Then, add a layer of PWM (or BCM which is more efficient) and you’re almost done.
But the actual details can be more complicated still (and worse on some panels) and very well described in this blog from sparkfun: https://www.sparkfun.com/sparkx/blog/2650
Great read if you care about details.
@Louis if I read this right, this also means Sparkfun wrote a different driver for an odd sized 32x32 1/8th refresh panel that isn’t supported by SmartMatrix, correct? (and it’s probably ok given that they must be rare: https://www.sparkfun.com/products/14633 )
It’s also interesting to note that even Sparkfun got screwed by ordering panels from China and getting a different panel that they were hoping to get. I suppose they had bought enough and couldn’t return them, that it made sense to write that driver…