Skip to content

graphics/lvgl: bump version to 9.2.2#3462

Open
shtirlic wants to merge 1 commit intoapache:masterfrom
shtirlic:bump-lvgl
Open

graphics/lvgl: bump version to 9.2.2#3462
shtirlic wants to merge 1 commit intoapache:masterfrom
shtirlic:bump-lvgl

Conversation

@shtirlic
Copy link
Copy Markdown

@shtirlic shtirlic commented Apr 22, 2026

Summary

  • Update lvlg version from 9.2.1 to 9.2.2 that includes fix for nuttx lcd release assert.
  • Get version from config in Makefile
  • Get version from config in cmake file

Impact

There should be no impact,

Testing

Tested by @shtirlic on pico2 on risc-v cores, and by @cederom on FreeBSD with ESP32S3-WS-LCD128 board under development :-)

% uname -a
FreeBSD hexagon 14.4-RELEASE-p2 FreeBSD 14.4-RELEASE-p2 GENERIC amd64

% gmake clean distclean -j ; ./tools/configure.sh -B -S esp32s3-ws-lcd128:touch-lvgl && /usr/bin/time -h gmake flash -j && cu -l /dev/cuaU0 -s 115200
(..)
#
# configuration written to .config
#
Create version.h
LN: platform/board to /XXX/nuttx/nuttx-apps.git/platform/dummy
Downloading: v9.2.2.zipCloning Espressif HAL for 3rd Party Platforms
Espressif HAL for 3rd Party Platforms: cleaning current repository...
(..)
Espressif HAL for 3rd Party Platforms: b7e51db97a3f9dc82d3b3524d2bad298ba1e2647
Espressif HAL for 3rd Party Platforms: initializing submodules...
Applying patches...
Register: dd
Register: sh
Register: nsh
Register: lvgldemo
(..)
Memory region         Used Size  Region Size  %age Used
             ROM:      613188 B    4194272 B     14.62%
     iram0_0_seg:       36096 B       304 KB     11.60%
     irom0_0_seg:      387423 B    4194272 B      9.24%
     dram0_0_seg:       43896 B       288 KB     14.88%
     drom0_0_seg:      678688 B    4194272 B     16.18%
    rtc_iram_seg:           0 B       8168 B      0.00%
    rtc_data_seg:           0 B       8168 B      0.00%
rtc_reserved_seg:          24 B         24 B    100.00%
    rtc_slow_seg:          36 B         8 KB      0.44%
CP: nuttx.hex
MKIMAGE: ESP32-S3 binary
esptool.py -c esp32s3 elf2image --ram-only-header -fs 4MB -fm dio -ff "40m" -o nuttx.bin nuttx
esptool.py v4.10.0
Creating esp32s3 image...
Image has only RAM segments visible. ROM segments are hidden and SHA256 digest is not appended.
Merged 1 ELF section
Successfully created esp32s3 image.
Generated: nuttx.bin
esptool.py -c esp32s3 -p /dev/cuaU0 -b 115200  write_flash -fs detect -fm dio -ff "40m" 0x0000 nuttx.bin
esptool.py v4.10.0
Serial port /dev/cuaU0
Connecting....
Chip is ESP32-S3 (QFN56) (revision v0.2)
Features: WiFi, BLE, Embedded PSRAM 2MB (AP_3v3)
Crystal is 40MHz
MAC: XXX
Uploading stub...
Running stub...
Stub running...
Configuring flash size...
Auto-detected Flash size: 16MB
Flash will be erased from 0x00000000 to 0x00095fff...
Flash params set to 0x0240
Compressed 613184 bytes to 340547...
Wrote 613184 bytes (340547 compressed) at 0x00000000 in 30.0 seconds (effective 163.4 kbit/s)...
Hash of data verified.

Leaving...
Hard resetting via RTS pin...
	1m30,68s real		1m29,31s user		1m50,82s sys
Connected
Initializing LCD SPI 2 port.

                            Initializing GC9A01 LCD.

                                                    SPI port 2 bound to LCD 0.
