ILI9486 - Vertical scrolling

It's possible to scroll image on the TFT screen with:

void     vertScroll(int16_t top, int16_t scrollines, int16_t offset);

I'm scrolling like this:


where H is the screen height (480) and BUTTON_H is 96

Then the top lines goes to bottom and it's scrolling up.


I'm drawing a double height screen (960) and i wish i could scroll this 960px, showing the 480 firsts lines and the next ones when scrolling to 960.

Is it possible ?

A sort of double buffered screen scrolling

Take a piece of paper with 960 lines. marked 0..959

Then take another but mark it 0..479 and 0..479
Sellotape the second sheet into a loop.

Now place the second sheet on top of the first. Starting at 0 on both sheets.

Rotate the second sheet by 1. i.e. 1 at the top, 0 is showing at the bottom. Line the two line #1 on each other. The 0 is on top of line #480 now.

You can see how to display a scrolling vertical window.
Scrolling one line up means that you copy line#480 onto window location #0. Erase #0 first. Adjust the vertical scroll registers to display line#1 at the top of the window.

It is difficult to describe in text. Much easier with paper, pencil and sellotape.

Scrolling one line of text just involves writing the new bottom line into the correct place in physical TFT memory.


I understand the actual scrolling.

See this picture

is that i draw on the screen, drawing 960px height on 480px screen

is the actual scrolling, px under 480px are losts and scrolling is looping the top pixels to the bottom

is what i expected, when scrolling the pixels > 480 went to screen

Seriously. Most people have paper and Sellotape.

Your Arduino has plenty of SRAM to store the text. i.e. sheet #1 has 120 lines of text
Your TFT only has 480 scan lines. i.e. display 60 lines of text at any point in time.

I presume that you want your TFT to look like a VT100 terminal. smooth scrolling. or a typewriter with newline jerky scrolling.

To perform up and down scrolling you need to update the physical TFT GRAM memory i.e. make new text appear at the bottom of the screen. (or top of screen with scroll down)

Your project appeared to require 2000 lines of text (16000 scan lines on a TFT)
So you are always displaying a small "window" onto your 2000 lines of text.

Think about 1980s Unix editors and remote Terminals. The editor manipulates small chunks in RAM memory from a large file on hard disk. Great care was required to minimise the comms traffic over a slow phone line.

Incidentally, 1980s video controllers had a similar arrangement for Vertical Scrolling.