Support Required for EC200U-EU AA Board with SPI Display and LVGL in QuecPython

Dear Quectel Support Team,

I am working on a project using the Quectel EC200U-EU AA board and have successfully interfaced an SPI display with the ILI9341 driver. However, I am encountering an issue when trying to use the LVGL library in QuecPython.

When I attempt to run the code, I receive the following error:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: no module named 'lvgl'

Upon checking the available module list, I noticed that ‘lvgl’ seems to be missing. I would like to inquire if the LVGL module is disabled in the current firmware or if I am possibly doing something wrong in my configuration.

Could you please guide me on how to resolve this issue?

Thank you for your assistance.

hi

Please provide your email address, I will send the firmware to you by email

Hi,

Thank you for your response. Please send the firmware to the following email address:

vijaylumarmourya802@gmail.com

Additionally, I am encountering an issue while interfacing the display with the SPI_LCD_ST7789.py. The following error occurs:

Traceback (most recent call last):
  File "/usr/SPI_LCD_ST7789.py", line 233, in <module>
AttributeError: 'LCD' object has no attribute 'lcd_show_jpg'

I checked the class with dir(LCD) and it doesn’t seem to have the lcd_show_jpg method. Here’s the output:

['__class__', '__name__', '__bases__', '__dict__', 'lcd_brightness', 'lcd_clear', 'lcd_display_off', 'lcd_display_on', 'lcd_init', 'lcd_level_brightness', 'lcd_show', 'lcd_write', 'lcd_write_cmd', 'lcd_write_data', 'mipi_init']

Could you please provide guidance on how to resolve this or suggest an alternative method for displaying JPG images?

HI
I have sent the firmware to you by email. The firmware supports LVGL and lcd_show_jpg

Hi
I hope this message finds you well. I recently requested the firmware update, but I realized that I provided an incorrect email address.

Could you please send the firmware to the correct email ID: vijaykumarmourya802@gmail.com ?

I appreciate your help and look forward to your response.

Thank you!

hi
Sorry, yesterday’s email was not sent successfully, I have sent the email again, please confirm it, thank you

Dear [Quectel Support/Team],

I hope this message finds you well. I am writing to provide feedback on the firmware you recently shared for the EC200U-EU module.

While working with the officially provided firmware, QPY_OCPU_V0003_EC200U_EUAB_FW from the Quectel website, I was able to successfully run the code with an SPI display. However, after testing the firmware you provided, I encountered an issue where the SPI display is not working as expected.

Upon further investigation, using a logic analyzer, I discovered that the LCD initialization (lcd_init) sequence seems to be missing in the firmware provided from your side. This prevents the SPI display from initializing properly. I have attached the waveform data that highlights the missing initialization sequence for your reference.

Could you kindly look into this issue and advise on a possible resolution or provide an updated firmware that includes the necessary initialization for the SPI display?

Working Firmware
QPY_OCPU_V0003_EC200U_EUAB_FW

Thank you for your assistance, and I look forward to your prompt response.

Not Working Firmware
8915DM_cat1_open_EC200UEUAAR05A01M08_BTLVGL_OCPU_QPY_BETA0809_merge

Thia is the initialization sequence missing

Hi,
can you share the same firmware with my email?
dezdeepblue@yahoo.com

HELLO

Please check your mail sent you firmware provided by Quectel Team. Replay me today I tried once again but the same when I initialise the LCD it’s not pushing LCD init data on SPI bus. But in older version it pushing LCD init data on SPI bus

May I ask which model of screen you are using, so that I can confirm if there is a corresponding demo?”

"We are using an SPI interface to connect our device to the display module. Here is a portion of the code we use for the LCD initialization:

python

Copy code

# Initialize the LCD with the specified parameters
lcd.lcd_init(
    initData,        # Initialization data for the LCD (register setup, power on sequence, etc.)
    240,             # LCD width (pixels)
    320,             # LCD height (pixels)
    0,               # Clock speed for LCD interface (Hz)
    1,               # 1-line communication mode
    4,               # 4 data lines for SPI communication
    0,               # LCD type (general-purpose)
    invalidData,     # Handling invalid pixel data
    displayOn,       # Command to turn the LCD on
    displayOff,      # Command to turn the LCD off
    None,            # No brightness adjustment
    1,               # SPI interface
    1,               # SPI port number (second SPI port)
    0,               # SPI mode (CPOL=0, CPHA=0)
    Pin.GPIO2,       # Chip select (CS) pin (GPIO2)
    Pin.GPIO18,      # Data/Command (DC) pin (GPIO18)
    Pin.GPIO22       # Reset (RST) pin (GPIO22)
)

Could you confirm if there’s a corresponding demo for this configuration? Thank you for your assistance!"

Could you please provide the model of the LCD?

Hi Felix,

I’m working on ST7789 and ILI9341 LCDs. I’ve tested these modules, and they work with the firmware available on the official site, named QPY_OCPU_BETA0001_EC200U_EUAA_FW.pac. However, the firmware you provided (8915DM_cat1_open_EC200UEUAAR05A01M08_BTLVGL_OCPU_QPY_BETA0809_merge.pac), which includes LVGL integration, does not seem to work with these displays.

Below is a sample code snippet for reference:

python

Copy code

# Define the LCD control registers for the X and Y coordinate setup
XSTART_H    = 0xf0  # Register for the start point X coordinate high byte
XSTART_L    = 0xf1  # Register for the start point X coordinate low byte
XEND_H      = 0xE0  # Register for the end point X coordinate high byte
XEND_L      = 0xE1  # Register for the end point X coordinate low byte
YSTART_H    = 0xf2  # Register for the start point Y coordinate high byte
YSTART_L    = 0xf3  # Register for the start point Y coordinate low byte
YEND_H      = 0xE2  # Register for the end point Y coordinate high byte
YEND_L      = 0xE3  # Register for the end point Y coordinate low byte

# Define direction constants for LCD orientation
L2R_U2D = 0    # Left to Right, Up to Down
L2R_D2U = 1    # Left to Right, Down to Up
R2L_U2D = 2    # Right to Left, Up to Down
R2L_D2U = 3    # Right to Left, Down to Up

# Initialize regval to store orientation
regval = 0
# Set orientation based on regval
if(dir == L2R_U2D):
    regval |= (0 << 7) | (0 << 6) | (0 << 5)
elif dir == L2R_D2U:
    regval |= (1 << 7) | (0 << 6) | (0 << 5)
# Continue orientation setup...

# Initialization data for the LCD display
init_data = (
    2, 0, 120,              # Delay configuration (120 ms)
    0, 0, 0x11,             # Exit sleep mode
    0, 1, 0x36,             # Memory Access Control
    1, 1, regval,           # Set orientation
    0, 1, 0x3A,             # Pixel format
    1, 1, 0x55,             # 16-bit color format
    # Continue initialization...
)

Could you help identify any specific adjustments needed for compatibility with LVGL on this firmware? Thank you for your support.

hi

You mean that LCD can work properly on QPY_OCPU_BETA0001_EC200U_EUAA_FW.pac, do I understand correctly?

No it’s not working on the firmware provided by email i.e QPY_OCPU_BETA0001_EC200U_EUAA_FW.pac

But when I running the same code on firmware provided on official website i.e Download | QuecPython
For EC200U-EU it’s working without any issue

I will provide you the firmware with the same baseline as the link on the official website by email, Please try it again

I have sent an email to you, please test again, thank you

It seems the email failed to send. Has your email address changed?