WipperSnapper on Funhouse causes bootloop and crash
Describe the bug From (https://forums.adafruit.com/viewtopic.php?p=1028567#p1028567) but also observed by me:
The screen on the Funhouse appears corrupted and pixelated for a brief moment, and the lights flash quickly (including the red LED near the reset button) before the cycle repeats, all within 3 seconds. This behavior continues until you power off the device.
Arduino board Adafruit FunHouse ESP32-S2
To Reproduce Install WipperSnapper Beta on FunHouse via io.adafruit.com's web uploader
Expected behavior TFT should come into the loading screen, not crash
Which components are connected to your device None
OS Tested: MacOS, Windows 10
Smartphone (please complete the following information): n/a
Additional context Forum post with original problem: https://forums.adafruit.com/viewtopic.php?p=1028567#p1028567
@tyeth I spent an hour or so this morning tracking this issue down, you may have more experience with LVGL and want to try taking a look next week:
Where this issue is originating from:
LvGLStatus Adafruit_LvGL_Glue::begin(Adafruit_SPITFT *tft, void *touch,bool debug) calls lv_init() (LVGL library) which causes a crash. LVGL_Glue does not make it past the begin() call.
Challenges while debugging, on my end:
- My ESP32 doesn't seem to get the "Guru Meditation Error" that the related issue got, ended up being difficult to track where I am in the code
- It doesn't seem lv_conf.h is being included on my build system (Arduino IDE 2.x), so I can't get detailed logs of what's occurring within
lv_init(). Possibly this is the same for you and you'll want to fix this first to get insight intolv_init(). - Maybe this was caused by the BSP 3.x migration?
Related Issue: https://github.com/adafruit/Adafruit_LvGL_Glue/issues/23
v3.0.5 was released this week, and building with that in platformIO / vscode I don't see the bug (display initialises and board comes online). I used the same library versions of lvgl + littlevgl glue as the CI script installs.
Had issues building in arduino ide, will revisit tomorrow
Got it building in arduino ide (BSP 3.0.5). Appears to respect the lv_conf.h I've added to my sketch folder. Runs fine. Recreated the bug on 3.1.0-rc.0. (Been testing WS v88 the whole time). Running with trace output isn't showing anything obvious
log attached Funhouse_lvgl_reboot_bsp310RC0.txt
@tyeth I'll try this today, you think it's isolated to BSP 3.1.0-rc.0?
It appeared to be, as I got a build out of 3.0.5, but I wouldn't bet the house on it.
The only thing I saw that could affect things was that in idf 5.3.0 (bsp 3.1.0-rc0) there was an additional parameter added for logic level high or low which previously was related to display corruption on another SPI display. I don't believe this is our issue as we don't use the alternative logic level like the bugged display in the idf 5.3.0 issue, but it did sound similar. https://github.com/lvgl/lvgl/issues/6387 which then leads to https://github.com/espressif/esp-idf/issues/10635
@tyeth Did we release a fix for this and can close this issue?
@brentru I think that was part of the reason for pinning the ci-arduino repo (ci-wippersnapper branch). I haven't retested recently, but as we're pinned at 3.0.5 all should be well. No code was changed as part of a fix, just tooling.
Right Okay, going to close this out
Reopening this issue. A user reported the same issue in the forums, so I quickly ran an update of my funhouse from circuitpython to wippersnapper v90 and saw the same issue (using a Mac). Looking at serial it's the same situation, getting only as far as Lvgl init. This has not had a release fixing the issue, last one was September 12th. Although we changed the CI over to 3.0.5 there has been a block on release while the C6 issue is resolved and I'd forgotten that affected the funhouse. @brentru Also 3.0.6 has been released (again) today.
Closed with the release of v1.0.0-beta.91 (retested and same funhouse is now happy)
Note: this is still pinned to BSP < 3.1.x for FunHouse / LvGL Glue