Difficulties scrolling text on a 4 row by 20 column LCD display

I am using a 2004 (20 column x 4 row) LCD with an Arduino UNO connected via I2C. I am using the LiquidCrystal_I2C library.

Absolutely everything appears to work flawlessly with the exception of scrolling. When I make use of scrollDisplayLeft, scrollDisplayRight, or autoscroll I run into difficulties.

Suppose that I have text on line 1 and the rest of the display is blank. Now, I scroll text towards the left using either scrollDisplayLeft or autoscroll. As soon as a character scrolls off the screen to the left, it scrolls in from the right side of the third line. Likewise, text that scrolls off the third line to the right will enter the first line from the left side.

Put another way, it appears as though the first and third lines are being treated as a single line that is 40 columns wide with line 1 following line 3.

Does anyone know whether there is any sort of setting that can overcome this behavior?

If any additional info is needed please do let me know.

hsehestedt:
. . .

Put another way, it appears as though the first and third lines are being treated as a single line that is 40 columns wide with line 1 following line 3.
. . .

That is precisely how the memory in the HD44780U controller chip is arranged. Remember - the chip was designed more than 4 decades ago.

For all the gory details follow the LCD Addressing link at web.alfredstate.edu/faculty/weimandn.

Don

Thanks. I appreciate the confirmation. I guess I was expecting too much for the library to actually handle this situation :-).

At least now I know that I'm not simply doing something stupid. I can write my own scrolling routine easily enough.

One related question:

Is anyone aware of a much larger LCD screen that will work Arduino? Maybe like 8 lines x 40 characters. I know that I could attach multiple 4 line displays or go with something like an OLED or TFT, but those blasted things are so tiny (in physical dimensions).

What about the ubiquitous Nokia display?

Question here is: Why would you ever want to scroll a display? :roll_eyes:

On a LCD character display, it has little value as it is so jumpy.

Nevertheless, are you using Bill Perry's "HD44780" library installed via the Library Manager in the IDE? It does all sorts of useful things including auto-sensing and configuration of these displays. :grinning: