I2C LCD causes problems

@bperrybap: You say my code is very different? I'll have to review that much more closely. I thought I had it the same except for changing names, etc to fit my code and removing the printf.

@groundFungus: thank you for that code, I see where I left the curly brackets off. Here is my code now from the "void updateDisplay() line (I did delete the commented out lines and copied 'n pasted your lines direct into my code:

void updateDisplay()
{
  
  {
    static unsigned long lcdTimer = 0;
    unsigned long lcdInterval = 500;  // update 2 times per second
    if (millis() - lcdTimer >= lcdInterval)
    {
      lcdTimer = millis();
      //below is the copy 'n paste
if (rpm != lastRPM) // only print to LCD if rpm changed

      {
        lcd.setCursor(6, 0);
        lcd.print("       "); // overwrite old data
        lcd.setCursor(8, 0); // reset cursor
        lcd.print(rpm);


        lcd.setCursor(6, 1);
        lcd.print("       "); // overwrite old data
        lcd.setCursor(8, 1); // reset cursor
        lcd.print(ips, 1);
      }
    }
  }
}

The code loads and runs, even with motor turning a steady rpm it's still got the bump each time the LCD updates (500 millies). For some reason I think the LCD is updating every 500 millis.

Folks, I really appreciate ya'll helping me but I'm starting to feel like I'm imposing too much. The stepper is working on the mill and I can live with the bump if I have to.

Please feel free to take a break from this if ya'll wish. I have really learned a LOTS the last couple of days.