Skip to content

Add hardware models and bring README in line with the shipping product - #4

Merged
TrevorSchirmer merged 5 commits into
mainfrom
hardware-and-cleanup
Jul 25, 2026
Merged

Add hardware models and bring README in line with the shipping product#4
TrevorSchirmer merged 5 commits into
mainfrom
hardware-and-cleanup

Conversation

@bharvey88

@bharvey88 bharvey88 commented Jul 13, 2026

Copy link
Copy Markdown
Contributor

Adds hardware models for community case design and brings the README in line with the shipping product, while removing leftover AIR-1 scaffolding.

Hardware

  • Add hardware/ with STEP placeholder models of every board under cad/pcb-placeholders/ (mainboard, motion, temp/humidity, LED & buzzer, button, and the optional Breakout Module), plus the printable Starter Kit Stand under 3d-prints/, with a hardware/README.md explaining placeholders vs. printables.
  • Add .gitattributes so CAD/STL/PNG assets are treated as binary.

Repo cleanup

  • Remove index.html — a verbatim copy of the AIR-1 ESP Web Tools installer (wrong product, dead footer link, referenced a non-existent manifest.json). The Starter Kit is a DIY board installed via the ESPHome Device Builder, so there is nothing to host.
  • Rename License.mdLICENSE.md so GitHub detects the CC BY-NC-SA 4.0 license.
  • Add CONTRIBUTING.md inviting community case designs.

README

  • Rename the title to the official product name, ESPHome Starter Kit (ESK-1).
  • Replace the bare-PCB render with the store hero photo.
  • Rework the Links section into a bullet list and add the product page, the start-here wiki page, and the community forum.
  • Correct the pinout table — I2C is GPIO0/1 (the old GPIO20/21 are commented out in ESK-1.yaml), and add the motion, button, LED & buzzer module, and boot-button pins per the device-builder manifest and ESK-1.yaml.
  • Add a Breakout Module pinout subsection for the optional add-on (notes the shared GPIO6).
  • Add a Specifications table (MCU, flash, radios, framework, power, expansion).
  • Add an ESPHome Device Builder section pointing to the official board definition as the install path.
  • Remove the RGB status-LED battery-color logic and the Prevent Sleep Toggle from Key Features (neither is implemented).

🤖 Generated with Claude Code

- Add hardware/ with STEP placeholder models of each board (cad/pcb-placeholders)
  and the printable Starter Kit Stand (3d-prints), plus a hardware README
- Remove leftover AIR-1 ESP Web Tools installer (index.html); the Starter Kit
  is a DIY board with no default flashable firmware to host
- Rename License.md to LICENSE.md so GitHub detects the CC BY-NC-SA 4.0 license
- Add CONTRIBUTING.md inviting community case designs
- Add .gitattributes so CAD/STL/PNG assets are treated as binary
- Link the hardware folder from the main README

Generated with Claude Code
@coderabbitai

coderabbitai Bot commented Jul 13, 2026

Copy link
Copy Markdown

Review Change Stack

Walkthrough

The changes add hardware asset handling, documentation, contribution guidance, licensing text, and a printable STL model. The README links to the hardware resources, while the existing static installer page is removed.

Changes

Hardware repository setup

