Pimoroni 5x5 RGB Matrix

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