This repository provides Board Support Packages (BSPs) for various Espressif and M5Stack development boards. Written in C, each BSP offers a unified and consistent API to simplify the initialization and use of common onboard peripherals such as displays, touch panels, audio codecs, SD cards, and selected sensors. The goal is to streamline development and reduce hardware-specific boilerplate, enabling faster prototyping and cleaner application code.
The following table shows the compatibility of this BSP with different ESP-IDF versions:
4.x 5.0 5.1 5.2 5.3 5.4 5.5 ❌ ❌ ✔️ ✔️ ✔️ ✔️ ✔️ Board name SoC Supported Features Photo ESP-BOX-3 esp32s3 🎵 AudioThe best way to start with ESP-BSP is by trying one of the available examples on your board. Each example includes a README.md
file listing supported boards and usage instructions.
Here is a summary of the available examples:
bsp/name-of-the-bsp.h
: Main include file of the BSP with public APIbsp/esp-bsp.h
: Convenience include file with the same name for all BPSsbsp/display.h
and bsp/touch.h
: Only for BSPs with LCD or touch controller. Contain low level initialization functions for usage without LVGL graphical library
noglib
suffix (eg. esp32_s3_eye_noglib
).NOTE: There can be only one BSP in a single esp-idf project.
Packages from this repository are uploaded to the IDF component registry. You can add them to your project via idf.py add-dependency
, e.g.
idf.py add-dependency esp_wrover_kit==1.0.0
Recommendation for custom projects
When you want to use a BSP in a real project, it is highly recommended to disable configuration option CONFIG_BSP_ERROR_CHECK
in menuconfig. You should check all returned error codes from all BSP functions you call. Otherwise, if the option CONFIG_BSP_ERROR_CHECK
is enabled, any error encountered in a BSP will abort the program.
⚠️ Experimental feature: This feature is under development!
A single project can be run on multiple different development boards, if the boards contain the features required by the project (such as audio, display, camera...). For this purpose, idf.py
is extended by examples/bsp_ext.py which allows you to build an example for your specific BSP. Example command for display e.g.:
idf.py -D SDKCONFIG_DEFAULTS=sdkconfig.bsp.esp_wrover_kit build
In case you want to build locally for multiple boards at the same time, it is useful to have separate build directories for each BSP configuration. In order to achieve this, you can extend the above command like this:
idf.py -B build/wrover_kit -D SDKCONFIG_DEFAULTS=sdkconfig.bsp.esp_wrover_kit build
Note: This feature is not yet integrated to idf.py by default. If you want to use it, you must set your environmental variable
IDF_EXTRA_ACTIONS_PATH
to path toesp-bsp/examples/bsp_ext.py
.
All original source code in this repository is Copyright (c) Espressif Systems (Shanghai) Co. Ltd., and is licensed under the Apache 2.0 license.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4