Skip to content

Update the manifest for the Waveshare ESP32-S3-Zero board#1640

Merged
bdraco merged 7 commits into
esphome:mainfrom
DeepCoreSystem:Waveshare_ESP32_S3_Zero
Jun 22, 2026
Merged

Update the manifest for the Waveshare ESP32-S3-Zero board#1640
bdraco merged 7 commits into
esphome:mainfrom
DeepCoreSystem:Waveshare_ESP32_S3_Zero

Conversation

@DeepCoreSystem

Copy link
Copy Markdown
Contributor

What does this implement/fix?

Update the manifest for the Waveshare ESP32-S3-Zero board.

Related issue or feature (if applicable):

none

Types of changes

  • Bugfix (non-breaking change which fixes an issue) — bugfix
  • New feature (non-breaking change which adds functionality) — new-feature
  • Enhancement to an existing feature — enhancement
  • Breaking change (fix or feature that would cause existing functionality to not work as expected) — breaking-change
  • Refactor (no behaviour change) — refactor
  • Documentation only — docs
  • Maintenance / chore — maintenance
  • CI / workflow change — ci
  • Dependencies bump — dependencies

Frontend coordination

  • No frontend change needed
  • Companion frontend PR: esphome/device-builder-frontend#

Checklist

  • The code change is tested and works locally.
  • Pre-commit hooks pass (ruff, codespell, yaml/json/python checks).
  • Tests have been added or updated under tests/ where applicable.
  • components.index.json / definitions/components/*.json have not been hand-edited (regenerate via script/sync_components.py if a sync is needed).
  • Architecture-level changes are reflected in docs/ARCHITECTURE.md and/or docs/API.md.

@github-actions github-actions Bot added the enhancement Improvement to an existing feature label Jun 21, 2026
@codspeed-hq

codspeed-hq Bot commented Jun 21, 2026

Copy link
Copy Markdown

Merging this PR will not alter performance

✅ 27 untouched benchmarks


Comparing DeepCoreSystem:Waveshare_ESP32_S3_Zero (2c91dd3) with main (bae05a2)

Open in CodSpeed

@esphbot

esphbot commented Jun 21, 2026

Copy link
Copy Markdown
Contributor

Previous review — superseded by a newer review below.

@esphbot esphbot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Blocking issues found.

  • RGB LED mapped to wrong pin — WS2812 is on GPIO21, not GPIO38
  • GPIO15 has no touch — "Touch12" note is wrong and duplicated
  • GPIO0 dropped from the pin list — confirm it is genuinely not exposed

@codecov

codecov Bot commented Jun 22, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 99.54%. Comparing base (bae05a2) to head (2c91dd3).

Additional details and impacted files

Impacted file tree graph

@@           Coverage Diff           @@
##             main    #1640   +/-   ##
=======================================
  Coverage   99.54%   99.54%           
=======================================
  Files         227      227           
  Lines       18129    18129           
=======================================
  Hits        18047    18047           
  Misses         82       82           
Flag Coverage Δ
py3.12 99.51% <ø> (-0.01%) ⬇️
py3.14 99.54% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

- Correction for the onboard RGB led to pin 21.
- Confirmed GPIO0 has no external connection, except to BOOT button
Removed touch feature from GPIO15 and updated notes for GPIO15 and GPIO16.
@DeepCoreSystem DeepCoreSystem requested a review from esphbot June 22, 2026 06:39
@esphbot

esphbot commented Jun 22, 2026

Copy link
Copy Markdown
Contributor

Previous review — superseded by a newer review below.

@esphbot esphbot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Blocking issues found.

  • Generated body JSON is out of sync with the manifest — not regenerated

Run script/sync_boards.py so the shipped body JSON matches the corrected
manifest, and drop a stray leading space in the GPIO47 note.
@esphbot

esphbot commented Jun 22, 2026

Copy link
Copy Markdown
Contributor

PR Review — Update the manifest for the Waveshare ESP32-S3-Zero board

Solid, factually-corrected board manifest update. The prior blocking reviews are stale — the body JSON has been regenerated and is now in sync with the manifest.

What's done well:

  • The factual corrections are real fixes, not cosmetic: RGB LED moved to GPIO21 (the manifest previously and wrongly put the WS2812 on GPIO48), flash/PSRAM corrected to 4MB/2MB (was 16MB/8MB), form factor corrected to 18x23.5mm, GPIO0 documented as the Boot button, GPIO15/16 annotated with XTAL_32K_P/N.
  • The generated board_bodies/waveshare_esp32_s3_zero.json is now a faithful regeneration of the manifest — verified pin-by-pin (GPIO21 = rgb_led + occupied_by WS2812, GPIO0 present, GPIO15 = XTAL_32K_P with no phantom Touch12, GPIO33/47 notes carried through). test_split_artefacts_match_manifests should pass.
  • Correct single label (enhancement); data-only change, no frontend coordination needed.

The two existing CHANGES_REQUESTED reviews quote an earlier commit's body JSON (GPIO21 available:false / GPIO38 rgb_led / GPIO0 dropped). Those were fixed in subsequent commits on this branch and no longer reflect HEAD.

  • Only open item: the image is a Waveshare MediaWiki thumbnail path, which can be purged/regenerated — a stabler source is preferable (suggestion Add section config API and user preferences #1, non-blocking). Note the earlier "bundled-assets" framing is incorrect for this repo: remote URLs are the established convention.

🟢 Suggestions

1. Image is a MediaWiki thumbnail path — prefer a more durable source
esphome_device_builder/definitions/boards/waveshare_esp32_s3_zero/manifest.yaml:6-7

The new images: entry points at a Waveshare wiki thumbnail (/w/upload/thumb/2/29/ESP32-S3-Zero.png/300px-...). Remote image URLs are fully consistent with this catalog's convention — 442+ manifests reference remote https:// URLs, including direct vendor sites (wemos.cc, olimex.com, m5stack.com, espressif.com) — so an external URL is not a problem here (contrary to the earlier review note about "bundled assets"; the dominant pattern is remote, and validate_definitions.py --check-images exists precisely to verify http(s) reachability).

The narrow concern is the specific path shape: MediaWiki /thumb/.../300px- URLs are derived assets that the wiki can purge or regenerate at a different size segment, breaking the link. The bulk of this catalog points at raw.githubusercontent.com/esphome/devices.esphome.io/..., which is content-addressed and stable.

Not blocking. To harden it, either point at the esphome devices repo (if a S3-Zero image exists there) or the original full-size Waveshare asset rather than the thumbnail derivative, and confirm it returns HTTP 2xx via validate_definitions.py --check-images.

images:
- https://www.waveshare.com/w/upload/thumb/2/29/ESP32-S3-Zero.png/300px-ESP32-S3-Zero.png

Checklist

  • Generated body/index regenerated from manifest (in sync, not hand-edited)
  • Manifest and shipped body agree on pin mapping
  • Hardware facts (flash/PSRAM/form factor) accurate
  • RGB LED / pin features factually correct
  • Exactly one PR type label (enhancement)
  • Image source robust — suggestion #1
  • No frontend coordination needed (data-only catalog change)

Automated review by Kōan (Claude) HEAD=2c91dd3 3 min 4s

@esphbot esphbot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No blocking issues found.

@bdraco bdraco merged commit 64e9e36 into esphome:main Jun 22, 2026
17 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement Improvement to an existing feature

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants