madworm:
Are you planning to do PWM as well, or is this just a 6 color + black variant?
I will do PWM if I can, but the best I can do is a quick switch of ON and OFF per refresh cycle. So, by design, I am not planing for it to have true PWM coming into the LEDs, unless there is an easy way to implement.
Grumpy_Mike:
I still want to know if I can obtain "higher" framerate for smoother animation if I do it this way.
Not particularly, you will have a big problem just working out what part of the image to update, it is much easier to refresh it all.
I might have the computer to tell the arduino exactly which part that will be changed, if needed. But this is just secondary objective.
Inevitableavoidance:
You can't really control the colors with those registers, you will only be able to make them red, yellow, green, blue, violet, cyan, white, and off.
You could however theoretically use 48 TLC5940's, but that will be expensive (100,- if you order them in china), and you will need a LOT of decoupling.
I'm currently building a big board with 256 warm white leds to light my room, and with only 4 TLC's I already had to decouple a lot, but it could be possible.
Thank for providing me a new method, I am not sure how to control it for now, but my guess is that it will truly get messy when it comes to 256 RGB LEDs. At this rate, I might as well already use 4 colorduino with the 8x8 RGB LEDs matrix.
madworm:
Make it modular with one controller per board and one more chip to distribute data. 8x8 RGB (PWM-ed) is known to work with shift registers (done that) and it certainly works very well with LED drivers. If you want to force everything into one micro it will be pretty busy and probably won't have much time left for other stuff (user interaction).
You are probably right on the spot for that. I will need to concern about computer-arduino interaction part.
CrossRoads:
I think architecturally, I would run 12 groups of 8 shift registers in series, with each group having its own SlaveSelect line, and then update a group using
eight SPI.transfer commands. Cuts way down on the number of parts, your data could be stored as 96 bytes in an array, and just update the section that changed.
Or arrange other ways: 4 groups of 4x4 with 4 SS lines, update each group as something changed.
16 groups of 2x2. Whatever.
Do you think that using the shift registers will be "fast" enough to update for a 256 RGB LEDs? I am not experienced, but I just have a feeling that I will not get a good refresh rate (target at minimal 30 FPS). I believe that this method will share the same brightness as using d-latch register. Also, what is the relative price comparison between register and a shift register?