Anyone with a wired RGB matrix, willing to test

As you might have seen in another thread, I am working on a tool to assist in creating animation to display on a LED Matrix with for example an Arduino.

Unfortunately I don't have all the components to wire up my RGB Matrix yet. So I'm looking for someone who wouldn't mind writing and testing a sketch to display an animation on a RGB LED Matrix.

A very basic example animation follows.

Every frame is encoded in an array of bytes. And all these frames are put in an array.

Every pixel one uint16_t from the array. Frame1, Pixel 1,1 (left top) is at animation[0][0]. Frame1, Pixel 2,1 is at animation[0][1]. Frame1, Pixel 1,2 is at animation[0][8].

The two bytes contain 5 bits per color: xBBBBBGG GGGRRRRR

int animationFrames = 8;

int animationDelays[] = { 200, 200, 200, 200, 200, 200, 200, 200 };

// Animation is designed for 8x8 pixels
uint16_t animation[][64] = {
  { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 },
  { 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f },
  { 0x3e0, 0x3e0, 0x3e0, 0x3e0, 0x3e0, 0x3e0, 0x3e0, 0x3e0, 0x3e0, 0x3e0, 0x3e0, 0x3e0, 0x3e0, 0x3e0, 0x3e0, 0x3e0, 0x3e0, 0x3e0, 0x3e0, 0x3e0, 0x3e0, 0x3e0, 0x3e0, 0x3e0, 0x3e0, 0x3e0, 0x3e0, 0x3e0, 0x3e0, 0x3e0, 0x3e0, 0x3e0, 0x3e0, 0x3e0, 0x3e0, 0x3e0, 0x3e0, 0x3e0, 0x3e0, 0x3e0, 0x3e0, 0x3e0, 0x3e0, 0x3e0, 0x3e0, 0x3e0, 0x3e0, 0x3e0, 0x3e0, 0x3e0, 0x3e0, 0x3e0, 0x3e0, 0x3e0, 0x3e0, 0x3e0, 0x3e0, 0x3e0, 0x3e0, 0x3e0, 0x3e0, 0x3e0, 0x3e0, 0x3e0 },
  { 0x7c00, 0x7c00, 0x7c00, 0x7c00, 0x7c00, 0x7c00, 0x7c00, 0x7c00, 0x7c00, 0x7c00, 0x7c00, 0x7c00, 0x7c00, 0x7c00, 0x7c00, 0x7c00, 0x7c00, 0x7c00, 0x7c00, 0x7c00, 0x7c00, 0x7c00, 0x7c00, 0x7c00, 0x7c00, 0x7c00, 0x7c00, 0x7c00, 0x7c00, 0x7c00, 0x7c00, 0x7c00, 0x7c00, 0x7c00, 0x7c00, 0x7c00, 0x7c00, 0x7c00, 0x7c00, 0x7c00, 0x7c00, 0x7c00, 0x7c00, 0x7c00, 0x7c00, 0x7c00, 0x7c00, 0x7c00, 0x7c00, 0x7c00, 0x7c00, 0x7c00, 0x7c00, 0x7c00, 0x7c00, 0x7c00, 0x7c00, 0x7c00, 0x7c00, 0x7c00, 0x7c00, 0x7c00, 0x7c00, 0x7c00 },
  { 0x3ff, 0x3ff, 0x3ff, 0x3ff, 0x3ff, 0x3ff, 0x3ff, 0x3ff, 0x3ff, 0x3ff, 0x3ff, 0x3ff, 0x3ff, 0x3ff, 0x3ff, 0x3ff, 0x3ff, 0x3ff, 0x3ff, 0x3ff, 0x3ff, 0x3ff, 0x3ff, 0x3ff, 0x3ff, 0x3ff, 0x3ff, 0x3ff, 0x3ff, 0x3ff, 0x3ff, 0x3ff, 0x3ff, 0x3ff, 0x3ff, 0x3ff, 0x3ff, 0x3ff, 0x3ff, 0x3ff, 0x3ff, 0x3ff, 0x3ff, 0x3ff, 0x3ff, 0x3ff, 0x3ff, 0x3ff, 0x3ff, 0x3ff, 0x3ff, 0x3ff, 0x3ff, 0x3ff, 0x3ff, 0x3ff, 0x3ff, 0x3ff, 0x3ff, 0x3ff, 0x3ff, 0x3ff, 0x3ff, 0x3ff },
  { 0x7c1f, 0x7c1f, 0x7c1f, 0x7c1f, 0x7c1f, 0x7c1f, 0x7c1f, 0x7c1f, 0x7c1f, 0x7c1f, 0x7c1f, 0x7c1f, 0x7c1f, 0x7c1f, 0x7c1f, 0x7c1f, 0x7c1f, 0x7c1f, 0x7c1f, 0x7c1f, 0x7c1f, 0x7c1f, 0x7c1f, 0x7c1f, 0x7c1f, 0x7c1f, 0x7c1f, 0x7c1f, 0x7c1f, 0x7c1f, 0x7c1f, 0x7c1f, 0x7c1f, 0x7c1f, 0x7c1f, 0x7c1f, 0x7c1f, 0x7c1f, 0x7c1f, 0x7c1f, 0x7c1f, 0x7c1f, 0x7c1f, 0x7c1f, 0x7c1f, 0x7c1f, 0x7c1f, 0x7c1f, 0x7c1f, 0x7c1f, 0x7c1f, 0x7c1f, 0x7c1f, 0x7c1f, 0x7c1f, 0x7c1f, 0x7c1f, 0x7c1f, 0x7c1f, 0x7c1f, 0x7c1f, 0x7c1f, 0x7c1f, 0x7c1f },
  { 0x7fe0, 0x7fe0, 0x7fe0, 0x7fe0, 0x7fe0, 0x7fe0, 0x7fe0, 0x7fe0, 0x7fe0, 0x7fe0, 0x7fe0, 0x7fe0, 0x7fe0, 0x7fe0, 0x7fe0, 0x7fe0, 0x7fe0, 0x7fe0, 0x7fe0, 0x7fe0, 0x7fe0, 0x7fe0, 0x7fe0, 0x7fe0, 0x7fe0, 0x7fe0, 0x7fe0, 0x7fe0, 0x7fe0, 0x7fe0, 0x7fe0, 0x7fe0, 0x7fe0, 0x7fe0, 0x7fe0, 0x7fe0, 0x7fe0, 0x7fe0, 0x7fe0, 0x7fe0, 0x7fe0, 0x7fe0, 0x7fe0, 0x7fe0, 0x7fe0, 0x7fe0, 0x7fe0, 0x7fe0, 0x7fe0, 0x7fe0, 0x7fe0, 0x7fe0, 0x7fe0, 0x7fe0, 0x7fe0, 0x7fe0, 0x7fe0, 0x7fe0, 0x7fe0, 0x7fe0, 0x7fe0, 0x7fe0, 0x7fe0, 0x7fe0 },
  { 0x7fff, 0x7fff, 0x7fff, 0x7fff, 0x7fff, 0x7fff, 0x7fff, 0x7fff, 0x7fff, 0x7fff, 0x7fff, 0x7fff, 0x7fff, 0x7fff, 0x7fff, 0x7fff, 0x7fff, 0x7fff, 0x7fff, 0x7fff, 0x7fff, 0x7fff, 0x7fff, 0x7fff, 0x7fff, 0x7fff, 0x7fff, 0x7fff, 0x7fff, 0x7fff, 0x7fff, 0x7fff, 0x7fff, 0x7fff, 0x7fff, 0x7fff, 0x7fff, 0x7fff, 0x7fff, 0x7fff, 0x7fff, 0x7fff, 0x7fff, 0x7fff, 0x7fff, 0x7fff, 0x7fff, 0x7fff, 0x7fff, 0x7fff, 0x7fff, 0x7fff, 0x7fff, 0x7fff, 0x7fff, 0x7fff, 0x7fff, 0x7fff, 0x7fff, 0x7fff, 0x7fff, 0x7fff, 0x7fff, 0x7fff }
};

void setup() {
  Serial.begin(38400);
  
  int frame = 7; // 0-indexed
  int row = 4; // 0-indexed
  int col = 4; // 0-indexed
  
  byte r = animation[frame][row * 8 + col] & B00011111;
  byte g = (animation[frame][row * 8 + col] >> 5) & B00011111;
  byte b = (animation[frame][row * 8 + col] >> 10) & B00011111;
  
  Serial.print("Frame: ");
  Serial.print(frame, DEC);
  Serial.print(", Row: ");
  Serial.print(row, DEC);
  Serial.print(", Col: ");
  Serial.print(col, DEC);
  Serial.print(" R: ");
  Serial.print(r, DEC);
  Serial.print(" G: ");
  Serial.print(g, DEC);
  Serial.print(" B: ");
  Serial.print(b, DEC);
}

void loop() {
}

I'd like to share a working Sketch with the next the tool, so people will have something to use as a base for their own code.

Of course, your name will be mentioned wherever appropriate.