/qmsd-esp32-bsp

Primary LanguageCMIT LicenseMIT

QMSD-ESP32-BSP

中文版

qmsd-esp32-bsp includes screen drivers, touch functionality, and UI framework, making it convenient for users to develop applications on the panlee development board.

Supported development boards:

  • ZX2D10CE01S-4848
  • ZX2D10GE01R-V-4848
  • ZX2D80CECOF-2432
  • ZX3D50CE02S-USRC-4832
  • ZX3D95CE01S-AR-4848
  • ZX3D95CE01S-TR-4848
  • ZX3D95CE01S-UR-4848
  • ZX4D30NE01S-UR-4827
  • ZX7D00CE01S-8048

Supported UI frameworks, default is LVGL-8.3.1:

  • LVGL-8.3.1
  • LVGL-7.11

Supported sensors:

  • aht20 - temperature and humidity sensor
  • sht20 - temperature and humidity sensor
  • al01 - remote control driver chip
  • aw9523 - IO expansion chip
  • encoder_ab - AB encoder
  • ltr303als01 - ambient light sensor

Other libraries:

  • I2C driver library, provides some low-level encapsulation for practical use. When using I2C for touch, it is recommended to use this driver to ensure I2C read/write thread safety. Example
  • Button support, with ADC buttons and regular buttons, supports callbacks and blocking read of button status
  • MP3 decoding library, a FreeRTOS data stream wrapper for libhelix-mp3

Usage Instructions

ESP-IDF support:

Prerequisites before usage:

  1. Install ESP-IDF v4.4 (v5.0, v5.1)environment (Tutorial) and verify successful compilation of the example/get-started within ESP-IDF.
  2. Select ESP32-S3 as the target chip and compile example/get-started again to ensure successful compilation.

Here is the translated version:

  1. Go to the "example/get-start" directory.
  2. Set up the ESP-IDF environment.
  3. Use the command "idf.py load-board" to load the configuration for your target development board.
  4. Compile the project using the command "idf.py build".

Using qmsd-esp32-bsp as a component

Method 1: Set the environment variable QMSD_8MS_PATH to the address of the SDK, and add the following line to the CMakeLists.txt file:

include($ENV{QMSD_8MS_PATH}/component.cmake)

Method 2: Copy the SDK to your project and name it "xxx". Then, add the following line to the CMakeLists.txt file:

set(ENV{QMSD_8MS_PATH} ${CMAKE_SOURCE_DIR}/xxx)
include($ENV{QMSD_8MS_PATH}/component.cmake)

Refer to example/get-start/CMakeLists.txt for more information.

ESP32 hardware peripherals used

  • LEDC: LEDC_TIMER_3, LEDC_LOW_SPEED_MODE, LEDC_CHANNEL_5, LEDC_TIMER_10_BIT
  • I2C0: Used for touch input with a frequency of 400KHz. If you need touch functionality and want to use the I2C pins for touch, please use the i2c_bus driver. Refer to the read/write example in aw9523 for specific usage.

Quick commands

Load board configuration

Run the following command in the project directory:

idf.py load-board

You will see the following options, and the board models may vary based on the SDK support:

--- Please select board to load sdkconfig ---
0): ZX1D28CEC27R-2424
1): ZX2D10GE01R-V-4848
2): ZX3D50CE02S-USRC-4832
3): ZX3D95CE01S-AR-4848
4): ZX3D95CE01S-UR-4848
5): ZX4D30NE01S-UR-4827
x): exit
Select board [0 ~ 5]:

Enter the number corresponding to your target board and press Enter. The script will create the sdkconfig.defaults file and configure the sdkconfig for the selected development board.

Generate firmware

After a successful compilation of the project, run the following command:

idf.py generate-firmware

The script will locate the bin file generated in the build folder and package it into a single firmware file named firmware_xxx.bin, where xxx represents the offset address for burning the bin file.

Release project

The script can quickly package the compiled .a files of the components for release.

The rule for determining whether to package a component is as follows: If there is a CMakeLists.release file in the components directory of the project, the .c files under that component will be deleted, and the CMakeLists.release file will be replaced with a cmake file. The .a files will be extracted from the build directory of the project to the component directory.

After a successful compilation of the project, run the following command:

idf.py release-components

After running the command, a component_release directory will be generated under the build directory of the project. It contains the .a files and cmake files that have been replaced, forming a separate project.

Other reference resources