Giter VIP home page Giter VIP logo

lcd_binding_micropython's Introduction

LCD Driver for MicroPython

Contents:

Introduction

This driver is based on esp_lcd.

Currently only some basic functions are supported.It will be compatible with st7789_mpy in the future.

Features

The following display driver ICs are supported:

  • Support for ST7789 displays
  • Support for ST7701 displays (based on esp_lcd)
  • Support for ST7735 displays
  • Support for ILI9488 displays
  • Support for RM67162 displays

Supported boards:

Driver IC Hardware SPI Software SPI Hardware QSPI I8080 DPI(RGB)
ESP32 alt text alt text alt text alt text alt text
ESP32-C3 alt text alt text alt text alt text alt text
ESP32-S2 alt text alt text alt text alt text alt text
ESP32-S3 alt text alt text alt text alt text alt text

Documentation

API documentation for this library can be found on Read the Docs.

More

If you need to support more screens, please provide corresponding hardware.

Related Repositories

References

lcd_binding_micropython's People

Contributors

lbuque avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

lcd_binding_micropython's Issues

Building issue

Hi, I followed the commands on the documents and run into these issues trying to build the firmware using the official micropython repo.

The messages are as follow: (mainly caused by some missing files)
Could you help me with that please?

/home/paul/esp/mpy/micropython/extmod/lcd_binding_micropython/lcd/hal/esp32/esp32.c:10:10: fatal error: esp_lcd_panel_io.h: No such file or directory
 #include "esp_lcd_panel_io.h"
          ^~~~~~~~~~~~~~~~~~~~
compilation terminated.
In file included from /home/paul/esp/esp-idf/components/tinyusb/tinyusb/src/osal/osal_freertos.h:33,
                 from /home/paul/esp/esp-idf/components/tinyusb/tinyusb/src/osal/osal.h:53,
                 from /home/paul/esp/esp-idf/components/tinyusb/tinyusb/src/tusb.h:38,
                 from /home/paul/esp/esp-idf/components/tinyusb/additions/include/tinyusb.h:18,
                 from /home/paul/esp/mpy/micropython/ports/esp32/usb.c:33:
/home/paul/esp/mpy/micropython/lib/berkeley-db-1.xx/PORT/include/queue.h:85: warning: "LIST_INIT" redefined
 #define LIST_INIT(head) {      \

In file included from /home/paul/esp/esp-idf/components/esp_rom/include/esp32s2/rom/lldesc.h:20,
                 from /home/paul/esp/esp-idf/components/soc/include/soc/lldesc.h:22,
                 from /home/paul/esp/esp-idf/components/driver/include/driver/spi_common.h:13,
                 from /home/paul/esp/esp-idf/components/driver/include/driver/spi_master.h:12,
                 from /home/paul/esp/mpy/micropython/ports/esp32/mphalport.h:38,
                 from /home/paul/esp/mpy/micropython/py/mphal.h:35,
                 from /home/paul/esp/mpy/micropython/ports/esp32/usb.c:28:
/home/paul/.espressif/tools/xtensa-esp32s2-elf/esp-2021r2-patch5-8.4.0/xtensa-esp32s2-elf/xtensa-esp32s2-elf/sys-include/sys/queue.h:563: note: this is the location of the previous definition
 #define LIST_INIT(head) do {      \

In file included from /home/paul/esp/esp-idf/components/tinyusb/tinyusb/src/osal/osal_freertos.h:33,
                 from /home/paul/esp/esp-idf/components/tinyusb/tinyusb/src/osal/osal.h:53,
                 from /home/paul/esp/esp-idf/components/tinyusb/tinyusb/src/tusb.h:38,
                 from /home/paul/esp/esp-idf/components/tinyusb/additions/include/tinyusb.h:18,
                 from /home/paul/esp/mpy/micropython/ports/esp32/usb.c:33:
/home/paul/esp/mpy/micropython/lib/berkeley-db-1.xx/PORT/include/queue.h:89: warning: "LIST_INSERT_AFTER" redefined
 #define LIST_INSERT_AFTER(listelm, elm, field) {   \

In file included from /home/paul/esp/esp-idf/components/esp_rom/include/esp32s2/rom/lldesc.h:20,
                 from /home/paul/esp/esp-idf/components/soc/include/soc/lldesc.h:22,
                 from /home/paul/esp/esp-idf/components/driver/include/driver/spi_common.h:13,
                 from /home/paul/esp/esp-idf/components/driver/include/driver/spi_master.h:12,
                 from /home/paul/esp/mpy/micropython/ports/esp32/mphalport.h:38,
                 from /home/paul/esp/mpy/micropython/py/mphal.h:35,
                 from /home/paul/esp/mpy/micropython/ports/esp32/usb.c:28:
/home/paul/.espressif/tools/xtensa-esp32s2-elf/esp-2021r2-patch5-8.4.0/xtensa-esp32s2-elf/xtensa-esp32s2-elf/sys-include/sys/queue.h:567: note: this is the location of the previous definition
 #define LIST_INSERT_AFTER(listelm, elm, field) do {   \

In file included from /home/paul/esp/esp-idf/components/tinyusb/tinyusb/src/osal/osal_freertos.h:33,
                 from /home/paul/esp/esp-idf/components/tinyusb/tinyusb/src/osal/osal.h:53,
                 from /home/paul/esp/esp-idf/components/tinyusb/tinyusb/src/tusb.h:38,
                 from /home/paul/esp/esp-idf/components/tinyusb/additions/include/tinyusb.h:18,
                 from /home/paul/esp/mpy/micropython/ports/esp32/usb.c:33:
/home/paul/esp/mpy/micropython/lib/berkeley-db-1.xx/PORT/include/queue.h:97: warning: "LIST_INSERT_HEAD" redefined
 #define LIST_INSERT_HEAD(head, elm, field) {    \

In file included from /home/paul/esp/esp-idf/components/esp_rom/include/esp32s2/rom/lldesc.h:20,
                 from /home/paul/esp/esp-idf/components/soc/include/soc/lldesc.h:22,
                 from /home/paul/esp/esp-idf/components/driver/include/driver/spi_common.h:13,
                 from /home/paul/esp/esp-idf/components/driver/include/driver/spi_master.h:12,
                 from /home/paul/esp/mpy/micropython/ports/esp32/mphalport.h:38,
                 from /home/paul/esp/mpy/micropython/py/mphal.h:35,
                 from /home/paul/esp/mpy/micropython/ports/esp32/usb.c:28:
/home/paul/.espressif/tools/xtensa-esp32s2-elf/esp-2021r2-patch5-8.4.0/xtensa-esp32s2-elf/xtensa-esp32s2-elf/sys-include/sys/queue.h:584: note: this is the location of the previous definition
 #define LIST_INSERT_HEAD(head, elm, field) do {    \

In file included from /home/paul/esp/esp-idf/components/tinyusb/tinyusb/src/osal/osal_freertos.h:33,
                 from /home/paul/esp/esp-idf/components/tinyusb/tinyusb/src/osal/osal.h:53,
                 from /home/paul/esp/esp-idf/components/tinyusb/tinyusb/src/tusb.h:38,
                 from /home/paul/esp/esp-idf/components/tinyusb/additions/include/tinyusb.h:18,
                 from /home/paul/esp/mpy/micropython/ports/esp32/usb.c:33:
/home/paul/esp/mpy/micropython/lib/berkeley-db-1.xx/PORT/include/queue.h:104: warning: "LIST_REMOVE" redefined
 #define LIST_REMOVE(elm, field) {     \

In file included from /home/paul/esp/esp-idf/components/esp_rom/include/esp32s2/rom/lldesc.h:20,
                 from /home/paul/esp/esp-idf/components/soc/include/soc/lldesc.h:22,
                 from /home/paul/esp/esp-idf/components/driver/include/driver/spi_common.h:13,
                 from /home/paul/esp/esp-idf/components/driver/include/driver/spi_master.h:12,
                 from /home/paul/esp/mpy/micropython/ports/esp32/mphalport.h:38,
                 from /home/paul/esp/mpy/micropython/py/mphal.h:35,
                 from /home/paul/esp/mpy/micropython/ports/esp32/usb.c:28:
/home/paul/.espressif/tools/xtensa-esp32s2-elf/esp-2021r2-patch5-8.4.0/xtensa-esp32s2-elf/xtensa-esp32s2-elf/sys-include/sys/queue.h:599: note: this is the location of the previous definition
 #define LIST_REMOVE(elm, field) do {     \

In file included from /home/paul/esp/esp-idf/components/tinyusb/tinyusb/src/osal/osal_freertos.h:33,
                 from /home/paul/esp/esp-idf/components/tinyusb/tinyusb/src/osal/osal.h:53,
                 from /home/paul/esp/esp-idf/components/tinyusb/tinyusb/src/tusb.h:38,
                 from /home/paul/esp/esp-idf/components/tinyusb/additions/include/tinyusb.h:18,
                 from /home/paul/esp/mpy/micropython/ports/esp32/usb.c:33:
/home/paul/esp/mpy/micropython/lib/berkeley-db-1.xx/PORT/include/queue.h:114: warning: "TAILQ_HEAD" redefined
 #define TAILQ_HEAD(name, type)      \

In file included from /home/paul/esp/esp-idf/components/esp_rom/include/esp32s2/rom/lldesc.h:20,
                 from /home/paul/esp/esp-idf/components/soc/include/soc/lldesc.h:22,
                 from /home/paul/esp/esp-idf/components/driver/include/driver/spi_common.h:13,
                 from /home/paul/esp/esp-idf/components/driver/include/driver/spi_master.h:12,
                 from /home/paul/esp/mpy/micropython/ports/esp32/mphalport.h:38,
                 from /home/paul/esp/mpy/micropython/py/mphal.h:35,
                 from /home/paul/esp/mpy/micropython/ports/esp32/usb.c:28:
/home/paul/.espressif/tools/xtensa-esp32s2-elf/esp-2021r2-patch5-8.4.0/xtensa-esp32s2-elf/xtensa-esp32s2-elf/sys-include/sys/queue.h:625: note: this is the location of the previous definition
 #define TAILQ_HEAD(name, type)      \

In file included from /home/paul/esp/esp-idf/components/tinyusb/tinyusb/src/osal/osal_freertos.h:33,
                 from /home/paul/esp/esp-idf/components/tinyusb/tinyusb/src/osal/osal.h:53,
                 from /home/paul/esp/esp-idf/components/tinyusb/tinyusb/src/tusb.h:38,
                 from /home/paul/esp/esp-idf/components/tinyusb/additions/include/tinyusb.h:18,
                 from /home/paul/esp/mpy/micropython/ports/esp32/usb.c:33:
/home/paul/esp/mpy/micropython/lib/berkeley-db-1.xx/PORT/include/queue.h:120: warning: "TAILQ_ENTRY" redefined
 #define TAILQ_ENTRY(type)      \

In file included from /home/paul/esp/esp-idf/components/esp_rom/include/esp32s2/rom/lldesc.h:20,
                 from /home/paul/esp/esp-idf/components/soc/include/soc/lldesc.h:22,
                 from /home/paul/esp/esp-idf/components/driver/include/driver/spi_common.h:13,
                 from /home/paul/esp/esp-idf/components/driver/include/driver/spi_master.h:12,
                 from /home/paul/esp/mpy/micropython/ports/esp32/mphalport.h:38,
                 from /home/paul/esp/mpy/micropython/py/mphal.h:35,
                 from /home/paul/esp/mpy/micropython/ports/esp32/usb.c:28:
/home/paul/.espressif/tools/xtensa-esp32s2-elf/esp-2021r2-patch5-8.4.0/xtensa-esp32s2-elf/xtensa-esp32s2-elf/sys-include/sys/queue.h:642: note: this is the location of the previous definition
 #define TAILQ_ENTRY(type)      \

In file included from /home/paul/esp/esp-idf/components/tinyusb/tinyusb/src/osal/osal_freertos.h:33,
                 from /home/paul/esp/esp-idf/components/tinyusb/tinyusb/src/osal/osal.h:53,
                 from /home/paul/esp/esp-idf/components/tinyusb/tinyusb/src/tusb.h:38,
                 from /home/paul/esp/esp-idf/components/tinyusb/additions/include/tinyusb.h:18,
                 from /home/paul/esp/mpy/micropython/ports/esp32/usb.c:33:
/home/paul/esp/mpy/micropython/lib/berkeley-db-1.xx/PORT/include/queue.h:129: warning: "TAILQ_INIT" redefined
 #define TAILQ_INIT(head) {      \

In file included from /home/paul/esp/esp-idf/components/esp_rom/include/esp32s2/rom/lldesc.h:20,
                 from /home/paul/esp/esp-idf/components/soc/include/soc/lldesc.h:22,
                 from /home/paul/esp/esp-idf/components/driver/include/driver/spi_common.h:13,
                 from /home/paul/esp/esp-idf/components/driver/include/driver/spi_master.h:12,
                 from /home/paul/esp/mpy/micropython/ports/esp32/mphalport.h:38,
                 from /home/paul/esp/mpy/micropython/py/mphal.h:35,
                 from /home/paul/esp/mpy/micropython/ports/esp32/usb.c:28:
/home/paul/.espressif/tools/xtensa-esp32s2-elf/esp-2021r2-patch5-8.4.0/xtensa-esp32s2-elf/xtensa-esp32s2-elf/sys-include/sys/queue.h:767: note: this is the location of the previous definition
 #define TAILQ_INIT(head) do {      \

