Rename project esp+sensair -> esp-sensair; publish fabrication files as release assets

- Rename KiCad project/schematic/board (and local .prl) to drop the '+',
  updating all internal cross-references (project name, sheetfile, title blocks)
- Remove the '+' from Gerber/drill/job filenames and the job file's internal
  Name/Path references; rebuild the upload zip with clean names
- Stop tracking gerber/ (derived artifacts): untrack, gitignore, and publish
  the fabrication zip as a GitHub Release asset instead
- README/CHANGELOG: point fabrication data at the release, mark the '+' naming
  issue as fixed, refresh the repository layout
This commit is contained in:
Hannes committed 2026-10-19 23:01:37 +02:00
1 parent 58cabbc97c
commit 504e4e1454
17 files changed
+54 -11163

No files matched your search

+21 -14
View File
@@ -14,7 +14,7 @@ running.
| Assembly | through-hole / pin-header plug-in modules |
| Firmware | ESPHome (see [`firmware/`](firmware/)) |
| Schematic | [`docs/esp-sensair-schematic.pdf`](docs/esp-sensair-schematic.pdf) |
| Fabrication data | [`gerber/`](gerber/) (Gerber X2 + Excellon + ODB job) |
| Fabrication data | Gerber X2 + Excellon + job file — attached to the [latest release](../../releases/latest) (`esp-sensair.zip`) |
![3D render](docs/esp-sensair-3d-top.png)
@@ -93,13 +93,17 @@ Order data used for the v1 prototype:
| Stencil | not ordered (THT assembly) |
| Qty / lead time / cost | _fill in from your order confirmation_ |
Fabrication files:
Fabrication files are **derived artifacts** and are not committed to the tree. They are
published as assets on the matching GitHub release:
- `gerber/esp-sensair.zip` — Gerber X2 plot + drill files, ready to upload
- `gerber/esp+sensair-job.gbrjob` — Gerber job / stackup description
- `esp-sensair.zip` — Gerber X2 plot + Excellon drill files + job file, ready to upload
(attached to the [latest release](../../releases/latest))
To regenerate them from the design: open `esp-sensair.kicad_pro` in KiCad, plot Gerber X2 +
drills with the project's stored export settings, and zip the result.
> **Note on the job file:** the v1 project was started from a 4-layer KiCad stackup, so
> `esp+sensair-job.gbrjob` declares `LayerNumber: 4` and labels the copper layers `L1`/`L4` even
> `esp-sensair-job.gbrjob` declares `LayerNumber: 4` and labels the copper layers `L1`/`L4` even
> though only the outer layers are used. The board was fabricated correctly as a 2-layer board.
> For the next revision: set the stackup to 2 layers in *Board Setup → Stackup* before exporting,
> so the job file is self-consistent for anyone re-ordering the board.
@@ -152,8 +156,9 @@ ESPHome on `esp32-c3-devkitm-1`, framework **esp-idf**. Config template:
v2: annotate, set MPNs, and export the BOM from the schematic.
6. **Leaded HASL** is not RoHS-compliant. v2: HASL lead-free, and ENIG for any impedance-controlled
design.
7. **Project name contains `+`.** It propagates into the Gerber file names (`esp+sensair-Front.gbr`),
which some fabricator upload portals and drill parsers reject. v2: `esp-sensair`.
7. **Project name contained `+`.** It propagated into the Gerber file names
(`esp+sensair-Front.gbr`), which some fabricator upload portals and drill parsers reject.
Fixed: the project and all fabrication files are now named `esp-sensair`.
8. **Antenna keep-out** for the ESP32-C3 module is defined as a rule area (pads and footprints
excluded, copper pour allowed). v2: verify it against the module datasheet's antenna keep-out
figure, and check the pour's clearance to the antenna region specifically.
@@ -162,14 +167,13 @@ ESPHome on `esp32-c3-devkitm-1`, framework **esp-idf**. Config template:
```
.
├── esp+sensair.kicad_pro KiCad project
├── esp+sensair.kicad_sch schematic
├── esp+sensair.kicad_pcb board layout
├── esp-sensair.kicad_pro KiCad project
├── esp-sensair.kicad_sch schematic
├── esp-sensair.kicad_pcb board layout
├── 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
@@ -177,14 +181,17 @@ ESPHome on `esp32-c3-devkitm-1`, framework **esp-idf**. Config template:
├── CHANGELOG.md release history
├── LICENSE CERN-OHL-S-2.0 (hardware)
└── LICENSE.MIT MIT (firmware config, BOM, docs)
(Fabrication outputs — Gerber X2, Excellon drills, job file, upload zip — are generated
from the design and published as GitHub Release assets, not committed to the tree.)
```
## Rebuilding the board
1. Open `esp+sensair.kicad_pro` in KiCad 10.
1. Open `esp-sensair.kicad_pro` in KiCad 10.
2. Run DRC; fix anything you change.
3. Export Gerbers/drill (the settings are stored in the project) and upload `gerber/*.zip` to your
fabricator with the parameters from the fabrication table.
3. Export Gerbers/drill (the settings are stored in the project) and upload the resulting zip to
your fabricator with the parameters from the fabrication table.
4. Order parts per BOM, solder through-hole parts and pin headers.
5. Flash the ESPHome configuration and add the device to Home Assistant.