Skip to content

[CI only] chore: adopt the shared ESP32 repository template - #8

Closed
eMUQI wants to merge 17 commits into
mainfrom
chore/adopt-repo-template
Closed

eMUQI wants to merge 17 commits into
mainfrom
chore/adopt-repo-template

Conversation

@eMUQI

@eMUQI eMUQI commented Oct 16, 2026

Copy link
Copy Markdown
Contributor

Do not merge. This pull request only runs the template CI on a branch whose source is the internal GitLab repository. The change is reviewed and merged there and reaches this repository through the regular sync; this pull request is closed after CI finishes.

The branch moves the repository to the shared layout of waveshareteam/esp32-repo-template: the template CI caller and .github/product.json, a single bundled LVGL 9 for Arduino, slimmed Arduino libraries, a user-facing README and a README pair for every example. Example source code is unchanged.

eMUQI added 17 commits October 13, 2026 11:31
Add a root .gitignore for ESP-IDF build outputs and generated
configuration. Project settings remain in each example's
sdkconfig.defaults.
Use the centered header with quick links and semantic section icons on
both homepages. Add README_ZH.md for the ESPHome and U8g2 example pages
with reciprocal language links, and correct the sketch filename in the
U8g2 example page.
Move ESP-IDF examples to examples/esp-idf/, Arduino sketches and
bundled libraries to examples/arduino/, the ESPHome and XiaoZhi
examples to examples/esphome/ and examples/xiaozhi/, and the pre-built
firmware to firmware/. Firmware binaries are unchanged.

Update the homepages and .gitignore for the new paths and add a table
mapping the previous paths to the current ones.
.github/workflows/build.yml is the template skeleton caller of
waveshareteam/esp32-repo-template. product.json holds the product values:
target esp32s3, ESP-IDF v5.5.5 and v6.1, Arduino core 3.3.12 and the FQBN
from the Arduino IDE configuration reference. tier is 1 until a release
goes through the template's tag flow.
- examples/arduino/libraries/ReadMe.txt told users to copy one of the two
  LVGL versions into their library folder by hand. The repository keeps a
  single LVGL version, so the note no longer applies.
- .gitignore is the template skeleton version: build outputs, generated
  sdkconfig and dependencies.lock in every example, the local release
  output paths and local AI coding agent directories.
firmware/01_Factory_V1.bin is byte-identical to
ESP32-S3-RLCD-4.2_FactoryOnly.bin and firmware/02_XiaoZhi_V2.1.0.bin to the
image in v2.1.0_XiaoZhi_Firmware.zip, both attached to the v1.1.0 Release.
History is not rewritten, so the files stay reachable in earlier commits.
All sketches share examples/arduino/libraries, which can hold one LVGL
version. 09_LVGL_V9_Test keeps covering LVGL on Arduino; the LVGL 8 sketch
and lvgl8/ are removed. The ESP-IDF 08_LVGL_V8_Test example is unaffected,
since ESP-IDF examples declare their own LVGL version.
lvgl9/lvgl/ moves to lvgl/ and lvgl9/lv_conf.h to lv_conf.h, so the
library is found directly in examples/arduino/libraries and LVGL still
finds lv_conf.h two levels above its src/. Directory moves only.
Each bundled third-party library keeps src/, its root headers,
library.properties / library.json and every license file, including the
LVGL font licenses outside src/. Upstream examples, docs, tests, demos and
build files for other systems are removed.

Tracked files under examples/arduino/libraries: 4658 -> 1510
(259 MB -> 120 MB on disk). The CI compiles every sketch against them.
The README follows the template homepage structure: overview with the
device table, quick start with the combined packages, example tables,
the version table from product.json, resources and support.

- The product photo moves from assets/ to docs/images/ and the Arduino IDE
  settings screenshot from the repository root to docs/images/; the
  Arduino example READMEs link the screenshot.
- The repository layout, old-path mapping and contributing sections are
  removed; ESPHome and XiaoZhi sources are linked from the examples section.
- The repository has no schematic; Resources points to the wiki.
Each ESP-IDF example and Arduino sketch gets README.md and README_ZH.md
with the five template sections: what it does, hardware required, how to
run, expected result and troubleshooting. The 10_U8G2_Test README is
rewritten into the same sections. Troubleshooting notes the hard-coded
Wi-Fi credentials and the fixed RTC start time.
The repository bundles LVGL 9 only, and this sketch still used the
LVGL 8 display driver API (lv_disp_drv_t), so it no longer compiled.

- The flush callback takes the LVGL 9 signature.
- src/app_bsp/lvgl_bsp.* is the LVGL 9 display port already used by
  09_LVGL_V9_Test.

The GUI Guider screen and fonts compile unchanged. The display output
has not been checked on hardware yet.
03_ADC_Test (Arduino) and 11_U8G2_Test (ESP-IDF) included
freertos/freeRTOS.h, which only resolves on case-insensitive file systems
such as Windows. Builds on Linux and macOS failed.
The examples were created with ESP-IDF 5.4 and 5.5 and were never built
with v6. Six of them need code changes for v6 (the split I2C driver
component, a newer esp_codec_dev and gpio_num_t casts), which are left
for a separate change. product.json and the README version tables list
v5.5.5 until then.
@eMUQI eMUQI closed this Oct 16, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant