Skip to main content

Using ESP-BSP with DevKits

·3 mins·
Embedded Systems ESP32 ESP32-S2 ESP32-S3 ESP32-C2 Espressif BSP DevKit
Author
Vilém Závodný
Embedded Software Engineer at Espressif
Table of Contents

Introduction
#

The BSP (Board Support Package) from Espressif is ready to use package for selected boards (usually for Espressif’s and M5Stack boards). This package contains main initialization functions for features, which the board contains. For example display and touch initialization, file system initialization, audio if available, LEDs and buttons. This is the easy way, how to start developing with your board. Except initialization functions, there are examples for selected board too.

More about using common BSP, you can read here

Mainly, the BSP was only for boards with display or audio. Now, you can use it for any DevKit!

Generic and DevKit BSP
#

Classic DevKits usually contains only LEDs and buttons. There isn’t any BSP for specific DevKit, there are special BSPSs esp_bsp_generic and esp_bsp_devkit. These BPSs can be set by menuconfig for any Espressif’s DevKit. Differences between esp_bsp_generic and esp_bsp_devkit are in table below.

esp_bsp_genericesp_bsp_devkit
✔️ Up to 5 buttons✔️ Up to 5 buttons
✔️ Up to 5 GPIO LEDs✔️ Up to 5 GPIO LEDs
✔️ One RGB GPIO LED✔️ One RGB GPIO LED
✔️ Unlimited addressable RGB LEDs✔️ Unlimited addressable RGB LEDs
✔️ uSD File System✔️ uSD File System
✔️ SPIFFS File System✔️ SPIFFS File System
✔️ LVGL ready❌ LVGL ready
✔️ SPI LCD Display❌ SPI LCD Display
✔️ I2C LCD Touch❌ I2C LCD Touch

DevKit BSP
#

Basic BSP for DevKits is esp_bsp_devkit and there can be set only LEDs, buttons and file system.

Settings in menuconfig:

  • Buttons
    • Count (maximum 5)
    • Each button can be type ADC or GPIO
  • LEDs
    • Type (GPIO, RGB GPIO, Addressable RGB)
  • SPIFFS - Virtual File System
  • uSD card - Virtual File System

This BSP can emulate any Espressif’s DevKit.

Generic BSP
#

Generic BSP esp_bsp_generic can set all same as esp_bsp_devkit plus selected LCD and touch.

Settings in menuconfig:

  • Buttons
    • Count (maximum 5)
    • Each button can be type ADC or GPIO
  • LEDs
    • Type (GPIO, RGB GPIO, Addressable RGB)
  • Display
    • Connection (only SPI is supported)
    • Driver (ST7789, ILI9341, GC9A01)
  • Display Touch
    • Connection (only I2C is supported)
    • Driver (TT21100, GT1151, GT911, CST816S, FT5X06)
  • SPIFFS - Virtual File System
  • uSD card - Virtual File System

This BSP can emulate simple development boards with SPI LCD display.

Example and preconfigured settings
#

Mentioned BSPs have one very simple example with one button and one LED, which is included in component or you can find it in GitHub. Example shows breathing LED and you can change breathing/blinking effect by button click.

This example contains preconfigured settings for these DevKits:

Conclusion
#

ESP-BSP is ready to kickstart your projects. It is maintained by Espressif and designed to deliver optimal performance for your needs. If your board is not listed, you can easily create your own BSP or use the Generic/DevKit BSP for simpler boards. Start developing with BSP today!

Related

How to switch between multiple ESP32 firmware binaries stored in the flash memory
·6 mins
Embedded Systems ESP32 ESP32-S3 ESP32-P4 GUI OTA Espressif BSP
Simplify Your Embedded Projects with ESP-BSP
·5 mins
Embedded Systems ESP32 ESP32-S3 Espressif BSP
Easily Develop Graphical User Interfaces (GUIs) with Espressif Microcontrollers (MCUs)
·4 mins
ESP32 ESP-IDF GUI Embedded Wizard ESP32-S3 ESP32-S2