And that has 16 pins. I understand how the matrix works, but I simply dont understand how he can turn on for example 29 LED's with 16 outputs on the IC.
Also I'm just wondering if its always the case where LED's are mulitplexed that to turn all the LED's on you have to turn a set on then turn the set off, then turn the next one on then off, etc etc giving the illusion that theyre all on at the same time? Is that the case with the stribe? To me that seems inefficient in optimizing brightness.
Each 7221 can control 64 LEDs arranged in 8 rows with 8 columns of LEDs in each row. I'm not sure how he has his LEDs wired but if he only has 32 LEDs attached to each chip he is probably using 4 rows of 8 (it doesn't matter that they are laid out in one long row as long as they are wired in groups of 8).
The 7221 is only turning on 1 LED at a time using one row output and one column output. By cycling through all of the rows and columns very quickly it appears that any or all of the LEDs are lit at the same time.
"Each 7221 can control 64 LEDs arranged in 8 rows with 8 columns of LEDs in each row."
This is correct. On the original prototype I actually left them in grids, which later-on proved to be a decision that made a lot of things more difficult. The idea though was that the Stribe circuit is basically the monome 40h circuit x 16, so I thought it would ake my life easier. I was wrong, it proves to require some complicated math that makes my head hurt. In the new Stribe1 kits, each vertical 64 LEDs is controlled by one MAX7221, using the grid multiplexing method mentioned previously, so much easier to think about.
"I'm just wondering if its always the case where LED's are mulitplexed that to turn all the LED's on you have to turn a set on then turn the set off, then turn the next one on then off, etc etc giving the illusion..."
You can turn them all on at once as seen in some pics. You are partly right about the flickering but that is all handled by the MAX7221 chip so you don't have to think about it. Each column can be treated as a digit with 64 elements. You push a string of 8 bytes in to each address (column). Each byte (row of 8 bits) = 8 LED ons and offs.
For example:
Number 8 LEDs like this: 1 2 4 8 16 32 64 128 255
Send 255 to turn them all on, 0 to turn them all off
Send 1 to turn on the first LED
Send 3 (1 + 2) to turn on the first and second only
Send 5 (1 + 4) to turn on the first and third only
Each byte will overwrite anything previously there, so you have to keep track of state in arrays etc.
"I'm just wondering if its always the case where LED's are mulitplexed that to turn all the LED's on you have to turn a set on then turn the set off, then turn the next one on then off, etc etc giving the illusion..."
Yes that is always true, it is what multiplexing means.
The MAX6953 can control individual 128 LEDs so it is much more efficient for making into a Stribe.