SSD1306 e ina3221 no muestra datos

Hardware usado:
--INA3221
--ESP8266
--SSD1306 Blue

Hola a todos.
Si no es el sitio indicado pido disculpas y también por mi código, soy nuevo en Arduino y mis conocimientos de programación son bajos, pero intento aprender a base de prueba y error, pero ya estoy un poco loco.

Os cuento.
Tengo ya un proyecto con ssd1306 e ina219 y me muestra los datos correctamente, pero con el ina3221 no tengo manera de que me salgan en la oled, solo me aparece “Medidor solar” cuando arranca, pero no me muestra los datos en la oled, sin embargo, en el otro proyecto que tengo sí.

En Blynk y por el serialprint se actualizan correctamente, pero en la pantalla oled solo me sale el mensaje de arranque que tengo definido como Medidor Solar.

#define BLYNK_PRINT Serial
#define BLYNK_MAX_READBYTES 512

#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
#include <Wire.h>
#include <SDL_Arduino_INA3221.h>
#include <Adafruit_SSD1306.h>
#include <OneWire.h>
#include <DallasTemperature.h>
#include <WiFiManager.h>
/****************************************************************************/
BlynkTimer timer;
SDL_Arduino_INA3221 ina3221;
#define SCREEN_WIDTH 128 // OLED display width, in pixels
#define SCREEN_HEIGHT 64 // OLED display height, in pixels

//   Virtual Pins - Base


#define vPIN_VOLTAJE_SOLAR          V0
#define vPIN_CORRIENTE_SOLAR        V1
#define vPIN_VOLTAJE_BATERIA        V2
#define vPIN_CORRIENTE_BATERIA      V3
#define vPIN_VOLTAJE_CARGA          V4
#define vPIN_CORRIENTE_CARGA        V5

#define SOLAR_CELL_CHANNEL 1
#define LIPO_BATTERY_CHANNEL 2
#define OUTPUT_CHANNEL 3


#define DEBUG
// Declaration for an SSD1306 display connected to I2C (SDA, SCL pins)

Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);
// GPIO where the DS18B20 is connected to
const int oneWireBus = 2;    
// Setup a oneWire instance to communicate with any OneWire devices
OneWire oneWire(oneWireBus);
// Pass our oneWire reference to Dallas Temperature sensor 
DallasTemperature sensors(&oneWire);

float shuntvoltage1 = 0.00;
float busvoltage1 = 0.00;
float current_mA1 = 0.00;
float loadvoltage1 = 0.00;
float shuntvoltage2 = 0.00;
float busvoltage2 = 0.00;
float current_mA2 = 0.00;
float loadvoltage2 = 0.00;
float shuntvoltage3 = 0.00;
float busvoltage3 = 0.00;
float current_mA3 = 0.00;
float loadvoltage3 = 0.00;
float tempC=0.00;
int sendTimer, pollingTimer, priceTimer, graphTimer, autoRange, countdownResetCon, countdownResetClock, counter2, secret, stopwatchTimer;
long stopwatch;
int splitTimer1, splitTimer2, splitTimer3, splitTimer4, splitTimer5;
int sendTimer1, sendTimer2, sendTimer3, sendTimer4, sendTimer5;
unsigned long previousMillis = 0;
unsigned long interval = 100;

char auth[] = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";   // Enter Blynk auth id
/*************************************************/



void get_sensor_data() {
  
//CH1
  busvoltage1 = ina3221.getBusVoltage_V(SOLAR_CELL_CHANNEL);
  shuntvoltage1 = ina3221.getShuntVoltage_mV(SOLAR_CELL_CHANNEL);
  current_mA1 = -ina3221.getCurrent_mA(SOLAR_CELL_CHANNEL);  // minus is to get the "sense" right.   - means the battery is charging, + that it is discharging
  loadvoltage1 = busvoltage1 + (shuntvoltage1 / 1000);
//CH2  
  busvoltage2 = ina3221.getBusVoltage_V(LIPO_BATTERY_CHANNEL);
  shuntvoltage2 = ina3221.getShuntVoltage_mV(LIPO_BATTERY_CHANNEL);
  current_mA2 = -ina3221.getCurrent_mA(LIPO_BATTERY_CHANNEL);
  loadvoltage2 = busvoltage2 + (shuntvoltage2 / 1000);
//CH3
  busvoltage3 = ina3221.getBusVoltage_V(OUTPUT_CHANNEL);
  shuntvoltage3 = ina3221.getShuntVoltage_mV(OUTPUT_CHANNEL);
  current_mA3 = ina3221.getCurrent_mA(OUTPUT_CHANNEL);
  loadvoltage3 = busvoltage3 + (shuntvoltage3 / 1000);
  
  
  sensors.requestTemperatures(); // get temperatures
  tempC = sensors.getTempCByIndex(0);
  }
void display_data() {
  
   Blynk.virtualWrite(vPIN_VOLTAJE_SOLAR, String(busvoltage1, 2) + String(" V") );
  display.clearDisplay(); 
  display.setCursor(0, 10);
  display.print(busvoltage1);
  display.print(" V");
  Serial.println("------------------------------");
  Serial.print("Voltaje placa solar:   "); Serial.print(loadvoltage1); Serial.println(" V");
 
  
   if (current_mA1 > 1000 && autoRange == 1) {
   Blynk.virtualWrite(vPIN_CORRIENTE_SOLAR, String((current_mA1 / 1000), 3) + String(" A") );
    display.setCursor(70, 10);
    display.print((current_mA1 / 1000), 2);
    display.print(" A");
  Serial.print("Corriente placa solar:   "); Serial.print(current_mA1); Serial.println(" A");
  Serial.println("");
  } else {

    Blynk.virtualWrite(vPIN_CORRIENTE_SOLAR, String(current_mA1, 2) + String(" mA"));
    display.setCursor(70, 10);
    display.print(current_mA1,1);
    display.print(" mA");
     Serial.print("Corriente placa solar:   "); Serial.print(current_mA1); Serial.println(" mA");
  Serial.println("");

//----------------------------------------------------------------------------------------------------
   Blynk.virtualWrite(vPIN_VOLTAJE_BATERIA, String(busvoltage2, 2) + String(" V") );
  display.clearDisplay(); 
  display.setCursor(0, 30);
  display.print(busvoltage2);
  display.print(" V");
  Serial.println("------------------------------");
  Serial.print("Voltaje bateria:   "); Serial.print(loadvoltage2); Serial.println(" V");
 
  
   if (current_mA2 > 1000 && autoRange == 1) {
   Blynk.virtualWrite(vPIN_CORRIENTE_BATERIA, String((current_mA2 / 1000), 3) + String(" A") );
    display.setCursor(70, 30);
    display.print((current_mA2 / 1000), 2);
    display.print(" A");
  Serial.print("Corriente bateria:   "); Serial.print(current_mA2); Serial.println(" A");
  Serial.println("");
  } else {

    Blynk.virtualWrite(vPIN_CORRIENTE_BATERIA, String(current_mA2, 2) + String(" mA"));
    display.setCursor(70, 30);
    display.print(current_mA2,1);
    display.print(" mA");
     Serial.print("Corriente bateria:   "); Serial.print(current_mA2); Serial.println(" mA");
  Serial.println("");

//------------------------------------------------------------------------------------------------------

   Blynk.virtualWrite(vPIN_VOLTAJE_CARGA, String(busvoltage3, 2) + String(" V") );
  display.clearDisplay(); 
  display.setCursor(0, 50);
  display.print(busvoltage3);
  display.print(" V");
  Serial.println("------------------------------");
  Serial.print("Voltaje carga:   "); Serial.print(loadvoltage3); Serial.println(" V");
 
  
   if (current_mA3 > 1000 && autoRange == 1) {
   Blynk.virtualWrite(vPIN_CORRIENTE_CARGA, String((current_mA3 / 1000), 3) + String(" A") );
    display.setCursor(70, 50);
    display.print((current_mA3 / 1000), 2);
    display.print(" A");
  Serial.print("Corriente carga:   "); Serial.print(current_mA3); Serial.println(" A");
  Serial.println("");
  } else {

    Blynk.virtualWrite(vPIN_CORRIENTE_CARGA, String(current_mA3, 2) + String(" mA"));
    display.setCursor(70, 50);
    display.print(current_mA3,1);
    display.print(" mA");
     Serial.print("Corriente carga:   "); Serial.print(current_mA3); Serial.println(" mA");
  Serial.println("");
  
  }   

}}}
// the stopwatch counter which is run on a timer

void stopwatchCounter() {
  stopwatch++;
  long days = 0, hours = 0, mins = 0, secs = 0;
  String secs_o = ":", mins_o = ":", hours_o = ":";
  secs = stopwatch; //convect milliseconds to seconds
  mins = secs / 60; //convert seconds to minutes
  hours = mins / 60; //convert minutes to hours
  days = hours / 24; //convert hours to days
  secs = secs - (mins * 60); //subtract the coverted seconds to minutes in order to display 59 secs max
  mins = mins - (hours * 60); //subtract the coverted minutes to hours in order to display 59 minutes max
  hours = hours - (days * 24); //subtract the coverted hours to days in order to display 23 hours max
  if (secs < 10) secs_o = ":0";
  if (mins < 10) mins_o = ":0";
  if (hours < 10) hours_o = ":0";
 // Blynk.virtualWrite(vPIN_ENERGY_TIME, days + hours_o + hours + mins_o + mins + secs_o + secs);

}  
void setup(void) {
     Serial.begin(115200);
  
 
//WiFiManager, Local intialization. Once its business is done, there is no need to keep it around
    WiFiManager wm;

    // reset settings - wipe stored credentials for testing
    // these are stored by the esp library
    // wm.resetSettings();

    // Automatically connect using saved credentials,
    // if connection fails, it starts an access point with the specified name ( "AutoConnectAP"),
    // if empty will auto generate SSID, if password is blank it will be anonymous AP (wm.autoConnect())
    // then goes into a blocking loop awaiting configuration and will return success result

    bool res;
    // res = wm.autoConnect(); // auto generated AP name from chipid
    // res = wm.autoConnect("AutoConnectAP"); // anonymous ap
    res = wm.autoConnect("AutoConnectAP","password"); // password protected ap

    if(!res) {
        Serial.println("Failed to connect");
        // ESP.restart();
    } 
    else {
        //if you get here you have connected to the WiFi    
        Serial.println("Conectado");
         Blynk.begin(auth,  "serverlocal.local", 8080);
    }  

    // initialize OLED display
  display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
  display.clearDisplay();
  display.setTextColor(WHITE);
  display.setTextSize(1);
  display.setCursor(12,25);
  display.print("Monitor Solar");
  display.display(); 

  
 // START INA3221
 
  ina3221.begin();
  sensors.begin();
  
// TIMERS 

  pollingTimer = timer.setInterval(2000, get_sensor_data);
  graphTimer = timer.setInterval(2000, []() {
  
  });

  stopwatchTimer = timer.setInterval(2000, stopwatchCounter); 

  // setup split-task timers so we dont overload ESP
  // with too many virtualWrites per second
  timer.setTimeout(200, []() {
    sendTimer1 = timer.setInterval(2000, display_data); 

  });        

 


}

void loop() {
  // the loop... dont touch or add to this!
  Blynk.run();
  timer.run(); 
}

Me respondo a mi mismo....
Me faltaba el:
display.display(); y eliminar display.clearDisplay(); duplicado, madre mia toda la tarde para darme cuenta jeje.
Bueno una cosa que ya no se me olvida de mi aventura por arduinos.
Gracias.