From 58cabbc97cefb0b35818f162b056db8dd1be061a Mon Sep 17 00:00:00 2001 From: Hannes Date: Mon, 19 Oct 2026 22:49:43 +0200 Subject: [PATCH] Make repo release-ready: add sym-lib-table, CHANGELOG, expand .gitignore - Add project-local sym-lib-table so the custom esp_sensair_stuff symbols resolve on a fresh clone (fp-lib-table already covered footprints) - Add CHANGELOG.md documenting the v1.0.0 release - Expand .gitignore: KiCad lock files, ESPHome build artifacts, Python cache, editor/OS noise, logs, merge artifacts - README: list sym-lib-table and CHANGELOG.md in the repository layout --- .gitignore | 48 ++++++++++++++++++++++++++++++++++++++++++++++-- CHANGELOG.md | 36 ++++++++++++++++++++++++++++++++++++ README.md | 2 ++ sym-lib-table | 4 ++++ 4 files changed, 88 insertions(+), 2 deletions(-) create mode 100644 CHANGELOG.md create mode 100644 sym-lib-table diff --git a/.gitignore b/.gitignore index 48e92f3..e26a999 100644 --- a/.gitignore +++ b/.gitignore @@ -1,20 +1,64 @@ -# KiCad local history and backups (local only, not part of the design) +# --------------------------------------------------------------------------- +# KiCad local history, backups and per-user state (local only, not the design) +# --------------------------------------------------------------------------- .history/ _restore_backup_*/ -backups/ *.bak *.kicad_prl +# per-editor lock files created while a file is open +*.lck +*-lck +*.lock + +# KiCad generated netlists / reports (regenerate on demand) +netlist/ +reports/ # Generated fabrication outputs are published in gerber/ ; keep ad-hoc exports out *.gbr.bak *.drl.bak +# --------------------------------------------------------------------------- # Firmware credentials - never commit live keys +# --------------------------------------------------------------------------- firmware/esp-sensair.yaml firmware/secrets.yaml **/secrets.yaml -# OS / editor noise +# ESPHome build artifacts +.esphome/ +firmware/.esphome/ +*.bin +*.elf +*.map + +# --------------------------------------------------------------------------- +# OS / editor / language noise +# --------------------------------------------------------------------------- +# OS .DS_Store +._* +Thumbs.db +ehthumbs.db +desktop.ini + +# Editors / IDEs *~ +.\#* +\#*\# *.swp +*.swo +.idea/ +.vscode/ + +# Python +__pycache__/ +*.py[cod] + +# Merge / patch artifacts +*.orig +*.rej + +# Logs +*.log diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..6c3a825 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,36 @@ +# Changelog + +All notable changes to this project are documented here. +The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). + +## [1.0.0] - 2026-10-19 + +First public release of the ESP32-C3 CO₂ & environment sensor board (prototype v1). + +### Added + +- **Hardware design** (KiCad 10): schematic, 2-layer board layout, custom symbol + library (`esp_sensair_stuff.kicad_sym`) and footprint library + (`esp_sensair_stuff.pretty/`) for the ESP32-C3 module, Sensirion S8 and BME280. +- Project-local library tables (`fp-lib-table`, `sym-lib-table`) so the design + opens with all custom parts resolved on a fresh clone. +- **Fabrication data** in `gerber/`: Gerber X2 plot, Excellon PTH/NPTH drills, + Gerber job/stackup file, and a ready-to-upload `esp-sensair.zip`. +- **Bill of materials** (`bom/esp-sensair-bom.csv`) plus the human-readable BOM + in the README. +- **Documentation** in `docs/`: schematic PDF, top/bottom layer plots, 3D render. +- **Firmware** (`firmware/`): ESPHome configuration and secrets templates + (`*.example`) for the ESP32-C3 (esp-idf), BME280 over I²C and Sensirion S8 + over UART, with Home Assistant API (noise encryption) and OTA. +- **Licensing**: CERN-OHL-S-2.0 for hardware (`LICENSE`), MIT for firmware, BOM + and docs (`LICENSE.MIT`). +- `.gitignore` covering KiCad local history/backups/lock files, ESPHome build + artifacts, live firmware credentials, and OS/editor noise. + +### Known issues + +See the "Known issues and lessons learned (v1 → v2)" section of the +[README](README.md). Highlights: power delivered through the module's USB-C 5 V +path, single decoupling capacitor, no mounting holes, no populated I²C pull-ups, +unannotated schematic, leaded HASL, and a `+` in the project name that leaks +into Gerber file names. diff --git a/README.md b/README.md index d1b5208..ea5dc55 100644 --- a/README.md +++ b/README.md @@ -168,11 +168,13 @@ ESPHome on `esp32-c3-devkitm-1`, framework **esp-idf**. Config template: ├── esp_sensair_stuff.kicad_sym custom symbols (ESP32-C3, Sensirion S8, BME280) ├── esp_sensair_stuff.pretty/ custom footprints, drawn from component datasheets ├── fp-lib-table project-local footprint library table (${KIPRJMOD}) +├── sym-lib-table project-local symbol library table (${KIPRJMOD}) ├── gerber/ Gerber X2, Excellon drills, job file, ready-to-upload zip ├── bom/ bill of materials (CSV) ├── docs/ schematic PDF, layer plots, 3D render ├── firmware/ ESPHome config templates, secrets templates, notes ├── photos/ photographs of the assembled board +├── CHANGELOG.md release history ├── LICENSE CERN-OHL-S-2.0 (hardware) └── LICENSE.MIT MIT (firmware config, BOM, docs) ``` diff --git a/sym-lib-table b/sym-lib-table new file mode 100644 index 0000000..c72f662 --- /dev/null +++ b/sym-lib-table @@ -0,0 +1,4 @@ +(sym_lib_table + (version 7) + (lib (name "esp_sensair_stuff") (type "KiCad") (uri "${KIPRJMOD}/esp_sensair_stuff.kicad_sym") (options "") (descr "")) +)