esp32s3_bringup(): end.
[LVGL] [User]	(0.610, +610)	 check_stack_size: tid: 3, Stack size : 16312 lv_nuttx_entry.c:297
[LVGL] [User]	(0.610, +0)	 lv_nuttx_lcd_create: lcd /dev/lcd0 opening lv_nuttx_lcd.c:77
[LVGL] [User]	(0.620, +10)	 lv_nuttx_lcd_create: lcd /dev/lcd0 open success lv_nuttx_lcd.c:84
[LVGL] [Warn]	(0.630, +10)	 lv_demo_widgets: LV_FONT_MONTSERRAT_18 is not enabled for the widgets demo. Using LV_FONT_DEFAULT instead. lv_demo_widgets.c:156
[LVGL] [Warn]	(0.640, +10)	 lv_demo_widgets: LV_FONT_MONTSERRAT_12 is not enabled for the widgets demo. Using LV_FONT_DEFAULT instead. lv_demo_widgets.c:161

Copy link
Copy Markdown
Contributor

@cederom cederom left a comment

Choose a reason for hiding this comment

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

Thank you @shtirlic :-) Please provide PR description according to Contributing Guide - provide PR description, impact, and especially testing logs on a real hardware, also git commit signature is missing :-P

I will test on my hardware in a moment as I have this LCD colors problems hopefully here will be the fix :-)

Regarding LVGL the recent release there is LVGL v9.5.0 if you have time after this PR is resolved that would be great! :-)

Comment thread graphics/lvgl/Makefile
@cederom
Copy link
Copy Markdown
Contributor

cederom commented Apr 22, 2026

Allright so this is my testing on the ESP32S3-WS-LCD128 that I am adding right now to NuttX. It builds okay and runs okay but does not fix my LCD problem (probably related to GC9A01 driver) :-P

Before and after picture is the same:

image

Build and run is okay thouhg. Does this release fixes anything for you? Can you show before and after effect?

% uname -a
FreeBSD hexagon 14.4-RELEASE-p2 FreeBSD 14.4-RELEASE-p2 GENERIC amd64

% gmake clean distclean -j ; ./tools/configure.sh -B -S esp32s3-ws-lcd128:touch-lvgl && /usr/bin/time -h gmake flash -j && cu -l /dev/cuaU0 -s 115200
(..)
#
# configuration written to .config
#
Create version.h
LN: platform/board to /XXX/nuttx/nuttx-apps.git/platform/dummy
Downloading: v9.2.2.zipCloning Espressif HAL for 3rd Party Platforms
Espressif HAL for 3rd Party Platforms: cleaning current repository...
(..)
Espressif HAL for 3rd Party Platforms: b7e51db97a3f9dc82d3b3524d2bad298ba1e2647
Espressif HAL for 3rd Party Platforms: initializing submodules...
Applying patches...
Register: dd
Register: sh
Register: nsh
Register: lvgldemo
(..)
Memory region         Used Size  Region Size  %age Used
             ROM:      613188 B    4194272 B     14.62%
     iram0_0_seg:       36096 B       304 KB     11.60%
     irom0_0_seg:      387423 B    4194272 B      9.24%
     dram0_0_seg:       43896 B       288 KB     14.88%
     drom0_0_seg:      678688 B    4194272 B     16.18%
    rtc_iram_seg:           0 B       8168 B      0.00%
    rtc_data_seg:           0 B       8168 B      0.00%
rtc_reserved_seg:          24 B         24 B    100.00%
    rtc_slow_seg:          36 B         8 KB      0.44%
CP: nuttx.hex
MKIMAGE: ESP32-S3 binary
esptool.py -c esp32s3 elf2image --ram-only-header -fs 4MB -fm dio -ff "40m" -o nuttx.bin nuttx
esptool.py v4.10.0
Creating esp32s3 image...
Image has only RAM segments visible. ROM segments are hidden and SHA256 digest is not appended.
Merged 1 ELF section
Successfully created esp32s3 image.
Generated: nuttx.bin
esptool.py -c esp32s3 -p /dev/cuaU0 -b 115200  write_flash -fs detect -fm dio -ff "40m" 0x0000 nuttx.bin
esptool.py v4.10.0
Serial port /dev/cuaU0
Connecting....
Chip is ESP32-S3 (QFN56) (revision v0.2)
Features: WiFi, BLE, Embedded PSRAM 2MB (AP_3v3)
Crystal is 40MHz
MAC: XXX
Uploading stub...
Running stub...
Stub running...
Configuring flash size...
Auto-detected Flash size: 16MB
Flash will be erased from 0x00000000 to 0x00095fff...
Flash params set to 0x0240
Compressed 613184 bytes to 340547...
Wrote 613184 bytes (340547 compressed) at 0x00000000 in 30.0 seconds (effective 163.4 kbit/s)...
Hash of data verified.

Leaving...
Hard resetting via RTS pin...
	1m30,68s real		1m29,31s user		1m50,82s sys
