If there are really 19 NeoPixels in the cluster, you might be able to brute-force a remap function, treating the cells as part of a larger matrix with most of the boxes empty. I use a similar function.

*Not a board game...or is it?*
- HexRemap01.png (6.02 KiB) Viewed 320 times

Then constructing your matrix object as a 9x9 grid, a remap function might look like this.

- Code: Select all | TOGGLE FULL SIZE
`// Brute force address conversion, XY to Hex cells`

uint16_t hexedGrid01(uint16_t x, uint16_t y) {

y = 9 * y + x; // Compute index number based on 9x9 matrix

switch(y) { // Only 19 locations contain a NeoPixel

case 40:

return 0;

case 11:

return 1;

case 36:

return 2;

case 65:

return 3;

case 51:

return 4;

case 26:

return 5;

case 22:

return 6;

case 47:

return 7;

case 69:

return 8;

case 44:

return 9;

case 15:

return 10;

case 29:

return 11;

case 76:

return 12;

case 62:

return 13;

case 33:

return 14;

case 4:

return 15;

case 18:

return 16;

case 54:

return 17;

case 58:

return 18;

default:

return 20; // Empty matrix location = nonexistent pixel address

}

}

Of course, the number pairs would need to match your pixel arrangement, and of course, only simple functions from

the GFX library would be discernible, like a filled circle that spreads from the center or a rectangle wiping downward. Do post a picture if you get it to work. (c:

Hallelujah!

Disciple