Initial release: ESP32-C3 CO2 & environment sensor board
KiCad 10 design (schematic, 2-layer layout, custom symbols and footprints), fabrication data for PCBWay (Gerber X2, Excellon, job file), BOM, generated documentation (schematic PDF, layer plots, 3D render) and firmware notes.
This commit is contained in:
commit
cf3bd0060d
28 files changed
+21190
No files matched your search
+15
@@ -0,0 +1,15 @@
|
||||
# KiCad local history and backups (local only, not part of the design)
|
||||
.history/
|
||||
_restore_backup_*/
|
||||
-backups/
|
||||
*.bak
|
||||
*.kicad_prl
|
||||
|
||||
# Generated fabrication outputs are published in gerber/ ; keep ad-hoc exports out
|
||||
*.gbr.bak
|
||||
*.drl.bak
|
||||
|
||||
# OS / editor noise
|
||||
.DS_Store
|
||||
*~
|
||||
*.swp
|
||||
@@ -0,0 +1,161 @@
|
||||
# ESP32-C3 CO₂ & Environment Sensor Board
|
||||
|
||||
A small environmental monitoring board: **ESP32-C3** module with a **Sensirion S8** NDIR CO₂ sensor
|
||||
(UART) and a **BME280** temperature / humidity / pressure sensor (I²C). Flashed with ESPHome and
|
||||
integrated into Home Assistant.
|
||||
|
||||
**Status:** prototype v1 — designed in KiCad, fabricated at PCBWay, hand assembled, powered up and
|
||||
running.
|
||||
|
||||
| | |
|
||||
|---|---|
|
||||
| Board size | 50.05 × 40.05 mm |
|
||||
| Layers | 2 |
|
||||
| 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) |
|
||||
|
||||

