Electronic – 9X9 RGB Led matrix, design suggestion

ledmatrixrgbshift-register

I need to drive 80 RGB leds (so 240 individual leds), physically and conceptually aligned as an 8×8 matrix + an additional vertical line and an additional horizontal line.

I'd like to drive the matrix using 595 shift registers, so that I only need 3 microcontroller lines to drive all the leds, multiplexing the leds.
The RGB leds I'm using are common anode. I'd like to have at least 3 levels of brightness for each color (full off, half on, full on).

I found many examples of driving an 8×8 RGB matrix with shift registers, but I'm trying to understand what's the best way (code-wise, mainly) to add the additional 16 RGB leds.

Option 1: a 9×9 matrix. If so, the additional column pin and additional row pin would come directly from the microcontroller and not from and additional shift register, since a shift register for only 2 pins would be wasted.

Option 2: a sub matrix in series with the first, that shares the anodes with the main matrix, but uses only an additional shift register to drive the additional cathodes.
Other options?

thank you and sorry for my bad english.

schematic

Best Answer

Make the matrix from WS2812B instead, then just serially data chain the data from one to the next for all of them. Sparkfun carries thru hole 5mm parts in 2 different shapes. Then you don't need complex multiplexing either, just send out 240 bytes of data when you need an update using the FastLed.h library.

Or you can get strings of SMD WS2812Bs and lay out 9 strips of 9 LEDs, makes the wiring even simpler - connect the Gnd, Power all along one end, and a single data line from the end of one strip to the start of the next.