This math doesn't work out. Line should read:
`uint8_t data = (dc[((96 * TLC5940_N) - 1 - i)/6]) & (1 << ((96 * TLC5940_N) - 1 - i)%6);`

Same goes for line 84.