In file included from /home/paul/esp/esp-idf/components/tinyusb/tinyusb/src/osal/osal_freertos.h:33,
                 from /home/paul/esp/esp-idf/components/tinyusb/tinyusb/src/osal/osal.h:53,
                 from /home/paul/esp/esp-idf/components/tinyusb/tinyusb/src/tusb.h:38,
                 from /home/paul/esp/esp-idf/components/tinyusb/additions/include/tinyusb.h:18,
                 from /home/paul/esp/mpy/micropython/ports/esp32/usb.c:33:
/home/paul/esp/mpy/micropython/lib/berkeley-db-1.xx/PORT/include/queue.h:134: warning: "TAILQ_INSERT_HEAD" redefined
 #define TAILQ_INSERT_HEAD(head, elm, field) {    \

In file included from /home/paul/esp/esp-idf/components/esp_rom/include/esp32s2/rom/lldesc.h:20,
                 from /home/paul/esp/esp-idf/components/soc/include/soc/lldesc.h:22,
                 from /home/paul/esp/esp-idf/components/driver/include/driver/spi_common.h:13,
                 from /home/paul/esp/esp-idf/components/driver/include/driver/spi_master.h:12,
                 from /home/paul/esp/mpy/micropython/ports/esp32/mphalport.h:38,
                 from /home/paul/esp/mpy/micropython/py/mphal.h:35,
                 from /home/paul/esp/mpy/micropython/ports/esp32/usb.c:28:
/home/paul/.espressif/tools/xtensa-esp32s2-elf/esp-2021r2-patch5-8.4.0/xtensa-esp32s2-elf/xtensa-esp32s2-elf/sys-include/sys/queue.h:798: note: this is the location of the previous definition
 #define TAILQ_INSERT_HEAD(head, elm, field) do {   \

In file included from /home/paul/esp/esp-idf/components/tinyusb/tinyusb/src/osal/osal_freertos.h:33,
                 from /home/paul/esp/esp-idf/components/tinyusb/tinyusb/src/osal/osal.h:53,
                 from /home/paul/esp/esp-idf/components/tinyusb/tinyusb/src/tusb.h:38,
                 from /home/paul/esp/esp-idf/components/tinyusb/additions/include/tinyusb.h:18,
                 from /home/paul/esp/mpy/micropython/ports/esp32/usb.c:33:
/home/paul/esp/mpy/micropython/lib/berkeley-db-1.xx/PORT/include/queue.h:144: warning: "TAILQ_INSERT_TAIL" redefined
 #define TAILQ_INSERT_TAIL(head, elm, field) {    \

In file included from /home/paul/esp/esp-idf/components/esp_rom/include/esp32s2/rom/lldesc.h:20,
                 from /home/paul/esp/esp-idf/components/soc/include/soc/lldesc.h:22,
                 from /home/paul/esp/esp-idf/components/driver/include/driver/spi_common.h:13,
                 from /home/paul/esp/esp-idf/components/driver/include/driver/spi_master.h:12,
                 from /home/paul/esp/mpy/micropython/ports/esp32/mphalport.h:38,
                 from /home/paul/esp/mpy/micropython/py/mphal.h:35,
                 from /home/paul/esp/mpy/micropython/ports/esp32/usb.c:28:
/home/paul/.espressif/tools/xtensa-esp32s2-elf/esp-2021r2-patch5-8.4.0/xtensa-esp32s2-elf/xtensa-esp32s2-elf/sys-include/sys/queue.h:811: note: this is the location of the previous definition
 #define TAILQ_INSERT_TAIL(head, elm, field) do {   \

In file included from /home/paul/esp/esp-idf/components/tinyusb/tinyusb/src/osal/osal_freertos.h:33,
                 from /home/paul/esp/esp-idf/components/tinyusb/tinyusb/src/osal/osal.h:53,
                 from /home/paul/esp/esp-idf/components/tinyusb/tinyusb/src/tusb.h:38,
                 from /home/paul/esp/esp-idf/components/tinyusb/additions/include/tinyusb.h:18,
                 from /home/paul/esp/mpy/micropython/ports/esp32/usb.c:33:
/home/paul/esp/mpy/micropython/lib/berkeley-db-1.xx/PORT/include/queue.h:151: warning: "TAILQ_INSERT_AFTER" redefined
 #define TAILQ_INSERT_AFTER(head, listelm, elm, field) {   \

In file included from /home/paul/esp/esp-idf/components/esp_rom/include/esp32s2/rom/lldesc.h:20,
                 from /home/paul/esp/esp-idf/components/soc/include/soc/lldesc.h:22,
                 from /home/paul/esp/esp-idf/components/driver/include/driver/spi_common.h:13,
                 from /home/paul/esp/esp-idf/components/driver/include/driver/spi_master.h:12,
                 from /home/paul/esp/mpy/micropython/ports/esp32/mphalport.h:38,
                 from /home/paul/esp/mpy/micropython/py/mphal.h:35,
                 from /home/paul/esp/mpy/micropython/ports/esp32/usb.c:28:
