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
Tagged:
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
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.