Wifi issue with HMI ESP32 Display 800x480 RGB TFT

Dear,

I have an HMI ESP32 display board, and I have an issue when I try to use in my program the Wifi.

i am developing on an MacBook Air M1, my device is connected to one of its usb-c port.

i am using Arduino IDE (2.3.0), and my screen is generated via squarline studio platform , lvgl.

I am using in my program 3 includes for the wifi , wifi.h, ESPmDNS.h and WiFiUdp.h.

when I am doing the Init of the wifi in my program, (wifi.mode and wifi.begin), my screen is started to do lateral scrolling. When I put in comment this 2 lines, all is working well.

any ideas ?

thx

Comments

  • Hello @r3dr,

    May I kindly ask what is the size of your screen? Is it 5'' or 7''?

    And if it is convenient for you, would you please send your code to techsupport@elecrow.com? Thank you.

  • Hi, this is a 7" screen:

    CrowPanel 7.0" -HMI ESP32 Display 800x480 RGB TFT LCD

    SKU DIS08070H

    I bought it 2 weeks ago.

    It's very strange, when I add the WiFi connection procedure to my program, the screen of my application is displayed off-center on my monitor, as if the screen was poorly adjusted, the image is scrolled several centimeters to the left. When I comment out the function, there is no display issue. I thought it might be a power supply problem related to the WiFi's consumption, but it's surprising because the USB-C ports of a MacBook Air M1 can deliver more than 3A. I also tried with an external power supply, but it's the same. I will send toi the support some photos of the screen to show you.

    My code for the wifi is very simple:

    bool initWIFI() {

    WiFi.mode(WIFI_STA);

    WiFi.begin(ssid, password);

    WiFi.setAutoReconnect(true);

    while (WiFi.waitForConnectResult() != WL_CONNECTED) {

    Serial.println("WIFI Connection Failed");

    lv_obj_add_flag(ui_IMG_Wifi, LV_OBJ_FLAG_HIDDEN);

    myData.core.wifi.state = -1;

    myData.status.wifi = ERR;

    return(false);

    }

    Serial.println("WIFI Connection OK");

    lv_obj_clear_flag(ui_IMG_Wifi, LV_OBJ_FLAG_HIDDEN);

    myData.core.wifi.ip = WiFi.localIP();

    // Convertissez l'adresse IP en String pour l'affichage

    String ipAddr = myData.core.wifi.ip.toString();

    Serial.println(myData.core.wifi.ip);

    lv_label_set_text(ui_Label_SSID,ssid);

    lv_label_set_text(ui_Label_IP,ipAddr.c_str());

    myData.core.wifi.state = 1;


    return(true);

    }


    best regards

  • Thanks to the support for their advice.
    It works now, very well.

    I Just had to adjust the refresh speed of the bus of the screen, moving from 16Mhz to 13Mhz. I tried above, but this is not working, 13 MHz seems to be the maximum:

    Arduino_RPi_DPI_RGBPanel lcd = new Arduino_RPi_DPI_RGBPanel(
    bus,
    800 /
    width /, 0 / hsync_polarity /, 210 / hsync_front_porch /, 1 / hsync_pulse_width /, 46 / hsync_back_porch /,
    480 /
    height /, 0 / vsync_polarity /, 22 / vsync_front_porch /, 1 / vsync_pulse_width /, 23 / vsync_back_porch /,
    0 /
    pclk_active_neg /, 13000000 / Instead 16 Mhz - prefer_speed /, true / auto_flush */);

    best regards

  • edited March 8

    Hello @rsd3,
    Thank you for sharing the solution!

    I noticed you may not use the LovyanGFX library. You can try to follow this post(https://forum.elecrow.com/index.php?p=/discussion/585/esp32-hmi-demo-code-updated-compatible-with-new-version-of-esp32-package/) to change the library and see whether the problem will be solved too.

Sign In or Register to comment.