Layer / File(s) Summary
Contribution and licensing guidance
CONTRIBUTING.md, LICENSE.md
Contribution workflows, issue-reporting requirements, support information, and the CC BY-NC-SA 4.0 license text are added.
Hardware assets and documentation
.gitattributes, hardware/README.md, hardware/3d-prints/*
CAD and image files are marked binary, hardware reference assets are documented, and a printable Starter Kit Stand STL is added.
Repository entry points
README.md, index.html
The README links to hardware resources and contribution guidance, and the static installer page is removed.

Estimated code review effort: 2 (Simple) | ~10 minutes

Suggested reviewers: bunton33

Poem

I twitch my nose at models bright,
A tiny stand takes shape just right.
The docs now guide each maker’s way,
While binary files keep line breaks at bay.
Hop, hop—new hardware joins the play!

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately captures the main hardware-model additions and README update in the pull request.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch hardware-and-cleanup

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@LICENSE.md`:
- Around line 37-45: Update the definition labels in Section 1 of LICENSE.md so
the entries for Licensor, NonCommercial, Share, Sui Generis Database Rights, and
You use sequential letters j through n, respectively, matching the CC BY-NC-SA
4.0 legal code.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 8d7a5e7d-f720-4d44-a56f-102de6579ec6

📥 Commits

Reviewing files that changed from the base of the PR and between abc76d6 and 6f4edba.

📒 Files selected for processing (13)
  • .gitattributes
  • CONTRIBUTING.md
  • LICENSE.md
  • README.md
  • hardware/3d-prints/Starter Kit Stand.stl
  • hardware/README.md
  • hardware/cad/pcb-placeholders/Breakout Module.step
  • hardware/cad/pcb-placeholders/Button Module.step
  • hardware/cad/pcb-placeholders/ESP32-C6 Mainboard.step
  • hardware/cad/pcb-placeholders/LED and Buzzer Module.step
  • hardware/cad/pcb-placeholders/PIR Module.step
  • hardware/cad/pcb-placeholders/Temperature and Humidity Module.step
  • index.html
💤 Files with no reviewable changes (1)
  • index.html

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Caution

Inline review comments failed to post. This is likely due to GitHub's internal server error or limits when posting large numbers of comments. If you are seeing this consistently it is likely a permissions issue. Please check "Moderation" -> "Code review limits" under your organization settings.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@LICENSE.md`:
- Around line 37-45: Update the definition labels in Section 1 of LICENSE.md so
the entries for Licensor, NonCommercial, Share, Sui Generis Database Rights, and
You use sequential letters j through n, respectively, matching the CC BY-NC-SA
4.0 legal code.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 8d7a5e7d-f720-4d44-a56f-102de6579ec6

📥 Commits

Reviewing files that changed from the base of the PR and between abc76d6 and 6f4edba.

📒 Files selected for processing (13)
  • .gitattributes
  • CONTRIBUTING.md
  • LICENSE.md
  • README.md
  • hardware/3d-prints/Starter Kit Stand.stl
  • hardware/README.md
  • hardware/cad/pcb-placeholders/Breakout Module.step
  • hardware/cad/pcb-placeholders/Button Module.step
  • hardware/cad/pcb-placeholders/ESP32-C6 Mainboard.step
  • hardware/cad/pcb-placeholders/LED and Buzzer Module.step
  • hardware/cad/pcb-placeholders/PIR Module.step
  • hardware/cad/pcb-placeholders/Temperature and Humidity Module.step
  • index.html
💤 Files with no reviewable changes (1)
  • index.html
🛑 Comments failed to post (1)
LICENSE.md (1)

37-45: 📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

sed -n '1,60p' LICENSE.md | cat -n

Repository: ApolloAutomation/ESPHome-Starter-Kit

Length of output: 1995


🌐 Web query:

Creative Commons BY-NC-SA 4.0 legal code Section 1 definitions Licensor NonCommercial Share Sui Generis Database Rights You letters j k l m n

💡 Result:

In Section 1 (Definitions) of the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0) public license, the definitions for subsections j, k, l, m, and n are as follows: j. Licensor means the individual(s) or entity(ies) granting rights under this Public License [1][2][3]. k. NonCommercial means not primarily intended for or directed towards commercial advantage or monetary compensation [1][4][5]. For purposes of this Public License, the exchange of the Licensed Material for other material subject to Copyright and Similar Rights by digital file-sharing or similar means is NonCommercial provided there is no payment of monetary compensation in connection with the exchange [1][2][5]. l. Share means to provide material to the public by any means or process that requires permission under the Licensed Rights, such as reproduction, public display, public performance, distribution, dissemination, communication, or importation, and to make material available to the public including in ways that members of the public may access the material from a place and at a time individually chosen by them [1][2][6]. m. Sui Generis Database Rights means rights other than copyright resulting from Directive 96/9/EC of the European Parliament and of the Council of 11 March 1996 on the legal protection of databases, as amended and/or succeeded, as well as other essentially equivalent rights anywhere in the world [1][2][6]. n. You means the individual or entity exercising the Licensed Rights under this Public License [1][2][6]. Your has a corresponding meaning [1][6].

Citations:


🏁 Script executed:

python3 - <<'PY'
from pathlib import Path
text = Path('LICENSE.md').read_text(encoding='utf-8').splitlines()
for i in range(30, 47):
    if i < len(text):
        print(f"{i+1}: {text[i]}")
PY

Repository: ApolloAutomation/ESPHome-Starter-Kit

Length of output: 1995


Duplicate definition letters in Section 1

These entries should be j through n, not h through l, to match the CC BY-NC-SA 4.0 legal code:

  • j. Licensor
  • k. NonCommercial
  • l. Share
  • m. Sui Generis Database Rights
  • n. You
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@LICENSE.md` around lines 37 - 45, Update the definition labels in Section 1
of LICENSE.md so the entries for Licensor, NonCommercial, Share, Sui Generis
Database Rights, and You use sequential letters j through n, respectively,
matching the CC BY-NC-SA 4.0 legal code.

…tures

- Rename README title to "ESPHome Starter Kit (ESK-1)" to match the
  official product name
- Replace bare-PCB render with the store hero photo (ESPHome-Starter-Kit.jpg)
- Add "buy" and "start here" wiki links to the README
- Remove RGB status LED battery-color logic and the Prevent Sleep Toggle
  from Key Features (neither is implemented)

Generated with Claude Code
- Rework the Links section into a bullet list (one per line) and add the
  product page, the start-here wiki page, and the community forum
- Correct the pinout: I2C is GPIO0/1 (not 20/21, which are commented out),
  and add the motion, button, LED & buzzer module, and boot-button pins per
  the device-builder manifest and ESK-1.yaml

Generated with Claude Code
Document the optional Breakout Module's connectors (I2C ports, 1-Wire,
3-pin STEMMA, and the 2x6 GPIO header) and note that GPIO6 is shared, per
the wiki. These re-expose existing board GPIOs rather than adding new ones.

Generated with Claude Code
- Add a Specifications table (MCU, flash, radios, framework, power,
  expansion) sourced from the device-builder manifest
- Note that the ESK-1 is a featured board in the ESPHome Device Builder and
  link the board definition, since there is no default YAML to flash manually

Generated with Claude Code
@bharvey88 bharvey88 changed the title Add hardware models, clean up leftover AIR-1 scaffolding Add hardware models and bring README in line with the shipping product Jul 13, 2026
@TrevorSchirmer TrevorSchirmer added the documentation Documentation label Jul 25, 2026
@TrevorSchirmer
TrevorSchirmer merged commit 7a2d985 into main Jul 25, 2026
6 checks passed
@TrevorSchirmer
TrevorSchirmer deleted the hardware-and-cleanup branch July 25, 2026 13:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants