Skip to content

About

A collaborative repository of board definitions and hardware metadata.

Resources

Contributing

Security policy

Stars

5 stars

Watchers

1 watching

Forks

Repository files navigation

Waveshare Boards

Waveshare board definitions for ESP Board Manager

Build License

English | 简体中文

📚 Documentation · 🚀 Quick start


This board pack describes Waveshare hardware using Board Manager YAML files and board-specific setup code. It follows the component-pack workflow in demo_boards, with Waveshare definitions, bilingual documentation, and generation/build checks.

📋 Board catalog

ESP32-S3

ESP32-S3-Touch-AMOLED-1.75C development board

ESP32-S3-Touch-AMOLED-1.75C

Board definition · Product documentation
ESP32-S3-Touch-AMOLED-1.8 development board

ESP32-S3-Touch-AMOLED-1.8

Board definition · Product documentation
ESP32-S3-Touch-AMOLED-2.16 development board

ESP32-S3-Touch-AMOLED-2.16

Board definition · Product documentation
ESP32-S3-Touch-LCD-7 development board

ESP32-S3-Touch-LCD-7

Board definition · Product documentation
ESP32-S3-LR1121-OLED-1.54-XF development board

ESP32-S3-LR1121-OLED-1.54-XF

Board definition · Product documentation
ESP32-S3-LR1121-ePaper-2.9 development board

ESP32-S3-LR1121-ePaper-2.9

Board definition · Product documentation

ESP32-P4

ESP32-P4-NANO-WIFI6-DB development board

ESP32-P4-NANO-WIFI6-DB

Board definition · Product documentation
ESP32-P4-WIFI6-DB development board

ESP32-P4-WIFI6-DB

Board definition · Product documentation
ESP32-P4-NANO development board

ESP32-P4-NANO

Board definition · Product documentation
ESP32-P4-WIFI6 development board

ESP32-P4-WIFI6

Board definition · Product documentation
ESP32-P4-WIFI6-Touch-LCD-4B development board

ESP32-P4-WIFI6-Touch-LCD-4B

Board definition · Product documentation
ESP32-P4-WIFI6-Touch-LCD-7B development board

ESP32-P4-WIFI6-Touch-LCD-7B

Board definition · Product documentation
ESP32-P4-WIFI6-Touch-LCD-3.5 development board

ESP32-P4-WIFI6-Touch-LCD-3.5

Board definition · Product documentation
ESP32-P4-WIFI6-Touch-LCD-4.3 development board

ESP32-P4-WIFI6-Touch-LCD-4.3

Board definition · Product documentation
ESP32-P4-WIFI6-Touch-LCD-X development boards

ESP32-P4-WIFI6-Touch-LCD-X

Board definition · Product documentation
ESP32-P4-WIFI6-Touch-LCD-XC development boards

ESP32-P4-WIFI6-Touch-LCD-XC

Board definition · Product documentation
ESP32-P4-Knob-Touch-AMOLED-1.75 development board

ESP32-P4-Knob-Touch-AMOLED-1.75

Board definition · Product documentation

ESP32-S31

ESP32-S31-Touch-LCD-4.3C development board

ESP32-S31-Touch-LCD-4.3C

Board definition · Product documentation

Some boards support display configuration with -a.

Device and peripheral definitions

The table lists definitions present in this repository. Peripheral declarations such as spi_sd describe a bus; they do not imply a complete storage application.

Board Chip Device definitions Peripheral definitions
esp32_p4_knob_touch_amoled_1_75 ESP32-P4 display_lcd, lcd_touch, audio_dac, audio_adc, fs_spiffs, fs_sdcard, wireless i2c_master, i2s_audio_out, i2s_audio_in, gpio_pa_control, gpio_knob_cw, gpio_knob_ccw, gpio_haptic_in1, gpio_haptic_in2, gpio_boot, gpio_power, gpio_rtc_int, gpio_imu_int1, gpio_imu_int2, ldo_mipi, dsi_display
esp32_p4_nano ESP32-P4 audio_dac, audio_adc, sdcard_power_ctrl, fs_sdcard, display_lcd, lcd_brightness, fs_spiffs, lcd_touch, camera i2c_master, i2s_audio_out, i2s_audio_in, gpio_pa_control, gpio_sd_power, ldo_mipi, dsi_display
esp32_p4_nano_wifi6_db ESP32-P4 audio_dac, audio_adc, camera, display_lcd, lcd_brightness, fs_spiffs, sdcard_power_ctrl, fs_sdcard, lcd_touch i2c_master, i2s_audio_out, i2s_audio_in, gpio_pa_control, gpio_sd_power, ldo_mipi, dsi_display
esp32_p4_wifi6 ESP32-P4 camera, audio_dac, audio_adc, display_lcd, lcd_brightness, fs_spiffs, lcd_touch, fs_sdcard, sdcard_power_ctrl i2c_master, i2s_audio_out, i2s_audio_in, gpio_pa_control, gpio_sd_power, ldo_mipi, dsi_display
esp32_p4_wifi6_db ESP32-P4 camera, audio_dac, audio_adc, display_lcd, lcd_brightness, fs_spiffs, lcd_touch, fs_sdcard, sdcard_power_ctrl i2c_master, i2s_audio_out, i2s_audio_in, gpio_pa_control, gpio_sd_power, ldo_mipi, dsi_display
esp32_p4_wifi6_db_poe_eth ESP32-P4 camera, audio_dac, audio_adc, display_lcd, lcd_brightness, fs_spiffs, lcd_touch, fs_sdcard, sdcard_power_ctrl i2c_master, i2s_audio_out, i2s_audio_in, gpio_pa_control, gpio_sd_power, ldo_mipi, dsi_display
esp32_p4_wifi6_touch_lcd_3_5 ESP32-P4 audio_dac, audio_adc, fs_spiffs, fs_sdcard, display_lcd, lcd_touch, lcd_brightness, camera i2c_master, i2s_audio_out, i2s_audio_in, gpio_pa_control, ldo_mipi, spi_lcd, ledc_backlight
esp32_p4_wifi6_touch_lcd_4_3 ESP32-P4 audio_dac, audio_adc, fs_spiffs, sdcard_power_ctrl, fs_sdcard, display_lcd, lcd_touch, lcd_brightness, camera i2c_master, i2s_audio_out, i2s_audio_in, gpio_pa_control, gpio_sd_power, ldo_mipi, dsi_display, ledc_backlight
esp32_p4_wifi6_touch_lcd_4b ESP32-P4 audio_dac, audio_adc, fs_spiffs, sdcard_power_ctrl, fs_sdcard, display_lcd, lcd_touch, lcd_brightness, camera i2c_master, i2s_audio_out, i2s_audio_in, gpio_pa_control, gpio_sd_power, ldo_mipi, dsi_display, ledc_backlight
esp32_p4_wifi6_touch_lcd_7b ESP32-P4 fs_sdcard, sdcard_power_ctrl, audio_adc, audio_dac, camera, display_lcd, lcd_touch, lcd_brightness, fs_spiffs gpio_sd_power, i2c_master, i2s_audio_out, i2s_audio_in, gpio_pa_control, ldo_mipi, dsi_display, ledc_backlight
esp32_p4_wifi6_touch_lcd_x ESP32-P4 audio_dac, audio_adc, fs_spiffs, fs_sdcard, display_lcd, lcd_touch, lcd_brightness, camera i2c_master, i2s_audio_out, i2s_audio_in, gpio_pa_control, ldo_mipi, dsi_display, ledc_backlight
esp32_p4_wifi6_touch_lcd_xc ESP32-P4 audio_dac, audio_adc, fs_spiffs, sdcard_power_ctrl, fs_sdcard, display_lcd, lcd_touch, backlight_power_ctrl, lcd_brightness, camera i2c_master, i2s_audio_out, i2s_audio_in, gpio_pa_control, gpio_sd_power, ldo_mipi, dsi_display, ledc_backlight, gpio_backlight_control
esp32_s31_touch_lcd_4_3c ESP32-S31 display_lcd, lcd_touch, lcd_brightness, sdcard_power_ctrl, fs_sdcard, audio_dac, audio_adc, rtc_pcf85063, imu_qmi8658, bat_bq27220, canfd i2c_master, i2s_audio_out, i2s_audio_in, ledc_backlight, gpio_sd_power, gpio_power_amp, uart_rs485
esp32_s3_lr1121_epaper_2_9 ESP32-S3 status_led, epaper_power_ctrl, epaper_ssd16xx, rtc_pcf85063a, bat_axp2602, radio_lr1121 i2c_master, spi_shared, gpio_boot, gpio_epaper_power
esp32_s3_lr1121_oled_1_54_xf ESP32-S3 button_boot, button_power, button_menu, button_ptt, button_rtc_irq, radio, oled, rtc, battery, audio, sdcard i2c_main, spi_radio, gpio_boot, gpio_power, gpio_menu, gpio_ptt, gpio_rtc_irq, gpio_amplifier, gpio_radio_cs, gpio_radio_irq, gpio_radio_reset, gpio_radio_busy, i2s_speaker, i2s_microphone
esp32_s3_touch_amoled_1_75c ESP32-S3 axp2101_power_manager, audio_dac, audio_adc, display_lcd, lcd_touch i2c_master, i2s_audio_out, i2s_audio_in, gpio_pa_control, spi_display
esp32_s3_touch_amoled_1_8 ESP32-S3 gpio_expander, axp2101_power_manager, audio_dac, audio_adc, display_lcd, lcd_touch, fs_sdcard i2c_master, i2s_audio_out, i2s_audio_in, gpio_pa_control, spi_display
esp32_s3_touch_amoled_2_16 ESP32-S3 axp2101_power_manager, audio_dac, audio_adc, display_lcd, lcd_touch, fs_sdcard i2c_master, i2s_audio_out, i2s_audio_in, gpio_pa_control, spi_display
esp32_s3_touch_lcd_7 ESP32-S3 display_lcd, lcd_touch i2c_master, uart_rs485, uart_external, adc_sensor, spi_sd

