Same situation with the "confused line numbers" and other annoyances with that display. I first described them here
Some observations that may help:
- For me, the problem 'almost only' happens on reset. If the display is powered down, it's almost always OK.
- lcd.clear() often doesn't reset the cursor to 0,0. (Made a clear function that adds that.)
- FWIW, the LiquidCrystal_I2C lib runs that display without the mods needed for 4 bit in the LiquidCrystal lib.
Too bad! Other than that it's a great display - bright and sharp. It's the only character based OLED I know of. The graphic OLED displays I've seen require a software character set, which is fine if you have the memory and a decent sized set.