I changed it back for you. Performance suffers a small bit (187 to 193 clockcycles per interrupt for 8x8), but it is a more logical setup.
Sorry Elco. I didn't mean for that to be a problem it was just unexpected. I would prefer to see the speed increase versus the logical setup but that just me. It would just mean that in the physical setup the outputs could be connected with Row0 being the last pin and counting up? I don't see an issue with this if notes are included in the comments. Totally up to you Elco, this is your library and I am very thankful for the effort you have put into it.
Do you have a 16x16 RGB matrix? I am very curious how that will look.
No sorry I only have a mono matrix. And I don't have enough RGB LED's to attempt hand making one. Although I think I will be trying to order a RGB matrix, as I too would love to see what this looks like even at 8x8 RGB. I think it would look great at 16x16.
I wonder if anyone else out there with a RGB matrix could put a couple of Shift Register together and give it a go?
I still have that the last row lights up, but I think there is something wrong with my matrix (it's prefab, so I cannot replace an LED).
Apart from the Row lighting up out of sequence (which isn't an issue now), I have not had any odd behavior of any of the LED's. It does sound like either a fault with you matrix or some sort of bad/cross connection.
The rainbow functions should work as well, but the number of column registers should a multiple of 3.
I am using the MBI5026 chips. They have 16 outputs(2 x Normal SR's) so I can't connect a multiple of 3. But I did try just saying that I had a matrix of 3 SR's wide which should still work just the extra bits would get shifted in the process. All the other functions worked as expected but the rainbow still gave unusual results. The last four rows would be blank but then they would flicker with random data occasionally. Then on the wider rainbow the last four rows start off blank but then slowly fill up as the function progresses. Does anyone else have a matrix and would test this? I wrote a test loop just to use the groupby3 on each row and it worked fine.
ShiftMatrixPWM.SetGroupOf3(row+1, group, brightness, brightness, brightness);
ShiftMatrixPWM.SetGroupOf3(row, group, maxBrightness-brightness, maxBrightness-brightness, maxBrightness-brightness);
So I think there is an issue with the rainbow function but not the groupby3 function.
If this works well, next step is to add some line drawing functions, or functions to set a field of leds to a value
WOW I never even thought of taking it that far. I was just glad to be able to set individual dots and let the library handle the rest. I think this would be really useful for a lot of people.