LVGL 86box Project Overview
This project is an LVGL-based 86 box UI demo for BK7258. It demonstrates page switching, home-control style screens, image resources, and optional touch interaction.
1. Directory Layout
86box/
├── CMakeLists.txt # Top-level CMake entry
├── Makefile # Make build entry
├── ap/ # AP-core application sources
│ ├── ap_main.c # LVGL, LCD, touch, and page entry initialization
│ ├── images/ # Page image resources
│ └── config/ # BK7258 AP-side configuration
├── cp/ # CP-core configuration
│ └── config/
└── partitions/ # Flash and RAM layout
2. Features
Initializes the LVGL display stack through
lv_vendorwith partial refresh and multiple frame buffers.Targets the ST7701S RGB LCD by default; control pins are defined in
rgb_ctlr_configinap/ap_main.c.Creates the 86 box UI through
hor_page_load_main().Supports optional touch input when
CONFIG_TPis enabled.Enables LCD LDO, backlight, and PSRAM power during startup.
3. Hardware & Configuration
Hardware: BK7258 development board, ST7701S RGB LCD, and optional touch panel.
LCD control: GPIO0/GPIO12/GPIO1/GPIO6 are used for RGB LCD control, GPIO7 for backlight, and GPIO13 for LCD LDO by default.
Software: enable
CONFIG_LVGL; enableCONFIG_TPif touch input is required.
4. Build & Flash
make bk7258 PROJECT=lvgl/86box
Flash the generated firmware to the board. After reset, the application initializes LVGL, opens the LCD, and enters the 86 box demo UI automatically.
5. Runtime Flow
Connect the LCD, optional touch panel, and development board.
Flash the firmware and reset the board.
Check UART logs for framebuffer allocation, LCD open, and touch initialization errors.
Use touch gestures or taps to verify page interaction after the UI appears.
6. Troubleshooting
Blank screen: Check the ST7701S panel model, RGB control pins, backlight GPIO7, and LCD LDO GPIO13.
Touch not working: Make sure
CONFIG_TPis enabled and verify the touch I2C wiring and mirror settings.Startup failure or low memory: Confirm PSRAM is available and adjust
CONFIG_LVGL_FRAME_BUFFER_NUMor framebuffer allocation for the display resolution.