Adafruit_Wippersnapper_Arduino icon indicating copy to clipboard operation
Adafruit_Wippersnapper_Arduino copied to clipboard

WipperSnapper on Funhouse causes bootloop and crash

Open brentru opened this issue 1 year ago • 6 comments

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

brentru avatar Sep 12 '24 17:09 brentru

@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 into lv_init().
  • Maybe this was caused by the BSP 3.x migration?

Related Issue: https://github.com/adafruit/Adafruit_LvGL_Glue/issues/23

brentru avatar Sep 13 '24 17:09 brentru

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

tyeth avatar Sep 19 '24 21:09 tyeth

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

tyeth avatar Sep 20 '24 13:09 tyeth

log attached Funhouse_lvgl_reboot_bsp310RC0.txt

tyeth avatar Sep 20 '24 14:09 tyeth

@tyeth I'll try this today, you think it's isolated to BSP 3.1.0-rc.0?

brentru avatar Sep 23 '24 13:09 brentru

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 avatar Sep 23 '24 13:09 tyeth

@tyeth Did we release a fix for this and can close this issue?

brentru avatar Oct 11 '24 14:10 brentru

@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.

tyeth avatar Oct 11 '24 17:10 tyeth

Right Okay, going to close this out

brentru avatar Oct 11 '24 17:10 brentru

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.

tyeth avatar Oct 21 '24 15:10 tyeth

Closed with the release of v1.0.0-beta.91 (retested and same funhouse is now happy)

tyeth avatar Oct 21 '24 16:10 tyeth

Note: this is still pinned to BSP < 3.1.x for FunHouse / LvGL Glue

tyeth avatar Jan 27 '25 14:01 tyeth