/home/paul/.espressif/tools/xtensa-esp32s2-elf/esp-2021r2-patch5-8.4.0/xtensa-esp32s2-elf/xtensa-esp32s2-elf/sys-include/sys/queue.h:773: note: this is the location of the previous definition
 #define TAILQ_INSERT_AFTER(head, listelm, elm, field) do {  \

In file included from /home/paul/esp/esp-idf/components/tinyusb/tinyusb/src/osal/osal_freertos.h:33,
                 from /home/paul/esp/esp-idf/components/tinyusb/tinyusb/src/osal/osal.h:53,
                 from /home/paul/esp/esp-idf/components/tinyusb/tinyusb/src/tusb.h:38,
                 from /home/paul/esp/esp-idf/components/tinyusb/additions/include/tinyusb.h:18,
                 from /home/paul/esp/mpy/micropython/ports/esp32/usb.c:33:
/home/paul/esp/mpy/micropython/lib/berkeley-db-1.xx/PORT/include/queue.h:161: warning: "TAILQ_REMOVE" redefined
 #define TAILQ_REMOVE(head, elm, field) {    \

In file included from /home/paul/esp/esp-idf/components/esp_rom/include/esp32s2/rom/lldesc.h:20,
                 from /home/paul/esp/esp-idf/components/soc/include/soc/lldesc.h:22,
                 from /home/paul/esp/esp-idf/components/driver/include/driver/spi_common.h:13,
                 from /home/paul/esp/esp-idf/components/driver/include/driver/spi_master.h:12,
                 from /home/paul/esp/mpy/micropython/ports/esp32/mphalport.h:38,
                 from /home/paul/esp/mpy/micropython/py/mphal.h:35,
                 from /home/paul/esp/mpy/micropython/ports/esp32/usb.c:28:
/home/paul/.espressif/tools/xtensa-esp32s2-elf/esp-2021r2-patch5-8.4.0/xtensa-esp32s2-elf/xtensa-esp32s2-elf/sys-include/sys/queue.h:839: note: this is the location of the previous definition
 #define TAILQ_REMOVE(head, elm, field) do {    \

Traceback (most recent call last):
  File "/home/paul/esp/mpy/micropython/py/makeqstrdefs.py", line 209, in <module>
    preprocess()
  File "/home/paul/esp/mpy/micropython/py/makeqstrdefs.py", line 76, in preprocess
    for output in p.imap(pp(flags), chunks):
  File "/usr/lib/python3.10/multiprocessing/pool.py", line 873, in next
    raise value
  File "/usr/lib/python3.10/multiprocessing/pool.py", line 125, in worker
    result = (True, func(*args, **kwds))
  File "/home/paul/esp/mpy/micropython/py/makeqstrdefs.py", line 60, in run
    return subprocess.check_output(args.pp + flags + files)
  File "/usr/lib/python3.10/subprocess.py", line 420, in check_output
    return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
  File "/usr/lib/python3.10/subprocess.py", line 524, in run
    raise CalledProcessError(retcode, process.args,

LVGL

Hi, I wanted to use lvgl and the T-DisplayS3 in micropython. How complex is that, having read a bit I think I would need the driver here or your modified esp_lcd setup to link to the lvgl_micropython binding and then include lvgl plus conf from t-displays3 repo.
It looks like support for the S2/S3 in lvgl_esp32_drivers and lvgl >7 will come soon so this may not be worth pursuing yet. This is an issue to see an example added to the repo that includes lvgl.

Compile error `esp_lcd_panel_io.h`

ESP-IDF: 5.0.2
Micropython: Master (1.20)

Compilation terminated with following error:

/module/lcd/hal/esp32/esp32.c:10:10: fatal error: esp_lcd_panel_io.h: No such file or directory
   10 | #include "esp_lcd_panel_io.h"
      |          ^~~~~~~~~~~~~~~~~~~~

Turns out it has been mentioned in #4,
and now for the new Micropython version it's moved to /ports/esp32/esp32_common.cmake.
I suggest to update the documentation and add an important instruction to tell user for it.

Precompiled binaries?

Hello,

would it be possible to provide precompiled binaries for Micropython including the binding for ESP32-S3, the platform of the current T-Display-S3-AMOLEDs, preferably based on Micropython 1.20.0?

Thanks,
Sebastian

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.