I2C LCD display getting corrupted [SOLVED]

Bulldog asked me to chime in as I referenced this thread in another. I have a 20x4 lcd with a backpack with the same chip. Also getting a corruption. I’ve reset it twice, once before bed and once before work. So the corruption is happening sometime between 30 minutes and 8 hours. Sorry I don’t have more specifics. Using 10K resistors for pull up.
1st corruption had moving characters, the last two are more static. I’m powering it off of usb hub off of a computer and it’s breadboarded so the setup would be considered “dirty” from a clean power and line view.

 // This #include statement was automatically added by the Spark IDE.
#include "application.h"
#include "LiquidCrystal_I2C.h"

LiquidCrystal_I2C   *lcd;
int i2c_addr = 0x27;
int i = 0;
// This routine runs only once upon reset
void setup() {
    
  Serial.begin(9600);
    lcd = new LiquidCrystal_I2C(i2c_addr, 20, 4);  // set the LCD address to 0x20 for a 16x2 //SparkCore bug, address is actually 27 but shifted (0x27*2)
    lcd->begin(20, 4, LCD_5x8DOTS);
    lcd->backlight();
    lcd->init();                      // initialize the lcd
    lcd->backlight();
    lcd->clear();
    lcd->setCursor(0,0);
    lcd->print("---Spark*Core---");
    lcd->setCursor(0,1);
    lcd->print("Uptime:");
 }
 
void loop()
{
    lcd->setCursor(7,1);
    lcd->print((int)(millis()/1000));
    Serial.println("Hello ");
    Serial.println(i);
    delay(500);
    i++;
}


I’m removing the serial part of the code for tonight as there was a post hypothesizing it might be the issue. Also last flash I couldn’t actually get a serial response and I really don’t need it anymore.

I’m also using the libraries from the Hitchhikers Guide to I2C post