|
||||
|
||||
## Block diagram
|
||||
|
||||
```
|
||||
+5 V
|
||||
|
|
||||
+-------------------------+---------------------------+
|
||||
| | |
|
||||
| +----------v----------+ |
|
||||
| | ESP32-C3 module |--- 3.3 V out --+|
|
||||
| | (onboard 3V3 LDO) | ||
|
||||
+--------------+ | ||
|
||||
| UART 9600 +----------+----------+ ||
|
||||
| | ||
|
||||
+-----v-------+ +------v-------+ v
|
||||
| Sensirion S8| | BME280 |<--- I2C (SDA/SCL) --+
|
||||
| NDIR CO2 | | T / RH / P |
|
||||
+-------------+ +--------------+
|
||||
|
||||
SW1 (calibration button) -- RC debounce (1 k / 100 n) -- ESP32-C3 GPIO
|
||||
```
|
||||
|
||||
## Connections
|
||||
|
||||
| Signal | ESP32-C3 module | Sensirion S8 | BME280 |
|
||||
|---|---|---|---|
|
||||
| `+5V` | pad 11 | pad 0 (heater supply) | — |
|
||||
| `GND` | pad 12 | pad 1 | pads 0, 4 |
|
||||
| `+3V3` | pad 13 (module output) | — | pads 1, 5 |
|
||||
| `/TX` | pad 21 | pad 6 (`UART_RxD`) | — |
|
||||
| `/RX` | pad 20 | pad 5 (`UART_TxD`) | — |
|
||||
| `/SDA` | pad 7 | — | pad 2 |
|
||||
| `/SCL` | pad 8 | — | pad 3 |
|
||||
| `bCal_in` | — | pad 8 (`bCal_in`) | — |
|
||||
|
||||
Sensirion S8 pins `Alarm_OC`, `PWM_1kHz`, `DVCC_out` and `UART_R/T` are left unconnected.
|
||||
|
||||
## Bill of materials
|
||||
|
||||
| Ref | Part | Package | Function |
|
||||
|---|---|---|---|
|
||||
| U1 | ESP32-C3 Wi-Fi/BLE module (16 pads) | custom `esp_sensair_stuff:ESP32-C3` | MCU, radio, 3.3 V regulator on module |
|
||||
| U2 | Sensirion S8 NDIR CO₂ sensor | custom `esp_sensair_stuff:Sensair S8` | CO₂ measurement, UART, 5 V heater |
|
||||
| U3 | BME280 (plug-in breakout) | custom `esp_sensair_stuff:BME280` | temperature, relative humidity, pressure, I²C |
|
||||
| SW1 | Tactile push button 6 mm | `Button_Switch_THT:SW_PUSH_6mm` | S8 manual (background) calibration trigger |
|
||||
| R1 | 1 kΩ | `Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal` | button debounce, low-pass to GND |
|
||||
| C1 | 100 nF | `Capacitor_THT:C_Disc_D10.5mm_W5.0mm_P5.00mm` | button debounce / supply decoupling |
|
||||
|
||||
Machine-readable BOM: [`bom/esp-sensair-bom.csv`](bom/esp-sensair-bom.csv)
|
||||
|
||||
## Fabrication
|
||||
|
||||
Order data used for the v1 prototype:
|
||||
|
||||
| Parameter | Value |
|
||||
|---|---|
|
||||
| Fabricator | PCBWay |
|
||||
| Layers | 2 |
|
||||
| Board size (ordered) | 40 × 50 mm |
|
||||
| Board size (design) | 40.05 × 50.05 mm |
|
||||
| Board material | FR-4 |
|
||||
| Board thickness | 1.6 mm |
|
||||
| Finished copper weight | 1 oz (35 µm) |
|
||||
| Surface finish | HASL with lead |
|
||||
| Design rules used | 0.15 mm track / 0.15 mm clearance, via 0.7 mm / 0.3 mm drill |
|
||||
| Drill sizes present | 0.8 mm, 1.0 mm, 1.1 mm (39 plated holes, 4 vias) |
|
||||
| Non-plated holes | none |
|
||||
| Solder mask / silkscreen | as ordered (see `gerber/`) |
|
||||
| Stencil | not ordered (THT assembly) |
|
||||
| Qty / lead time / cost | _fill in from your order confirmation_ |
|
||||
|
||||
Fabrication files:
|
||||
|
||||
- `gerber/esp-sensair.zip` — Gerber X2 plot + drill files, ready to upload
|
||||
- `gerber/esp+sensair-job.gbrjob` — Gerber job / stackup description
|
||||
|
||||
> **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
|
||||
> 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.
|
||||
|
||||
## Assembly
|
||||
|
||||
All parts are through-hole or plug-in modules on pin headers; hand soldered with a soldering iron.
|
||||
The Sensirion S8 requires a 5 V supply (its NDIR heater draws current pulses of up to ~150 mA) and
|
||||
about 30 s of preheat time before it reports valid CO₂ values.
|
||||
|
||||
## Firmware
|
||||
|
||||
ESPHome, see [`firmware/`](firmware/) for the config and the Home Assistant wiring.
|
||||
S8 UART: 9600 baud, 8N1. BME280 I²C: standard address `0x76` (or `0x77` depending on the breakout).
|
||||
|
||||
## Known issues and lessons learned (v1 → v2)
|
||||
|
||||
1. **No copper pours.** Neither layer has a ground plane. v2: solid GND pour on the bottom layer
|
||||
with stitching vias around the ESP32-C3 module.
|
||||
2. **No mounting holes.** The board is held by its connectors only. v2: four M2.5 holes.
|
||||
3. **No I²C pull-ups populated.** The design relies on the pull-ups of the BME280 breakout.
|
||||
v2: add 4.7 kΩ pull-up footprints on `SDA`/`SCL`.
|
||||
4. **Single 100 nF decoupling capacitor** for the whole board. v2: 100 nF per supply pin plus a
|
||||
10–100 µF bulk capacitor close to the S8 heater supply, which is the actual current-pulse source.
|
||||
5. **Schematic is not annotated** (references `U`, `U`, `U`), so KiCad BOM export is unusable.
|
||||
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`.
|
||||
8. **Antenna keep-out** for the ESP32-C3 module should be checked explicitly against the module
|
||||
datasheet (no copper, no silkscreen, no vias under the antenna area).
|
||||
|
||||
## Repository 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})
|
||||
├── 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 configuration
|
||||
└── photos/ photographs of the assembled board
|
||||
```
|
||||
|
||||
## Rebuilding the board
|
||||
|
||||
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.
|
||||
4. Order parts per BOM, solder through-hole parts and pin headers.
|
||||
5. Flash the ESPHome configuration and add the device to Home Assistant.
|
||||
|
||||
## License
|
||||
|
||||
Not chosen yet. Recommended for a published open-hardware module:
|
||||
**CERN-OHL-S-2.0** for the hardware (schematic, layout, footprints) and **MIT** for the firmware
|
||||
configuration and scripts. A `LICENSE` file must be added before publishing.
|
||||
@@ -0,0 +1,7 @@
|
||||
Reference,Qty,Part,Manufacturer,Package,Value,Function
|
||||
U1,1,ESP32-C3 Wi-Fi/BLE module,Espressif,custom ESP32-C3 (16 THT pads),,MCU with onboard 3.3 V regulator
|
||||
U2,1,S8 NDIR CO2 sensor,Sensirion,custom Sensair S8 (9 THT pads),,CO2 measurement (UART, 5 V heater)
|
||||
U3,1,BME280,TDK InvenSense,custom BME280 plug-in (6 THT pads),,Temperature / humidity / pressure (I2C)
|
||||
SW1,1,Tactile push button 6 mm,generic,Button_Switch_THT:SW_PUSH_6mm,,S8 calibration trigger
|
||||
R1,1,Resistor 1 kOhm 0.25 W,generic,Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal,1k,Button debounce
|
||||
C1,1,Ceramic capacitor 100 nF,generic,Capacitor_THT:C_Disc_D10.5mm_W5.0mm_P5.00mm,100n,Button debounce / decoupling
|
||||
|
Binary file not shown.
|
After Width: | Height: | Size: 202 KiB |
Binary file not shown.
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large.
Load diff
@@ -0,0 +1,717 @@
|
||||
{
|
||||
"board": {
|
||||
"3dviewports": [],
|
||||
"design_settings": {
|
||||
"defaults": {
|
||||
"apply_defaults_to_fp_barcodes": false,
|
||||
"apply_defaults_to_fp_dimensions": false,
|
||||
"apply_defaults_to_fp_fields": false,
|
||||
"apply_defaults_to_fp_shapes": false,
|
||||
"apply_defaults_to_fp_text": false,
|
||||
"board_outline_line_width": 0.05,
|
||||
"copper_line_width": 0.2,
|
||||
"copper_text_italic": false,
|
||||
"copper_text_size_h": 1.5,
|
||||
"copper_text_size_v": 1.5,
|
||||
"copper_text_thickness": 0.3,
|
||||
"copper_text_upright": false,
|
||||
"courtyard_line_width": 0.05,
|
||||
"dimension_precision": 4,
|
||||
"dimension_units": 3,
|
||||
"dimensions": {
|
||||
"arrow_length": 1270000,
|
||||
"extension_offset": 500000,
|
||||
"keep_text_aligned": true,
|
||||
"suppress_zeroes": true,
|
||||
"text_position": 0,
|
||||
"units_format": 0
|
||||
},
|
||||
"fab_line_width": 0.1,
|
||||
"fab_text_italic": false,
|
||||
"fab_text_size_h": 1.0,
|
||||
"fab_text_size_v": 1.0,
|
||||
"fab_text_thickness": 0.15,
|
||||
"fab_text_upright": false,
|
||||
"other_line_width": 0.1,
|
||||
"other_text_italic": false,
|
||||
"other_text_size_h": 1.0,
|
||||
"other_text_size_v": 1.0,
|
||||
"other_text_thickness": 0.15,
|
||||
"other_text_upright": false,
|
||||
"pads": {
|
||||
"drill": 1.0,
|
||||
"height": 1.7,
|
||||
"width": 1.7
|
||||
},
|
||||
"silk_line_width": 0.1,
|
||||
"silk_text_italic": false,
|
||||
"silk_text_size_h": 1.0,
|
||||
"silk_text_size_v": 1.0,
|
||||
"silk_text_thickness": 0.1,
|
||||
"silk_text_upright": false,
|
||||
"zones": {
|
||||
"border_display_style": 2,
|
||||
"border_hatch_pitch": 0.5,
|
||||
"corner_radius": 0.0,
|
||||
"corner_smoothing": 0,
|
||||
"fill_mode": 0,
|
||||
"hatch_gap": 1.5,
|
||||
"hatch_orientation": 0.0,
|
||||
"hatch_smoothing_level": 0,
|
||||
"hatch_smoothing_value": 0.1,
|
||||
"hatch_thickness": 1.0,
|
||||
"min_clearance": 0.5,
|
||||
"min_island_area": 10.0,
|
||||
"min_thickness": 0.25,
|
||||
"pad_connection": 1,
|
||||
"remove_islands": 0,
|
||||
"thermal_relief_gap": 0.5,
|
||||
"thermal_relief_spoke_width": 0.5
|
||||
}
|
||||
},
|
||||
"diff_pair_dimensions": [
|
||||
{
|
||||
"gap": 0.0,
|
||||
"via_gap": 0.0,
|
||||
"width": 0.0
|
||||
}
|
||||
],
|
||||
"drc_exclusions": [],
|
||||
"meta": {
|
||||
"version": 2
|
||||
},
|
||||
"rule_severities": {
|
||||
"annular_width": "error",
|
||||
"clearance": "error",
|
||||
"connection_width": "warning",
|
||||
"copper_edge_clearance": "error",
|
||||
"copper_sliver": "warning",
|
||||
"courtyards_overlap": "error",
|
||||
"creepage": "error",
|
||||
"diff_pair_gap_out_of_range": "error",
|
||||
"diff_pair_uncoupled_length_too_long": "error",
|
||||
"drill_out_of_range": "error",
|
||||
"duplicate_footprints": "warning",
|
||||
"extra_footprint": "warning",
|
||||
"footprint": "error",
|
||||
"footprint_filters_mismatch": "ignore",
|
||||
"footprint_symbol_field_mismatch": "warning",
|
||||
"footprint_symbol_mismatch": "warning",
|
||||
"footprint_type_mismatch": "ignore",
|
||||
"hole_clearance": "error",
|
||||
"hole_to_hole": "warning",
|
||||
"holes_co_located": "warning",
|
||||
"invalid_outline": "error",
|
||||
"isolated_copper": "warning",
|
||||
"item_on_disabled_layer": "error",
|
||||
"items_not_allowed": "error",
|
||||
"length_out_of_range": "error",
|
||||
"lib_footprint_issues": "warning",
|
||||
"lib_footprint_mismatch": "ignore",
|
||||
"malformed_courtyard": "error",
|
||||
"microvia_drill_out_of_range": "error",
|
||||
"mirrored_text_on_front_layer": "warning",
|
||||
"missing_courtyard": "ignore",
|
||||
"missing_footprint": "warning",
|
||||
"missing_tuning_profile": "warning",
|
||||
"net_conflict": "warning",
|
||||
"nonmirrored_text_on_back_layer": "warning",
|
||||
"npth_inside_courtyard": "error",
|
||||
"padstack": "warning",
|
||||
"pth_inside_courtyard": "error",
|
||||
"shorting_items": "error",
|
||||
"silk_edge_clearance": "warning",
|
||||
"silk_over_copper": "warning",
|
||||
"silk_overlap": "warning",
|
||||
"skew_out_of_range": "error",
|
||||
"solder_mask_bridge": "error",
|
||||
"starved_thermal": "error",
|
||||
"text_height": "warning",
|
||||
"text_on_edge_cuts": "error",
|
||||
"text_thickness": "warning",
|
||||
"through_hole_pad_without_hole": "error",
|
||||
"too_many_vias": "error",
|
||||
"track_angle": "error",
|
||||
"track_dangling": "warning",
|
||||
"track_not_centered_on_via": "ignore",
|
||||
"track_on_post_machined_layer": "error",
|
||||
"track_segment_length": "error",
|
||||
"track_width": "error",
|
||||
"tracks_crossing": "error",
|
||||
"tuning_profile_track_geometries": "ignore",
|
||||
"unconnected_items": "error",
|
||||
"unresolved_variable": "error",
|
||||
"via_dangling": "warning",
|
||||
"zones_intersect": "error"
|
||||
},
|
||||
"rules": {
|
||||
"max_error": 0.005,
|
||||
"min_clearance": 0.0,
|
||||
"min_connection": 0.0,
|
||||
"min_copper_edge_clearance": 0.5,
|
||||
"min_groove_width": 0.0,
|
||||
"min_hole_clearance": 0.25,
|
||||
"min_hole_to_hole": 0.25,
|
||||
"min_microvia_diameter": 0.0,
|
||||
"min_microvia_drill": 0.0,
|
||||
"min_resolved_spokes": 2,
|
||||
"min_silk_clearance": 0.0,
|
||||
"min_text_height": 0.8,
|
||||
"min_text_thickness": 0.08,
|
||||
"min_through_hole_diameter": 0.2,
|
||||
"min_track_width": 0.1,
|
||||
"min_via_annular_width": 0.1,
|
||||
"min_via_diameter": 0.5,
|
||||
"solder_mask_to_copper_clearance": 0.0,
|
||||
"use_height_for_length_calcs": true
|
||||
},
|
||||
"teardrop_options": [
|
||||
{
|
||||
"td_onpthpad": true,
|
||||
"td_onroundshapesonly": false,
|
||||
"td_onsmdpad": true,
|
||||
"td_ontrackend": false,
|
||||
"td_onvia": true
|
||||
}
|
||||
],
|
||||
"teardrop_parameters": [
|
||||
{
|
||||
"td_allow_use_two_tracks": true,
|
||||
"td_curve_segcount": 0,
|
||||
"td_height_ratio": 1.0,
|
||||
"td_length_ratio": 0.5,
|
||||
"td_maxheight": 2.0,
|
||||
"td_maxlen": 1.0,
|
||||
"td_on_pad_in_zone": false,
|
||||
"td_target_name": "td_round_shape",
|
||||
"td_width_to_size_filter_ratio": 0.9
|
||||
},
|
||||
{
|
||||
"td_allow_use_two_tracks": true,
|
||||
"td_curve_segcount": 0,
|
||||
"td_height_ratio": 1.0,
|
||||
"td_length_ratio": 0.5,
|
||||
"td_maxheight": 2.0,
|
||||
"td_maxlen": 1.0,
|
||||
"td_on_pad_in_zone": false,
|
||||
"td_target_name": "td_rect_shape",
|
||||
"td_width_to_size_filter_ratio": 0.9
|
||||
},
|
||||
{
|
||||
"td_allow_use_two_tracks": true,
|
||||
"td_curve_segcount": 0,
|
||||
"td_height_ratio": 1.0,
|
||||
"td_length_ratio": 0.5,
|
||||
"td_maxheight": 2.0,
|
||||
"td_maxlen": 1.0,
|
||||
"td_on_pad_in_zone": false,
|
||||
"td_target_name": "td_track_end",
|
||||
"td_width_to_size_filter_ratio": 0.9
|
||||
}
|
||||
],
|
||||
"track_widths": [
|
||||
0.0,
|
||||
0.2,
|
||||
0.4,
|
||||
0.6,
|
||||
1.0
|
||||
],
|
||||
"tuning_pattern_settings": {
|
||||
"diff_pair_defaults": {
|
||||
"corner_radius_percentage": 80,
|
||||
"corner_style": 1,
|
||||
"max_amplitude": 1.0,
|
||||
"min_amplitude": 0.2,
|
||||
"single_sided": false,
|
||||
"spacing": 1.0
|
||||
},
|
||||
"diff_pair_skew_defaults": {
|
||||
"corner_radius_percentage": 80,
|
||||
"corner_style": 1,
|
||||
"max_amplitude": 1.0,
|
||||
"min_amplitude": 0.2,
|
||||
"single_sided": false,
|
||||
"spacing": 0.6
|
||||
},
|
||||
"single_track_defaults": {
|
||||
"corner_radius_percentage": 80,
|
||||
"corner_style": 1,
|
||||
"max_amplitude": 1.0,
|
||||
"min_amplitude": 0.2,
|
||||
"single_sided": false,
|
||||
"spacing": 0.6
|
||||
}
|
||||
},
|
||||
"via_dimensions": [
|
||||
{
|
||||
"diameter": 0.0,
|
||||
"drill": 0.0
|
||||
},
|
||||
{
|
||||
"diameter": 0.5,
|
||||
"drill": 0.2
|
||||
},
|
||||
{
|
||||
"diameter": 0.9,
|
||||
"drill": 0.4
|
||||
}
|
||||
],
|
||||
"zones_allow_external_fillets": false
|
||||
},
|
||||
"ipc2581": {
|
||||
"bom_rev": "",
|
||||
"dist": "",
|
||||
"distpn": "",
|
||||
"internal_id": "",
|
||||
"mfg": "",
|
||||
"mpn": "",
|
||||
"sch_revision": ""
|
||||
},
|
||||
"layer_pairs": [],
|
||||
"layer_presets": [],
|
||||
"viewports": []
|
||||
},
|
||||
"boards": [],
|
||||
"component_class_settings": {
|
||||
"assignments": [],
|
||||
"meta": {
|
||||
"version": 0
|
||||
},
|
||||
"sheet_component_classes": {
|
||||
"enabled": false
|
||||
}
|
||||
},
|
||||
"cvpcb": {
|
||||
"equivalence_files": []
|
||||
},
|
||||
"erc": {
|
||||
"erc_exclusions": [],
|
||||
"meta": {
|
||||
"version": 0
|
||||
},
|
||||
"pin_map": [
|
||||
[
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
2
|
||||
],
|
||||
[
|
||||
0,
|
||||
2,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
2,
|
||||
2,
|
||||
2,
|
||||
2
|
||||
],
|
||||
[
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
1,
|
||||
2
|
||||
],
|
||||
[
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
1,
|
||||
2,
|
||||
1,
|
||||
1,
|
||||
2
|
||||
],
|
||||
[
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
2
|
||||
],
|
||||
[
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
2
|
||||
],
|
||||
[
|
||||
1,
|
||||
1,
|
||||
1,
|
||||
1,
|
||||
1,
|
||||
0,
|
||||
1,
|
||||
1,
|
||||
1,
|
||||
1,
|
||||
1,
|
||||
2
|
||||
],
|
||||
[
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
2
|
||||
],
|
||||
[
|
||||
0,
|
||||
2,
|
||||
1,
|
||||
2,
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
2,
|
||||
2,
|
||||
2,
|
||||
2
|
||||
],
|
||||
[
|
||||
0,
|
||||
2,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
2,
|
||||
0,
|
||||
0,
|
||||
2
|
||||
],
|
||||
[
|
||||
0,
|
||||
2,
|
||||
1,
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
2,
|
||||
0,
|
||||
0,
|
||||
2
|
||||
],
|
||||
[
|
||||
2,
|
||||
2,
|
||||
2,
|
||||
2,
|
||||
2,
|
||||
2,
|
||||
2,
|
||||
2,
|
||||
2,
|
||||
2,
|
||||
2,
|
||||
2
|
||||
]
|
||||
],
|
||||
"rule_severities": {
|
||||
"bus_definition_conflict": "error",
|
||||
"bus_entry_needed": "error",
|
||||
"bus_to_bus_conflict": "error",
|
||||
"bus_to_net_conflict": "error",
|
||||
"different_unit_footprint": "error",
|
||||
"different_unit_net": "error",
|
||||
"duplicate_reference": "error",
|
||||
"duplicate_sheet_names": "error",
|
||||
"endpoint_off_grid": "warning",
|
||||
"extra_units": "error",
|
||||
"field_name_whitespace": "warning",
|
||||
"footprint_filter": "ignore",
|
||||
"footprint_link_issues": "warning",
|
||||
"four_way_junction": "ignore",
|
||||
"ground_pin_not_ground": "warning",
|
||||
"hier_label_mismatch": "error",
|
||||
"isolated_pin_label": "warning",
|
||||
"label_dangling": "error",
|
||||
"label_multiple_wires": "warning",
|
||||
"lib_symbol_issues": "warning",
|
||||
"lib_symbol_mismatch": "warning",
|
||||
"missing_bidi_pin": "warning",
|
||||
"missing_input_pin": "warning",
|
||||
"missing_power_pin": "error",
|
||||
"missing_unit": "warning",
|
||||
"multiple_net_names": "warning",
|
||||
"net_not_bus_member": "warning",
|
||||
"no_connect_connected": "warning",
|
||||
"no_connect_dangling": "warning",
|
||||
"pin_not_connected": "error",
|
||||
"pin_not_driven": "error",
|
||||
"pin_to_pin": "error",
|
||||
"power_pin_not_driven": "error",
|
||||
"same_local_global_label": "warning",
|
||||
"similar_label_and_power": "warning",
|
||||
"similar_labels": "warning",
|
||||
"similar_power": "warning",
|
||||
"simulation_model_issue": "ignore",
|
||||
"single_global_label": "ignore",
|
||||
"stacked_pin_name": "warning",
|
||||
"unannotated": "error",
|
||||
"unconnected_wire_endpoint": "warning",
|
||||
"undefined_netclass": "error",
|
||||
"unit_value_mismatch": "error",
|
||||
"unresolved_variable": "error",
|
||||
"wire_dangling": "error"
|
||||
}
|
||||
},
|
||||
"libraries": {
|
||||
"pinned_footprint_libs": [
|
||||
"esp_sensair_stuff"
|
||||
],
|
||||
"pinned_symbol_libs": [
|
||||
"esp_sensair_stuff"
|
||||
]
|
||||
},
|
||||
"meta": {
|
||||
"filename": "esp+sensair.kicad_pro",
|
||||
"version": 3
|
||||
},
|
||||
"net_settings": {
|
||||
"classes": [
|
||||
{
|
||||
"bus_width": 12,
|
||||
"clearance": 0.15,
|
||||
"diff_pair_gap": 0.254,
|
||||
"diff_pair_via_gap": 0.25,
|
||||
"diff_pair_width": 0.1524,
|
||||
"line_style": 0,
|
||||
"microvia_diameter": 0.6858,
|
||||
"microvia_drill": 0.3302,
|
||||
"name": "Default",
|
||||
"pcb_color": "rgba(0, 0, 0, 0.000)",
|
||||
"priority": 2147483647,
|
||||
"schematic_color": "rgba(0, 0, 0, 0.000)",
|
||||
"track_width": 0.15,
|
||||
"tuning_profile": "",
|
||||
"via_diameter": 0.7,
|
||||
"via_drill": 0.3,
|
||||
"wire_width": 6
|
||||
}
|
||||
],
|
||||
"meta": {
|
||||
"version": 5
|
||||
},
|
||||
"net_colors": {},
|
||||
"netclass_assignments": {},
|
||||
"netclass_patterns": []
|
||||
},
|
||||
"pcbnew": {
|
||||
"last_paths": {
|
||||
"idf": "",
|
||||
"netlist": "./",
|
||||
"plot": "",
|
||||
"specctra_dsn": "",
|
||||
"step": "",
|
||||
"vrml": ""
|
||||
},
|
||||
"page_layout_descr_file": ""
|
||||
},
|
||||
"schematic": {
|
||||
"annotate_start_num": 0,
|
||||
"annotation": {
|
||||
"method": 0,
|
||||
"sort_order": 0
|
||||
},
|
||||
"bom_export_filename": "${PROJECTNAME}.csv",
|
||||
"bom_fmt_presets": [],
|
||||
"bom_fmt_settings": {
|
||||
"field_delimiter": ",",
|
||||
"keep_line_breaks": false,
|
||||
"keep_tabs": false,
|
||||
"name": "CSV",
|
||||
"ref_delimiter": ",",
|
||||
"ref_range_delimiter": "",
|
||||
"string_delimiter": "\""
|
||||
},
|
||||
"bom_presets": [],
|
||||
"bom_settings": {
|
||||
"exclude_dnp": false,
|
||||
"fields_ordered": [
|
||||
{
|
||||
"group_by": false,
|
||||
"label": "Reference",
|
||||
"name": "Reference",
|
||||
"show": true
|
||||
},
|
||||
{
|
||||
"group_by": false,
|
||||
"label": "Qty",
|
||||
"name": "${QUANTITY}",
|
||||
"show": true
|
||||
},
|
||||
{
|
||||
"group_by": true,
|
||||
"label": "Value",
|
||||
"name": "Value",
|
||||
"show": true
|
||||
},
|
||||
{
|
||||
"group_by": true,
|
||||
"label": "DNP",
|
||||
"name": "${DNP}",
|
||||
"show": true
|
||||
},
|
||||
{
|
||||
"group_by": true,
|
||||
"label": "Exclude from BOM",
|
||||
"name": "${EXCLUDE_FROM_BOM}",
|
||||
"show": true
|
||||
},
|
||||
{
|
||||
"group_by": true,
|
||||
"label": "Exclude from Board",
|
||||
"name": "${EXCLUDE_FROM_BOARD}",
|
||||
"show": true
|
||||
},
|
||||
{
|
||||
"group_by": true,
|
||||
"label": "Exclude from Simulation",
|
||||
"name": "${EXCLUDE_FROM_SIM}",
|
||||
"show": true
|
||||
},
|
||||
{
|
||||
"group_by": true,
|
||||
"label": "Exclude from Position Files",
|
||||
"name": "${EXCLUDE_FROM_POS_FILES}",
|
||||
"show": true
|
||||
},
|
||||
{
|
||||
"group_by": true,
|
||||
"label": "Footprint",
|
||||
"name": "Footprint",
|
||||
"show": true
|
||||
},
|
||||
{
|
||||
"group_by": false,
|
||||
"label": "Datasheet",
|
||||
"name": "Datasheet",
|
||||
"show": true
|
||||
}
|
||||
],
|
||||
"filter_string": "",
|
||||
"group_symbols": true,
|
||||
"include_excluded_from_bom": true,
|
||||
"name": "Default Editing",
|
||||
"sort_asc": true,
|
||||
"sort_field": "Reference"
|
||||
},
|
||||
"bus_aliases": {},
|
||||
"connection_grid_size": 50.0,
|
||||
"drawing": {
|
||||
"dashed_lines_dash_length_ratio": 12.0,
|
||||
"dashed_lines_gap_length_ratio": 3.0,
|
||||
"default_line_thickness": 6.0,
|
||||
"default_text_size": 50.0,
|
||||
"field_names": [],
|
||||
"hop_over_size_choice": 0,
|
||||
"intersheets_ref_own_page": false,
|
||||
"intersheets_ref_prefix": "",
|
||||
"intersheets_ref_short": false,
|
||||
"intersheets_ref_show": false,
|
||||
"intersheets_ref_suffix": "",
|
||||
"junction_size_choice": 3,
|
||||
"label_size_ratio": 0.375,
|
||||
"operating_point_overlay_i_precision": 3,
|
||||
"operating_point_overlay_i_range": "~A",
|
||||
"operating_point_overlay_v_precision": 3,
|
||||
"operating_point_overlay_v_range": "~V",
|
||||
"overbar_offset_ratio": 1.23,
|
||||
"pin_symbol_size": 25.0,
|
||||
"text_offset_ratio": 0.15
|
||||
},
|
||||
"legacy_lib_dir": "",
|
||||
"legacy_lib_list": [],
|
||||
"meta": {
|
||||
"version": 1
|
||||
},
|
||||
"ngspice": {
|
||||
"fix_include_paths": true,
|
||||
"meta": {
|
||||
"version": 0
|
||||
},
|
||||
"model_mode": 4,
|
||||
"workbook_filename": ""
|
||||
},
|
||||
"page_layout_descr_file": "",
|
||||
"plot_directory": "",
|
||||
"reuse_designators": true,
|
||||
"subpart_first_id": 65,
|
||||
"subpart_id_separator": 0,
|
||||
"top_level_sheets": [
|
||||
{
|
||||
"filename": "esp+sensair.kicad_sch",
|
||||
"name": "Root",
|
||||
"uuid": "d19c68d2-fb5a-4249-a650-17ae87065123"
|
||||
}
|
||||
],
|
||||
"used_designators": "C1,R1,J1-7,SW1,#PWR1-12,U1-3",
|
||||
"variants": []
|
||||
},
|
||||
"sheets": [
|
||||
[
|
||||
"d19c68d2-fb5a-4249-a650-17ae87065123",
|
||||
"Root"
|
||||
]
|
||||
],
|
||||
"text_variables": {},
|
||||
"tuning_profiles": {
|
||||
"meta": {
|
||||
"version": 0
|
||||
},
|
||||
"tuning_profiles_impedance_geometric": []
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large.
Load diff
@@ -0,0 +1,791 @@
|
||||
(kicad_symbol_lib
|
||||
(version 20251024)
|
||||
(generator "kicad_symbol_editor")
|
||||
(generator_version "10.0")
|
||||
(symbol "BME280-plug-in"
|
||||
(exclude_from_sim no)
|
||||
(in_bom yes)
|
||||
(on_board yes)
|
||||
(in_pos_files yes)
|
||||
(duplicate_pin_numbers_are_jumpers no)
|
||||
(property "Reference" "U"
|
||||
(at 0 0 0)
|
||||
(show_name no)
|
||||
(do_not_autoplace no)
|
||||
(effects
|
||||
(font
|
||||
(size 1.27 1.27)
|
||||
)
|
||||
)
|
||||
)
|
||||
(property "Value" "BME280"
|
||||
(at -9.144 0 0)
|
||||
(show_name no)
|
||||
(do_not_autoplace no)
|
||||
(effects
|
||||
(font
|
||||
(size 1.27 1.27)
|
||||
)
|
||||
)
|
||||
)
|
||||
(property "Footprint" ""
|
||||
(at 0 0 0)
|
||||
(show_name no)
|
||||
(do_not_autoplace no)
|
||||
(hide yes)
|
||||
(effects
|
||||
(font
|
||||
(size 1.27 1.27)
|
||||
)
|
||||
)
|
||||
)
|
||||
(property "Datasheet" ""
|
||||
(at 0 0 0)
|
||||
(show_name no)
|
||||
(do_not_autoplace no)
|
||||
(hide yes)
|
||||
(effects
|
||||
(font
|
||||
(size 1.27 1.27)
|
||||
)
|
||||
)
|
||||
)
|
||||
(property "Description" ""
|
||||
(at 0 0 0)
|
||||
(show_name no)
|
||||
(do_not_autoplace no)
|
||||
(hide yes)
|
||||
(effects
|
||||
(font
|
||||
(size 1.27 1.27)
|
||||
)
|
||||
)
|
||||
)
|
||||
(symbol "BME280-plug-in_0_1"
|
||||
(rectangle
|
||||
(start -5.08 7.62)
|
||||
(end 5.08 -7.62)
|
||||
(stroke
|
||||
(width 0)
|
||||
(type default)
|
||||
)
|
||||
(fill
|
||||
(type none)
|
||||
)
|
||||
)
|
||||
)
|
||||
(symbol "BME280-plug-in_1_1"
|
||||
(pin input line
|
||||
(at 7.62 3.81 180)
|
||||
(length 2.54)
|
||||
(name "SD0"
|
||||
(effects
|
||||
(font
|
||||
(size 1.27 1.27)
|
||||
)
|
||||
)
|
||||
)
|
||||
(number "0"
|
||||
(effects
|
||||
(font
|
||||
(size 1.27 1.27)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(pin input line
|
||||
(at 7.62 1.27 180)
|
||||
(length 2.54)
|
||||
(name "CSB"
|
||||
(effects
|
||||
(font
|
||||
(size 1.27 1.27)
|
||||
)
|
||||
)
|
||||
)
|
||||
(number "1"
|
||||
(effects
|
||||
(font
|
||||
(size 1.27 1.27)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(pin bidirectional line
|
||||
(at 7.62 -1.27 180)
|
||||
(length 2.54)
|
||||
(name "SDA"
|
||||
(effects
|
||||
(font
|
||||
(size 1.27 1.27)
|
||||
)
|
||||
)
|
||||
)
|
||||
(number "2"
|
||||
(effects
|
||||
(font
|
||||
(size 1.27 1.27)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(pin input line
|
||||
(at 7.62 -3.81 180)
|
||||
(length 2.54)
|
||||
(name "SCL"
|
||||
(effects
|
||||
(font
|
||||
(size 1.27 1.27)
|
||||
)
|
||||
)
|
||||
)
|
||||
(number "3"
|
||||
(effects
|
||||
(font
|
||||
(size 1.27 1.27)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(pin power_in line
|
||||
(at 0 -10.16 90)
|
||||
(length 2.54)
|
||||
(name "GND"
|
||||
(effects
|
||||
(font
|
||||
(size 1.27 1.27)
|
||||
)
|
||||
)
|
||||
)
|
||||
(number "4"
|
||||
(effects
|
||||
(font
|
||||
(size 1.27 1.27)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(pin power_in line
|
||||
(at 0 10.16 270)
|
||||
(length 2.54)
|
||||
(name "3V3"
|
||||
(effects
|
||||
(font
|
||||
(size 1.27 1.27)
|
||||
)
|
||||
)
|
||||
)
|
||||
(number "5"
|
||||
(effects
|
||||
(font
|
||||
(size 1.27 1.27)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(embedded_fonts no)
|
||||
)
|
||||
(symbol "ESP32-C3-plug-in"
|
||||
(exclude_from_sim no)
|
||||
(in_bom yes)
|
||||
(on_board yes)
|
||||
(in_pos_files yes)
|
||||
(duplicate_pin_numbers_are_jumpers no)
|
||||
(property "Reference" "U"
|
||||
(at 0 0 0)
|
||||
(show_name no)
|
||||
(do_not_autoplace no)
|
||||
(effects
|
||||
(font
|
||||
(size 1.27 1.27)
|
||||
)
|
||||
)
|
||||
)
|
||||
(property "Value" "ESP32-C3"
|
||||
(at 0 -9.144 0)
|
||||
(show_name no)
|
||||
(do_not_autoplace no)
|
||||
(effects
|
||||
(font
|
||||
(size 1.27 1.27)
|
||||
)
|
||||
)
|
||||
)
|
||||
(property "Footprint" ""
|
||||
(at 0 0 0)
|
||||
(show_name no)
|
||||
(do_not_autoplace no)
|
||||
(hide yes)
|
||||
(effects
|
||||
(font
|
||||
(size 1.27 1.27)
|
||||
)
|
||||
)
|
||||
)
|
||||
(property "Datasheet" ""
|
||||
(at 0 0 0)
|
||||
(show_name no)
|
||||
(do_not_autoplace no)
|
||||
(hide yes)
|
||||
(effects
|
||||
(font
|
||||
(size 1.27 1.27)
|
||||
)
|
||||
)
|
||||
)
|
||||
(property "Description" ""
|
||||
(at 0 0 0)
|
||||
(show_name no)
|
||||
(do_not_autoplace no)
|
||||
(hide yes)
|
||||
(effects
|
||||
(font
|
||||
(size 1.27 1.27)
|
||||
)
|
||||
)
|
||||
)
|
||||
(symbol "ESP32-C3-plug-in_0_1"
|
||||
(rectangle
|
||||
(start -7.62 10.16)
|
||||
(end 7.62 -10.16)
|
||||
(stroke
|
||||
(width 0)
|
||||
(type default)
|
||||
)
|
||||
(fill
|
||||
(type none)
|
||||
)
|
||||
)
|
||||
)
|
||||
(symbol "ESP32-C3-plug-in_1_1"
|
||||
(pin bidirectional line
|
||||
(at 10.16 -8.89 180)
|
||||
(length 2.54)
|
||||
(name "0"
|
||||
(effects
|
||||
(font
|
||||
(size 1.27 1.27)
|
||||
)
|
||||
)
|
||||
)
|
||||
(number "0"
|
||||
(effects
|
||||
(font
|
||||
(size 1.27 1.27)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(pin bidirectional line
|
||||
(at 10.16 -6.35 180)
|
||||
(length 2.54)
|
||||
(name "1"
|
||||
(effects
|
||||
(font
|
||||
(size 1.27 1.27)
|
||||
)
|
||||
)
|
||||
)
|
||||
(number "1"
|
||||
(effects
|
||||
(font
|
||||
(size 1.27 1.27)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(pin bidirectional line
|
||||
(at 10.16 -3.81 180)
|
||||
(length 2.54)
|
||||
(name "2"
|
||||
(effects
|
||||
(font
|
||||
(size 1.27 1.27)
|
||||
)
|
||||
)
|
||||
)
|
||||
(number "2"
|
||||
(effects
|
||||
(font
|
||||
(size 1.27 1.27)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(pin bidirectional line
|
||||
(at 10.16 -1.27 180)
|
||||
(length 2.54)
|
||||
(name "3"
|
||||
(effects
|
||||
(font
|
||||
(size 1.27 1.27)
|
||||
)
|
||||
)
|
||||
)
|
||||
(number "3"
|
||||
(effects
|
||||
(font
|
||||
(size 1.27 1.27)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(pin bidirectional line
|
||||
(at 10.16 1.27 180)
|
||||
(length 2.54)
|
||||
(name "4"
|
||||
(effects
|
||||
(font
|
||||
(size 1.27 1.27)
|
||||
)
|
||||
)
|
||||
)
|
||||
(number "4"
|
||||
(effects
|
||||
(font
|
||||
(size 1.27 1.27)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(pin bidirectional line
|
||||
(at -10.16 8.89 0)
|
||||
(length 2.54)
|
||||
(name "5"
|
||||
(effects
|
||||
(font
|
||||
(size 1.27 1.27)
|
||||
)
|
||||
)
|
||||
)
|
||||
(number "5"
|
||||
(effects
|
||||
(font
|
||||
(size 1.27 1.27)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(pin bidirectional line
|
||||
(at -10.16 6.35 0)
|
||||
(length 2.54)
|
||||
(name "6"
|
||||
(effects
|
||||
(font
|
||||
(size 1.27 1.27)
|
||||
)
|
||||
)
|
||||
)
|
||||
(number "6"
|
||||
(effects
|
||||
(font
|
||||
(size 1.27 1.27)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(pin bidirectional line
|
||||
(at -10.16 3.81 0)
|
||||
(length 2.54)
|
||||
(name "7"
|
||||
(effects
|
||||
(font
|
||||
(size 1.27 1.27)
|
||||
)
|
||||
)
|
||||
)
|
||||
(number "7"
|
||||
(effects
|
||||
(font
|
||||
(size 1.27 1.27)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(pin bidirectional line
|
||||
(at -10.16 1.27 0)
|
||||
(length 2.54)
|
||||
(name "8"
|
||||
(effects
|
||||
(font
|
||||
(size 1.27 1.27)
|
||||
)
|
||||
)
|
||||
)
|
||||
(number "8"
|
||||
(effects
|
||||
(font
|
||||
(size 1.27 1.27)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(pin bidirectional line
|
||||
(at -10.16 -1.27 0)
|
||||
(length 2.54)
|
||||
(name "9"
|
||||
(effects
|
||||
(font
|
||||
(size 1.27 1.27)
|
||||
)
|
||||
)
|
||||
)
|
||||
(number "9"
|
||||
(effects
|
||||
(font
|
||||
(size 1.27 1.27)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(pin bidirectional line
|
||||
(at -10.16 -3.81 0)
|
||||
(length 2.54)
|
||||
(name "10"
|
||||
(effects
|
||||
(font
|
||||
(size 1.27 1.27)
|
||||
)
|
||||
)
|
||||
)
|
||||
(number "10"
|
||||
(effects
|
||||
(font
|
||||
(size 1.27 1.27)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(pin power_in line
|
||||
(at 10.16 8.89 180)
|
||||
(length 2.54)
|
||||
(name "5V"
|
||||
(effects
|
||||
(font
|
||||
(size 1.27 1.27)
|
||||
)
|
||||
)
|
||||
)
|
||||
(number "11"
|
||||
(effects
|
||||
(font
|
||||
(size 1.27 1.27)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(pin power_in line
|
||||
(at 10.16 6.35 180)
|
||||
(length 2.54)
|
||||
(name "GND"
|
||||
(effects
|
||||
(font
|
||||
(size 1.27 1.27)
|
||||
)
|
||||
)
|
||||
)
|
||||
(number "12"
|
||||
(effects
|
||||
(font
|
||||
(size 1.27 1.27)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(pin power_out line
|
||||
(at 10.16 3.81 180)
|
||||
(length 2.54)
|
||||
(name "3V3"
|
||||
(effects
|
||||
(font
|
||||
(size 1.27 1.27)
|
||||
)
|
||||
)
|
||||
)
|
||||
(number "13"
|
||||
(effects
|
||||
(font
|
||||
(size 1.27 1.27)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(pin bidirectional line
|
||||
(at -10.16 -6.35 0)
|
||||
(length 2.54)
|
||||
(name "20"
|
||||
(effects
|
||||
(font
|
||||
(size 1.27 1.27)
|
||||
)
|
||||
)
|
||||
)
|
||||
(number "20"
|
||||
(effects
|
||||
(font
|
||||
(size 1.27 1.27)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(pin bidirectional line
|
||||
(at -10.16 -8.89 0)
|
||||
(length 2.54)
|
||||
(name "21"
|
||||
(effects
|
||||
(font
|
||||
(size 1.27 1.27)
|
||||
)
|
||||
)
|
||||
)
|
||||
(number "21"
|
||||
(effects
|
||||
(font
|
||||
(size 1.27 1.27)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(embedded_fonts no)
|
||||
)
|
||||
(symbol "Sensair-S8-Plug-in"
|
||||
(exclude_from_sim no)
|
||||
(in_bom yes)
|
||||
(on_board yes)
|
||||
(in_pos_files yes)
|
||||
(duplicate_pin_numbers_are_jumpers no)
|
||||
(property "Reference" "U"
|
||||
(at 0 0 0)
|
||||
(show_name no)
|
||||
(do_not_autoplace no)
|
||||
(effects
|
||||
(font
|
||||
(size 1.27 1.27)
|
||||
)
|
||||
)
|
||||
)
|
||||
(property "Value" "Sensair-S8"
|
||||
(at -0.254 -9.144 0)
|
||||
(show_name no)
|
||||
(do_not_autoplace no)
|
||||
(effects
|
||||
(font
|
||||
(size 1.27 1.27)
|
||||
)
|
||||
)
|
||||
)
|
||||
(property "Footprint" ""
|
||||
(at 0 0 0)
|
||||
(show_name no)
|
||||
(do_not_autoplace no)
|
||||
(hide yes)
|
||||
(effects
|
||||
(font
|
||||
(size 1.27 1.27)
|
||||
)
|
||||
)
|
||||
)
|
||||
(property "Datasheet" ""
|
||||
(at 0 0 0)
|
||||
(show_name no)
|
||||
(do_not_autoplace no)
|
||||
(hide yes)
|
||||
(effects
|
||||
(font
|
||||
(size 1.27 1.27)
|
||||
)
|
||||
)
|
||||
)
|
||||
(property "Description" ""
|
||||
(at 0 0 0)
|
||||
(show_name no)
|
||||
(do_not_autoplace no)
|
||||
(hide yes)
|
||||
(effects
|
||||
(font
|
||||
(size 1.27 1.27)
|
||||
)
|
||||
)
|
||||
)
|
||||
(symbol "Sensair-S8-Plug-in_0_1"
|
||||
(rectangle
|
||||
(start -10.16 10.16)
|
||||
(end 10.16 -10.16)
|
||||
(stroke
|
||||
(width 0)
|
||||
(type default)
|
||||
)
|
||||
(fill
|
||||
(type none)
|
||||
)
|
||||
)
|
||||
)
|
||||
(symbol "Sensair-S8-Plug-in_1_1"
|
||||
(pin power_in line
|
||||
(at -12.7 6.35 0)
|
||||
(length 2.54)
|
||||
(name "5V"
|
||||
(effects
|
||||
(font
|
||||
(size 1.27 1.27)
|
||||
)
|
||||
)
|
||||
)
|
||||
(number "0"
|
||||
(effects
|
||||
(font
|
||||
(size 1.27 1.27)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(pin power_in line
|
||||
(at -12.7 2.54 0)
|
||||
(length 2.54)
|
||||
(name "GND"
|
||||
(effects
|
||||
(font
|
||||
(size 1.27 1.27)
|
||||
)
|
||||
)
|
||||
)
|
||||
(number "1"
|
||||
(effects
|
||||
(font
|
||||
(size 1.27 1.27)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(pin no_connect line
|
||||
(at -12.7 -2.54 0)
|
||||
(length 2.54)
|
||||
(name "Alarm_OC"
|
||||
(effects
|
||||
(font
|
||||
(size 1.27 1.27)
|
||||
)
|
||||
)
|
||||
)
|
||||
(number "2"
|
||||
(effects
|
||||
(font
|
||||
(size 1.27 1.27)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(pin no_connect line
|
||||
(at -12.7 -6.35 0)
|
||||
(length 2.54)
|
||||
(name "PWM_1kHz"
|
||||
(effects
|
||||
(font
|
||||
(size 1.27 1.27)
|
||||
)
|
||||
)
|
||||
)
|
||||
(number "3"
|
||||
(effects
|
||||
(font
|
||||
(size 1.27 1.27)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(pin no_connect line
|
||||
(at 12.7 7.62 180)
|
||||
(length 2.54)
|
||||
(name "DVCC_out"
|
||||
(effects
|
||||
(font
|
||||
(size 1.27 1.27)
|
||||
)
|
||||
)
|
||||
)
|
||||
(number "4"
|
||||
(effects
|
||||
(font
|
||||
(size 1.27 1.27)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(pin input line
|
||||
(at 12.7 3.81 180)
|
||||
(length 2.54)
|
||||
(name "UART_RxD"
|
||||
(effects
|
||||
(font
|
||||
(size 1.27 1.27)
|
||||
)
|
||||
)
|
||||
)
|
||||
(number "5"
|
||||
(effects
|
||||
(font
|
||||
(size 1.27 1.27)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(pin output line
|
||||
(at 12.7 0 180)
|
||||
(length 2.54)
|
||||
(name "UART_TxD"
|
||||
(effects
|
||||
(font
|
||||
(size 1.27 1.27)
|
||||
)
|
||||
)
|
||||
)
|
||||
(number "6"
|
||||
(effects
|
||||
(font
|
||||
(size 1.27 1.27)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(pin no_connect line
|
||||
(at 12.7 -3.81 180)
|
||||
(length 2.54)
|
||||
(name "UART_R/T"
|
||||
(effects
|
||||
(font
|
||||
(size 1.27 1.27)
|
||||
)
|
||||
)
|
||||
)
|
||||
(number "7"
|
||||
(effects
|
||||
(font
|
||||
(size 1.27 1.27)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(pin input line
|
||||
(at 12.7 -7.62 180)
|
||||
(length 2.54)
|
||||
(name "bCal_in"
|
||||
(effects
|
||||
(font
|
||||
(size 1.27 1.27)
|
||||
)
|
||||
)
|
||||
)
|
||||
(number "8"
|
||||
(effects
|
||||
(font
|
||||
(size 1.27 1.27)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(embedded_fonts no)
|
||||
)
|
||||
)
|
||||
@@ -0,0 +1,243 @@
|
||||
(footprint "BME280"
|
||||
(version 20260206)
|
||||
(generator "pcbnew")
|
||||
(generator_version "10.0")
|
||||
(layer "F.Cu")
|
||||
(property "Reference" "REF**"
|
||||
(at 3.3 8.2 0)
|
||||
(unlocked yes)
|
||||
(layer "F.SilkS")
|
||||
(uuid "0c66aec5-8a1a-4da8-b390-d0721d915622")
|
||||
(effects
|
||||
(font
|
||||
(size 1 1)
|
||||
(thickness 0.1)
|
||||
)
|
||||
)
|
||||
)
|
||||
(property "Value" "BME280"
|
||||
(at 0 1 0)
|
||||
(unlocked yes)
|
||||
(layer "F.Fab")
|
||||
(uuid "658ed8c8-9365-4671-b0d9-2dc5ebfce178")
|
||||
(effects
|
||||
(font
|
||||
(size 1 1)
|
||||
(thickness 0.15)
|
||||
)
|
||||
)
|
||||
)
|
||||
(property "Datasheet" ""
|
||||
(at 0 0 0)
|
||||
(unlocked yes)
|
||||
(layer "F.Fab")
|
||||
(hide yes)
|
||||
(uuid "06e6cad0-970f-4f82-83fe-d0fe7e731d05")
|
||||
(effects
|
||||
(font
|
||||
(size 1 1)
|
||||
(thickness 0.15)
|
||||
)
|
||||
)
|
||||
)
|
||||
(property "Description" ""
|
||||
(at 0 0 0)
|
||||
(unlocked yes)
|
||||
(layer "F.Fab")
|
||||
(hide yes)
|
||||
(uuid "012f2eb9-98c3-4d69-9bfc-5535812a22bb")
|
||||
(effects
|
||||
(font
|
||||
(size 1 1)
|
||||
(thickness 0.15)
|
||||
)
|
||||
)
|
||||
)
|
||||
(attr smd)
|
||||
(duplicate_pad_numbers_are_jumpers no)
|
||||
(fp_rect
|
||||
(start -5.35 -7.5)
|
||||
(end 5.35 7.5)
|
||||
(stroke
|
||||
(width 0.1)
|
||||
(type default)
|
||||
)
|
||||
(fill no)
|
||||
(layer "F.SilkS")
|
||||
(uuid "45df38fe-fcde-4152-8510-181d11b2c62d")
|
||||
)
|
||||
(fp_text user "SDA"
|
||||
(at 3.6 -0.6 0)
|
||||
(unlocked yes)
|
||||
(layer "F.SilkS")
|
||||
(uuid "04a01547-e6e6-4661-a057-786d77c9f7d8")
|
||||
(effects
|
||||
(font
|
||||
(size 1 1)
|
||||
(thickness 0.1)
|
||||
)
|
||||
(justify right bottom)
|
||||
)
|
||||
)
|
||||
(fp_text user "SD0"
|
||||
(at 3.7 -5.7 0)
|
||||
(unlocked yes)
|
||||
(layer "F.SilkS")
|
||||
(uuid "3bb453b1-b0ca-4cbc-9578-8db4dfb9c533")
|
||||
(effects
|
||||
(font
|
||||
(size 1 1)
|
||||
(thickness 0.1)
|
||||
)
|
||||
(justify right bottom)
|
||||
)
|
||||
)
|
||||
(fp_text user "CSB"
|
||||
(at 3.7 -3.1 0)
|
||||
(unlocked yes)
|
||||
(layer "F.SilkS")
|
||||
(uuid "45af1f45-b5a7-42f2-a946-b6e9dd9252f1")
|
||||
(effects
|
||||
(font
|
||||
(size 1 1)
|
||||
(thickness 0.1)
|
||||
)
|
||||
(justify right bottom)
|
||||
)
|
||||
)
|
||||
(fp_text user "SCL"
|
||||
(at 3.7 1.9 0)
|
||||
(unlocked yes)
|
||||
(layer "F.SilkS")
|
||||
(uuid "59fad60f-e307-4788-bf6c-7f0326f7f6c4")
|
||||
(effects
|
||||
(font
|
||||
(size 1 1)
|
||||
(thickness 0.1)
|
||||
)
|
||||
(justify right bottom)
|
||||
)
|
||||
)
|
||||
(fp_text user "GND"
|
||||
(at 3.7 4.4 0)
|
||||
(unlocked yes)
|
||||
(layer "F.SilkS")
|
||||
(uuid "d2114596-155a-4371-af45-8feeb046715c")
|
||||
(effects
|
||||
(font
|
||||
(size 1 1)
|
||||
(thickness 0.1)
|
||||
)
|
||||
(justify right bottom)
|
||||
)
|
||||
)
|
||||
(fp_text user "3V3"
|
||||
(at 3.7 7 0)
|
||||
(unlocked yes)
|
||||
(layer "F.SilkS")
|
||||
(uuid "ece4ce7d-3be7-4dec-9f98-c7724107a3b2")
|
||||
(effects
|
||||
(font
|
||||
(size 1 1)
|
||||
(thickness 0.1)
|
||||
)
|
||||
(justify right bottom)
|
||||
)
|
||||
)
|
||||
(fp_text user "${REFERENCE}"
|
||||
(at 0 2.5 0)
|
||||
(unlocked yes)
|
||||
(layer "F.Fab")
|
||||
(uuid "3ccb3a1b-11dd-4b9a-8621-60a9f27c863b")
|
||||
(effects
|
||||
(font
|
||||
(size 1 1)
|
||||
(thickness 0.15)
|
||||
)
|
||||
)
|
||||
)
|
||||
(pad "0" thru_hole roundrect
|
||||
(at 4.44 -6.35)
|
||||
(size 1.27 1.27)
|
||||
(drill 0.8)
|
||||
(layers "*.Cu" "*.Mask")
|
||||
(remove_unused_layers no)
|
||||
(roundrect_rratio 0.15)
|
||||
(uuid "4cee3a06-5372-4aba-85f2-66017f742b41")
|
||||
)
|
||||
(pad "1" thru_hole roundrect
|
||||
(at 4.44 -3.81)
|
||||
(size 1.27 1.27)
|
||||
(drill 0.8)
|
||||
(layers "*.Cu" "*.Mask")
|
||||
(remove_unused_layers no)
|
||||
(roundrect_rratio 0.15)
|
||||
(uuid "a4e2b9c0-addd-414b-ad2c-403d84cc0f4a")
|
||||
)
|
||||
(pad "2" thru_hole roundrect
|
||||
(at 4.44 -1.27)
|
||||
(size 1.27 1.27)
|
||||
(drill 0.8)
|
||||
(layers "*.Cu" "*.Mask")
|
||||
(remove_unused_layers no)
|
||||
(roundrect_rratio 0.15)
|
||||
(uuid "45733ace-2c8d-4ca9-9abe-5eeff998230e")
|
||||
)
|
||||
(pad "3" thru_hole roundrect
|
||||
(at 4.44 1.27)
|
||||
(size 1.27 1.27)
|
||||
(drill 0.8)
|
||||
(layers "*.Cu" "*.Mask")
|
||||
(remove_unused_layers no)
|
||||
(roundrect_rratio 0.15)
|
||||
(uuid "911967b3-a51d-4c14-a30c-f93dc996c274")
|
||||
)
|
||||
(pad "4" thru_hole rect
|
||||
(at 4.44 3.81)
|
||||
(size 1.27 1.27)
|
||||
(drill 0.8)
|
||||
(layers "*.Cu" "*.Mask")
|
||||
(remove_unused_layers no)
|
||||
(uuid "43ca01a1-1ac5-475a-9a19-0d514b2c3d6f")
|
||||
)
|
||||
(pad "5" thru_hole circle
|
||||
(at 4.44 6.35)
|
||||
(size 1.27 1.27)
|
||||
(drill 0.8)
|
||||
(layers "*.Cu" "*.Mask")
|
||||
(remove_unused_layers no)
|
||||
(thermal_bridge_angle 90)
|
||||
(uuid "9e88efde-b8e2-48d7-acf9-9058d5dc8a45")
|
||||
)
|
||||
(zone
|
||||
(layer "F.SilkS")
|
||||
(uuid "9d32a799-ee3e-4eab-ba36-fa0325100fe5")
|
||||
(hatch edge 0.5)
|
||||
(connect_pads
|
||||
(clearance 0)
|
||||
)
|
||||
(min_thickness 0.25)
|
||||
(keepout
|
||||
(tracks allowed)
|
||||
(vias allowed)
|
||||
(pads not_allowed)
|
||||
(copperpour allowed)
|
||||
(footprints not_allowed)
|
||||
)
|
||||
(placement
|
||||
(enabled no)
|
||||
(sheetname "")
|
||||
)
|
||||
(fill
|
||||
(thermal_gap 0.5)
|
||||
(thermal_bridge_width 0.5)
|
||||
(island_removal_mode 0)
|
||||
)
|
||||
(polygon
|
||||
(pts
|
||||
(xy -5.35 -7.5) (xy -5.35 7.5) (xy 5.35 7.5) (xy 5.35 -7.5)
|
||||
)
|
||||
)
|
||||
)
|
||||
(embedded_fonts no)
|
||||
)
|
||||
@@ -0,0 +1,474 @@
|
||||
(footprint "ESP32-C3"
|
||||
(version 20260206)
|
||||
(generator "pcbnew")
|
||||
(generator_version "10.0")
|
||||
(layer "F.Cu")
|
||||
(property "Reference" "REF**"
|
||||
(at 6.985 12.7 0)
|
||||
(unlocked yes)
|
||||
(layer "F.SilkS")
|
||||
(uuid "67e62b4c-cf19-4529-97ae-4184bd53c369")
|
||||
(effects
|
||||
(font
|
||||
(size 1 1)
|
||||
(thickness 0.1)
|
||||
)
|
||||
)
|
||||
)
|
||||
(property "Value" "ESP32-C3"
|
||||
(at 0 1 0)
|
||||
(unlocked yes)
|
||||
(layer "F.Fab")
|
||||
(uuid "ed33dc66-0b67-4d77-8d12-b252ca297820")
|
||||
(effects
|
||||
(font
|
||||
(size 1 1)
|
||||
(thickness 0.15)
|
||||
)
|
||||
)
|
||||
)
|
||||
(property "Datasheet" ""
|
||||
(at 0 0 0)
|
||||
(unlocked yes)
|
||||
(layer "F.Fab")
|
||||
(hide yes)
|
||||
(uuid "7509f94b-b17e-49ab-9efc-25f4c6e2909b")
|
||||
(effects
|
||||
(font
|
||||
(size 1 1)
|
||||
(thickness 0.15)
|
||||
)
|
||||
)
|
||||
)
|
||||
(property "Description" ""
|
||||
(at 0 0 0)
|
||||
(unlocked yes)
|
||||
(layer "F.Fab")
|
||||
(hide yes)
|
||||
(uuid "3e538944-ff1b-4de5-9f05-058b757eaf31")
|
||||
(effects
|
||||
(font
|
||||
(size 1 1)
|
||||
(thickness 0.15)
|
||||
)
|
||||
)
|
||||
)
|
||||
(attr smd)
|
||||
(duplicate_pad_numbers_are_jumpers no)
|
||||
(fp_rect
|
||||
(start -9 -11.5)
|
||||
(end 9 11.2)
|
||||
(stroke
|
||||
(width 0.1)
|
||||
(type default)
|
||||
)
|
||||
(fill no)
|
||||
(layer "F.SilkS")
|
||||
(uuid "f2c86894-e460-4d88-b151-83b05372a7cc")
|
||||
)
|
||||
(fp_rect
|
||||
(start -7 -23.5)
|
||||
(end 7 -11.5)
|
||||
(stroke
|
||||
(width 0.05)
|
||||
(type default)
|
||||
)
|
||||
(fill no)
|
||||
(layer "Edge.Cuts")
|
||||
(uuid "f6486428-7a04-483f-a87d-d4505fb8e076")
|
||||
)
|
||||
(fp_text user "5"
|
||||
(at -6.675 -9.144 0)
|
||||
(unlocked yes)
|
||||
(layer "F.SilkS")
|
||||
(uuid "641a4eb3-7f09-4d36-8a95-d81656eea776")
|
||||
(effects
|
||||
(font
|
||||
(size 1 1)
|
||||
(thickness 0.1)
|
||||
)
|
||||
(justify left bottom)
|
||||
)
|
||||
)
|
||||
(fp_text user "6"
|
||||
(at -6.675 -6.579 0)
|
||||
(unlocked yes)
|
||||
(layer "F.SilkS")
|
||||
(uuid "c4d8755e-2c42-4908-ae1a-7116f58a03be")
|
||||
(effects
|
||||
(font
|
||||
(size 1 1)
|
||||
(thickness 0.1)
|
||||
)
|
||||
(justify left bottom)
|
||||
)
|
||||
)
|
||||
(fp_text user "7"
|
||||
(at -6.675 -4.039 0)
|
||||
(unlocked yes)
|
||||
(layer "F.SilkS")
|
||||
(uuid "dfed05a2-b006-44f0-a3a8-6821b1e4409d")
|
||||
(effects
|
||||
(font
|
||||
(size 1 1)
|
||||
(thickness 0.1)
|
||||
)
|
||||
(justify left bottom)
|
||||
)
|
||||
)
|
||||
(fp_text user "8"
|
||||
(at -6.675 -1.499 0)
|
||||
(unlocked yes)
|
||||
(layer "F.SilkS")
|
||||
(uuid "29e7fe22-79e7-4b49-bbea-49752c7f1064")
|
||||
(effects
|
||||
(font
|
||||
(size 1 1)
|
||||
(thickness 0.1)
|
||||
)
|
||||
(justify left bottom)
|
||||
)
|
||||
)
|
||||
(fp_text user "9"
|
||||
(at -6.675 1.041 0)
|
||||
(unlocked yes)
|
||||
(layer "F.SilkS")
|
||||
(uuid "7437fc67-b2fe-4a64-82c6-963e8450e1d6")
|
||||
(effects
|
||||
(font
|
||||
(size 1 1)
|
||||
(thickness 0.1)
|
||||
)
|
||||
(justify left bottom)
|
||||
)
|
||||
)
|
||||
(fp_text user "10"
|
||||
(at -6.675 3.581 0)
|
||||
(unlocked yes)
|
||||
(layer "F.SilkS")
|
||||
(uuid "88a1e96d-8f34-4364-9f42-7e335e379720")
|
||||
(effects
|
||||
(font
|
||||
(size 1 1)
|
||||
(thickness 0.1)
|
||||
)
|
||||
(justify left bottom)
|
||||
)
|
||||
)
|
||||
(fp_text user "20"
|
||||
(at -6.675 6.121 0)
|
||||
(unlocked yes)
|
||||
(layer "F.SilkS")
|
||||
(uuid "dfbce507-6cdf-4d14-94c6-490bcd09826a")
|
||||
(effects
|
||||
(font
|
||||
(size 1 1)
|
||||
(thickness 0.1)
|
||||
)
|
||||
(justify left bottom)
|
||||
)
|
||||
)
|
||||
(fp_text user "21"
|
||||
(at -6.675 8.661 0)
|
||||
(unlocked yes)
|
||||
(layer "F.SilkS")
|
||||
(uuid "0c5a01f6-d9ce-4b0f-b44d-861a080ef82f")
|
||||
(effects
|
||||
(font
|
||||
(size 1 1)
|
||||
(thickness 0.1)
|
||||
)
|
||||
(justify left bottom)
|
||||
)
|
||||
)
|
||||
(fp_text user "5V"
|
||||
(at 6.604 -9.144 0)
|
||||
(unlocked yes)
|
||||
(layer "F.SilkS")
|
||||
(uuid "9b4774b0-40df-426c-ab8f-5e0260baf5af")
|
||||
(effects
|
||||
(font
|
||||
(size 1 1)
|
||||
(thickness 0.1)
|
||||
)
|
||||
(justify right bottom)
|
||||
)
|
||||
)
|
||||
(fp_text user "GND"
|
||||
(at 6.604 -6.579 0)
|
||||
(unlocked yes)
|
||||
(layer "F.SilkS")
|
||||
(uuid "9153476b-92ab-408c-8be7-8de1f99daff8")
|
||||
(effects
|
||||
(font
|
||||
(size 1 1)
|
||||
(thickness 0.1)
|
||||
)
|
||||
(justify right bottom)
|
||||
)
|
||||
)
|
||||
(fp_text user "3V3"
|
||||
(at 6.604 -4.039 0)
|
||||
(unlocked yes)
|
||||
(layer "F.SilkS")
|
||||
(uuid "61d3c43b-32d9-4c1a-adae-12a9996b4aeb")
|
||||
(effects
|
||||
(font
|
||||
(size 1 1)
|
||||
(thickness 0.1)
|
||||
)
|
||||
(justify right bottom)
|
||||
)
|
||||
)
|
||||
(fp_text user "4"
|
||||
(at 6.604 -1.499 0)
|
||||
(unlocked yes)
|
||||
(layer "F.SilkS")
|
||||
(uuid "77c156db-5128-4eb8-b924-e3860a7f884b")
|
||||
(effects
|
||||
(font
|
||||
(size 1 1)
|
||||
(thickness 0.1)
|
||||
)
|
||||
(justify right bottom)
|
||||
)
|
||||
)
|
||||
(fp_text user "3"
|
||||
(at 6.604 1.041 0)
|
||||
(unlocked yes)
|
||||
(layer "F.SilkS")
|
||||
(uuid "1e03d4f4-699e-42f7-a9f4-7c7a367634d8")
|
||||
(effects
|
||||
(font
|
||||
(size 1 1)
|
||||
(thickness 0.1)
|
||||
)
|
||||
(justify right bottom)
|
||||
)
|
||||
)
|
||||
(fp_text user "2"
|
||||
(at 6.604 3.581 0)
|
||||
(unlocked yes)
|
||||
(layer "F.SilkS")
|
||||
(uuid "0528fcd7-b5a6-46ee-af9d-b887b493de96")
|
||||
(effects
|
||||
(font
|
||||
(size 1 1)
|
||||
(thickness 0.1)
|
||||
)
|
||||
(justify right bottom)
|
||||
)
|
||||
)
|
||||
(fp_text user "1"
|
||||
(at 6.604 6.121 0)
|
||||
(unlocked yes)
|
||||
(layer "F.SilkS")
|
||||
(uuid "87de232f-deba-40ab-87d2-37e9029e350e")
|
||||
(effects
|
||||
(font
|
||||
(size 1 1)
|
||||
(thickness 0.1)
|
||||
)
|
||||
(justify right bottom)
|
||||
)
|
||||
)
|
||||
(fp_text user "0"
|
||||
(at 6.604 8.661 0)
|
||||
(unlocked yes)
|
||||
(layer "F.SilkS")
|
||||
(uuid "fef757e5-07ad-473a-9d3c-7de10287d4a4")
|
||||
(effects
|
||||
(font
|
||||
(size 1 1)
|
||||
(thickness 0.1)
|
||||
)
|
||||
(justify right bottom)
|
||||
)
|
||||
)
|
||||
(fp_text user "${REFERENCE}"
|
||||
(at 0 2.5 0)
|
||||
(unlocked yes)
|
||||
(layer "F.Fab")
|
||||
(uuid "eee234ee-4723-4765-9be9-4675967c5341")
|
||||
(effects
|
||||
(font
|
||||
(size 1 1)
|
||||
(thickness 0.15)
|
||||
)
|
||||
)
|
||||
)
|
||||
(pad "0" thru_hole roundrect
|
||||
(at 7.62 8.02)
|
||||
(size 1.27 1.27)
|
||||
(drill 0.8)
|
||||
(layers "*.Cu" "*.Mask")
|
||||
(remove_unused_layers no)
|
||||
(roundrect_rratio 0.15)
|
||||
(uuid "5b008f66-97e2-4ec5-99fa-9b4fc5a37559")
|
||||
)
|
||||
(pad "1" thru_hole roundrect
|
||||
(at 7.62 5.48)
|
||||
(size 1.27 1.27)
|
||||
(drill 0.8)
|
||||
(layers "*.Cu" "*.Mask")
|
||||
(remove_unused_layers no)
|
||||
(roundrect_rratio 0.15)
|
||||
(uuid "0d03f4e1-7846-43fa-8650-6b5f366a5b0f")
|
||||
)
|
||||
(pad "2" thru_hole roundrect
|
||||
(at 7.62 2.94)
|
||||
(size 1.27 1.27)
|
||||
(drill 0.8)
|
||||
(layers "*.Cu" "*.Mask")
|
||||
(remove_unused_layers no)
|
||||
(roundrect_rratio 0.15)
|
||||
(uuid "1285ffc7-fadc-4fa1-9253-e3de9b3d5ab7")
|
||||
)
|
||||
(pad "3" thru_hole roundrect
|
||||
(at 7.62 0.4)
|
||||
(size 1.27 1.27)
|
||||
(drill 0.8)
|
||||
(layers "*.Cu" "*.Mask")
|
||||
(remove_unused_layers no)
|
||||
(roundrect_rratio 0.15)
|
||||
(uuid "86b4d665-88d1-4d9c-8bd0-68b22cc6ee55")
|
||||
)
|
||||
(pad "4" thru_hole roundrect
|
||||
(at 7.62 -2.14)
|
||||
(size 1.27 1.27)
|
||||
(drill 0.8)
|
||||
(layers "*.Cu" "*.Mask")
|
||||
(remove_unused_layers no)
|
||||
(roundrect_rratio 0.15)
|
||||
(uuid "06377a08-c5aa-4a85-bef7-e7e4ac2a77a4")
|
||||
)
|
||||
(pad "5" thru_hole roundrect
|
||||
(at -7.62 -9.76)
|
||||
(size 1.27 1.27)
|
||||
(drill 0.8)
|
||||
(layers "*.Cu" "*.Mask")
|
||||
(remove_unused_layers no)
|
||||
(roundrect_rratio 0.15)
|
||||
(uuid "f44ca30e-3e82-4e86-a30d-4de4f274d40f")
|
||||
)
|
||||
(pad "6" thru_hole roundrect
|
||||
(at -7.62 -7.22)
|
||||
(size 1.27 1.27)
|
||||
(drill 0.8)
|
||||
(layers "*.Cu" "*.Mask")
|
||||
(remove_unused_layers no)
|
||||
(roundrect_rratio 0.15)
|
||||
(uuid "a9598c26-ab62-4914-bb26-998a2b0e01e2")
|
||||
)
|
||||
(pad "7" thru_hole roundrect
|
||||
(at -7.62 -4.68)
|
||||
(size 1.27 1.27)
|
||||
(drill 0.8)
|
||||
(layers "*.Cu" "*.Mask")
|
||||
(remove_unused_layers no)
|
||||
(roundrect_rratio 0.15)
|
||||
(uuid "03cce8e4-1c17-4807-98c2-679b1d4d10cb")
|
||||
)
|
||||
(pad "8" thru_hole roundrect
|
||||
(at -7.62 -2.14)
|
||||
(size 1.27 1.27)
|
||||
(drill 0.8)
|
||||
(layers "*.Cu" "*.Mask")
|
||||
(remove_unused_layers no)
|
||||
(roundrect_rratio 0.15)
|
||||
(uuid "1f1b00b9-a67b-48f7-ae56-d51d7d7a96b6")
|
||||
)
|
||||
(pad "9" thru_hole roundrect
|
||||
(at -7.62 0.4)
|
||||
(size 1.27 1.27)
|
||||
(drill 0.8)
|
||||
(layers "*.Cu" "*.Mask")
|
||||
(remove_unused_layers no)
|
||||
(roundrect_rratio 0.15)
|
||||
(uuid "dd462c5a-7062-46c6-80bb-586c0363d8fa")
|
||||
)
|
||||
(pad "10" thru_hole roundrect
|
||||
(at -7.62 2.94)
|
||||
(size 1.27 1.27)
|
||||
(drill 0.8)
|
||||
(layers "*.Cu" "*.Mask")
|
||||
(remove_unused_layers no)
|
||||
(roundrect_rratio 0.15)
|
||||
(uuid "a0ac2c0c-f657-4821-b706-fad57dce35d4")
|
||||
)
|
||||
(pad "11" thru_hole circle
|
||||
(at 7.62 -9.76)
|
||||
(size 1.27 1.27)
|
||||
(drill 0.8)
|
||||
(layers "*.Cu" "*.Mask")
|
||||
(remove_unused_layers no)
|
||||
(thermal_bridge_angle 90)
|
||||
(uuid "ff67e290-dcc2-4cf6-aa9e-52b47e7e2505")
|
||||
)
|
||||
(pad "12" thru_hole rect
|
||||
(at 7.62 -7.22)
|
||||
(size 1.27 1.27)
|
||||
(drill 0.8)
|
||||
(layers "*.Cu" "*.Mask")
|
||||
(remove_unused_layers no)
|
||||
(uuid "9b4062d9-a81a-4feb-90ab-f52a4702dd22")
|
||||
)
|
||||
(pad "13" thru_hole circle
|
||||
(at 7.62 -4.68)
|
||||
(size 1.27 1.27)
|
||||
(drill 0.8)
|
||||
(layers "*.Cu" "*.Mask")
|
||||
(remove_unused_layers no)
|
||||
(thermal_bridge_angle 90)
|
||||
(uuid "57a0eb34-a60c-43db-ac5a-1ef89098cfe6")
|
||||
)
|
||||
(pad "20" thru_hole roundrect
|
||||
(at -7.62 5.48)
|
||||
(size 1.27 1.27)
|
||||
(drill 0.8)
|
||||
(layers "*.Cu" "*.Mask")
|
||||
(remove_unused_layers no)
|
||||
(roundrect_rratio 0.15)
|
||||
(uuid "71f1a91c-3e50-4f7e-99f2-7c3a8d8d3b13")
|
||||
)
|
||||
(pad "21" thru_hole roundrect
|
||||
(at -7.62 8.02)
|
||||
(size 1.27 1.27)
|
||||
(drill 0.8)
|
||||
(layers "*.Cu" "*.Mask")
|
||||
(remove_unused_layers no)
|
||||
(roundrect_rratio 0.15)
|
||||
(uuid "c1648a41-eada-4616-ba95-544c9aba37a1")
|
||||
)
|
||||
(zone
|
||||
(layer "F.SilkS")
|
||||
(uuid "cec382bf-3fc0-45d6-8c4b-2b379527a890")
|
||||
(hatch edge 0.5)
|
||||
(connect_pads
|
||||
(clearance 0)
|
||||
)
|
||||
(min_thickness 0.25)
|
||||
(keepout
|
||||
(tracks allowed)
|
||||
(vias allowed)
|
||||
(pads not_allowed)
|
||||
(copperpour allowed)
|
||||
(footprints not_allowed)
|
||||
)
|
||||
(placement
|
||||
(enabled no)
|
||||
(sheetname "")
|
||||
)
|
||||
(fill
|
||||
(thermal_gap 0.5)
|
||||
(thermal_bridge_width 0.5)
|
||||
(island_removal_mode 0)
|
||||
)
|
||||
(polygon
|
||||
(pts
|
||||
(xy -9 -11.5) (xy 9 -11.5) (xy 9 11.2) (xy -9 11.2)
|
||||
)
|
||||
)
|
||||
)
|
||||
(embedded_fonts no)
|
||||
)
|
||||
@@ -0,0 +1,560 @@
|
||||
(footprint "Sensair S8"
|
||||
(version 20260206)
|
||||
(generator "pcbnew")
|
||||
(generator_version "10.0")
|
||||
(layer "F.Cu")
|
||||
(property "Reference" "REF**"
|
||||
(at 0 -0.5 0)
|
||||
(unlocked yes)
|
||||
(layer "F.SilkS")
|
||||
(uuid "6a1aa33b-ac13-4328-ab4c-9a2837a7b786")
|
||||
(effects
|
||||
(font
|
||||
(size 1 1)
|
||||
(thickness 0.1)
|
||||
)
|
||||
)
|
||||
)
|
||||
(property "Value" "Sensair S8"
|
||||
(at 0 1 0)
|
||||
(unlocked yes)
|
||||
(layer "F.Fab")
|
||||
(uuid "06cc6499-d79c-44e3-8373-4a7284908d8d")
|
||||
(effects
|
||||
(font
|
||||
(size 1 1)
|
||||
(thickness 0.15)
|
||||
)
|
||||
)
|
||||
)
|
||||
(property "Datasheet" ""
|
||||
(at 0 0 0)
|
||||
(unlocked yes)
|
||||
(layer "F.Fab")
|
||||
(hide yes)
|
||||
(uuid "a871e716-4118-4539-a990-70058f982170")
|
||||
(effects
|
||||
(font
|
||||
(size 1 1)
|
||||
(thickness 0.15)
|
||||
)
|
||||
)
|
||||
)
|
||||
(property "Description" ""
|
||||
(at 0 0 0)
|
||||
(unlocked yes)
|
||||
(layer "F.Fab")
|
||||
(hide yes)
|
||||
(uuid "312aa692-905e-4aee-9da3-b2040c9f122f")
|
||||
(effects
|
||||
(font
|
||||
(size 1 1)
|
||||
(thickness 0.15)
|
||||
)
|
||||
)
|
||||
)
|
||||
(attr smd)
|
||||
(duplicate_pad_numbers_are_jumpers no)
|
||||
(fp_line
|
||||
(start -16.07 -6.32)
|
||||
(end -16.07 4.38)
|
||||
(stroke
|
||||
(width 0.1)
|
||||
(type default)
|
||||
)
|
||||
(layer "F.SilkS")
|
||||
(uuid "4e8aa03e-6790-4893-aada-93361e365177")
|
||||
)
|
||||
(fp_line
|
||||
(start -16.07 4.38)
|
||||
(end -13.1 4.38)
|
||||
(stroke
|
||||
(width 0.1)
|
||||
(type default)
|
||||
)
|
||||
(layer "F.SilkS")
|
||||
(uuid "b65618df-0040-40f4-9aa0-bc8b12ddc83e")
|
||||
)
|
||||
(fp_line
|
||||
(start -14.1 -10.5)
|
||||
(end 14.1 -10.5)
|
||||
(stroke
|
||||
(width 0.1)
|
||||
(type default)
|
||||
)
|
||||
(layer "F.SilkS")
|
||||
(uuid "dcd5cafb-a52b-4564-841b-de174ea93023")
|
||||
)
|
||||
(fp_line
|
||||
(start -14.1 -6.3)
|
||||
(end -14.1 -10.5)
|
||||
(stroke
|
||||
(width 0.1)
|
||||
(type default)
|
||||
)
|
||||
(layer "F.SilkS")
|
||||
(uuid "131dbcfd-316e-4547-9747-daa82335b740")
|
||||
)
|
||||
(fp_line
|
||||
(start -14.1 10.5)
|
||||
(end -14.1 4.35)
|
||||
(stroke
|
||||
(width 0.1)
|
||||
(type default)
|
||||
)
|
||||
(layer "F.SilkS")
|
||||
(uuid "a1582b3d-4850-4b2c-bbff-80654db3818f")
|
||||
)
|
||||
(fp_line
|
||||
(start -13.1 -9.5)
|
||||
(end -13.1 -6.32)
|
||||
(stroke
|
||||
(width 0.1)
|
||||
(type default)
|
||||
)
|
||||
(layer "F.SilkS")
|
||||
(uuid "e789a32b-a120-47e4-bdf7-82136e1b4332")
|
||||
)
|
||||
(fp_line
|
||||
(start -13.1 -6.32)
|
||||
(end -16.07 -6.32)
|
||||
(stroke
|
||||
(width 0.1)
|
||||
(type default)
|
||||
)
|
||||
(layer "F.SilkS")
|
||||
(uuid "e49eb3f6-7bc1-4532-ab9c-fda5100fbfef")
|
||||
)
|
||||
(fp_line
|
||||
(start -13.1 4.38)
|
||||
(end -13.1 9.5)
|
||||
(stroke
|
||||
(width 0.1)
|
||||
(type default)
|
||||
)
|
||||
(layer "F.SilkS")
|
||||
(uuid "92fbbe05-d739-47f2-ba98-b81d043b3913")
|
||||
)
|
||||
(fp_line
|
||||
(start -13.1 9.5)
|
||||
(end 13.1 9.5)
|
||||
(stroke
|
||||
(width 0.1)
|
||||
(type default)
|
||||
)
|
||||
(layer "F.SilkS")
|
||||
(uuid "3c21cf21-4ce1-452a-9ee0-85b2018ca42e")
|
||||
)
|
||||
(fp_line
|
||||
(start 13.1 -9.5)
|
||||
(end -13.1 -9.5)
|
||||
(stroke
|
||||
(width 0.1)
|
||||
(type default)
|
||||
)
|
||||
(layer "F.SilkS")
|
||||
(uuid "c87c5f56-a181-4aae-9062-efb5a43c7f78")
|
||||
)
|
||||
(fp_line
|
||||
(start 13.1 -6.32)
|
||||
(end 13.1 -9.5)
|
||||
(stroke
|
||||
(width 0.1)
|
||||
(type default)
|
||||
)
|
||||
(layer "F.SilkS")
|
||||
(uuid "b6e22611-1fdf-4210-9e25-ccf0dc7c8695")
|
||||
)
|
||||
(fp_line
|
||||
(start 13.1 6.88)
|
||||
(end 16.07 6.88)
|
||||
(stroke
|
||||
(width 0.1)
|
||||
(type default)
|
||||
)
|
||||
(layer "F.SilkS")
|
||||
(uuid "4a49cf34-3e04-4eb5-ab6c-3959b6522259")
|
||||
)
|
||||
(fp_line
|
||||
(start 13.1 9.5)
|
||||
(end 13.1 6.88)
|
||||
(stroke
|
||||
(width 0.1)
|
||||
(type default)
|
||||
)
|
||||
(layer "F.SilkS")
|
||||
(uuid "1cad9a7c-9f9e-4885-8112-4b1a8556a686")
|
||||
)
|
||||
(fp_line
|
||||
(start 14.1 -10.5)
|
||||
(end 14.1 -6.3)
|
||||
(stroke
|
||||
(width 0.1)
|
||||
(type default)
|
||||
)
|
||||
(layer "F.SilkS")
|
||||
(uuid "8adfc9f6-a472-457d-8a50-16adae10c890")
|
||||
)
|
||||
(fp_line
|
||||
(start 14.1 -6.3)
|
||||
(end 14.1 -6.35)
|
||||
(stroke
|
||||
(width 0.1)
|
||||
(type default)
|
||||
)
|
||||
(layer "F.SilkS")
|
||||
(uuid "b3fefa0f-a0ed-4efa-b1db-ed8887a94109")
|
||||
)
|
||||
(fp_line
|
||||
(start 14.1 6.9)
|
||||
(end 14.1 10.5)
|
||||
(stroke
|
||||
(width 0.1)
|
||||
(type default)
|
||||
)
|
||||
(layer "F.SilkS")
|
||||
(uuid "49e93a5f-19c8-4fcc-9949-0418c7289965")
|
||||
)
|
||||
(fp_line
|
||||
(start 14.1 10.5)
|
||||
(end -14.1 10.5)
|
||||
(stroke
|
||||
(width 0.1)
|
||||
(type default)
|
||||
)
|
||||
(layer "F.SilkS")
|
||||
(uuid "e4c489d9-f45f-4ebc-9f6e-ca2617467e16")
|
||||
)
|
||||
(fp_line
|
||||
(start 16.07 -6.32)
|
||||
(end 13.1 -6.32)
|
||||
(stroke
|
||||
(width 0.1)
|
||||
(type default)
|
||||
)
|
||||
(layer "F.SilkS")
|
||||
(uuid "bd80a5a2-fceb-4a52-a626-92ff21a55091")
|
||||
)
|
||||
(fp_line
|
||||
(start 16.07 6.88)
|
||||
(end 16.07 -6.32)
|
||||
(stroke
|
||||
(width 0.1)
|
||||
(type default)
|
||||
)
|
||||
(layer "F.SilkS")
|
||||
(uuid "b992e8a2-db19-41e3-b652-6e3abec9f8ff")
|
||||
)
|
||||
(fp_rect
|
||||
(start -14.1 -10.5)
|
||||
(end 14.1 10.5)
|
||||
(stroke
|
||||
(width 0.05)
|
||||
(type default)
|
||||
)
|
||||
(fill no)
|
||||
(layer "Edge.Cuts")
|
||||
(uuid "928181a3-bbad-4131-88a8-f282e4de80be")
|
||||
)
|
||||
(fp_text user "5V"
|
||||
(at -16.2 -4.1 0)
|
||||
(unlocked yes)
|
||||
(layer "F.SilkS")
|
||||
(uuid "402112dc-8b99-4674-a69b-f7ee80303a28")
|
||||
(effects
|
||||
(font
|
||||
(size 1 1)
|
||||
(thickness 0.1)
|
||||
)
|
||||
(justify right bottom)
|
||||
)
|
||||
)
|
||||
(fp_text user "GND"
|
||||
(at -16.2 -1.6 0)
|
||||
(unlocked yes)
|
||||
(layer "F.SilkS")
|
||||
(uuid "442a69ea-290d-4fcb-8b60-b60ddad287c9")
|
||||
(effects
|
||||
(font
|
||||
(size 1 1)
|
||||
(thickness 0.1)
|
||||
)
|
||||
(justify right bottom)
|
||||
)
|
||||
)
|
||||
(fp_text user "Alarm_OC"
|
||||
(at -16.2 1 0)
|
||||
(unlocked yes)
|
||||
(layer "F.SilkS")
|
||||
(uuid "cd75fd21-283e-4b07-8004-c0672209ae86")
|
||||
(effects
|
||||
(font
|
||||
(size 1 1)
|
||||
(thickness 0.1)
|
||||
)
|
||||
(justify right bottom)
|
||||
)
|
||||
)
|
||||
(fp_text user "PWM_1kHz"
|
||||
(at -16.2 3.5 0)
|
||||
(unlocked yes)
|
||||
(layer "F.SilkS")
|
||||
(uuid "0f42750a-0f11-4bc3-b4fe-a7361bc59634")
|
||||
(effects
|
||||
(font
|
||||
(size 1 1)
|
||||
(thickness 0.1)
|
||||
)
|
||||
(justify right bottom)
|
||||
)
|
||||
)
|
||||
(fp_text user "DVCC_out"
|
||||
(at 16.2 -4 0)
|
||||
(unlocked yes)
|
||||
(layer "F.SilkS")
|
||||
(uuid "f48ba3bd-c514-4fb0-a4e1-b445464469ea")
|
||||
(effects
|
||||
(font
|
||||
(size 1 1)
|
||||
(thickness 0.1)
|
||||
)
|
||||
(justify left bottom)
|
||||
)
|
||||
)
|
||||
(fp_text user "UART_RxD"
|
||||
(at 16.2 -1.62 0)
|
||||
(unlocked yes)
|
||||
(layer "F.SilkS")
|
||||
(uuid "a32492c1-a233-45a5-ae8f-9e5ccab89e27")
|
||||
(effects
|
||||
(font
|
||||
(size 1 1)
|
||||
(thickness 0.1)
|
||||
)
|
||||
(justify left bottom)
|
||||
)
|
||||
)
|
||||
(fp_text user "UART_TxD"
|
||||
(at 16.2 0.92 0)
|
||||
(unlocked yes)
|
||||
(layer "F.SilkS")
|
||||
(uuid "1435641f-cc62-49e4-8a04-fcae5288578e")
|
||||
(effects
|
||||
(font
|
||||
(size 1 1)
|
||||
(thickness 0.1)
|
||||
)
|
||||
(justify left bottom)
|
||||
)
|
||||
)
|
||||
(fp_text user "UART_R/T"
|
||||
(at 16.2 3.46 0)
|
||||
(unlocked yes)
|
||||
(layer "F.SilkS")
|
||||
(uuid "4132d630-c033-4590-bf83-16dae8ec71ad")
|
||||
(effects
|
||||
(font
|
||||
(size 1 1)
|
||||
(thickness 0.1)
|
||||
)
|
||||
(justify left bottom)
|
||||
)
|
||||
)
|
||||
(fp_text user "bCal_in"
|
||||
(at 16.2 6 0)
|
||||
(unlocked yes)
|
||||
(layer "F.SilkS")
|
||||
(uuid "f27447c0-7e80-4763-88c3-54da18a9077e")
|
||||
(effects
|
||||
(font
|
||||
(size 1 1)
|
||||
(thickness 0.1)
|
||||
)
|
||||
(justify left bottom)
|
||||
)
|
||||
)
|
||||
(fp_text user "${REFERENCE}"
|
||||
(at 0 2.5 0)
|
||||
(unlocked yes)
|
||||
(layer "F.Fab")
|
||||
(uuid "0ae51aaa-ef31-441a-810e-76550cc6137a")
|
||||
(effects
|
||||
(font
|
||||
(size 1 1)
|
||||
(thickness 0.15)
|
||||
)
|
||||
)
|
||||
)
|
||||
(pad "0" thru_hole roundrect
|
||||
(at -14.85 -4.78)
|
||||
(size 1.27 1.27)
|
||||
(drill 0.8)
|
||||
(layers "*.Cu" "*.Mask")
|
||||
(remove_unused_layers no)
|
||||
(roundrect_rratio 0.15)
|
||||
(uuid "d0a11e81-5ba6-4d93-8991-9392d7824a8a")
|
||||
)
|
||||
(pad "1" thru_hole roundrect
|
||||
(at -14.85 -2.24)
|
||||
(size 1.27 1.27)
|
||||
(drill 0.8)
|
||||
(layers "*.Cu" "*.Mask")
|
||||
(remove_unused_layers no)
|
||||
(roundrect_rratio 0.15)
|
||||
(uuid "f138287e-1d7c-460f-8b13-47e58ea5b685")
|
||||
)
|
||||
(pad "2" thru_hole roundrect
|
||||
(at -14.85 0.3)
|
||||
(size 1.27 1.27)
|
||||
(drill 0.8)
|
||||
(layers "*.Cu" "*.Mask")
|
||||
(remove_unused_layers no)
|
||||
(roundrect_rratio 0.15)
|
||||
(uuid "12a1e03d-e2d3-4e01-bdd9-9694f3192002")
|
||||
)
|
||||
(pad "3" thru_hole roundrect
|
||||
(at -14.85 2.84)
|
||||
(size 1.27 1.27)
|
||||
(drill 0.8)
|
||||
(layers "*.Cu" "*.Mask")
|
||||
(remove_unused_layers no)
|
||||
(roundrect_rratio 0.15)
|
||||
(uuid "88ec7a17-e3bc-4f2a-ad7b-feb43dbb8b31")
|
||||
)
|
||||
(pad "4" thru_hole roundrect
|
||||
(at 14.85 -4.78)
|
||||
(size 1.27 1.27)
|
||||
(drill 0.8)
|
||||
(layers "*.Cu" "*.Mask")
|
||||
(remove_unused_layers no)
|
||||
(roundrect_rratio 0.15)
|
||||
(uuid "4486bfdf-7a75-4a99-871a-3f8c382b2f0e")
|
||||
)
|
||||
(pad "5" thru_hole roundrect
|
||||
(at 14.85 -2.24)
|
||||
(size 1.27 1.27)
|
||||
(drill 0.8)
|
||||
(layers "*.Cu" "*.Mask")
|
||||
(remove_unused_layers no)
|
||||
(roundrect_rratio 0.15)
|
||||
(uuid "da005d43-50b1-4d73-ba59-e733cef40f48")
|
||||
)
|
||||
(pad "6" thru_hole roundrect
|
||||
(at 14.85 0.3)
|
||||
(size 1.27 1.27)
|
||||
(drill 0.8)
|
||||
(layers "*.Cu" "*.Mask")
|
||||
(remove_unused_layers no)
|
||||
(roundrect_rratio 0.15)
|
||||
(uuid "f739bcc0-1df7-41de-bf15-cc0f60922108")
|
||||
)
|
||||
(pad "7" thru_hole roundrect
|
||||
(at 14.85 2.84)
|
||||
(size 1.27 1.27)
|
||||
(drill 0.8)
|
||||
(layers "*.Cu" "*.Mask")
|
||||
(remove_unused_layers no)
|
||||
(roundrect_rratio 0.15)
|
||||
(uuid "dc83bfdb-ed5f-4cd6-8258-e2805fb8c181")
|
||||
)
|
||||
(pad "8" thru_hole roundrect
|
||||
(at 14.85 5.38)
|
||||
(size 1.27 1.27)
|
||||
(drill 0.8)
|
||||
(layers "*.Cu" "*.Mask")
|
||||
(remove_unused_layers no)
|
||||
(roundrect_rratio 0.15)
|
||||
(uuid "1f27dbad-eb78-4187-ac42-2491ece9b3ec")
|
||||
)
|
||||
(zone
|
||||
(layer "F.SilkS")
|
||||
(uuid "14708e9f-d985-43ab-a9ab-af419031a345")
|
||||
(hatch edge 0.5)
|
||||
(connect_pads
|
||||
(clearance 0)
|
||||
)
|
||||
(min_thickness 0.25)
|
||||
(keepout
|
||||
(tracks allowed)
|
||||
(vias allowed)
|
||||
(pads not_allowed)
|
||||
(copperpour allowed)
|
||||
(footprints not_allowed)
|
||||
)
|
||||
(placement
|
||||
(enabled no)
|
||||
(sheetname "")
|
||||
)
|
||||
(fill
|
||||
(thermal_gap 0.5)
|
||||
(thermal_bridge_width 0.5)
|
||||
(island_removal_mode 0)
|
||||
)
|
||||
(polygon
|
||||
(pts
|
||||
(xy -16.07 -6.32) (xy -13.1 -6.32) (xy -13.1 4.38) (xy -16.07 4.38)
|
||||
)
|
||||
)
|
||||
)
|
||||
(zone
|
||||
(layer "F.SilkS")
|
||||
(uuid "d16a9ebf-29d3-402a-8944-d267a36daa01")
|
||||
(hatch edge 0.5)
|
||||
(connect_pads
|
||||
(clearance 0)
|
||||
)
|
||||
(min_thickness 0.25)
|
||||
(keepout
|
||||
(tracks allowed)
|
||||
(vias allowed)
|
||||
(pads not_allowed)
|
||||
(copperpour allowed)
|
||||
(footprints not_allowed)
|
||||
)
|
||||
(placement
|
||||
(enabled no)
|
||||
(sheetname "")
|
||||
)
|
||||
(fill
|
||||
(thermal_gap 0.5)
|
||||
(thermal_bridge_width 0.5)
|
||||
(island_removal_mode 0)
|
||||
)
|
||||
(polygon
|
||||
(pts
|
||||
(xy -13.1 -9.5) (xy 13.1 -9.5) (xy 13.1 9.5) (xy -13.1 9.5)
|
||||
)
|
||||
)
|
||||
)
|
||||
(zone
|
||||
(layer "F.SilkS")
|
||||
(uuid "e276edeb-dee2-4a01-b436-51aa053efcf0")
|
||||
(hatch edge 0.5)
|
||||
(connect_pads
|
||||
(clearance 0)
|
||||
)
|
||||
(min_thickness 0.25)
|
||||
(keepout
|
||||
(tracks allowed)
|
||||
(vias allowed)
|
||||
(pads not_allowed)
|
||||
(copperpour allowed)
|
||||
(footprints not_allowed)
|
||||
)
|
||||
(placement
|
||||
(enabled no)
|
||||
(sheetname "")
|
||||
)
|
||||
(fill
|
||||
(thermal_gap 0.5)
|
||||
(thermal_bridge_width 0.5)
|
||||
(island_removal_mode 0)
|
||||
)
|
||||
(polygon
|
||||
(pts
|
||||
(xy 13.1 -6.32) (xy 16.07 -6.32) (xy 16.07 6.88) (xy 13.1 6.88)
|
||||
)
|
||||
)
|
||||
)
|
||||
(embedded_fonts no)
|
||||
)
|
||||
@@ -0,0 +1,31 @@
|
||||
# Firmware
|
||||
|
||||
ESPHome configuration for the ESP32-C3 CO₂ & environment sensor board.
|
||||
|
||||
## Target
|
||||
|
||||
| Item | Value |
|
||||
|---|---|
|
||||
| Chip | ESP32-C3 (RISC-V, single core, Wi-Fi + BLE) |
|
||||
| Framework | ESPHome (`esp32` platform, `framework: esp-idf` or `arduino`) |
|
||||
| Board | this project's board, flashed via the module's UART/USB boot pins |
|
||||
|
||||
## Peripherals
|
||||
|
||||
| Peripheral | Bus | Notes |
|
||||
|---|---|---|
|
||||
| Sensirion S8 (NDIR CO₂) | UART, 9600 baud 8N1 | needs 5 V supply, ~30 s preheat; `bCal_in` starts a manual background calibration |
|
||||
| BME280 (T / RH / P) | I²C, address `0x76` (some breakouts `0x77`) | powered from the module's 3.3 V output; pull-ups come from the breakout |
|
||||
| SW1 | GPIO, active low with 1 kΩ / 100 nF RC debounce | calibration button |
|
||||
|
||||
## Add here
|
||||
|
||||
- `esp-sensair.yaml` — the ESPHome configuration actually flashed to the board
|
||||
- `secrets.yaml` — **do not commit** (Wi-Fi credentials, Home Assistant token); keep
|
||||
`secrets.yaml.example` with placeholders
|
||||
- flashing notes: `esptool` / `esphome flash`, boot-mode entry on the module
|
||||
|
||||
## Home Assistant
|
||||
|
||||
The device is exposed as native ESPHome entities: `co2`, `temperature`, `relative_humidity`,
|
||||
`pressure`, plus the calibration button as a sensor event.
|
||||
@@ -0,0 +1,4 @@
|
||||
(fp_lib_table
|
||||
(version 7)
|
||||
(lib (name "esp_sensair_stuff") (type "KiCad") (uri "${KIPRJMOD}/esp_sensair_stuff.pretty") (options "") (descr ""))
|
||||
)
|
||||
File diff suppressed because it is too large.
Load diff
@@ -0,0 +1,15 @@
|
||||
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
@@ -0,0 +1,34 @@
|
||||
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
@@ -0,0 +1,6 @@
|
||||
M48
|
||||
INCH,TZ
|
||||
%
|
||||
G90
|
||||
G05
|
||||
M30
|
||||
@@ -0,0 +1,51 @@
|
||||
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
|
||||
@@ -0,0 +1,147 @@
|
||||
{
|
||||
"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.
@@ -0,0 +1,13 @@
|
||||
Photographs of the assembled board.
|
||||
|
||||
Suggested shots for the README (top-down, evenly lit, plain background, 1600 px wide):
|
||||
|
||||
- `top.jpg` assembled board, front side, all parts visible
|
||||
- `bottom.jpg` solder side
|
||||
- `installed.jpg` board in its final location / enclosure
|
||||
- `running.jpg` Home Assistant dashboard showing live values
|
||||
|
||||
Add them to the README once taken:
|
||||
|
||||

|
||||

|
||||
Reference in new issue
Block a user