Skip to content

de-dh/ESP32-Cheap-Yellow-Display-Micropython-LVGL

Repository files navigation

Warning

You must do hard-resets of your CYD after running a program. Soft resets may throw this error: can't convert to module to int.

>>>>> Please read the complete readme files and check the closed issues before asking for help or opening any new issues. <<<<<

Cheap Yellow Display

The family of Esp32-S2432028Rs or Cheap Yellow Displays (CYDs) comprises of various boards with similar hardware configuration most importantly including

  • an Esp32- WROOM and
  • an ILI9341 2.8' (320 x 240, RGB565) display with a xpt2046 resistive touch interface.

This makes the CYDs ideal candidates for the development of small GUI projects using LVGL and MicroPython. This repositry documents three different approaches on how to use the CYDs Display and it's touchscreen.

Approach Folder Firmware Usecase Description
MPY Only /mpy_only Standard MPY Firmware Very Limited Low-level touch support.
Uses rdaggers ILI9431 and XPT2046 driver. Only primitive draw functions from MPY's framebuffer module and the display driver are available.
MPY + nanogui /mpy_nanogui Standard MPY Firmware Simple UI / Data Display No touch support.
Peter Hinch's nanogui supports the creation and updates of simple widgets like Labels and simple diagrams. Custom fonts and mono images can be used easily. Good choice for simple UIs (e. g. displaying data) without touch input.
MPY + LVGL9 /lvgl9_firmwares Precompiled LVGL9 Firmware Professional GUIs / User Interactions High-level touch support.
Supports professionally looking GUIs with touch user input. Compiled from Kdschlosser's Micropython Bindings.
Versions: LVGL 9.4 and Micropython 1.27.0.
MPY + LVGL9 /lvgl9_examples LVGL9 Examples LVGL9 Examples Demonstrates various widgets and functionalities of LVGL9 on the CYD.

The focus of this repositry is the setup of LVGL. LVGL enables the development of professionally looking GUIs which accept user input with reasonable effort. LVGL offers predefined widgets like labels, buttons, lists, textareas etc. All objects are styled using css-like style properties, e. g. text-color, background-color, shadow, padding. Objects can be aligned relative to each other and complex layouts can be designed using flexbox and grid like positioning. Even animations are supported.

The major drawback of LVGL is that it requires a custom MPY firmware build and setting up the cofiguration for a specific touch / display combination can be tricky. Kdschlosser's Micropython Bindings for MPY aims to make the compilation of the firmware as easy as possible. The bindings were used to compile the firmware for the CYD which is provided for download in this repositry.

An integrated Esp32S3 display module with more power is the JC3248W535 aka Cheap Black Display (CBD). It has onboard PSRAM which supports more complex LVGL programs.

CYD Setup

The following links provide detailed instructions on how to setup the CYD.

Contributing

Everyone is welcome to share example programs and tips.

Links

CYD Links:

Nanogui Links:

LVGL / Micropython Links:

About

This repository is about running LVGL under Micropython firmware on the cheap yellow display. It also provides a complete nanogui setup for the CYD.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors