HASwitchPlate / openHASP

HomeAutomation Switchplate based on lvgl for ESP32
https://www.openhasp.com
MIT License
729 stars 186 forks source link

Infinite rebooting of esp32-s3-4848s040 for 0.7.0 #754

Closed StreakingJerry closed 3 months ago

StreakingJerry commented 5 months ago

Perform all steps below and tick them with [x]

Describe the bug

Same as https://github.com/HASwitchPlate/openHASP/discussions/738. But for board esp32-s3-4848s040.

The logs shows that code can crash at the random point. The last line is always ESP-ROM:esp32s3-20210327. However the second one from the bottom could be:

[1000DPrompt > [ 1.367][131060/141444 7][58564/58568 1] HASP: Loading /pages.jsonl [1000DPrompt > [ 0.624][204788/216896 5][ 0/ 0 0] TFT : Started [1000DPrompt > [ 1.330][131060/141444 7][61576/61592 1] LVGL: Started

or any line around those moment.

With WIFI SSID ICMA config: image

Without -DUSE_CONFIG_OVERRIDE: image

The hardware I used is a esp32-s3-4848s040 board with only ESP32-S3 WROOM-1-N16R8 and 480*480 LCD. No other components installed on the PCB. I use a TTL module with CH343 to upload code. 68d2cbfe3a26b6aeee0eaacdb1218c4

I have tried this hardware with ArduinoGFX demo LVGL_Arduino_v9. The hardware works good. 14209ae1fffe33d04ca3b30b426cf8c

To Reproduce

I tried both the firmware https://nightly.openhasp.com/firmware/esp32-s3-4848s040_full_16MB_v0.7.0-rc12_cd34d89.bin and firmware compiled locally with Commit Hash: bbd96b2. Both of them has the same issue.

I tried to touch the screen during the booting just as https://github.com/HASwitchPlate/openHASP/discussions/738 suggest. But it doesn't not help.

Only codes modified are user_setups/esp32s3/*.ini and 'esp32-s3-4848s040_16MB' in platformio_override.ini

; USAGE: Copy this file and rename it to platformio_override.ini
;
; The platformio_override.ini file is not overwritten or monitored by git
; ONLY edit platformio_override.ini to make local changes to the parameters

[platformio]
extra_configs =
    ; Uncomment or edit the lines to show more User Setups in the PIO sidebar
    ; user_setups/darwin/*.ini
    ; user_setups/esp32/*.ini
    ; user_setups/esp32s2/*.ini
    user_setups/esp32s3/*.ini
    ; user_setups/linux/*.ini
    ; user_setups/stm32f4xx/*.ini
    ; user_setups/win32/*.ini

[override]
; -- Hasp config options --------------------------------------
build_flags =
; -- Uncomment the next line to use the file include/user_config_override.h settings
;    -DUSE_CONFIG_OVERRIDE

;region -- Default Build Environments : Used when Build All ---
extra_default_envs =
    ; Uncomment specific environments or create extra:
    ; az-touch-mod-esp32_ili9341_4MB
    ; az-touch-mod-esp32_ili9341_8MB
    ; d1-mini-esp32_ili9341
    ; d1-r32-unoshield_ili9341_adc
    ; d1-r32-unoshield_ili9486_adc
    ; d1-r32-waveshare_ili9486
    ; esp32s2-featherwing-24-v2
    ; esp32s2-featherwing-35-v2
    ; esp32-2432s028r_4MB
    ; esp32-3248s035c_4MB
    ; esp32-3248s035c_4MB_lovyan
    ; esp32-3248s035r_4MB
    ; esp32-one_ili9486
    ; esp32-one_st7796
    ; esp32-s3-4827s043c_16MB
    ; esp32-s3-4827s043r_16MB
    esp32-s3-4848s040_16MB
    ; esp32-s3-8048s043c_16MB
    ; esp32-touchdown
    ; freetouchdeck_4MB
    ; freetouchdeck_8MB
    ; freetouchdeck-s3_8MB
    ; gs-t3e_16MB
    ; huzzah32-featherwing-24
    ; huzzah32-featherwing-24-v2
    ; huzzah32-v2-featherwing-24-v2
    ; huzzah32-featherwing-35
    ; huzzah32-featherwing-35-v2
    ; huzzah32-v2-featherwing-35-v2
    ; lanbon_l8
    ; lanbon_l8_eth
    ; lilygo-lily-pi_ili9481
    ; lilygo-lily-pi_st7796
    ; lolin-d32-pro_ili9341
    ; m5stack-core2
    ; m5stack-tough
    ; makerfabs-s3-tft35-spi
    ; makerfabs-tft35-cap_16MB
    ; makerfabs-tft35-cap_4MB
    ; makerfabs-tft-s2_ili9488
    ; nodemcu32s-raspi
    ; s2-mini-esp32s2_ili9341
    ; ttgo_esp32_poe-ili9341
    ; lilygo-lily-pi_ili9481
    ; lilygo-lily-pi_st7796
    ; ttgo-t7-v1_5_ili9341_16MB
    ; ttgo-t7-v1_5_ili9341_4MB
    ; ttgo-esp32_tdisplay_v1
    ; wt32-sc01_16MB
    ; wt32-sc01_4MB
    ; wt32-sc01-plus_16MB
    ; wt32-sc01-plus_8MB
    ; wt-86-32-3zw1
    ; yeacreate-nscreen32
    ; wz2432r028
    ; ws_esp32_s3_touch_lcd_4p3
;endregion

;region -- Define your local COM ports for each environment ---
[env:d1-mini-esp32_ili9341]
monitor_port = COM6       ; Change to the correct port
upload_port = ${env:d1-mini-esp32_ili9341.monitor_port}

[env:esp32dev-mrb3511]
monitor_port = COM3       ; Change to the correct port
upload_port = ${env:esp32dev-mrb3511.monitor_port}

[env:az-touch-mod-esp32_ili9341_4MB]
upload_port = COM16 
monitor_port = COM16

[env:az-touch-mod-esp32_ili9341_8MB]
upload_port = COM16 
monitor_port = COM16

[env:d1-r32-unoshield_ili9486_adc]
monitor_port = COM5 
upload_port = COM5  

[env:d1-r32-unoshield_ili9341_adc]
;upload_protocol = espota  ; Use ArduinoOTA after flashing over serial
;upload_port = 192.168.0.4 ; IP of the ESP
;upload_flags = --port=3232 ; --auth=haspadmin   ; OTA password
monitor_port = COM5 
upload_port = COM5

[env:esp32-one_st7796]
upload_port = COM6      ; Change to the correct port
monitor_port = COM6     ; Change to the correct port

[env:lolin-d32-pro_ili9341]
monitor_port = COM5       ; Change to the correct port
upload_port = ${env:lolin-d32-pro_ili9341.monitor_port}
;endregion

[env:ttgo_esp32_poe-ili9341]
monitor_port = COM9       ; Change to the correct port
;upload_port = ${env:ttgo_esp32_poe-ili9341.monitor_port}
;upload_port = 192.168.4.5 ; IP of the ESP
;upload_protocol = espota  ; Use ArduinoOTA after flashing over serial
upload_flags = --port=3232 ; --auth=haspadmin   ; OTA password

;region -- Custom Environment configuration example -----------------
[env:my_custom_build]
extends = arduino_esp32_v2, flash_4mb
board = nodemcu-32s

upload_port = COM12     ; To change the port, use platform_override.ini
monitor_port = COM12    ; To change the port, use platform_override.ini

debug_tool = esp-prog
debug_init_break = tbreak setup
build_flags =
    ${env.build_flags}
    ${esp32.build_flags}
;region -- TFT_eSPI build options -----------------------------------
    ${lcd.lolin24}
    ${esp32.vspi}        ; Use VSPI hardware SPI bus
    -D TFT_DC=5
    -D TFT_CS=26 
    -D TFT_RST=-1        ; RST
    -D TFT_BCKL=22       ; None, configurable via web UI (e.g. 21)
    -D TOUCH_CS=17       ; (can also be 22 or 16)
; -- Options ----------------------------------------
    -D HASP_USE_TELNET=1
;endregion

;endregion

Expected behavior

Start normally.

Screenshots or video

None.

fvanroie commented 5 months ago

I do not recognize that PCB as the Guition ESP32-S3-4848S040. So your device might be different or have other hardware etc... Please share the link where you got this board. Thank you.

FreeBear-nc commented 5 months ago

Agreed, that board is not a Guition device. There are a few other display boards that look very similar, but come without relays or mains power. Even these have a built in USB port and can be powered that way.

I'm wondering if it is a conflict with the touch screen - Comment out all the touch settings in the user_setups/esp32s3/esp32-s3-4848S040.ini and see if that helps.

StreakingJerry commented 4 months ago

I finally figured out the problem. It is because the power source is a 3.3V LDO. It works well with a single LCD or WiFi module. However, when they work together, the large current requirement drops the voltage lower than 2.8V, leading to a reboot. @fvanroie, you were right that this is a hardware problem. And I think this issue could be closed.

fvanroie commented 4 months ago

Thanks for your feedback and posting the root case of the issue. Just for future reference, do you have a link to the details for this board?

StreakingJerry commented 4 months ago

It is an open source project. https://oshwhub.com/myzhazha/esp32s3_86-kai-fa-ban

I have checked the pinout and schematic. For the LCD part it is same as Guition ESP32-S3-4848S040.