Definitions live under boards/<full_model>/. The three AMOLED profiles come from Espressif Brookesia; see board revisions and migration notes. CI validates generation and compilation; physical operation requires board testing.

The LR1121 OLED XF profile provides hardware definitions and requires application-side custom device adapters; see its support scope.

The LR1121 ePaper 2.9 profile defines the display, radio, RTC, battery gauge and status LED. Custom devices require application-side adapters; see its support scope.

ESP32-S31-Touch-LCD-4.3C uses target esp32s31; the ESP32-S3 quick-start commands below do not apply to it. See board notes for preview/development toolchain requirements, initialization and current CI limits.

ESP32-P4-Knob-Touch-AMOLED-1.75 uses target esp32p4. Its SD card, wireless co-processor and SPIFFS entries have application-side prerequisites; see its support scope.

🚀 Quick start

Activate ESP-IDF first. For a local checkout, clone this pack into an existing ESP-IDF application's component directory:

mkdir -p components
git clone https://github.com/waveshareteam/waveshare_boards.git components/waveshare_boards
python -m pip install esp-bmgr-assist==0.8.3
idf.py set-target esp32s3
idf.py bmgr -l
idf.py bmgr -b esp32_s3_touch_lcd_7
idf.py build

Use the Component Manager version from the active IDF environment; the tested versions for each IDF line are listed in the CI guide.

set-target resolves the pack dependencies before discovery. In an already configured ESP32-S3 application, use idf.py reconfigure instead to preserve its configuration.

Keep the local directory name waveshare_boards: ESP-IDF uses the directory name as the component name. The pack declares espressif/esp_board_manager as a public dependency. Applications can include esp_board_manager.h and initialize the selected board using esp_board_manager_init().

Published versions can be installed from the registry:

idf.py add-dependency "waveshare/waveshare_boards"
idf.py reconfigure
idf.py bmgr -l

Find available versions in the Component Registry.

Display configurations

Some boards provide display amendments selected with -a:

Board Display amendment
esp32_p4_wifi6_touch_lcd_x lcd_7_dsi_touch_a, lcd_8_dsi_touch_a
esp32_p4_wifi6_touch_lcd_xc lcd_3_4_dsi_touch_c

For example, select the 7-inch configuration in an ESP32-P4 application:

idf.py bmgr -b esp32_p4_wifi6_touch_lcd_x -a lcd_7_dsi_touch_a

Re-run the command after changing the board or amendment. Without an amendment, esp32_p4_wifi6_touch_lcd_x uses its 10.1-inch base configuration.

ESP32-P4 boards with an external MIPI-DSI connector (esp32_p4_nano, esp32_p4_nano_wifi6_db, esp32_p4_wifi6, esp32_p4_wifi6_db, and esp32_p4_wifi6_db_poe_eth) can use the shared DSI display overlays for 5_dsi_touch_a, 7_dsi_touch_c, 8_dsi_touch_a, 10_1_dsi_touch_a, and 10_1_dsi_touch_b. The overlay path is resolved relative to the selected board directory:

idf.py bmgr -b esp32_p4_wifi6_db -a ../esp32_p4_dsi_overlay/7_dsi_touch_c

See the Board Manager amend guide.

🗂️ Repository layout

boards/<full_model>/   Board metadata, peripherals, devices, and setup code
include/               Framework-independent AMOLED brightness helper
idf_component.yml      Component metadata and managed dependencies
CMakeLists.txt         Board-pack component registration
ci/test_app/           Board Manager integration compile test
ci/scripts/            Discovery, change routing, and validation tests
ci/versions.json       Exact ESP-IDF and Python tooling versions
scripts/               Generated board catalog maintenance
docs/                  Board revisions, CI, and registry publication guides
.github/               Workflows and contribution templates

The integration test is maintained under ci/; this repository currently has no first-party application examples, Arduino sketches, or delivery firmware.

🛠️ Maintenance

python scripts/update_supported_boards_table.py
python ci/scripts/board_pack.py check
python -m unittest discover -s ci/scripts -p 'test_*.py' -v

Use one boards/ container and keep the chip prefix in each model name. Do not add another chip/category directory: the layout must fit Board Manager scanning from an application's components/ root. Each model directory must match its unique board value. The catalog is regenerated from the definitions.

📚 Documentation

📄 License

Apache License 2.0, with imported files retaining their original SPDX notices, including CC0-1.0. See source attribution.

About

A collaborative repository of board definitions and hardware metadata.

Resources

Contributing

Security policy

Stars

5 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages