Skip to content

Add new board definition for Waveshare ESP32-S3-Nano with a default component for PSRAM and featured components#1943

Merged
bdraco merged 4 commits into
esphome:mainfrom
DeepCoreSystem:waveshare_esp32_s3_nano
Jul 10, 2026
Merged

Add new board definition for Waveshare ESP32-S3-Nano with a default component for PSRAM and featured components#1943
bdraco merged 4 commits into
esphome:mainfrom
DeepCoreSystem:waveshare_esp32_s3_nano

Conversation

@DeepCoreSystem

Copy link
Copy Markdown
Contributor

What does this implement/fix?

Add new board definition for Waveshare ESP32-S3-Nano with a default component for PSRAM and featured components

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 new-feature New feature label Jul 10, 2026
@codspeed-hq

codspeed-hq Bot commented Jul 10, 2026

Copy link
Copy Markdown

Merging this PR will not alter performance

✅ 27 untouched benchmarks


Comparing DeepCoreSystem:waveshare_esp32_s3_nano (0ee403e) with main (1b6d29c)

Open in CodSpeed

@bdraco

bdraco commented Jul 10, 2026

Copy link
Copy Markdown
Member

@esphbot review

@codecov

codecov Bot commented Jul 10, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 99.58%. Comparing base (b6820a3) to head (0ee403e).
⚠️ Report is 1 commits behind head on main.

Additional details and impacted files

Impacted file tree graph

@@           Coverage Diff           @@
##             main    #1943   +/-   ##
=======================================
  Coverage   99.58%   99.58%           
=======================================
  Files         239      239           
  Lines       19397    19397           
=======================================
  Hits        19316    19316           
  Misses         81       81           
Flag Coverage Δ
py3.12 99.55% <ø> (ø)
py3.14 99.58% <ø> (ø)

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.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@esphbot

esphbot commented Jul 10, 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.

No blocking issues found.

@bdraco

bdraco commented Jul 10, 2026

Copy link
Copy Markdown
Member

@esphbot review

@esphbot

esphbot commented Jul 10, 2026

Copy link
Copy Markdown
Contributor

PR Review — Add new board definition for Waveshare ESP32-S3-Nano with a default component for PSRAM and featured components

Clean, data-only board definition for the Waveshare ESP32-S3-Nano. Merge-ready.

Verified against the codebase, not just the diff:

  • validate_definitions.py passes (563 boards, 0 errors) — the manifest conforms to schema.

  • All six referenced component ids exist in components.index.json (light.status_led, sensor.internal_temperature, button.restart, button.factory_reset, output.ledc, light.rgb).

  • board_bodies JSON is genuine sync output, not hand-edited: derived requires: [red_channel, green_channel, blue_channel] on rgb_status, value-wrapped field presets, synthesized label defaults for unlabelled pins.

  • PSRAM (8 MB octal / 80MHz) is expressed via the psram default component, not conflated into ram_size (524288 = 512 KB internal SRAM, correct for ESP32-S3). arduino_nano_esp32 is the standard PlatformIO mapping for this form factor.

  • Pin/featured-component modelling is internally consistent: RGB channels GPIO46/GPIO0 (broken out, available:true) and GPIO45 (no header, available:false); featured presets drive all three regardless.

  • No blocking issues found.

  • Could not regenerate locally to diff (venv esphome 2026.5.1 vs catalog stamp 2026.7.0), but the validator is the manifest gate and passes.



Checklist

  • Board manifest validates (validate_definitions.py)
  • Referenced featured/default component ids exist in catalog
  • Generated JSON not hand-edited (matches sync-script shape)
  • Pin availability internally consistent with featured presets
  • Hardware metadata correct (ram/flash/psram)

Automated review by Kōan (Claude) HEAD=0ee403e 1 min 15s

@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 c69fb97 into esphome:main Jul 10, 2026
17 checks passed
@github-actions github-actions Bot locked and limited conversation to collaborators Jul 12, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

new-feature New feature

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants