ESP32+GC9A01 with latest lv_micropython(solved)


I heard mp has been release v1.20, it is capable for BLE pair/bonding for ESP32
LVGL is great and micropython is great too,
that would be great for me :slight_smile:
Great thanks to @amirgon for aligning the latest mp to lv_micropython.

I was developing with stable release/v8 version, but I am expecting the BLE bonding for so long time and I think it will be implemented with latest v9/dev version of LVGL.
So, I’ve built new firmware, but the display shows strange compare with v8.
It is not only for png images , but also every widget shows strange color, which are no problem with v8.

I’ve tried,

  • Built with only LV_CFLAGS=“-DLV_COLOR_DEPTH=16” flag, described in latest
  • Built with LV_CFLAGS=“-DLV_COLOR_DEPTH=16” and COLOR_SWAP=1 flags, used to do in v8 version.
  • Initialize the display driver with colormode=COLOR_MODE_RGB and COLOR_MODE_BGR.
  • Tried with ESP-IDF 4.4.3 and 4.4.4

What am I missing?

env are,
ESP-IDF v4.4.4,
lv_micropython - b81680a,

Some of the macro names have changed in V9 and some things are no longer done at compile time and are instead done at runtime.

COLOR_SWAP no longer exists and swapping the bits is not done at compile time anymore. It is done at runtime.

disp_drv = lv.disp_create(width, height)

Oh my goodness, Thank you @kdschlosser!

I initialized the display driver with the options,
It is worked!

import lvgl as lv
from ili9XXX import gc9a01, COLOR_MODE_BGR
disp = gc9a01(
…, colormode=COLOR_MODE_BGR, color_format=lv.COLOR_FORMAT.NATIVE_REVERSED,

Mark my answer as the solution.

and no worries m8 that’s what we are here for.