MCP23017 und 4x 7 Segmentdisplay

der vollständigkeit halber hier meine ersten Versuche:

#include <SevSeg.h>

#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#include <Adafruit_MCP23017.h>

#define OLED_RESET LED_BUILTIN  //4
Adafruit_SSD1306 display(OLED_RESET);

Adafruit_MCP23017 mcp_1; 


SevSeg sevseg; //Ein sieben Segment Objekt initialisieren

#include "Meine_Variablen.h"
#include "Meine_Declarationen.h"

 String Text_1 = "Text 1";   

void setup() 
{
  display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
  display.clearDisplay();
  
  mcp_1.begin(0);
  
  mcp_1.pinMode(0, OUTPUT);
  mcp_1.pinMode(1, OUTPUT);
  mcp_1.pinMode(2, OUTPUT);
  mcp_1.pinMode(3, OUTPUT);
  mcp_1.pinMode(4, OUTPUT);
  mcp_1.pinMode(5, OUTPUT);
  mcp_1.pinMode(6, OUTPUT);
  mcp_1.pinMode(7, OUTPUT);
  
  mcp_1.pinMode(8, OUTPUT);
  mcp_1.pinMode(9, OUTPUT);
  mcp_1.pinMode(10, OUTPUT);
  mcp_1.pinMode(11, OUTPUT);
  mcp_1.pinMode(12, OUTPUT);
  mcp_1.pinMode(13, OUTPUT);
  mcp_1.pinMode(14, OUTPUT);
  mcp_1.pinMode(15, OUTPUT);
/*
  byte numDigits = 4;
  byte digitPins[] = {5 , 2, 1, 15}; //Die Pins zu den Ziffern werden festgelegt
  byte segmentPins[] = {4, 0, 13, 11, 10, 3, 14, 12}; 
  sevseg.begin(COMMON_CATHODE, numDigits, digitPins, segmentPins); 
*/
}
void loop() 
{
  Text_anzeigen();
 /* sevseg.setNumber(1234,3);
  sevseg.refreshDisplay(); 
  sevseg.setBrightness(90);
*/  
  mcp_1.digitalWrite(5, LOW);
  mcp_1.digitalWrite(12, HIGH);
}

Sicherlich ist der MAX7219 geeigneter aber dann auch wieder nicht.
mein Vorhaben ist eine 3-4 stellige Anzeige aus 5V RGB LED Streifen zu bauen
ich habe das ganze mit 12V WW LED Strips realisiert aber der Nachteil ist eine zweite Spannung, zwei zusätzliche IC's (Schieberegister und Leistungstreiber) pro Segment, ca. 6-12 facher Strombedarf und leider nur eine Farbe
der MCP hat 16 Ausgänge/Eingänge
7-8 für die Segmente
3-4 für die Element(Anode oder Katode)
2-3 für die Farbauswahl

Ich glaube es währe wirklich fast einfacher eine eigen "Library" zu erstellen. Adererseits muss mann auch nicht immer das Rad neu erfinden nur um dann festzustellen das 100 andere es bereit 1000x besser zu Wege gebracht haben.

Ich währe sehr Dankbar wenn da noch jemand einen hilfreichen Tip hat.