Contents of updated area injected in neighbour areas

Residuals in small areas during updating

Hi there,

I use lvgl 8.3 on a TI TM4C1294 MCU connected to a 2.8" 320x240 display via parallel interface.
I use two buffers with 1/10 of the size.
Memory allocation is done by FreeRTOS’ customized heap4.c with added realloc.
Framerate has been reduceded from 33 frames to 20 frames

I use the custom touch calibration from here

Everything works so far (I’d say).

There’s just one issue I can’t get my head around:
The calibration draws a cross on the screen where it needs to be touched.
When updating after touching the screen, parts of the buffer are straying into neighbouring areas.
I don’t know how to better describe it.

Screenshot and/or video

A small video can is available, here

Any idea what’s wrong?

Thanks in advance,


Found it myself: In short:
The ST7781 / ST7783 features hardware rotation (1) and a GRAM memory window (2).
This avoids having to calculate the rotated coordinates (1) and the address increments (2) in software.
Unfortunately, the memory window coordinates do not “rotate” with the hardware rotation.
That is, the memory window coordinates have to be transformed depending on the hardware rotation.
Performance wise, this is not a big deal, you just have to get your hear around it.

Best regards,