Skip to content

Lvgl9.3 update#526

Open
furqaankhurram wants to merge 5 commits intomainfrom
lvgl9.3-update
Open

Lvgl9.3 update#526
furqaankhurram wants to merge 5 commits intomainfrom
lvgl9.3-update

Conversation

@furqaankhurram
Copy link

Upgraded LVGL from 8.3 to 9.3

Updated platformio.ini to use lvgl@9.3
Migrated all API changes throughout the codebase

Fixed LVGL 9.3 API Compatibility
Changed lv_img_create → lv_image_create
Changed lv_img_set_src → lv_image_set_src
Changed lv_obj_del → lv_obj_delete
Updated lv_disp_* → lv_display_* functions
Updated image descriptor format from lv_img_dsc_t to lv_image_dsc_t
Removed internal LVGL header includes, replaced with generic lvgl.h

Fixed Logo Screen Issue
Original RGB565A8 format incompatible with LVGL 9.3
Fixed Window Close Handling

Created Setup and Run Scripts

setup.sh - One-time setup for all dependencies
run_simulator.sh - Start FrontController in separate terminal
run_dashboard.sh - Start dashboard in separate terminal
run.sh - All-in-one script (optional)
Made all scripts executable with proper error handling

Rewrote README.md
Added beginner-friendly "Complete Beginner" section at top
Created visual two-terminal diagram

Added exclude_helium.py script to disable ARM SIMD optimizations for Linux builds
This pre-build script prevents compilation errors when building LVGL 9.3 on x86/Linux platforms.

Copy link
Contributor

@BlakeFreer BlakeFreer left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

pretty cool! there's a few things to fix up and I had some questions. also it doesn't build on linux for me

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For both linux/lv_conf and stm32/lv_conf, you should start with the lv_conf_template from the LVGL 9.3.0 release https://github.com/lvgl/lvgl/blob/release/v9.3/lv_conf_template.h instead of just updating the old conf file.

The new version may add feature flags / remove old ones, so it is better to use their template

- Update LVGL dependency from 8.3 to 9.3 for both Linux and STM32
- Migrate display drivers to LVGL 9.3 API (lv_display_t, flush callbacks)
- Regenerate FE_Logo with RGB565 format for LVGL 9.3 compatibility
- Fix STM32 build: disable ARM Helium/NEON SIMD in lv_conf.h
- Fix exception handling for embedded targets (STM32)
- Add development tooling and documentation

Tested: Both targets build successfully
BlakeFreer
BlakeFreer previously approved these changes Oct 24, 2025
Copy link
Contributor

@BlakeFreer BlakeFreer left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🫎

Dashboard wasn't showing anything:
- enabled LTDC callback in cubemx
- told platformio not to override the hal_conf with a build config
  option
- enabled st ltdc in lvgl.h
- enabled dma in ltdc

Still to fix:

fonts don't show up correctly
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

Comments