It's not too hard. Start by stealing the Adafruit_IS31FL3731_Wing subclass. Then change the name. Then work on the .displayPixel() method until it does what you want.
#ifndef _PIMORONI_IS31FL3731_5X5RGB_H_
#define _PIMORONI_IS31FL3731_5X5RGB_H_
#include <Adafruit_IS31FL3731.h>
class Pimoroni_IS31FL3731_5x5RGB : public Adafruit_IS31FL3731
{
public:
Pimoroni_IS31FL3731_5x5RGB(void)
: Adafruit_IS31FL3731(15, 5) {}
void drawPixel(int16_t x, int16_t y, uint16_t color)
{
// check rotation, move pixel around if necessary
switch (getRotation())
{
case 1:
_swap_int16_t(x, y);
x = 15 - x - 1;
break;
case 2:
x = 15 - x - 1;
y = 7 - y - 1;
break;
case 3:
_swap_int16_t(x, y);
y = 9 - y - 1;
break;
}
// charlie wing is smaller:
if ((x < 0) || (x >= 16) || (y < 0) || (y >= 7))
return;
if (x > 7)
{
x = 15 - x;
y += 8;
}
else
{
y = 7 - y;
}
_swap_int16_t(x, y);
if (color > 255)
color = 255; // PWM 8bit max
setLEDPWM(x + y * 16, color, _frame);
return;
}
}
#endif