From e84795cdffffbd71f1992c60faea72e045bb4850 Mon Sep 17 00:00:00 2001 From: ainyan03 Date: Thu, 13 Aug 2026 07:30:20 +0000 Subject: [PATCH 1/2] Use SPI2_HOST/SPI3_HOST instead of the removed HSPI/VSPI aliases ESP-IDF v6 drops the ESP32-classic HSPI_HOST/VSPI_HOST aliases, which broke the autodetect path and the Atom/Module display headers when building against it. SPI2_HOST/SPI3_HOST are the canonical names since IDF v4, so this stays compatible with every Arduino core and IDF version the CI floor covers. --- src/M5AtomDisplay.h | 2 +- src/M5GFX.cpp | 10 +++++----- src/M5ModuleDisplay.h | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/M5AtomDisplay.h b/src/M5AtomDisplay.h index 62f003a1..7c311040 100644 --- a/src/M5AtomDisplay.h +++ b/src/M5AtomDisplay.h @@ -138,7 +138,7 @@ class M5AtomDisplay : public M5GFX int spi_sclk = GPIO_NUM_7; #elif !defined (CONFIG_IDF_TARGET) || defined (CONFIG_IDF_TARGET_ESP32) - #define M5GFX_SPI_HOST VSPI_HOST + #define M5GFX_SPI_HOST SPI3_HOST int i2c_port = 1; int i2c_sda = GPIO_NUM_25; diff --git a/src/M5GFX.cpp b/src/M5GFX.cpp index 889cdca2..4c19d71e 100644 --- a/src/M5GFX.cpp +++ b/src/M5GFX.cpp @@ -1153,7 +1153,7 @@ namespace m5gfx #if !defined (CONFIG_IDF_TARGET) || defined (CONFIG_IDF_TARGET_ESP32) - bus_cfg.spi_host = VSPI_HOST; + bus_cfg.spi_host = SPI3_HOST; bus_cfg.dma_channel = 1; std::uint32_t id; @@ -1180,7 +1180,7 @@ namespace m5gfx board = board_t::board_M5StickCPlus; ESP_LOGI(LIBRARY_NAME, "[Autodetect] M5StickCPlus"); bus_spi->release(); - bus_cfg.spi_host = HSPI_HOST; + bus_cfg.spi_host = SPI2_HOST; bus_cfg.freq_write = 40000000; bus_cfg.freq_read = 15000000; bus_spi->config(bus_cfg); @@ -1195,7 +1195,7 @@ namespace m5gfx board = board_t::board_M5StickC; ESP_LOGI(LIBRARY_NAME, "[Autodetect] M5StickC"); bus_spi->release(); - bus_cfg.spi_host = HSPI_HOST; + bus_cfg.spi_host = SPI2_HOST; bus_cfg.freq_write = 27000000; bus_cfg.freq_read = 14000000; bus_spi->config(bus_cfg); @@ -1280,7 +1280,7 @@ namespace m5gfx board = board_t::board_M5StickCPlus2; ESP_LOGI(LIBRARY_NAME, "[Autodetect] M5StickCPlus2"); bus_spi->release(); - bus_cfg.spi_host = HSPI_HOST; + bus_cfg.spi_host = SPI2_HOST; bus_cfg.freq_write = 40000000; bus_cfg.freq_read = 15000000; bus_spi->config(bus_cfg); @@ -1350,7 +1350,7 @@ namespace m5gfx board = board_t::board_M5Station; bus_spi->release(); - bus_cfg.spi_host = HSPI_HOST; + bus_cfg.spi_host = SPI2_HOST; bus_cfg.freq_write = 40000000; bus_cfg.freq_read = 15000000; bus_spi->config(bus_cfg); diff --git a/src/M5ModuleDisplay.h b/src/M5ModuleDisplay.h index f26e296a..c6969f08 100644 --- a/src/M5ModuleDisplay.h +++ b/src/M5ModuleDisplay.h @@ -149,7 +149,7 @@ class M5ModuleDisplay : public M5GFX int spi_sclk = GPIO_NUM_36; #elif !defined (CONFIG_IDF_TARGET) || defined (CONFIG_IDF_TARGET_ESP32) - #define M5GFX_SPI_HOST VSPI_HOST + #define M5GFX_SPI_HOST SPI3_HOST int i2c_port = 1; int i2c_sda = GPIO_NUM_21; From 506d2711e254699a20fd6d1543dd7098db7ff96f Mon Sep 17 00:00:00 2001 From: ainyan03 Date: Thu, 13 Aug 2026 07:30:48 +0000 Subject: [PATCH 2/2] CI: add esp32c5 coverage, IDF 6.0, and run superseding - The IDF matrix gains esp32c5 (5.5.2), esp32c6 on 5.5.2 so the low power peripheral paths compile, and esp32 on 6.0.2 to surface next major deprecations early. - The Arduino matrix gains esp32c5 on arduino-esp32 3.3.11 (C5 support landed in the 3.3 series). - Both workflows now cancel superseded runs of the same branch or pull request, keyed by event name and PR number. --- .github/workflows/ArduinoBuild.yml | 9 +++++++++ .github/workflows/IDFBuild.yml | 12 ++++++++++++ 2 files changed, 21 insertions(+) diff --git a/.github/workflows/ArduinoBuild.yml b/.github/workflows/ArduinoBuild.yml index 6eb8f73f..81c6d0e6 100644 --- a/.github/workflows/ArduinoBuild.yml +++ b/.github/workflows/ArduinoBuild.yml @@ -12,6 +12,11 @@ on: pull_request: workflow_dispatch: +# supersede queued/running builds of the same branch or PR +concurrency: + group: ${{ github.workflow }}-${{ github.event_name }}-${{ github.event.pull_request.number || github.ref }} + cancel-in-progress: true + jobs: build: name: ${{ matrix.board }} (${{ matrix.esp32_version }}) @@ -44,6 +49,10 @@ jobs: - board: esp32:esp32:esp32c3 esp32_version: 3.1.1 board_manager_url: https://espressif.github.io/arduino-esp32/package_esp32_index.json + # ESP32-C5 (v3.3+ only) + - board: esp32:esp32:esp32c5 + esp32_version: 3.3.11 + board_manager_url: https://espressif.github.io/arduino-esp32/package_esp32_index.json # ESP32-C6 (v3 only) - board: esp32:esp32:esp32c6 esp32_version: 3.1.1 diff --git a/.github/workflows/IDFBuild.yml b/.github/workflows/IDFBuild.yml index 7e7101c0..110786c9 100644 --- a/.github/workflows/IDFBuild.yml +++ b/.github/workflows/IDFBuild.yml @@ -12,6 +12,11 @@ on: pull_request: workflow_dispatch: +# supersede queued/running builds of the same branch or PR +concurrency: + group: ${{ github.workflow }}-${{ github.event_name }}-${{ github.event.pull_request.number || github.ref }} + cancel-in-progress: true + jobs: build: name: ${{ matrix.target }} (IDF ${{ matrix.idf_version }}) @@ -27,6 +32,8 @@ jobs: idf_version: "5.3" - target: esp32 idf_version: "5.1.6" + - target: esp32 + idf_version: "6.0.2" # ESP32-S3 - target: esp32s3 idf_version: "5.3" @@ -37,9 +44,14 @@ jobs: idf_version: "5.3" - target: esp32c3 idf_version: "5.1.6" + # ESP32-C5 (IDF 5.5+ only) + - target: esp32c5 + idf_version: "5.5.2" # ESP32-C6 (IDF 5.3+ only) - target: esp32c6 idf_version: "5.3" + - target: esp32c6 + idf_version: "5.5.2" # ESP32-H2 - target: esp32h2 idf_version: "5.3"