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

+4 -1
View File
@@ -15,7 +15,10 @@ _restore_backup_*/
netlist/ netlist/
reports/ reports/
# Generated fabrication outputs are published in gerber/ ; keep ad-hoc exports out # Fabrication outputs (Gerbers, drills, job file, upload zip) are derived
# artifacts published as GitHub Release assets, not committed to the tree.
# Regenerate from KiCad and attach the zip to the matching release tag.
gerber/
*.gbr.bak *.gbr.bak
*.drl.bak *.drl.bak
+5 -4
View File
@@ -14,8 +14,9 @@ First public release of the ESP32-C3 CO₂ & environment sensor board (prototype
(`esp_sensair_stuff.pretty/`) for the ESP32-C3 module, Sensirion S8 and BME280. (`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 - Project-local library tables (`fp-lib-table`, `sym-lib-table`) so the design
opens with all custom parts resolved on a fresh clone. opens with all custom parts resolved on a fresh clone.
- **Fabrication data** in `gerber/`: Gerber X2 plot, Excellon PTH/NPTH drills, - **Fabrication data**: Gerber X2 plot, Excellon PTH/NPTH drills, Gerber
Gerber job/stackup file, and a ready-to-upload `esp-sensair.zip`. job/stackup file, packaged as a ready-to-upload `esp-sensair.zip`. These are
derived artifacts published as GitHub Release assets (not committed to the tree).
- **Bill of materials** (`bom/esp-sensair-bom.csv`) plus the human-readable BOM - **Bill of materials** (`bom/esp-sensair-bom.csv`) plus the human-readable BOM
in the README. in the README.
- **Documentation** in `docs/`: schematic PDF, top/bottom layer plots, 3D render. - **Documentation** in `docs/`: schematic PDF, top/bottom layer plots, 3D render.
@@ -32,5 +33,5 @@ First public release of the ESP32-C3 CO₂ & environment sensor board (prototype
See the "Known issues and lessons learned (v1 → v2)" section of the 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 [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, 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 unannotated schematic, and leaded HASL. (The `+` that was in the project name has
into Gerber file names. been removed; the project and fabrication files are now `esp-sensair`.)
+21 -14
View File
@@ -14,7 +14,7 @@ running.
| Assembly | through-hole / pin-header plug-in modules | | Assembly | through-hole / pin-header plug-in modules |
| Firmware | ESPHome (see [`firmware/`](firmware/)) | | Firmware | ESPHome (see [`firmware/`](firmware/)) |
| Schematic | [`docs/esp-sensair-schematic.pdf`](docs/esp-sensair-schematic.pdf) | | 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) ![3D render](docs/esp-sensair-3d-top.png)
@@ -93,13 +93,17 @@ Order data used for the v1 prototype:
| Stencil | not ordered (THT assembly) | | Stencil | not ordered (THT assembly) |
| Qty / lead time / cost | _fill in from your order confirmation_ | | 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 - `esp-sensair.zip` — Gerber X2 plot + Excellon drill files + job file, ready to upload
- `gerber/esp+sensair-job.gbrjob` — Gerber job / stackup description (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 > **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. > 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, > 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. > 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. 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 6. **Leaded HASL** is not RoHS-compliant. v2: HASL lead-free, and ENIG for any impedance-controlled
design. design.
7. **Project name contains `+`.** It propagates into the Gerber file names (`esp+sensair-Front.gbr`), 7. **Project name contained `+`.** It propagated into the Gerber file names
which some fabricator upload portals and drill parsers reject. v2: `esp-sensair`. (`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 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 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. 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_pro KiCad project
├── esp+sensair.kicad_sch schematic ├── esp-sensair.kicad_sch schematic
├── esp+sensair.kicad_pcb board layout ├── esp-sensair.kicad_pcb board layout
├── esp_sensair_stuff.kicad_sym custom symbols (ESP32-C3, Sensirion S8, BME280) ├── esp_sensair_stuff.kicad_sym custom symbols (ESP32-C3, Sensirion S8, BME280)
├── esp_sensair_stuff.pretty/ custom footprints, drawn from component datasheets ├── esp_sensair_stuff.pretty/ custom footprints, drawn from component datasheets
├── fp-lib-table project-local footprint library table (${KIPRJMOD}) ├── fp-lib-table project-local footprint library table (${KIPRJMOD})
├── sym-lib-table project-local symbol 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) ├── bom/ bill of materials (CSV)
├── docs/ schematic PDF, layer plots, 3D render ├── docs/ schematic PDF, layer plots, 3D render
├── firmware/ ESPHome config templates, secrets templates, notes ├── 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 ├── CHANGELOG.md release history
├── LICENSE CERN-OHL-S-2.0 (hardware) ├── LICENSE CERN-OHL-S-2.0 (hardware)
└── LICENSE.MIT MIT (firmware config, BOM, docs) └── 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 ## 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. 2. Run DRC; fix anything you change.
3. Export Gerbers/drill (the settings are stored in the project) and upload `gerber/*.zip` to your 3. Export Gerbers/drill (the settings are stored in the project) and upload the resulting zip to
fabricator with the parameters from the fabrication table. your fabricator with the parameters from the fabrication table.
4. Order parts per BOM, solder through-hole parts and pin headers. 4. Order parts per BOM, solder through-hole parts and pin headers.
5. Flash the ESPHome configuration and add the device to Home Assistant. 5. Flash the ESPHome configuration and add the device to Home Assistant.
@@ -197,7 +197,7 @@
) )
(path "/28d3bedc-b718-42e9-a807-433ec5be91c1") (path "/28d3bedc-b718-42e9-a807-433ec5be91c1")
(sheetname "/") (sheetname "/")
(sheetfile "esp+sensair.kicad_sch") (sheetfile "esp-sensair.kicad_sch")
(units (units
(unit (unit
(name "A") (name "A")
@@ -707,7 +707,7 @@
) )
(path "/f8ce7ede-a8d1-4384-9bf4-f3d2a1fc666d") (path "/f8ce7ede-a8d1-4384-9bf4-f3d2a1fc666d")
(sheetname "/") (sheetname "/")
(sheetfile "esp+sensair.kicad_sch") (sheetfile "esp-sensair.kicad_sch")
(units (units
(unit (unit
(name "A") (name "A")
@@ -1151,7 +1151,7 @@
) )
(path "/4a778978-25b1-454b-a42c-4810845485d3") (path "/4a778978-25b1-454b-a42c-4810845485d3")
(sheetname "/") (sheetname "/")
(sheetfile "esp+sensair.kicad_sch") (sheetfile "esp-sensair.kicad_sch")
(units (units
(unit (unit
(name "A") (name "A")
@@ -1515,7 +1515,7 @@
(property ki_fp_filters "C_*") (property ki_fp_filters "C_*")
(path "/6a596542-3929-4c58-9dee-69c62daa1a6d") (path "/6a596542-3929-4c58-9dee-69c62daa1a6d")
(sheetname "/") (sheetname "/")
(sheetfile "esp+sensair.kicad_sch") (sheetfile "esp-sensair.kicad_sch")
(units (units
(unit (unit
(name "A") (name "A")
@@ -1687,7 +1687,7 @@
) )
(path "/4f5fe11c-9a41-4a9b-9222-ab45477e272d") (path "/4f5fe11c-9a41-4a9b-9222-ab45477e272d")
(sheetname "/") (sheetname "/")
(sheetfile "esp+sensair.kicad_sch") (sheetfile "esp-sensair.kicad_sch")
(units (units
(unit (unit
(name "A") (name "A")
@@ -1954,7 +1954,7 @@
(property ki_fp_filters "R_*") (property ki_fp_filters "R_*")
(path "/864c5d02-fcf9-4f36-9cf1-ef22f661070e") (path "/864c5d02-fcf9-4f36-9cf1-ef22f661070e")
(sheetname "/") (sheetname "/")
(sheetfile "esp+sensair.kicad_sch") (sheetfile "esp-sensair.kicad_sch")
(units (units
(unit (unit
(name "A") (name "A")
@@ -517,7 +517,7 @@
] ]
}, },
"meta": { "meta": {
"filename": "esp+sensair.kicad_pro", "filename": "esp-sensair.kicad_pro",
"version": 3 "version": 3
}, },
"net_settings": { "net_settings": {
@@ -693,7 +693,7 @@
"subpart_id_separator": 0, "subpart_id_separator": 0,
"top_level_sheets": [ "top_level_sheets": [
{ {
"filename": "esp+sensair.kicad_sch", "filename": "esp-sensair.kicad_sch",
"name": "Root", "name": "Root",
"uuid": "d19c68d2-fb5a-4249-a650-17ae87065123" "uuid": "d19c68d2-fb5a-4249-a650-17ae87065123"
} }
+16 -16
View File
@@ -1953,7 +1953,7 @@
(uuid "1f023e11-d5bb-4435-86a9-68cd9353f80f") (uuid "1f023e11-d5bb-4435-86a9-68cd9353f80f")
) )
(instances (instances
(project "esp+sensair" (project "esp-sensair"
(path "/d19c68d2-fb5a-4249-a650-17ae87065123" (path "/d19c68d2-fb5a-4249-a650-17ae87065123"
(reference "#PWR06") (reference "#PWR06")
(unit 1) (unit 1)
@@ -2075,7 +2075,7 @@
(uuid "0604badf-b8c6-44c9-aa14-d10e5c7972fc") (uuid "0604badf-b8c6-44c9-aa14-d10e5c7972fc")
) )
(instances (instances
(project "esp+sensair" (project "esp-sensair"
(path "/d19c68d2-fb5a-4249-a650-17ae87065123" (path "/d19c68d2-fb5a-4249-a650-17ae87065123"
(reference "U1") (reference "U1")
(unit 1) (unit 1)
@@ -2154,7 +2154,7 @@
(uuid "80abebea-700a-460e-8d26-ba412c31482c") (uuid "80abebea-700a-460e-8d26-ba412c31482c")
) )
(instances (instances
(project "esp+sensair" (project "esp-sensair"
(path "/d19c68d2-fb5a-4249-a650-17ae87065123" (path "/d19c68d2-fb5a-4249-a650-17ae87065123"
(reference "#PWR09") (reference "#PWR09")
(unit 1) (unit 1)
@@ -2234,7 +2234,7 @@
(uuid "4cb491b8-abf1-4d47-af13-57822ce13f40") (uuid "4cb491b8-abf1-4d47-af13-57822ce13f40")
) )
(instances (instances
(project "esp+sensair" (project "esp-sensair"
(path "/d19c68d2-fb5a-4249-a650-17ae87065123" (path "/d19c68d2-fb5a-4249-a650-17ae87065123"
(reference "SW1") (reference "SW1")
(unit 1) (unit 1)
@@ -2326,7 +2326,7 @@
(uuid "8adc1395-9637-44f4-b2a4-0c1c8e84cb89") (uuid "8adc1395-9637-44f4-b2a4-0c1c8e84cb89")
) )
(instances (instances
(project "esp+sensair" (project "esp-sensair"
(path "/d19c68d2-fb5a-4249-a650-17ae87065123" (path "/d19c68d2-fb5a-4249-a650-17ae87065123"
(reference "U3") (reference "U3")
(unit 1) (unit 1)
@@ -2405,7 +2405,7 @@
(uuid "7ae7c3c0-a3ee-458b-aefa-2cb48c888dd3") (uuid "7ae7c3c0-a3ee-458b-aefa-2cb48c888dd3")
) )
(instances (instances
(project "esp+sensair" (project "esp-sensair"
(path "/d19c68d2-fb5a-4249-a650-17ae87065123" (path "/d19c68d2-fb5a-4249-a650-17ae87065123"
(reference "#PWR05") (reference "#PWR05")
(unit 1) (unit 1)
@@ -2484,7 +2484,7 @@
(uuid "d0fc399a-5caf-44cd-b698-2c6a29f27638") (uuid "d0fc399a-5caf-44cd-b698-2c6a29f27638")
) )
(instances (instances
(project "esp+sensair" (project "esp-sensair"
(path "/d19c68d2-fb5a-4249-a650-17ae87065123" (path "/d19c68d2-fb5a-4249-a650-17ae87065123"
(reference "#PWR02") (reference "#PWR02")
(unit 1) (unit 1)
@@ -2563,7 +2563,7 @@
(uuid "c1994da0-6b29-49fd-b20a-f23989474bc4") (uuid "c1994da0-6b29-49fd-b20a-f23989474bc4")
) )
(instances (instances
(project "esp+sensair" (project "esp-sensair"
(path "/d19c68d2-fb5a-4249-a650-17ae87065123" (path "/d19c68d2-fb5a-4249-a650-17ae87065123"
(reference "C1") (reference "C1")
(unit 1) (unit 1)
@@ -2642,7 +2642,7 @@
(uuid "eb81d86e-c2ae-4a24-820c-4e43e813d264") (uuid "eb81d86e-c2ae-4a24-820c-4e43e813d264")
) )
(instances (instances
(project "esp+sensair" (project "esp-sensair"
(path "/d19c68d2-fb5a-4249-a650-17ae87065123" (path "/d19c68d2-fb5a-4249-a650-17ae87065123"
(reference "#PWR01") (reference "#PWR01")
(unit 1) (unit 1)
@@ -2721,7 +2721,7 @@
(uuid "4cb673ee-18d1-47f0-8020-c62ed7284ea2") (uuid "4cb673ee-18d1-47f0-8020-c62ed7284ea2")
) )
(instances (instances
(project "esp+sensair" (project "esp-sensair"
(path "/d19c68d2-fb5a-4249-a650-17ae87065123" (path "/d19c68d2-fb5a-4249-a650-17ae87065123"
(reference "#PWR03") (reference "#PWR03")
(unit 1) (unit 1)
@@ -2801,7 +2801,7 @@
(uuid "b06b746e-cccc-4a38-9346-00dc77a0807b") (uuid "b06b746e-cccc-4a38-9346-00dc77a0807b")
) )
(instances (instances
(project "esp+sensair" (project "esp-sensair"
(path "/d19c68d2-fb5a-4249-a650-17ae87065123" (path "/d19c68d2-fb5a-4249-a650-17ae87065123"
(reference "R1") (reference "R1")
(unit 1) (unit 1)
@@ -2880,7 +2880,7 @@
(uuid "ee269251-6f77-4b1b-801c-a4ad6474269a") (uuid "ee269251-6f77-4b1b-801c-a4ad6474269a")
) )
(instances (instances
(project "esp+sensair" (project "esp-sensair"
(path "/d19c68d2-fb5a-4249-a650-17ae87065123" (path "/d19c68d2-fb5a-4249-a650-17ae87065123"
(reference "#PWR04") (reference "#PWR04")
(unit 1) (unit 1)
@@ -2959,7 +2959,7 @@
(uuid "147f26b9-66d8-4cf8-9806-c5be6a827591") (uuid "147f26b9-66d8-4cf8-9806-c5be6a827591")
) )
(instances (instances
(project "esp+sensair" (project "esp-sensair"
(path "/d19c68d2-fb5a-4249-a650-17ae87065123" (path "/d19c68d2-fb5a-4249-a650-17ae87065123"
(reference "#PWR08") (reference "#PWR08")
(unit 1) (unit 1)
@@ -3038,7 +3038,7 @@
(uuid "f7b9e5ef-1f7e-47d6-ab4e-ea2e18ddc22b") (uuid "f7b9e5ef-1f7e-47d6-ab4e-ea2e18ddc22b")
) )
(instances (instances
(project "esp+sensair" (project "esp-sensair"
(path "/d19c68d2-fb5a-4249-a650-17ae87065123" (path "/d19c68d2-fb5a-4249-a650-17ae87065123"
(reference "#PWR010") (reference "#PWR010")
(unit 1) (unit 1)
@@ -3117,7 +3117,7 @@
(uuid "83e5a1fd-cc70-403a-8112-0a74cbb3e7e9") (uuid "83e5a1fd-cc70-403a-8112-0a74cbb3e7e9")
) )
(instances (instances
(project "esp+sensair" (project "esp-sensair"
(path "/d19c68d2-fb5a-4249-a650-17ae87065123" (path "/d19c68d2-fb5a-4249-a650-17ae87065123"
(reference "#PWR07") (reference "#PWR07")
(unit 1) (unit 1)
@@ -3218,7 +3218,7 @@
(uuid "c60ab5fb-2a8f-4f6a-828a-d1a01feb0768") (uuid "c60ab5fb-2a8f-4f6a-828a-d1a01feb0768")
) )
(instances (instances
(project "esp+sensair" (project "esp-sensair"
(path "/d19c68d2-fb5a-4249-a650-17ae87065123" (path "/d19c68d2-fb5a-4249-a650-17ae87065123"
(reference "U2") (reference "U2")
(unit 1) (unit 1)
File diff suppressed because it is too large. Load diff
-15
View File
@@ -1,15 +0,0 @@
G04 #@! TF.GenerationSoftware,KiCad,Pcbnew,10.0.6*
G04 #@! TF.CreationDate,2026-09-08T00:42:25+02:00*
G04 #@! TF.ProjectId,esp+sensair,6573702b-7365-46e7-9361-69722e6b6963,rev?*
G04 #@! TF.SameCoordinates,Original*
G04 #@! TF.FileFunction,Legend,Bot*
G04 #@! TF.FilePolarity,Positive*
%FSLAX46Y46*%
G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
G04 Created by KiCad (PCBNEW 10.0.6) date 2026-09-08 00:42:25*
%MOMM*%
%LPD*%
G01*
G04 APERTURE LIST*
G04 APERTURE END LIST*
M02*
File diff suppressed because it is too large. Load diff
-34
View File
@@ -1,34 +0,0 @@
G04 #@! TF.GenerationSoftware,KiCad,Pcbnew,10.0.6*
G04 #@! TF.CreationDate,2026-09-08T00:42:25+02:00*
G04 #@! TF.ProjectId,esp+sensair,6573702b-7365-46e7-9361-69722e6b6963,rev?*
G04 #@! TF.SameCoordinates,Original*
G04 #@! TF.FileFunction,Profile,NP*
%FSLAX46Y46*%
G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
G04 Created by KiCad (PCBNEW 10.0.6) date 2026-09-08 00:42:25*
%MOMM*%
%LPD*%
G01*
G04 APERTURE LIST*
G04 #@! TA.AperFunction,Profile*
%ADD10C,0.050000*%
G04 #@! TD*
G04 APERTURE END LIST*
D10*
X126300000Y-67000000D02*
X99500000Y-67000000D01*
X126300000Y-50500000D02*
X126300000Y-67000000D01*
X126300000Y-50500000D02*
X138500000Y-50500000D01*
X99500000Y-50500000D02*
X99500000Y-67000000D01*
X88500000Y-50500000D02*
X99500000Y-50500000D01*
X88500000Y-90500000D02*
X88500000Y-50500000D01*
X138500000Y-90500000D02*
X88500000Y-90500000D01*
X138500000Y-50500000D02*
X138500000Y-90500000D01*
M02*
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
-6
View File
@@ -1,6 +0,0 @@
M48
INCH,TZ
%
G90
G05
M30
-51
View File
@@ -1,51 +0,0 @@
M48
INCH,TZ
T1C0.0315
T2C0.0394
T3C0.0433
%
G90
G05
T1
X35558Y-28343
X35558Y-34343
X36558Y-28343
X36558Y-34343
X37558Y-28343
X37558Y-34343
X38504Y-20520
X38504Y-21520
X38504Y-22520
X38504Y-23520
X38558Y-28343
X38558Y-34343
X39558Y-28343
X39558Y-34343
X40558Y-28343
X40558Y-34343
X41558Y-28343
X41558Y-34343
X42558Y-28343
X42558Y-34343
X44610Y-31563
X44610Y-34563
X50197Y-20520
X50197Y-21520
X50197Y-22520
X50197Y-23520
X50197Y-24520
X50417Y-29587
X50417Y-30587
X50417Y-31587
X50417Y-32587
X50417Y-33587
X50417Y-34587
T2
X45146Y-27953
X45146Y-29921
T3
X50984Y-26280
X50984Y-28051
X53543Y-26280
X53543Y-28051
M30
-147
View File
@@ -1,147 +0,0 @@
{
"Header": {
"GenerationSoftware": {
"Vendor": "KiCad",
"Application": "Pcbnew",
"Version": "10.0.6"
},
"CreationDate": "2026-09-08T00:42:25+02:00"
},
"GeneralSpecs": {
"ProjectId": {
"Name": "esp+sensair",
"GUID": "6573702b-7365-46e7-9361-69722e6b6963",
"Revision": "rev?"
},
"Size": {
"X": 50.05,
"Y": 40.05
},
"LayerNumber": 4,
"BoardThickness": 1.6002,
"Finish": "None"
},
"DesignRules": [
{
"Layers": "Outer",
"PadToPad": 0.15,
"PadToTrack": 0.15,
"TrackToTrack": 0.15,
"MinLineWidth": 0.4,
"TrackToRegion": 0.5,
"RegionToRegion": 0.5
},
{
"Layers": "Inner",
"PadToPad": 0.15,
"PadToTrack": 0.15,
"TrackToTrack": 0.15
}
],
"FilesAttributes": [
{
"Path": "esp+sensair-Front.gbr",
"FileFunction": "Copper,L1,Top",
"FilePolarity": "Positive"
},
{
"Path": "esp+sensair-Back.gbr",
"FileFunction": "Copper,L4,Bot",
"FilePolarity": "Positive"
},
{
"Path": "esp+sensair-F_Silkscreen.gbr",
"FileFunction": "Legend,Top",
"FilePolarity": "Positive"
},
{
"Path": "esp+sensair-B_Silkscreen.gbr",
"FileFunction": "Legend,Bot",
"FilePolarity": "Positive"
},
{
"Path": "esp+sensair-F_Mask.gbr",
"FileFunction": "SolderMask,Top",
"FilePolarity": "Negative"
},
{
"Path": "esp+sensair-B_Mask.gbr",
"FileFunction": "SolderMask,Bot",
"FilePolarity": "Negative"
},
{
"Path": "esp+sensair-Edge_Cuts.gbr",
"FileFunction": "Profile",
"FilePolarity": "Positive"
}
],
"MaterialStackup": [
{
"Type": "Legend",
"Name": "Top Silk Screen"
},
{
"Type": "SolderPaste",
"Name": "Top Solder Paste"
},
{
"Type": "SolderMask",
"Thickness": 0.01,
"Name": "Top Solder Mask"
},
{
"Type": "Copper",
"Thickness": 0.035,
"Name": "Front"
},
{
"Type": "Dielectric",
"Thickness": 0.4801,
"Material": "FR4",
"Name": "Front/In1.Cu",
"Notes": "Type: dielectric layer 1 (from Front to In1.Cu)"
},
{
"Type": "Copper",
"Thickness": 0.035,
"Name": "In1.Cu"
},
{
"Type": "Dielectric",
"Thickness": 0.4801,
"Material": "FR4",
"Name": "In1.Cu/In2.Cu",
"Notes": "Type: dielectric layer 2 (from In1.Cu to In2.Cu)"
},
{
"Type": "Copper",
"Thickness": 0.035,
"Name": "In2.Cu"
},
{
"Type": "Dielectric",
"Thickness": 0.4801,
"Material": "FR4",
"Name": "In2.Cu/Back",
"Notes": "Type: dielectric layer 3 (from In2.Cu to Back)"
},
{
"Type": "Copper",
"Thickness": 0.035,
"Name": "Back"
},
{
"Type": "SolderMask",
"Thickness": 0.01,
"Name": "Bottom Solder Mask"
},
{
"Type": "SolderPaste",
"Name": "Bottom Solder Paste"
},
{
"Type": "Legend",
"Name": "Bottom Silk Screen"
}
]
}
Binary file not shown.