Just another question / suggestion.
Given the PIC32MZ is powerful and has got plenty of RAM, would it be possible buffer all 3x GRB bytes and treat them as 1 entity and prepare them to be sent out at once? (as in 1 loop only) Would that not make a difference when the outputs are engaged? It would be only high / low and nop() in between... so timing would be better?
Also I think I found something here... one more thing!
Most of the LEDs are only 1x LED component... but we have 3x LEDs with 25x LEDs each. This is interesting... When the output gets corrupted on the LED component with 25x LEDs, the ONLY corrupted bits are the first ones on the chain. The rest of the LEDs show fine!
So for example GRB 255,0,0 for all 25x LEDs, the signal looks like this:
And for example GRB 0,255,0 for all 25x LEDs, the signal looks like this:
Note that ALL other bytes timings are perfect and NOT corrupted. So this is an issue with the loop at the beginnig and for the first 3 bytes (first LED in the chain) or somewhere there...
Regards,
R