Connected
Initializing LCD SPI 2 port.

                            Initializing GC9A01 LCD.

                                                    SPI port 2 bound to LCD 0.
esp32s3_bringup(): end.
[LVGL] [User]	(0.610, +610)	 check_stack_size: tid: 3, Stack size : 16312 lv_nuttx_entry.c:297
[LVGL] [User]	(0.610, +0)	 lv_nuttx_lcd_create: lcd /dev/lcd0 opening lv_nuttx_lcd.c:77
[LVGL] [User]	(0.620, +10)	 lv_nuttx_lcd_create: lcd /dev/lcd0 open success lv_nuttx_lcd.c:84
[LVGL] [Warn]	(0.630, +10)	 lv_demo_widgets: LV_FONT_MONTSERRAT_18 is not enabled for the widgets demo. Using LV_FONT_DEFAULT instead. lv_demo_widgets.c:156
[LVGL] [Warn]	(0.640, +10)	 lv_demo_widgets: LV_FONT_MONTSERRAT_12 is not enabled for the widgets demo. Using LV_FONT_DEFAULT instead. lv_demo_widgets.c:161

@shtirlic
Copy link
Copy Markdown
Author

shtirlic commented Apr 23, 2026

@cederom try to change the RGB, BGR bytes order for data, looks like it swapped, or invert command for display.

@acassis
Copy link
Copy Markdown
Contributor

acassis commented Apr 23, 2026

Allright so this is my testing on the ESP32S3-WS-LCD128 that I am adding right now to NuttX. It builds okay and runs okay but does not fix my LCD problem (probably related to GC9A01 driver) :-P

Before and after picture is the same:
image

Build and run is okay thouhg. Does this release fixes anything for you? Can you show before and after effect?

% uname -a
FreeBSD hexagon 14.4-RELEASE-p2 FreeBSD 14.4-RELEASE-p2 GENERIC amd64

% gmake clean distclean -j ; ./tools/configure.sh -B -S esp32s3-ws-lcd128:touch-lvgl && /usr/bin/time -h gmake flash -j && cu -l /dev/cuaU0 -s 115200
(..)
#
# configuration written to .config
#
Create version.h
LN: platform/board to /XXX/nuttx/nuttx-apps.git/platform/dummy
Downloading: v9.2.2.zipCloning Espressif HAL for 3rd Party Platforms
Espressif HAL for 3rd Party Platforms: cleaning current repository...
(..)
Espressif HAL for 3rd Party Platforms: b7e51db97a3f9dc82d3b3524d2bad298ba1e2647
Espressif HAL for 3rd Party Platforms: initializing submodules...
Applying patches...
Register: dd
Register: sh
Register: nsh
Register: lvgldemo
(..)
Memory region         Used Size  Region Size  %age Used
             ROM:      613188 B    4194272 B     14.62%
     iram0_0_seg:       36096 B       304 KB     11.60%
     irom0_0_seg:      387423 B    4194272 B      9.24%
     dram0_0_seg:       43896 B       288 KB     14.88%
     drom0_0_seg:      678688 B    4194272 B     16.18%
    rtc_iram_seg:           0 B       8168 B      0.00%
    rtc_data_seg:           0 B       8168 B      0.00%
rtc_reserved_seg:          24 B         24 B    100.00%
    rtc_slow_seg:          36 B         8 KB      0.44%
CP: nuttx.hex
MKIMAGE: ESP32-S3 binary
esptool.py -c esp32s3 elf2image --ram-only-header -fs 4MB -fm dio -ff "40m" -o nuttx.bin nuttx
esptool.py v4.10.0
Creating esp32s3 image...
Image has only RAM segments visible. ROM segments are hidden and SHA256 digest is not appended.
Merged 1 ELF section
Successfully created esp32s3 image.
Generated: nuttx.bin
esptool.py -c esp32s3 -p /dev/cuaU0 -b 115200  write_flash -fs detect -fm dio -ff "40m" 0x0000 nuttx.bin
esptool.py v4.10.0
Serial port /dev/cuaU0
Connecting....
Chip is ESP32-S3 (QFN56) (revision v0.2)
Features: WiFi, BLE, Embedded PSRAM 2MB (AP_3v3)
Crystal is 40MHz
MAC: XXX
Uploading stub...
Running stub...
Stub running...
Configuring flash size...
Auto-detected Flash size: 16MB
Flash will be erased from 0x00000000 to 0x00095fff...
Flash params set to 0x0240
Compressed 613184 bytes to 340547...
Wrote 613184 bytes (340547 compressed) at 0x00000000 in 30.0 seconds (effective 163.4 kbit/s)...
Hash of data verified.

Leaving...
Hard resetting via RTS pin...
	1m30,68s real		1m29,31s user		1m50,82s sys
Connected
Initializing LCD SPI 2 port.

                            Initializing GC9A01 LCD.

                                                    SPI port 2 bound to LCD 0.
esp32s3_bringup(): end.
[LVGL] [User]	(0.610, +610)	 check_stack_size: tid: 3, Stack size : 16312 lv_nuttx_entry.c:297
[LVGL] [User]	(0.610, +0)	 lv_nuttx_lcd_create: lcd /dev/lcd0 opening lv_nuttx_lcd.c:77
[LVGL] [User]	(0.620, +10)	 lv_nuttx_lcd_create: lcd /dev/lcd0 open success lv_nuttx_lcd.c:84
[LVGL] [Warn]	(0.630, +10)	 lv_demo_widgets: LV_FONT_MONTSERRAT_18 is not enabled for the widgets demo. Using LV_FONT_DEFAULT instead. lv_demo_widgets.c:156
[LVGL] [Warn]	(0.640, +10)	 lv_demo_widgets: LV_FONT_MONTSERRAT_12 is not enabled for the widgets demo. Using LV_FONT_DEFAULT instead. lv_demo_widgets.c:161

@cederom did you "Luke" the source code?

Try to enable CONFIG_LCD_GC9A01_BGR and see if it helps

@cederom
Copy link
Copy Markdown
Contributor

cederom commented Apr 23, 2026

@shtirlic: @cederom try to change the RGB, BGR bytes order for data, looks like it swapped, or invert command for display.

@acassis: @cederom did you "Luke" the source code?
Try to enable CONFIG_LCD_GC9A01_BGR and see if it helps

Yes tried that already, but its a separate issue and don't want to distract here, thank you @acassis and @shtirlic :-)

I am okay with LVGL bump 9.2.1 -> 9.2.2 as it builds and works okay and it just a patch version bump so no internal incompatibilities should arise here, also I like a lot update of versioning from hardcodes to Kconfig provided numbers! Lets just make sure CI build is okay and we follow the CG :-)

@cederom
Copy link
Copy Markdown
Contributor

cederom commented Apr 23, 2026

Ugh I wrote a reply before but did not send, multitasking is killing focus o_O

../nuttx/tools/checkpatch.sh -c -u -m -g 773f69d5d95d0390d60447a29c2c1b82931932a3..HEAD
ERROR __main__.py:618: Check failed: /home/runner/work/nuttx-apps/nuttx-apps/apps/graphics/lvgl/CMakeLists.txt

cmake-format check failed, run following command to update the style:
  $ cmake-format <src> -o <dst>

ERROR __main__.py:618: Check failed: /home/runner/work/nuttx-apps/nuttx-apps/apps/graphics/lvgl/CMakeLists.txt
Used config files:
    1: .codespellrc
Some checks failed. For contributing guidelines, see:
  https://github.com/apache/nuttx/blob/master/CONTRIBUTING.md
Error: Process completed with exit code 1.

You can check locally with:

Quick Check for Compliance

Please verify formatting of your git commits before a Pull Request is submitted/updated. Use checkpatch.sh script that will verify the coding style, encoding, and spelling issues:

./tools/checkpatch.sh -c -u -m -g HEAD~...HEAD

Alternatevily you can run this script passing the .c file or .h header you want to check using -f switch:

./tools/checkpatch.sh -c -u -m -f path/to/your/file.c

See: https://nuttx.apache.org/docs/latest/contributing/coding_style.html#quick-check-for-compliance

:-)

@shtirlic
Copy link
Copy Markdown
Author

@cederom yeah, looks like I have enabled checks for main repo but not for the apps repo in git hooks

Update lvlg version to 9.2.2, includes fix for nuttx lcd release
Get version from config in Makefile
Get version from config in cmake file

Signed-off-by: Serg Podtynnyi <serg@podtynnyi.com>
@shtirlic
Copy link
Copy Markdown
Author

@cederom also there is no pre-commit-config.yaml like in main repo

@cederom
Copy link
Copy Markdown
Contributor

cederom commented Apr 23, 2026

@shtirlic you may want to take a look at the new user controlled ci that is currently under development, testing is most welcome, thank you! :-)

apache/nuttx#18568

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants