Skip to content

LVGL: a failed assert raises RuntimeError instead of hanging the board - #294

Merged
bdbarnett merged 1 commit into
mainfrom
pins/lvgl-assert-and-lib
Nov 8, 2026
Merged

bdbarnett merged 1 commit into
mainfrom
pins/lvgl-assert-and-lib

Conversation

@bdbarnett

Copy link
Copy Markdown
Contributor

Moves the omnipython-lvgl pin from 00bfbab to 2206123 (PyDevices/omnipython-lvgl#13).

A failed LVGL assert used to spin in the assert handler with the scheduler locked: the board stopped answering on USB and WebREPL and needed a power cycle. With this pin it raises RuntimeError("LVGL assert failed in ..."), clears LVGL's rendering flags, and the next refresh draws. That was proven on the unix port with an invalidate during a flush and with an allocation failure mid-render; both hung before.

The range also brings the opt-in TLSF memory pools (-DLVMP_POOL_TLSF=1). No board in this repository sets the flag, so nothing changes for them.

Not yet run on a board; CI's builds are the check here.

Moves omnipython-lvgl from 00bfbab to 2206123. A failed LVGL assert used to spin forever with the scheduler locked, so the board needed a power cycle; now it raises RuntimeError and LVGL carries on. The range also brings the opt-in TLSF memory pools (-DLVMP_POOL_TLSF=1); no board here sets the flag.
@bdbarnett
bdbarnett merged commit f966e2c into main Nov 8, 2026
31 of 32 checks passed
@bdbarnett
bdbarnett deleted the pins/lvgl-assert-and-lib branch November 8, 2026 06:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

1 participant