ESP32-S3 Sensor Node L2.1 — schematic ERC 0, PCB outline+placement, README
This commit is contained in:
10
.gitignore
vendored
Normal file
10
.gitignore
vendored
Normal file
@@ -0,0 +1,10 @@
|
||||
*.bak
|
||||
*.mcpbak
|
||||
.history/
|
||||
.mcp-backups/
|
||||
analysis/
|
||||
*.dsn
|
||||
*.ses
|
||||
*-erc.rpt
|
||||
*-drc.rpt
|
||||
drc_violations*
|
||||
80
README.md
Normal file
80
README.md
Normal file
@@ -0,0 +1,80 @@
|
||||
# ESP32-S3 Sensor Node — L2.1 Training Exercise
|
||||
|
||||
## Project Setup
|
||||
|
||||
1. **Open in KiCad 10.0+** — File → Open Project → `/Users/nearxos/Documents/KiCad/10.0/esp32-s3-sensor-node`
|
||||
2. **Schematic** — Already clean (ERC 0). View in Eeschema.
|
||||
3. **PCB Layout** — Needs routing. Create board in Pcbnew.
|
||||
|
||||
## PCB Spec
|
||||
- **Size:** 65 × 40mm, 2-layer
|
||||
- **Stackup:** 1.6mm FR4, 1oz copper, HASL
|
||||
- **Design rules:** trace/space 0.15mm, drill 0.3mm, annular 0.15mm
|
||||
- **Target fab:** JLCPCB / PCBWay standard
|
||||
|
||||
## Component Placement
|
||||
|
||||
```
|
||||
Board: (0,0) bottom-left, (65,40) top-right
|
||||
|
||||
Left edge (x≈5-15):
|
||||
J1 USB-C @ (7, 20) — left edge, USB mating face outward
|
||||
R7 CC1 pull-down @ (11, 28)
|
||||
R8 CC2 pull-down @ (11, 25)
|
||||
|
||||
Lower-left (x≈15-25, y≈3-15):
|
||||
J3 PROG header @ (25, 3) — bottom edge
|
||||
R3 IO0 pull-up @ (16, 7)
|
||||
R4 IO12 pull-down @ (16, 12)
|
||||
|
||||
Center-left (x≈20-30):
|
||||
U2 AMS1117-3.3 @ (20, 20) — regulator
|
||||
C5 10µF input @ (24, 17) — near U2 pin 3 (VI)
|
||||
C6 10µF output @ (24, 23) — near U2 pin 2 (VO)
|
||||
|
||||
Center (x≈27-38):
|
||||
R2 EN pull-up @ (27, 32)
|
||||
C4 EN cap @ (26, 35)
|
||||
C1-C3 decoupling @ (30, 22-28) — near U1 3V3 pins
|
||||
U1 ESP32-S3 @ (38, 20) — main module
|
||||
|
||||
Right side (x≈48-58):
|
||||
R5 SDA pull-up @ (48, 24)
|
||||
R6 SCL pull-up @ (48, 22)
|
||||
J2 I2C connector @ (56, 20) — right edge
|
||||
D1 Status LED @ (55, 34) — top-right edge
|
||||
R1 LED resistor @ (55, 30)
|
||||
```
|
||||
|
||||
## Antenna Keepout
|
||||
- **Zone:** x > 46mm, y > 28mm (top-right corner)
|
||||
- No copper, no traces, no components in this area
|
||||
- The ESP32-S3-WROOM-1 module has its PCB antenna at the top-right corner
|
||||
|
||||
## Routing Order
|
||||
1. **USB differential pair** — USB_D_P / USB_D_N: 90Ω impedance, length-matched
|
||||
- Width: ~0.3mm on 1.6mm FR4 (calc with fab's tool)
|
||||
- Gap: ~0.15mm
|
||||
- Route on top layer, GND reference on bottom
|
||||
2. **3V3 power** — 0.5mm traces from U2 VO to U1 3V3 pin + all 3V3 nodes
|
||||
3. **VBUS power** — 0.5mm from J1 to U2 VI
|
||||
4. **GND** — Copper pours on both layers with stitching vias
|
||||
5. **I2C** — SDA/SCL routed together, away from noisy traces
|
||||
6. **UART** — RXD0/TXD0 to J3
|
||||
7. **Strapping** — EN, IO0, IO12 to pull resistors
|
||||
8. **LED** — IO2_LED through R1 to D1
|
||||
|
||||
## GND Pour Strategy
|
||||
- **B.Cu (bottom):** Full copper pour, entire board area
|
||||
- **F.Cu (top):** Full copper pour EXCEPT antenna keepout zone
|
||||
- **Antenna keepout:** Keepout zone polygon on both layers (no copper)
|
||||
- **Stitching vias:** Perimeter every 5mm, plus around module GND pads
|
||||
|
||||
## Files
|
||||
| File | Description |
|
||||
|------|-------------|
|
||||
| `*.kicad_sch` | Schematic (ERC 0) |
|
||||
| `*.kicad_pcb` | PCB layout (empty, needs routing) |
|
||||
| `*.kicad_pro` | Project file |
|
||||
| `gen_schematic.py` | Python schematic generator |
|
||||
| `gen_pcb.py` | Python PCB generator (outline + placement) |
|
||||
276
esp32-s3-sensor-node.kicad_pcb
Normal file
276
esp32-s3-sensor-node.kicad_pcb
Normal file
@@ -0,0 +1,276 @@
|
||||
(kicad_pcb
|
||||
(version 20260206)
|
||||
(generator "pcbnew")
|
||||
(generator_version "10.0")
|
||||
(general
|
||||
(thickness 1.6)
|
||||
(legacy_teardrops no)
|
||||
)
|
||||
(paper "A4")
|
||||
(layers
|
||||
(0 "F.Cu" signal)
|
||||
(2 "B.Cu" signal)
|
||||
(13 "F.Paste" user)
|
||||
(15 "B.Paste" user)
|
||||
(5 "F.SilkS" user)
|
||||
(7 "B.SilkS" user)
|
||||
(1 "F.Mask" user)
|
||||
(3 "B.Mask" user)
|
||||
(25 "Edge.Cuts" user)
|
||||
(31 "F.CrtYd" user)
|
||||
(29 "B.CrtYd" user)
|
||||
(35 "F.Fab" user)
|
||||
(33 "B.Fab" user)
|
||||
)
|
||||
(setup
|
||||
(pad_to_mask_clearance 0)
|
||||
(allow_soldermask_bridges_in_footprints no)
|
||||
(copper_edge_clearance 0.3)
|
||||
)
|
||||
(nets
|
||||
(net 0 "GND")
|
||||
(net 1 "3V3")
|
||||
(net 2 "VBUS")
|
||||
(net 3 "EN")
|
||||
(net 4 "IO0")
|
||||
(net 5 "IO12")
|
||||
(net 6 "SDA")
|
||||
(net 7 "SCL")
|
||||
(net 8 "USB_D_P")
|
||||
(net 9 "USB_D_N")
|
||||
(net 10 "CC1")
|
||||
(net 11 "CC2")
|
||||
(net 12 "IO2_LED")
|
||||
(net 13 "D1_A")
|
||||
(net 14 "RXD0")
|
||||
(net 15 "TXD0")
|
||||
)
|
||||
(net_class "Default" (clearance 0.15) (trace_width 0.2) (via_dia 0.6) (via_drill 0.3) (add_net "*"))
|
||||
(net_class "POWER" (clearance 0.25) (trace_width 0.5) (via_dia 0.8) (via_drill 0.4) (add_net "3V3") (add_net "VBUS"))
|
||||
(polygon (layer "Edge.Cuts")
|
||||
(pts
|
||||
(xy 0 0)
|
||||
(xy 65.0 0)
|
||||
(xy 65.0 40.0)
|
||||
(xy 0 40.0)
|
||||
)
|
||||
)
|
||||
(footprint ""Connector_USB:USB_C_Receptacle_USB2.0_16P""
|
||||
(layer "F.Cu")
|
||||
(at 7.000 20.000 0)
|
||||
(descr "J1")
|
||||
(property "Reference" "J1" (at 7.000 17.000) (layer "F.SilkS") (effects (font (size 1 1) (thickness 0.15))))
|
||||
(property "Value" "J1" (at 7.000 23.000) (layer "F.Fab") (effects (font (size 1 1) (thickness 0.15))))
|
||||
(pad "SH" smd rect (at -3.000 0.000 0) (size 2.000 2.000) (layers "F.Cu" "F.Paste" "F.Mask") (net 0))
|
||||
(pad "A1" smd rect (at -2.000 5.000 0) (size 1.500 1.500) (layers "F.Cu" "F.Paste" "F.Mask") (net 0))
|
||||
(pad "A4" smd rect (at -2.000 -5.000 0) (size 1.500 1.500) (layers "F.Cu" "F.Paste" "F.Mask") (net 2))
|
||||
(pad "A5" smd rect (at -2.000 -3.000 0) (size 1.500 0.800) (layers "F.Cu" "F.Paste" "F.Mask") (net 10))
|
||||
(pad "A6" smd rect (at -2.000 -1.000 0) (size 1.500 0.800) (layers "F.Cu" "F.Paste" "F.Mask") (net 8))
|
||||
(pad "A7" smd rect (at -2.000 1.000 0) (size 1.500 0.800) (layers "F.Cu" "F.Paste" "F.Mask") (net 9))
|
||||
(pad "B5" smd rect (at -2.000 3.000 0) (size 1.500 0.800) (layers "F.Cu" "F.Paste" "F.Mask") (net 11))
|
||||
(pad "B6" smd rect (at -2.000 0.000 0) (size 1.500 0.800) (layers "F.Cu" "F.Paste" "F.Mask") (net 8))
|
||||
(pad "B7" smd rect (at -2.000 2.000 0) (size 1.500 0.800) (layers "F.Cu" "F.Paste" "F.Mask") (net 9))
|
||||
)
|
||||
(footprint ""Package_TO_SOT_SMD:SOT-223-3Lead_TabPin2""
|
||||
(layer "F.Cu")
|
||||
(at 20.000 20.000 0)
|
||||
(descr "U2")
|
||||
(property "Reference" "U2" (at 20.000 17.000) (layer "F.SilkS") (effects (font (size 1 1) (thickness 0.15))))
|
||||
(property "Value" "U2" (at 20.000 23.000) (layer "F.Fab") (effects (font (size 1 1) (thickness 0.15))))
|
||||
(pad "1" smd rect (at -2.300 -3.000 0) (size 1.500 1.000) (layers "F.Cu" "F.Paste" "F.Mask") (net 0))
|
||||
(pad "2" smd rect (at 0.000 3.000 0) (size 2.500 2.500) (layers "F.Cu" "F.Paste" "F.Mask") (net 1))
|
||||
(pad "3" smd rect (at 0.000 -3.000 0) (size 2.500 2.500) (layers "F.Cu" "F.Paste" "F.Mask") (net 2))
|
||||
)
|
||||
(footprint ""RF_Module:ESP32-S3-WROOM-1""
|
||||
(layer "F.Cu")
|
||||
(at 38.000 20.000 0)
|
||||
(descr "U1")
|
||||
(property "Reference" "U1" (at 38.000 17.000) (layer "F.SilkS") (effects (font (size 1 1) (thickness 0.15))))
|
||||
(property "Value" "U1" (at 38.000 23.000) (layer "F.Fab") (effects (font (size 1 1) (thickness 0.15))))
|
||||
(pad "1" smd rect (at -8.000 8.000 0) (size 1.500 1.500) (layers "F.Cu" "F.Paste" "F.Mask") (net 0))
|
||||
(pad "2" smd rect (at -8.000 -8.000 0) (size 1.500 1.500) (layers "F.Cu" "F.Paste" "F.Mask") (net 1))
|
||||
(pad "3" smd rect (at -8.000 -6.000 0) (size 1.000 1.000) (layers "F.Cu" "F.Paste" "F.Mask") (net 3))
|
||||
(pad "4" smd rect (at -8.000 -4.000 0) (size 1.000 1.000) (layers "F.Cu" "F.Paste" "F.Mask") (net 6))
|
||||
(pad "5" smd rect (at -8.000 -2.000 0) (size 1.000 1.000) (layers "F.Cu" "F.Paste" "F.Mask") (net 7))
|
||||
(pad "13" smd rect (at 8.000 -4.000 0) (size 1.000 1.000) (layers "F.Cu" "F.Paste" "F.Mask") (net 9))
|
||||
(pad "14" smd rect (at 8.000 -2.000 0) (size 1.000 1.000) (layers "F.Cu" "F.Paste" "F.Mask") (net 8))
|
||||
(pad "20" smd rect (at -8.000 4.000 0) (size 1.000 1.000) (layers "F.Cu" "F.Paste" "F.Mask") (net 5))
|
||||
(pad "27" smd rect (at -8.000 0.000 0) (size 1.000 1.000) (layers "F.Cu" "F.Paste" "F.Mask") (net 4))
|
||||
(pad "36" smd rect (at 8.000 -8.000 0) (size 1.000 1.000) (layers "F.Cu" "F.Paste" "F.Mask") (net 14))
|
||||
(pad "37" smd rect (at 8.000 -6.000 0) (size 1.000 1.000) (layers "F.Cu" "F.Paste" "F.Mask") (net 15))
|
||||
(pad "38" smd rect (at -8.000 2.000 0) (size 1.000 1.000) (layers "F.Cu" "F.Paste" "F.Mask") (net 12))
|
||||
)
|
||||
(footprint ""Connector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_Vertical""
|
||||
(layer "F.Cu")
|
||||
(at 56.000 20.000 0)
|
||||
(descr "J2")
|
||||
(property "Reference" "J2" (at 56.000 17.000) (layer "F.SilkS") (effects (font (size 1 1) (thickness 0.15))))
|
||||
(property "Value" "J2" (at 56.000 23.000) (layer "F.Fab") (effects (font (size 1 1) (thickness 0.15))))
|
||||
(pad "1" smd rect (at 0.000 3.810 0) (size 1.500 1.500) (layers "F.Cu" "F.Paste" "F.Mask") (net 1))
|
||||
(pad "2" smd rect (at 0.000 1.270 0) (size 1.500 1.500) (layers "F.Cu" "F.Paste" "F.Mask") (net 6))
|
||||
(pad "3" smd rect (at 0.000 -1.270 0) (size 1.500 1.500) (layers "F.Cu" "F.Paste" "F.Mask") (net 7))
|
||||
(pad "4" smd rect (at 0.000 -3.810 0) (size 1.500 1.500) (layers "F.Cu" "F.Paste" "F.Mask") (net 0))
|
||||
)
|
||||
(footprint ""Connector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_Vertical""
|
||||
(layer "F.Cu")
|
||||
(at 25.000 3.000 0)
|
||||
(descr "J3")
|
||||
(property "Reference" "J3" (at 25.000 0.000) (layer "F.SilkS") (effects (font (size 1 1) (thickness 0.15))))
|
||||
(property "Value" "J3" (at 25.000 6.000) (layer "F.Fab") (effects (font (size 1 1) (thickness 0.15))))
|
||||
(pad "1" smd rect (at 0.000 -3.810 0) (size 1.500 1.500) (layers "F.Cu" "F.Paste" "F.Mask") (net 0))
|
||||
(pad "2" smd rect (at 0.000 -1.270 0) (size 1.500 1.500) (layers "F.Cu" "F.Paste" "F.Mask") (net 14))
|
||||
(pad "3" smd rect (at 0.000 1.270 0) (size 1.500 1.500) (layers "F.Cu" "F.Paste" "F.Mask") (net 15))
|
||||
(pad "4" smd rect (at 0.000 3.810 0) (size 1.500 1.500) (layers "F.Cu" "F.Paste" "F.Mask") (net 1))
|
||||
)
|
||||
(footprint ""LED_SMD:LED_0603_1608Metric""
|
||||
(layer "F.Cu")
|
||||
(at 55.000 34.000 0)
|
||||
(descr "D1")
|
||||
(property "Reference" "D1" (at 55.000 31.000) (layer "F.SilkS") (effects (font (size 1 1) (thickness 0.15))))
|
||||
(property "Value" "D1" (at 55.000 37.000) (layer "F.Fab") (effects (font (size 1 1) (thickness 0.15))))
|
||||
(pad "1" smd rect (at -0.800 0.000 0) (size 0.800 0.800) (layers "F.Cu" "F.Paste" "F.Mask") (net 0))
|
||||
(pad "2" smd rect (at 0.800 0.000 0) (size 0.800 0.800) (layers "F.Cu" "F.Paste" "F.Mask") (net 13))
|
||||
)
|
||||
(footprint ""Resistor_SMD:R_0603_1608Metric""
|
||||
(layer "F.Cu")
|
||||
(at 55.000 30.000 0)
|
||||
(descr "R1")
|
||||
(property "Reference" "R1" (at 55.000 27.000) (layer "F.SilkS") (effects (font (size 1 1) (thickness 0.15))))
|
||||
(property "Value" "R1" (at 55.000 33.000) (layer "F.Fab") (effects (font (size 1 1) (thickness 0.15))))
|
||||
(pad "1" smd rect (at -0.800 0.900 0) (size 0.800 0.800) (layers "F.Cu" "F.Paste" "F.Mask") (net 12))
|
||||
(pad "2" smd rect (at -0.800 -0.900 0) (size 0.800 0.800) (layers "F.Cu" "F.Paste" "F.Mask") (net 13))
|
||||
)
|
||||
(footprint ""Resistor_SMD:R_0603_1608Metric""
|
||||
(layer "F.Cu")
|
||||
(at 27.000 32.000 0)
|
||||
(descr "R2")
|
||||
(property "Reference" "R2" (at 27.000 29.000) (layer "F.SilkS") (effects (font (size 1 1) (thickness 0.15))))
|
||||
(property "Value" "R2" (at 27.000 35.000) (layer "F.Fab") (effects (font (size 1 1) (thickness 0.15))))
|
||||
(pad "1" smd rect (at -0.800 0.900 0) (size 0.800 0.800) (layers "F.Cu" "F.Paste" "F.Mask") (net 3))
|
||||
(pad "2" smd rect (at -0.800 -0.900 0) (size 0.800 0.800) (layers "F.Cu" "F.Paste" "F.Mask") (net 1))
|
||||
)
|
||||
(footprint ""Resistor_SMD:R_0603_1608Metric""
|
||||
(layer "F.Cu")
|
||||
(at 16.000 7.000 0)
|
||||
(descr "R3")
|
||||
(property "Reference" "R3" (at 16.000 4.000) (layer "F.SilkS") (effects (font (size 1 1) (thickness 0.15))))
|
||||
(property "Value" "R3" (at 16.000 10.000) (layer "F.Fab") (effects (font (size 1 1) (thickness 0.15))))
|
||||
(pad "1" smd rect (at -0.800 0.900 0) (size 0.800 0.800) (layers "F.Cu" "F.Paste" "F.Mask") (net 4))
|
||||
(pad "2" smd rect (at -0.800 -0.900 0) (size 0.800 0.800) (layers "F.Cu" "F.Paste" "F.Mask") (net 1))
|
||||
)
|
||||
(footprint ""Resistor_SMD:R_0603_1608Metric""
|
||||
(layer "F.Cu")
|
||||
(at 16.000 12.000 0)
|
||||
(descr "R4")
|
||||
(property "Reference" "R4" (at 16.000 9.000) (layer "F.SilkS") (effects (font (size 1 1) (thickness 0.15))))
|
||||
(property "Value" "R4" (at 16.000 15.000) (layer "F.Fab") (effects (font (size 1 1) (thickness 0.15))))
|
||||
(pad "1" smd rect (at -0.800 0.900 0) (size 0.800 0.800) (layers "F.Cu" "F.Paste" "F.Mask") (net 5))
|
||||
(pad "2" smd rect (at -0.800 -0.900 0) (size 0.800 0.800) (layers "F.Cu" "F.Paste" "F.Mask") (net 0))
|
||||
)
|
||||
(footprint ""Resistor_SMD:R_0603_1608Metric""
|
||||
(layer "F.Cu")
|
||||
(at 48.000 24.000 0)
|
||||
(descr "R5")
|
||||
(property "Reference" "R5" (at 48.000 21.000) (layer "F.SilkS") (effects (font (size 1 1) (thickness 0.15))))
|
||||
(property "Value" "R5" (at 48.000 27.000) (layer "F.Fab") (effects (font (size 1 1) (thickness 0.15))))
|
||||
(pad "1" smd rect (at -0.800 0.900 0) (size 0.800 0.800) (layers "F.Cu" "F.Paste" "F.Mask") (net 6))
|
||||
(pad "2" smd rect (at -0.800 -0.900 0) (size 0.800 0.800) (layers "F.Cu" "F.Paste" "F.Mask") (net 1))
|
||||
)
|
||||
(footprint ""Resistor_SMD:R_0603_1608Metric""
|
||||
(layer "F.Cu")
|
||||
(at 48.000 22.000 0)
|
||||
(descr "R6")
|
||||
(property "Reference" "R6" (at 48.000 19.000) (layer "F.SilkS") (effects (font (size 1 1) (thickness 0.15))))
|
||||
(property "Value" "R6" (at 48.000 25.000) (layer "F.Fab") (effects (font (size 1 1) (thickness 0.15))))
|
||||
(pad "1" smd rect (at -0.800 0.900 0) (size 0.800 0.800) (layers "F.Cu" "F.Paste" "F.Mask") (net 7))
|
||||
(pad "2" smd rect (at -0.800 -0.900 0) (size 0.800 0.800) (layers "F.Cu" "F.Paste" "F.Mask") (net 1))
|
||||
)
|
||||
(footprint ""Resistor_SMD:R_0603_1608Metric""
|
||||
(layer "F.Cu")
|
||||
(at 11.000 28.000 0)
|
||||
(descr "R7")
|
||||
(property "Reference" "R7" (at 11.000 25.000) (layer "F.SilkS") (effects (font (size 1 1) (thickness 0.15))))
|
||||
(property "Value" "R7" (at 11.000 31.000) (layer "F.Fab") (effects (font (size 1 1) (thickness 0.15))))
|
||||
(pad "1" smd rect (at -0.800 0.900 0) (size 0.800 0.800) (layers "F.Cu" "F.Paste" "F.Mask") (net 10))
|
||||
(pad "2" smd rect (at -0.800 -0.900 0) (size 0.800 0.800) (layers "F.Cu" "F.Paste" "F.Mask") (net 0))
|
||||
)
|
||||
(footprint ""Resistor_SMD:R_0603_1608Metric""
|
||||
(layer "F.Cu")
|
||||
(at 11.000 25.000 0)
|
||||
(descr "R8")
|
||||
(property "Reference" "R8" (at 11.000 22.000) (layer "F.SilkS") (effects (font (size 1 1) (thickness 0.15))))
|
||||
(property "Value" "R8" (at 11.000 28.000) (layer "F.Fab") (effects (font (size 1 1) (thickness 0.15))))
|
||||
(pad "1" smd rect (at -0.800 0.900 0) (size 0.800 0.800) (layers "F.Cu" "F.Paste" "F.Mask") (net 11))
|
||||
(pad "2" smd rect (at -0.800 -0.900 0) (size 0.800 0.800) (layers "F.Cu" "F.Paste" "F.Mask") (net 0))
|
||||
)
|
||||
(footprint ""Capacitor_SMD:C_0603_1608Metric""
|
||||
(layer "F.Cu")
|
||||
(at 30.000 28.000 0)
|
||||
(descr "C1")
|
||||
(property "Reference" "C1" (at 30.000 25.000) (layer "F.SilkS") (effects (font (size 1 1) (thickness 0.15))))
|
||||
(property "Value" "C1" (at 30.000 31.000) (layer "F.Fab") (effects (font (size 1 1) (thickness 0.15))))
|
||||
(pad "1" smd rect (at -0.800 0.900 0) (size 0.800 0.800) (layers "F.Cu" "F.Paste" "F.Mask") (net 1))
|
||||
(pad "2" smd rect (at -0.800 -0.900 0) (size 0.800 0.800) (layers "F.Cu" "F.Paste" "F.Mask") (net 0))
|
||||
)
|
||||
(footprint ""Capacitor_SMD:C_0603_1608Metric""
|
||||
(layer "F.Cu")
|
||||
(at 30.000 25.000 0)
|
||||
(descr "C2")
|
||||
(property "Reference" "C2" (at 30.000 22.000) (layer "F.SilkS") (effects (font (size 1 1) (thickness 0.15))))
|
||||
(property "Value" "C2" (at 30.000 28.000) (layer "F.Fab") (effects (font (size 1 1) (thickness 0.15))))
|
||||
(pad "1" smd rect (at -0.800 0.900 0) (size 0.800 0.800) (layers "F.Cu" "F.Paste" "F.Mask") (net 1))
|
||||
(pad "2" smd rect (at -0.800 -0.900 0) (size 0.800 0.800) (layers "F.Cu" "F.Paste" "F.Mask") (net 0))
|
||||
)
|
||||
(footprint ""Capacitor_SMD:C_0603_1608Metric""
|
||||
(layer "F.Cu")
|
||||
(at 30.000 22.000 0)
|
||||
(descr "C3")
|
||||
(property "Reference" "C3" (at 30.000 19.000) (layer "F.SilkS") (effects (font (size 1 1) (thickness 0.15))))
|
||||
(property "Value" "C3" (at 30.000 25.000) (layer "F.Fab") (effects (font (size 1 1) (thickness 0.15))))
|
||||
(pad "1" smd rect (at -0.800 0.900 0) (size 0.800 0.800) (layers "F.Cu" "F.Paste" "F.Mask") (net 1))
|
||||
(pad "2" smd rect (at -0.800 -0.900 0) (size 0.800 0.800) (layers "F.Cu" "F.Paste" "F.Mask") (net 0))
|
||||
)
|
||||
(footprint ""Capacitor_SMD:C_0603_1608Metric""
|
||||
(layer "F.Cu")
|
||||
(at 26.000 35.000 0)
|
||||
(descr "C4")
|
||||
(property "Reference" "C4" (at 26.000 32.000) (layer "F.SilkS") (effects (font (size 1 1) (thickness 0.15))))
|
||||
(property "Value" "C4" (at 26.000 38.000) (layer "F.Fab") (effects (font (size 1 1) (thickness 0.15))))
|
||||
(pad "1" smd rect (at -0.800 0.900 0) (size 0.800 0.800) (layers "F.Cu" "F.Paste" "F.Mask") (net 3))
|
||||
(pad "2" smd rect (at -0.800 -0.900 0) (size 0.800 0.800) (layers "F.Cu" "F.Paste" "F.Mask") (net 0))
|
||||
)
|
||||
(footprint ""Capacitor_SMD:C_0805_2012Metric""
|
||||
(layer "F.Cu")
|
||||
(at 24.000 17.000 0)
|
||||
(descr "C5")
|
||||
(property "Reference" "C5" (at 24.000 14.000) (layer "F.SilkS") (effects (font (size 1 1) (thickness 0.15))))
|
||||
(property "Value" "C5" (at 24.000 20.000) (layer "F.Fab") (effects (font (size 1 1) (thickness 0.15))))
|
||||
(pad "1" smd rect (at -0.800 0.900 0) (size 0.800 0.800) (layers "F.Cu" "F.Paste" "F.Mask") (net 2))
|
||||
(pad "2" smd rect (at -0.800 -0.900 0) (size 0.800 0.800) (layers "F.Cu" "F.Paste" "F.Mask") (net 0))
|
||||
)
|
||||
(footprint ""Capacitor_SMD:C_0805_2012Metric""
|
||||
(layer "F.Cu")
|
||||
(at 24.000 23.000 0)
|
||||
(descr "C6")
|
||||
(property "Reference" "C6" (at 24.000 20.000) (layer "F.SilkS") (effects (font (size 1 1) (thickness 0.15))))
|
||||
(property "Value" "C6" (at 24.000 26.000) (layer "F.Fab") (effects (font (size 1 1) (thickness 0.15))))
|
||||
(pad "1" smd rect (at -0.800 0.900 0) (size 0.800 0.800) (layers "F.Cu" "F.Paste" "F.Mask") (net 1))
|
||||
(pad "2" smd rect (at -0.800 -0.900 0) (size 0.800 0.800) (layers "F.Cu" "F.Paste" "F.Mask") (net 0))
|
||||
)
|
||||
(zone (net 0) (layer "F.Cu")
|
||||
(polygon (pts (xy 0 0)(xy 65.0 0)(xy 65.0 40.0)(xy 0 40.0)))
|
||||
(fill (mode solid))
|
||||
)
|
||||
(zone (net 0) (layer "B.Cu")
|
||||
(polygon (pts (xy 0 0)(xy 65.0 0)(xy 65.0 40.0)(xy 0 40.0)))
|
||||
(fill (mode solid))
|
||||
)
|
||||
(zone (net 0) (layer "F.Cu") (priority 1)
|
||||
(polygon (pts (xy 46 28)(xy 65.0 28)(xy 65.0 40.0)(xy 46 40.0)))
|
||||
(fill (mode solid))
|
||||
)
|
||||
(zone (net 0) (layer "B.Cu") (priority 1)
|
||||
(polygon (pts (xy 46 28)(xy 65.0 28)(xy 65.0 40.0)(xy 46 40.0)))
|
||||
(fill (mode solid))
|
||||
)
|
||||
)
|
||||
105
esp32-s3-sensor-node.kicad_prl
Normal file
105
esp32-s3-sensor-node.kicad_prl
Normal file
@@ -0,0 +1,105 @@
|
||||
{
|
||||
"board": {
|
||||
"active_layer": 0,
|
||||
"active_layer_preset": "",
|
||||
"auto_track_width": true,
|
||||
"hidden_netclasses": [],
|
||||
"hidden_nets": [],
|
||||
"high_contrast_mode": 0,
|
||||
"net_color_mode": 1,
|
||||
"opacity": {
|
||||
"images": 0.6,
|
||||
"pads": 1.0,
|
||||
"shapes": 1.0,
|
||||
"tracks": 1.0,
|
||||
"vias": 1.0,
|
||||
"zones": 0.6
|
||||
},
|
||||
"prototype_zone_fills": false,
|
||||
"selection_filter": {
|
||||
"dimensions": true,
|
||||
"footprints": true,
|
||||
"graphics": true,
|
||||
"keepouts": true,
|
||||
"lockedItems": false,
|
||||
"otherItems": true,
|
||||
"pads": true,
|
||||
"text": true,
|
||||
"tracks": true,
|
||||
"vias": true,
|
||||
"zones": true
|
||||
},
|
||||
"visible_items": [
|
||||
"vias",
|
||||
"footprint_text",
|
||||
"footprint_anchors",
|
||||
"ratsnest",
|
||||
"grid",
|
||||
"footprints_front",
|
||||
"footprints_back",
|
||||
"footprint_values",
|
||||
"footprint_references",
|
||||
"tracks",
|
||||
"drc_errors",
|
||||
"drawing_sheet",
|
||||
"bitmaps",
|
||||
"pads",
|
||||
"zones",
|
||||
"drc_warnings",
|
||||
"drc_exclusions",
|
||||
"locked_item_shadows",
|
||||
"conflict_shadows",
|
||||
"shapes",
|
||||
"board_outline_area",
|
||||
"ly_points"
|
||||
],
|
||||
"visible_layers": "ffffffff_ffffffff_ffffffff_ffffffff",
|
||||
"zone_display_mode": 0
|
||||
},
|
||||
"git": {
|
||||
"integration_disabled": false,
|
||||
"repo_type": "",
|
||||
"repo_username": "",
|
||||
"ssh_key": ""
|
||||
},
|
||||
"meta": {
|
||||
"filename": "esp32-s3-sensor-node.kicad_prl",
|
||||
"version": 5
|
||||
},
|
||||
"net_inspector_panel": {
|
||||
"col_hidden": [],
|
||||
"col_order": [],
|
||||
"col_widths": [],
|
||||
"custom_group_rules": [],
|
||||
"expanded_rows": [],
|
||||
"filter_by_net_name": true,
|
||||
"filter_by_netclass": true,
|
||||
"filter_text": "",
|
||||
"group_by_constraint": false,
|
||||
"group_by_netclass": false,
|
||||
"show_time_domain_details": false,
|
||||
"show_unconnected_nets": false,
|
||||
"show_zero_pad_nets": false,
|
||||
"sort_ascending": true,
|
||||
"sorting_column": -1
|
||||
},
|
||||
"open_jobsets": [],
|
||||
"project": {
|
||||
"files": []
|
||||
},
|
||||
"schematic": {
|
||||
"hierarchy_collapsed": [],
|
||||
"selection_filter": {
|
||||
"graphics": true,
|
||||
"images": true,
|
||||
"labels": true,
|
||||
"lockedItems": false,
|
||||
"otherItems": true,
|
||||
"pins": true,
|
||||
"ruleAreas": true,
|
||||
"symbols": true,
|
||||
"text": true,
|
||||
"wires": true
|
||||
}
|
||||
}
|
||||
}
|
||||
323
esp32-s3-sensor-node.kicad_pro
Normal file
323
esp32-s3-sensor-node.kicad_pro
Normal file
@@ -0,0 +1,323 @@
|
||||
{
|
||||
"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": 0.8,
|
||||
"height": 1.27,
|
||||
"width": 2.54
|
||||
},
|
||||
"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": [],
|
||||
"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": "warning",
|
||||
"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.2,
|
||||
"min_microvia_drill": 0.1,
|
||||
"min_resolved_spokes": 2,
|
||||
"min_silk_clearance": 0.0,
|
||||
"min_text_height": 0.8,
|
||||
"min_text_thickness": 0.08,
|
||||
"min_through_hole_diameter": 0.3,
|
||||
"min_track_width": 0.2,
|
||||
"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": [],
|
||||
"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": [],
|
||||
"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": []
|
||||
},
|
||||
"libraries": {
|
||||
"pinned_footprint_libs": [],
|
||||
"pinned_symbol_libs": []
|
||||
},
|
||||
"meta": {
|
||||
"filename": "esp32-s3-sensor-node.kicad_pro",
|
||||
"version": 3
|
||||
},
|
||||
"net_settings": {
|
||||
"classes": [
|
||||
{
|
||||
"bus_width": 12,
|
||||
"clearance": 0.2,
|
||||
"diff_pair_gap": 0.25,
|
||||
"diff_pair_via_gap": 0.25,
|
||||
"diff_pair_width": 0.2,
|
||||
"line_style": 0,
|
||||
"microvia_diameter": 0.3,
|
||||
"microvia_drill": 0.1,
|
||||
"name": "Default",
|
||||
"pcb_color": "rgba(0, 0, 0, 0.000)",
|
||||
"priority": 2147483647,
|
||||
"schematic_color": "rgba(0, 0, 0, 0.000)",
|
||||
"track_width": 0.2,
|
||||
"tuning_profile": "",
|
||||
"via_diameter": 0.6,
|
||||
"via_drill": 0.3,
|
||||
"wire_width": 6
|
||||
}
|
||||
],
|
||||
"meta": {
|
||||
"version": 5
|
||||
},
|
||||
"net_colors": null,
|
||||
"netclass_assignments": null,
|
||||
"netclass_patterns": []
|
||||
},
|
||||
"pcbnew": {
|
||||
"last_paths": {
|
||||
"idf": "",
|
||||
"netlist": "",
|
||||
"plot": "",
|
||||
"specctra_dsn": "",
|
||||
"vrml": ""
|
||||
},
|
||||
"page_layout_descr_file": ""
|
||||
},
|
||||
"schematic": {
|
||||
"bus_aliases": {},
|
||||
"legacy_lib_dir": "",
|
||||
"legacy_lib_list": [],
|
||||
"top_level_sheets": []
|
||||
},
|
||||
"sheets": [],
|
||||
"text_variables": {},
|
||||
"tuning_profiles": {
|
||||
"meta": {
|
||||
"version": 0
|
||||
},
|
||||
"tuning_profiles_impedance_geometric": []
|
||||
}
|
||||
}
|
||||
856
esp32-s3-sensor-node.kicad_sch
Normal file
856
esp32-s3-sensor-node.kicad_sch
Normal file
@@ -0,0 +1,856 @@
|
||||
(kicad_sch (version 20250114) (generator "sensor-node-gen") (uuid "esp32-s3-sensor-node") (paper "A4"))
|
||||
(lib_symbols (symbol "Device:R" (pin_numbers hide) (pin_names (offset 0)
|
||||
(symbol (lib_id "Connector:USB_C_Receptacle_USB2.0_16P") (at 25.40 101.60) (unit 1)
|
||||
(in_bom yes) (on_board yes) (dnp no)
|
||||
(uuid "cid-0001")
|
||||
(property "Reference" "J1" (at 25.40 97.79)
|
||||
(effects (font (size 1.27 1.27)) (justify left)))
|
||||
(property "Value" "USB-C" (at 25.40 105.41)
|
||||
(effects (font (size 1.27 1.27)) (justify left)))
|
||||
(property "Footprint" "Connector_USB:USB_C_Receptacle_USB2.0_16P" (at 25.40 101.60) (effects (font (size 1.27 1.27)) hide))
|
||||
(property "Datasheet" "~" (at 25.40 101.60) (effects (font (size 1.27 1.27)) hide))
|
||||
)
|
||||
(symbol (lib_id "RF_Module:ESP32-S3-WROOM-1") (at 101.60 101.60) (unit 1)
|
||||
(in_bom yes) (on_board yes) (dnp no)
|
||||
(uuid "cid-0002")
|
||||
(property "Reference" "U1" (at 101.60 97.79)
|
||||
(effects (font (size 1.27 1.27)) (justify left)))
|
||||
(property "Value" "ESP32-S3-WROOM-1" (at 101.60 105.41)
|
||||
(effects (font (size 1.27 1.27)) (justify left)))
|
||||
(property "Datasheet" "~" (at 101.60 101.60) (effects (font (size 1.27 1.27)) hide))
|
||||
)
|
||||
(symbol (lib_id "Connector:Conn_01x04_Pin") (at 177.80 63.50) (unit 1)
|
||||
(in_bom yes) (on_board yes) (dnp no)
|
||||
(uuid "cid-0003")
|
||||
(property "Reference" "J2" (at 177.80 59.69)
|
||||
(effects (font (size 1.27 1.27)) (justify left)))
|
||||
(property "Value" "I2C_Sensor" (at 177.80 67.31)
|
||||
(effects (font (size 1.27 1.27)) (justify left)))
|
||||
(property "Footprint" "Connector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_Vertical" (at 177.80 63.50) (effects (font (size 1.27 1.27)) hide))
|
||||
(property "Datasheet" "~" (at 177.80 63.50) (effects (font (size 1.27 1.27)) hide))
|
||||
)
|
||||
(symbol (lib_id "Connector:Conn_01x04_Pin") (at 25.40 203.20) (unit 1)
|
||||
(in_bom yes) (on_board yes) (dnp no)
|
||||
(uuid "cid-0004")
|
||||
(property "Reference" "J3" (at 25.40 199.39)
|
||||
(effects (font (size 1.27 1.27)) (justify left)))
|
||||
(property "Value" "PROG" (at 25.40 207.01)
|
||||
(effects (font (size 1.27 1.27)) (justify left)))
|
||||
(property "Footprint" "Connector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_Vertical" (at 25.40 203.20) (effects (font (size 1.27 1.27)) hide))
|
||||
(property "Datasheet" "~" (at 25.40 203.20) (effects (font (size 1.27 1.27)) hide))
|
||||
)
|
||||
(symbol (lib_id "Regulator_Linear:AMS1117-3.3") (at 55.88 101.60) (unit 1)
|
||||
(in_bom yes) (on_board yes) (dnp no)
|
||||
(uuid "cid-0005")
|
||||
(property "Reference" "U2" (at 55.88 97.79)
|
||||
(effects (font (size 1.27 1.27)) (justify left)))
|
||||
(property "Value" "AMS1117-3.3" (at 55.88 105.41)
|
||||
(effects (font (size 1.27 1.27)) (justify left)))
|
||||
(property "Footprint" "Package_TO_SOT_SMD:SOT-223-3Lead_TabPin2" (at 55.88 101.60) (effects (font (size 1.27 1.27)) hide))
|
||||
(property "Datasheet" "~" (at 55.88 101.60) (effects (font (size 1.27 1.27)) hide))
|
||||
)
|
||||
(symbol (lib_id "Device:LED") (at 193.04 160.02) (unit 1)
|
||||
(in_bom yes) (on_board yes) (dnp no)
|
||||
(uuid "cid-0006")
|
||||
(property "Reference" "D1" (at 193.04 156.21)
|
||||
(effects (font (size 1.27 1.27)) (justify left)))
|
||||
(property "Value" "LED_Green" (at 193.04 163.83)
|
||||
(effects (font (size 1.27 1.27)) (justify left)))
|
||||
(property "Footprint" "LED_SMD:LED_0603_1608Metric" (at 193.04 160.02) (effects (font (size 1.27 1.27)) hide))
|
||||
(property "Datasheet" "~" (at 193.04 160.02) (effects (font (size 1.27 1.27)) hide))
|
||||
)
|
||||
(symbol (lib_id "Device:R") (at 190.50 190.50) (unit 1)
|
||||
(in_bom yes) (on_board yes) (dnp no)
|
||||
(uuid "cid-0007")
|
||||
(property "Reference" "R1" (at 190.50 186.69)
|
||||
(effects (font (size 1.27 1.27)) (justify left)))
|
||||
(property "Value" "470" (at 190.50 194.31)
|
||||
(effects (font (size 1.27 1.27)) (justify left)))
|
||||
(property "Footprint" "Resistor_SMD:R_0603_1608Metric" (at 190.50 190.50) (effects (font (size 1.27 1.27)) hide))
|
||||
(property "Datasheet" "~" (at 190.50 190.50) (effects (font (size 1.27 1.27)) hide))
|
||||
)
|
||||
(symbol (lib_id "Device:R") (at 63.50 50.80) (unit 1)
|
||||
(in_bom yes) (on_board yes) (dnp no)
|
||||
(uuid "cid-0008")
|
||||
(property "Reference" "R2" (at 63.50 46.99)
|
||||
(effects (font (size 1.27 1.27)) (justify left)))
|
||||
(property "Value" "10k" (at 63.50 54.61)
|
||||
(effects (font (size 1.27 1.27)) (justify left)))
|
||||
(property "Footprint" "Resistor_SMD:R_0603_1608Metric" (at 63.50 50.80) (effects (font (size 1.27 1.27)) hide))
|
||||
(property "Datasheet" "~" (at 63.50 50.80) (effects (font (size 1.27 1.27)) hide))
|
||||
)
|
||||
(symbol (lib_id "Device:R") (at 165.10 203.20) (unit 1)
|
||||
(in_bom yes) (on_board yes) (dnp no)
|
||||
(uuid "cid-0009")
|
||||
(property "Reference" "R3" (at 165.10 199.39)
|
||||
(effects (font (size 1.27 1.27)) (justify left)))
|
||||
(property "Value" "10k" (at 165.10 207.01)
|
||||
(effects (font (size 1.27 1.27)) (justify left)))
|
||||
(property "Footprint" "Resistor_SMD:R_0603_1608Metric" (at 165.10 203.20) (effects (font (size 1.27 1.27)) hide))
|
||||
(property "Datasheet" "~" (at 165.10 203.20) (effects (font (size 1.27 1.27)) hide))
|
||||
)
|
||||
(symbol (lib_id "Device:R") (at 171.45 121.92) (unit 1)
|
||||
(in_bom yes) (on_board yes) (dnp no)
|
||||
(uuid "cid-0010")
|
||||
(property "Reference" "R4" (at 171.45 118.11)
|
||||
(effects (font (size 1.27 1.27)) (justify left)))
|
||||
(property "Value" "10k" (at 171.45 125.73)
|
||||
(effects (font (size 1.27 1.27)) (justify left)))
|
||||
(property "Footprint" "Resistor_SMD:R_0603_1608Metric" (at 171.45 121.92) (effects (font (size 1.27 1.27)) hide))
|
||||
(property "Datasheet" "~" (at 171.45 121.92) (effects (font (size 1.27 1.27)) hide))
|
||||
)
|
||||
(symbol (lib_id "Device:R") (at 152.40 38.10) (unit 1)
|
||||
(in_bom yes) (on_board yes) (dnp no)
|
||||
(uuid "cid-0011")
|
||||
(property "Reference" "R5" (at 152.40 34.29)
|
||||
(effects (font (size 1.27 1.27)) (justify left)))
|
||||
(property "Value" "4.7k" (at 152.40 41.91)
|
||||
(effects (font (size 1.27 1.27)) (justify left)))
|
||||
(property "Footprint" "Resistor_SMD:R_0603_1608Metric" (at 152.40 38.10) (effects (font (size 1.27 1.27)) hide))
|
||||
(property "Datasheet" "~" (at 152.40 38.10) (effects (font (size 1.27 1.27)) hide))
|
||||
)
|
||||
(symbol (lib_id "Device:R") (at 152.40 55.88) (unit 1)
|
||||
(in_bom yes) (on_board yes) (dnp no)
|
||||
(uuid "cid-0012")
|
||||
(property "Reference" "R6" (at 152.40 52.07)
|
||||
(effects (font (size 1.27 1.27)) (justify left)))
|
||||
(property "Value" "4.7k" (at 152.40 59.69)
|
||||
(effects (font (size 1.27 1.27)) (justify left)))
|
||||
(property "Footprint" "Resistor_SMD:R_0603_1608Metric" (at 152.40 55.88) (effects (font (size 1.27 1.27)) hide))
|
||||
(property "Datasheet" "~" (at 152.40 55.88) (effects (font (size 1.27 1.27)) hide))
|
||||
)
|
||||
(symbol (lib_id "Device:R") (at 33.02 142.24) (unit 1)
|
||||
(in_bom yes) (on_board yes) (dnp no)
|
||||
(uuid "cid-0013")
|
||||
(property "Reference" "R7" (at 33.02 138.43)
|
||||
(effects (font (size 1.27 1.27)) (justify left)))
|
||||
(property "Value" "5.1k" (at 33.02 146.05)
|
||||
(effects (font (size 1.27 1.27)) (justify left)))
|
||||
(property "Footprint" "Resistor_SMD:R_0603_1608Metric" (at 33.02 142.24) (effects (font (size 1.27 1.27)) hide))
|
||||
(property "Datasheet" "~" (at 33.02 142.24) (effects (font (size 1.27 1.27)) hide))
|
||||
)
|
||||
(symbol (lib_id "Device:R") (at 33.02 157.48) (unit 1)
|
||||
(in_bom yes) (on_board yes) (dnp no)
|
||||
(uuid "cid-0014")
|
||||
(property "Reference" "R8" (at 33.02 153.67)
|
||||
(effects (font (size 1.27 1.27)) (justify left)))
|
||||
(property "Value" "5.1k" (at 33.02 161.29)
|
||||
(effects (font (size 1.27 1.27)) (justify left)))
|
||||
(property "Footprint" "Resistor_SMD:R_0603_1608Metric" (at 33.02 157.48) (effects (font (size 1.27 1.27)) hide))
|
||||
(property "Datasheet" "~" (at 33.02 157.48) (effects (font (size 1.27 1.27)) hide))
|
||||
)
|
||||
(symbol (lib_id "Device:C") (at 63.50 132.08) (unit 1)
|
||||
(in_bom yes) (on_board yes) (dnp no)
|
||||
(uuid "cid-0015")
|
||||
(property "Reference" "C1" (at 63.50 128.27)
|
||||
(effects (font (size 1.27 1.27)) (justify left)))
|
||||
(property "Value" "100nF" (at 63.50 135.89)
|
||||
(effects (font (size 1.27 1.27)) (justify left)))
|
||||
(property "Footprint" "Capacitor_SMD:C_0603_1608Metric" (at 63.50 132.08) (effects (font (size 1.27 1.27)) hide))
|
||||
(property "Datasheet" "~" (at 63.50 132.08) (effects (font (size 1.27 1.27)) hide))
|
||||
)
|
||||
(symbol (lib_id "Device:C") (at 63.50 147.32) (unit 1)
|
||||
(in_bom yes) (on_board yes) (dnp no)
|
||||
(uuid "cid-0016")
|
||||
(property "Reference" "C2" (at 63.50 143.51)
|
||||
(effects (font (size 1.27 1.27)) (justify left)))
|
||||
(property "Value" "100nF" (at 63.50 151.13)
|
||||
(effects (font (size 1.27 1.27)) (justify left)))
|
||||
(property "Footprint" "Capacitor_SMD:C_0603_1608Metric" (at 63.50 147.32) (effects (font (size 1.27 1.27)) hide))
|
||||
(property "Datasheet" "~" (at 63.50 147.32) (effects (font (size 1.27 1.27)) hide))
|
||||
)
|
||||
(symbol (lib_id "Device:C") (at 63.50 162.56) (unit 1)
|
||||
(in_bom yes) (on_board yes) (dnp no)
|
||||
(uuid "cid-0017")
|
||||
(property "Reference" "C3" (at 63.50 158.75)
|
||||
(effects (font (size 1.27 1.27)) (justify left)))
|
||||
(property "Value" "10uF" (at 63.50 166.37)
|
||||
(effects (font (size 1.27 1.27)) (justify left)))
|
||||
(property "Footprint" "Capacitor_SMD:C_0603_1608Metric" (at 63.50 162.56) (effects (font (size 1.27 1.27)) hide))
|
||||
(property "Datasheet" "~" (at 63.50 162.56) (effects (font (size 1.27 1.27)) hide))
|
||||
)
|
||||
(symbol (lib_id "Device:C") (at 55.88 182.88) (unit 1)
|
||||
(in_bom yes) (on_board yes) (dnp no)
|
||||
(uuid "cid-0018")
|
||||
(property "Reference" "C4" (at 55.88 179.07)
|
||||
(effects (font (size 1.27 1.27)) (justify left)))
|
||||
(property "Value" "100nF" (at 55.88 186.69)
|
||||
(effects (font (size 1.27 1.27)) (justify left)))
|
||||
(property "Footprint" "Capacitor_SMD:C_0603_1608Metric" (at 55.88 182.88) (effects (font (size 1.27 1.27)) hide))
|
||||
(property "Datasheet" "~" (at 55.88 182.88) (effects (font (size 1.27 1.27)) hide))
|
||||
)
|
||||
(symbol (lib_id "Device:C") (at 50.80 83.82) (unit 1)
|
||||
(in_bom yes) (on_board yes) (dnp no)
|
||||
(uuid "cid-0019")
|
||||
(property "Reference" "C5" (at 50.80 80.01)
|
||||
(effects (font (size 1.27 1.27)) (justify left)))
|
||||
(property "Value" "10uF" (at 50.80 87.63)
|
||||
(effects (font (size 1.27 1.27)) (justify left)))
|
||||
(property "Footprint" "Capacitor_SMD:C_0805_2012Metric" (at 50.80 83.82) (effects (font (size 1.27 1.27)) hide))
|
||||
(property "Datasheet" "~" (at 50.80 83.82) (effects (font (size 1.27 1.27)) hide))
|
||||
)
|
||||
(symbol (lib_id "Device:C") (at 50.80 119.38) (unit 1)
|
||||
(in_bom yes) (on_board yes) (dnp no)
|
||||
(uuid "cid-0020")
|
||||
(property "Reference" "C6" (at 50.80 115.57)
|
||||
(effects (font (size 1.27 1.27)) (justify left)))
|
||||
(property "Value" "10uF" (at 50.80 123.19)
|
||||
(effects (font (size 1.27 1.27)) (justify left)))
|
||||
(property "Footprint" "Capacitor_SMD:C_0805_2012Metric" (at 50.80 119.38) (effects (font (size 1.27 1.27)) hide))
|
||||
(property "Datasheet" "~" (at 50.80 119.38) (effects (font (size 1.27 1.27)) hide))
|
||||
)
|
||||
(symbol (lib_id "power:+3.3V") (at 55.88 50.80) (unit 1)
|
||||
(in_bom yes) (on_board yes) (dnp no)
|
||||
(uuid "cid-0021")
|
||||
(property "Reference" "PS1" (at 55.88 46.99)
|
||||
(effects (font (size 1.27 1.27)) (justify left)))
|
||||
(property "Value" "3V3" (at 55.88 54.61)
|
||||
(effects (font (size 1.27 1.27)) (justify left)))
|
||||
(property "Datasheet" "~" (at 55.88 50.80) (effects (font (size 1.27 1.27)) hide))
|
||||
)
|
||||
(symbol (lib_id "power:GND") (at 55.88 220.98) (unit 1)
|
||||
(in_bom yes) (on_board yes) (dnp no)
|
||||
(uuid "cid-0022")
|
||||
(property "Reference" "PS2" (at 55.88 217.17)
|
||||
(effects (font (size 1.27 1.27)) (justify left)))
|
||||
(property "Value" "GND" (at 55.88 224.79)
|
||||
(effects (font (size 1.27 1.27)) (justify left)))
|
||||
(property "Datasheet" "~" (at 55.88 220.98) (effects (font (size 1.27 1.27)) hide))
|
||||
)
|
||||
(symbol (lib_id "power:GND") (at 93.98 215.90) (unit 1)
|
||||
(in_bom yes) (on_board yes) (dnp no)
|
||||
(uuid "cid-0023")
|
||||
(property "Reference" "PS3" (at 93.98 212.09)
|
||||
(effects (font (size 1.27 1.27)) (justify left)))
|
||||
(property "Value" "GND" (at 93.98 219.71)
|
||||
(effects (font (size 1.27 1.27)) (justify left)))
|
||||
(property "Datasheet" "~" (at 93.98 215.90) (effects (font (size 1.27 1.27)) hide))
|
||||
)
|
||||
(symbol (lib_id "power:PWR_FLAG") (at 101.60 215.90) (unit 1)
|
||||
(in_bom yes) (on_board yes) (dnp no)
|
||||
(uuid "cid-0024")
|
||||
(property "Reference" "PS4" (at 101.60 212.09)
|
||||
(effects (font (size 1.27 1.27)) (justify left)))
|
||||
(property "Value" "PWR_FLAG" (at 101.60 219.71)
|
||||
(effects (font (size 1.27 1.27)) (justify left)))
|
||||
(property "Datasheet" "~" (at 101.60 215.90) (effects (font (size 1.27 1.27)) hide))
|
||||
)
|
||||
(symbol (lib_id "power:PWR_FLAG") (at 101.60 226.06) (unit 1)
|
||||
(in_bom yes) (on_board yes) (dnp no)
|
||||
(uuid "cid-0025")
|
||||
(property "Reference" "PS5" (at 101.60 222.25)
|
||||
(effects (font (size 1.27 1.27)) (justify left)))
|
||||
(property "Value" "PWR_FLAG" (at 101.60 229.87)
|
||||
(effects (font (size 1.27 1.27)) (justify left)))
|
||||
(property "Datasheet" "~" (at 101.60 226.06) (effects (font (size 1.27 1.27)) hide))
|
||||
)
|
||||
(symbol (lib_id "power:PWR_FLAG") (at 101.60 236.22) (unit 1)
|
||||
(in_bom yes) (on_board yes) (dnp no)
|
||||
(uuid "cid-0026")
|
||||
(property "Reference" "PS6" (at 101.60 232.41)
|
||||
(effects (font (size 1.27 1.27)) (justify left)))
|
||||
(property "Value" "PWR_FLAG" (at 101.60 240.03)
|
||||
(effects (font (size 1.27 1.27)) (justify left)))
|
||||
(property "Datasheet" "~" (at 101.60 236.22) (effects (font (size 1.27 1.27)) hide))
|
||||
)
|
||||
(wire (pts (xy 12.70 124.46) (xy 7.62 124.46))
|
||||
(stroke (width 0) (type default))
|
||||
(uuid "wr-0001")
|
||||
)
|
||||
(label "GND" (at 7.62 124.46)
|
||||
(effects (font (size 1.27 1.27)) (justify left bottom))
|
||||
(uuid "lb-0001")
|
||||
)
|
||||
(wire (pts (xy 25.40 124.46) (xy 20.32 124.46))
|
||||
(stroke (width 0) (type default))
|
||||
(uuid "wr-0002")
|
||||
)
|
||||
(label "GND" (at 20.32 124.46)
|
||||
(effects (font (size 1.27 1.27)) (justify left bottom))
|
||||
(uuid "lb-0002")
|
||||
)
|
||||
(wire (pts (xy 40.64 86.36) (xy 43.18 86.36))
|
||||
(stroke (width 0) (type default))
|
||||
(uuid "wr-0003")
|
||||
)
|
||||
(label "VBUS" (at 43.18 86.36)
|
||||
(effects (font (size 1.27 1.27)) (justify left bottom))
|
||||
(uuid "lb-0003")
|
||||
)
|
||||
(wire (pts (xy 40.64 91.44) (xy 43.18 91.44))
|
||||
(stroke (width 0) (type default))
|
||||
(uuid "wr-0004")
|
||||
)
|
||||
(label "CC1" (at 43.18 91.44)
|
||||
(effects (font (size 1.27 1.27)) (justify left bottom))
|
||||
(uuid "lb-0004")
|
||||
)
|
||||
(wire (pts (xy 40.64 104.14) (xy 43.18 104.14))
|
||||
(stroke (width 0) (type default))
|
||||
(uuid "wr-0005")
|
||||
)
|
||||
(label "USB_D_P" (at 43.18 104.14)
|
||||
(effects (font (size 1.27 1.27)) (justify left bottom))
|
||||
(uuid "lb-0005")
|
||||
)
|
||||
(wire (pts (xy 40.64 99.06) (xy 43.18 99.06))
|
||||
(stroke (width 0) (type default))
|
||||
(uuid "wr-0006")
|
||||
)
|
||||
(label "USB_D_N" (at 43.18 99.06)
|
||||
(effects (font (size 1.27 1.27)) (justify left bottom))
|
||||
(uuid "lb-0006")
|
||||
)
|
||||
(wire (pts (xy 25.40 124.46) (xy 20.32 124.46))
|
||||
(stroke (width 0) (type default))
|
||||
(uuid "wr-0007")
|
||||
)
|
||||
(label "GND" (at 20.32 124.46)
|
||||
(effects (font (size 1.27 1.27)) (justify left bottom))
|
||||
(uuid "lb-0007")
|
||||
)
|
||||
(wire (pts (xy 25.40 124.46) (xy 20.32 124.46))
|
||||
(stroke (width 0) (type default))
|
||||
(uuid "wr-0008")
|
||||
)
|
||||
(label "GND" (at 20.32 124.46)
|
||||
(effects (font (size 1.27 1.27)) (justify left bottom))
|
||||
(uuid "lb-0008")
|
||||
)
|
||||
(wire (pts (xy 40.64 86.36) (xy 43.18 86.36))
|
||||
(stroke (width 0) (type default))
|
||||
(uuid "wr-0009")
|
||||
)
|
||||
(label "VBUS" (at 43.18 86.36)
|
||||
(effects (font (size 1.27 1.27)) (justify left bottom))
|
||||
(uuid "lb-0009")
|
||||
)
|
||||
(wire (pts (xy 40.64 93.98) (xy 43.18 93.98))
|
||||
(stroke (width 0) (type default))
|
||||
(uuid "wr-0010")
|
||||
)
|
||||
(label "CC2" (at 43.18 93.98)
|
||||
(effects (font (size 1.27 1.27)) (justify left bottom))
|
||||
(uuid "lb-0010")
|
||||
)
|
||||
(wire (pts (xy 40.64 106.68) (xy 43.18 106.68))
|
||||
(stroke (width 0) (type default))
|
||||
(uuid "wr-0011")
|
||||
)
|
||||
(label "USB_D_P" (at 43.18 106.68)
|
||||
(effects (font (size 1.27 1.27)) (justify left bottom))
|
||||
(uuid "lb-0011")
|
||||
)
|
||||
(wire (pts (xy 40.64 101.60) (xy 43.18 101.60))
|
||||
(stroke (width 0) (type default))
|
||||
(uuid "wr-0012")
|
||||
)
|
||||
(label "USB_D_N" (at 43.18 101.60)
|
||||
(effects (font (size 1.27 1.27)) (justify left bottom))
|
||||
(uuid "lb-0012")
|
||||
)
|
||||
(wire (pts (xy 25.40 124.46) (xy 20.32 124.46))
|
||||
(stroke (width 0) (type default))
|
||||
(uuid "wr-0013")
|
||||
)
|
||||
(label "GND" (at 20.32 124.46)
|
||||
(effects (font (size 1.27 1.27)) (justify left bottom))
|
||||
(uuid "lb-0013")
|
||||
)
|
||||
(wire (pts (xy 101.60 129.54) (xy 101.60 132.08))
|
||||
(stroke (width 0) (type default))
|
||||
(uuid "wr-0014")
|
||||
)
|
||||
(label "GND" (at 101.60 132.08)
|
||||
(effects (font (size 1.27 1.27)) (justify left bottom))
|
||||
(uuid "lb-0014")
|
||||
)
|
||||
(wire (pts (xy 101.60 73.66) (xy 101.60 71.12))
|
||||
(stroke (width 0) (type default))
|
||||
(uuid "wr-0015")
|
||||
)
|
||||
(label "3V3" (at 101.60 71.12)
|
||||
(effects (font (size 1.27 1.27)) (justify left bottom))
|
||||
(uuid "lb-0015")
|
||||
)
|
||||
(wire (pts (xy 86.36 78.74) (xy 83.82 78.74))
|
||||
(stroke (width 0) (type default))
|
||||
(uuid "wr-0016")
|
||||
)
|
||||
(label "EN" (at 83.82 78.74)
|
||||
(effects (font (size 1.27 1.27)) (justify left bottom))
|
||||
(uuid "lb-0016")
|
||||
)
|
||||
(wire (pts (xy 86.36 93.98) (xy 83.82 93.98))
|
||||
(stroke (width 0) (type default))
|
||||
(uuid "wr-0017")
|
||||
)
|
||||
(label "SDA" (at 83.82 93.98)
|
||||
(effects (font (size 1.27 1.27)) (justify left bottom))
|
||||
(uuid "lb-0017")
|
||||
)
|
||||
(wire (pts (xy 86.36 96.52) (xy 83.82 96.52))
|
||||
(stroke (width 0) (type default))
|
||||
(uuid "wr-0018")
|
||||
)
|
||||
(label "SCL" (at 83.82 96.52)
|
||||
(effects (font (size 1.27 1.27)) (justify left bottom))
|
||||
(uuid "lb-0018")
|
||||
)
|
||||
(wire (pts (xy 116.84 88.90) (xy 119.38 88.90))
|
||||
(stroke (width 0) (type default))
|
||||
(uuid "wr-0019")
|
||||
)
|
||||
(label "USB_D_N" (at 119.38 88.90)
|
||||
(effects (font (size 1.27 1.27)) (justify left bottom))
|
||||
(uuid "lb-0019")
|
||||
)
|
||||
(wire (pts (xy 116.84 91.44) (xy 119.38 91.44))
|
||||
(stroke (width 0) (type default))
|
||||
(uuid "wr-0020")
|
||||
)
|
||||
(label "USB_D_P" (at 119.38 91.44)
|
||||
(effects (font (size 1.27 1.27)) (justify left bottom))
|
||||
(uuid "lb-0020")
|
||||
)
|
||||
(wire (pts (xy 116.84 119.38) (xy 119.38 119.38))
|
||||
(stroke (width 0) (type default))
|
||||
(uuid "wr-0021")
|
||||
)
|
||||
(label "GND" (at 119.38 119.38)
|
||||
(effects (font (size 1.27 1.27)) (justify left bottom))
|
||||
(uuid "lb-0021")
|
||||
)
|
||||
(wire (pts (xy 86.36 114.30) (xy 83.82 114.30))
|
||||
(stroke (width 0) (type default))
|
||||
(uuid "wr-0022")
|
||||
)
|
||||
(label "IO12" (at 83.82 114.30)
|
||||
(effects (font (size 1.27 1.27)) (justify left bottom))
|
||||
(uuid "lb-0022")
|
||||
)
|
||||
(wire (pts (xy 86.36 83.82) (xy 83.82 83.82))
|
||||
(stroke (width 0) (type default))
|
||||
(uuid "wr-0023")
|
||||
)
|
||||
(label "IO0" (at 83.82 83.82)
|
||||
(effects (font (size 1.27 1.27)) (justify left bottom))
|
||||
(uuid "lb-0023")
|
||||
)
|
||||
(wire (pts (xy 116.84 81.28) (xy 119.38 81.28))
|
||||
(stroke (width 0) (type default))
|
||||
(uuid "wr-0024")
|
||||
)
|
||||
(label "RXD0" (at 119.38 81.28)
|
||||
(effects (font (size 1.27 1.27)) (justify left bottom))
|
||||
(uuid "lb-0024")
|
||||
)
|
||||
(wire (pts (xy 116.84 78.74) (xy 119.38 78.74))
|
||||
(stroke (width 0) (type default))
|
||||
(uuid "wr-0025")
|
||||
)
|
||||
(label "TXD0" (at 119.38 78.74)
|
||||
(effects (font (size 1.27 1.27)) (justify left bottom))
|
||||
(uuid "lb-0025")
|
||||
)
|
||||
(wire (pts (xy 86.36 88.90) (xy 83.82 88.90))
|
||||
(stroke (width 0) (type default))
|
||||
(uuid "wr-0026")
|
||||
)
|
||||
(label "IO2_LED" (at 83.82 88.90)
|
||||
(effects (font (size 1.27 1.27)) (justify left bottom))
|
||||
(uuid "lb-0026")
|
||||
)
|
||||
(wire (pts (xy 101.60 129.54) (xy 101.60 132.08))
|
||||
(stroke (width 0) (type default))
|
||||
(uuid "wr-0027")
|
||||
)
|
||||
(label "GND" (at 101.60 132.08)
|
||||
(effects (font (size 1.27 1.27)) (justify left bottom))
|
||||
(uuid "lb-0027")
|
||||
)
|
||||
(wire (pts (xy 101.60 129.54) (xy 101.60 132.08))
|
||||
(stroke (width 0) (type default))
|
||||
(uuid "wr-0028")
|
||||
)
|
||||
(label "GND" (at 101.60 132.08)
|
||||
(effects (font (size 1.27 1.27)) (justify left bottom))
|
||||
(uuid "lb-0028")
|
||||
)
|
||||
(wire (pts (xy 185.08 57.46) (xy 187.62 57.46))
|
||||
(stroke (width 0) (type default))
|
||||
(uuid "wr-0029")
|
||||
)
|
||||
(label "3V3" (at 187.62 57.46)
|
||||
(effects (font (size 1.27 1.27)) (justify left bottom))
|
||||
(uuid "lb-0029")
|
||||
)
|
||||
(wire (pts (xy 185.08 60.00) (xy 187.62 60.00))
|
||||
(stroke (width 0) (type default))
|
||||
(uuid "wr-0030")
|
||||
)
|
||||
(label "SDA" (at 187.62 60.00)
|
||||
(effects (font (size 1.27 1.27)) (justify left bottom))
|
||||
(uuid "lb-0030")
|
||||
)
|
||||
(wire (pts (xy 185.08 62.54) (xy 187.62 62.54))
|
||||
(stroke (width 0) (type default))
|
||||
(uuid "wr-0031")
|
||||
)
|
||||
(label "SCL" (at 187.62 62.54)
|
||||
(effects (font (size 1.27 1.27)) (justify left bottom))
|
||||
(uuid "lb-0031")
|
||||
)
|
||||
(wire (pts (xy 185.08 65.08) (xy 187.62 65.08))
|
||||
(stroke (width 0) (type default))
|
||||
(uuid "wr-0032")
|
||||
)
|
||||
(label "GND" (at 187.62 65.08)
|
||||
(effects (font (size 1.27 1.27)) (justify left bottom))
|
||||
(uuid "lb-0032")
|
||||
)
|
||||
(wire (pts (xy 25.08 197.46) (xy 25.08 195.00))
|
||||
(stroke (width 0) (type default))
|
||||
(uuid "wr-0033")
|
||||
)
|
||||
(label "GND" (at 25.08 195.00)
|
||||
(effects (font (size 1.27 1.27)) (justify left bottom))
|
||||
(uuid "lb-0033")
|
||||
)
|
||||
(wire (pts (xy 25.08 200.00) (xy 25.08 197.50))
|
||||
(stroke (width 0) (type default))
|
||||
(uuid "wr-0034")
|
||||
)
|
||||
(label "RXD0" (at 25.08 197.50)
|
||||
(effects (font (size 1.27 1.27)) (justify left bottom))
|
||||
(uuid "lb-0034")
|
||||
)
|
||||
(wire (pts (xy 25.08 202.54) (xy 25.08 200.00))
|
||||
(stroke (width 0) (type default))
|
||||
(uuid "wr-0035")
|
||||
)
|
||||
(label "TXD0" (at 25.08 200.00)
|
||||
(effects (font (size 1.27 1.27)) (justify left bottom))
|
||||
(uuid "lb-0035")
|
||||
)
|
||||
(wire (pts (xy 25.08 205.08) (xy 25.08 202.50))
|
||||
(stroke (width 0) (type default))
|
||||
(uuid "wr-0036")
|
||||
)
|
||||
(label "3V3" (at 25.08 202.50)
|
||||
(effects (font (size 1.27 1.27)) (justify left bottom))
|
||||
(uuid "lb-0036")
|
||||
)
|
||||
(wire (pts (xy 55.88 109.22) (xy 55.88 111.76))
|
||||
(stroke (width 0) (type default))
|
||||
(uuid "wr-0037")
|
||||
)
|
||||
(label "GND" (at 55.88 111.76)
|
||||
(effects (font (size 1.27 1.27)) (justify left bottom))
|
||||
(uuid "lb-0037")
|
||||
)
|
||||
(wire (pts (xy 63.50 101.60) (xy 66.04 101.60))
|
||||
(stroke (width 0) (type default))
|
||||
(uuid "wr-0038")
|
||||
)
|
||||
(label "3V3" (at 66.04 101.60)
|
||||
(effects (font (size 1.27 1.27)) (justify left bottom))
|
||||
(uuid "lb-0038")
|
||||
)
|
||||
(wire (pts (xy 48.26 101.60) (xy 45.72 101.60))
|
||||
(stroke (width 0) (type default))
|
||||
(uuid "wr-0039")
|
||||
)
|
||||
(label "VBUS" (at 45.72 101.60)
|
||||
(effects (font (size 1.27 1.27)) (justify left bottom))
|
||||
(uuid "lb-0039")
|
||||
)
|
||||
(wire (pts (xy 186.19 160.00) (xy 183.65 160.00))
|
||||
(stroke (width 0) (type default))
|
||||
(uuid "wr-0040")
|
||||
)
|
||||
(label "GND" (at 183.65 160.00)
|
||||
(effects (font (size 1.27 1.27)) (justify left bottom))
|
||||
(uuid "lb-0040")
|
||||
)
|
||||
(wire (pts (xy 193.81 160.00) (xy 196.35 160.00))
|
||||
(stroke (width 0) (type default))
|
||||
(uuid "wr-0041")
|
||||
)
|
||||
(label "D1_A" (at 196.35 160.00)
|
||||
(effects (font (size 1.27 1.27)) (justify left bottom))
|
||||
(uuid "lb-0041")
|
||||
)
|
||||
(wire (pts (xy 190.50 186.69) (xy 190.50 184.15))
|
||||
(stroke (width 0) (type default))
|
||||
(uuid "wr-0042")
|
||||
)
|
||||
(label "IO2_LED" (at 190.50 184.15)
|
||||
(effects (font (size 1.27 1.27)) (justify left bottom))
|
||||
(uuid "lb-0042")
|
||||
)
|
||||
(wire (pts (xy 190.50 194.31) (xy 190.50 196.85))
|
||||
(stroke (width 0) (type default))
|
||||
(uuid "wr-0043")
|
||||
)
|
||||
(label "D1_A" (at 190.50 196.85)
|
||||
(effects (font (size 1.27 1.27)) (justify left bottom))
|
||||
(uuid "lb-0043")
|
||||
)
|
||||
(wire (pts (xy 63.50 46.99) (xy 63.50 44.45))
|
||||
(stroke (width 0) (type default))
|
||||
(uuid "wr-0044")
|
||||
)
|
||||
(label "EN" (at 63.50 44.45)
|
||||
(effects (font (size 1.27 1.27)) (justify left bottom))
|
||||
(uuid "lb-0044")
|
||||
)
|
||||
(wire (pts (xy 63.50 54.61) (xy 63.50 57.15))
|
||||
(stroke (width 0) (type default))
|
||||
(uuid "wr-0045")
|
||||
)
|
||||
(label "3V3" (at 63.50 57.15)
|
||||
(effects (font (size 1.27 1.27)) (justify left bottom))
|
||||
(uuid "lb-0045")
|
||||
)
|
||||
(wire (pts (xy 165.10 199.39) (xy 165.10 196.85))
|
||||
(stroke (width 0) (type default))
|
||||
(uuid "wr-0046")
|
||||
)
|
||||
(label "IO0" (at 165.10 196.85)
|
||||
(effects (font (size 1.27 1.27)) (justify left bottom))
|
||||
(uuid "lb-0046")
|
||||
)
|
||||
(wire (pts (xy 165.10 207.01) (xy 165.10 209.55))
|
||||
(stroke (width 0) (type default))
|
||||
(uuid "wr-0047")
|
||||
)
|
||||
(label "3V3" (at 165.10 209.55)
|
||||
(effects (font (size 1.27 1.27)) (justify left bottom))
|
||||
(uuid "lb-0047")
|
||||
)
|
||||
(wire (pts (xy 171.45 118.11) (xy 171.45 115.57))
|
||||
(stroke (width 0) (type default))
|
||||
(uuid "wr-0048")
|
||||
)
|
||||
(label "IO12" (at 171.45 115.57)
|
||||
(effects (font (size 1.27 1.27)) (justify left bottom))
|
||||
(uuid "lb-0048")
|
||||
)
|
||||
(wire (pts (xy 171.45 125.73) (xy 171.45 128.27))
|
||||
(stroke (width 0) (type default))
|
||||
(uuid "wr-0049")
|
||||
)
|
||||
(label "GND" (at 171.45 128.27)
|
||||
(effects (font (size 1.27 1.27)) (justify left bottom))
|
||||
(uuid "lb-0049")
|
||||
)
|
||||
(wire (pts (xy 152.40 34.29) (xy 152.40 31.75))
|
||||
(stroke (width 0) (type default))
|
||||
(uuid "wr-0050")
|
||||
)
|
||||
(label "SDA" (at 152.40 31.75)
|
||||
(effects (font (size 1.27 1.27)) (justify left bottom))
|
||||
(uuid "lb-0050")
|
||||
)
|
||||
(wire (pts (xy 152.40 41.91) (xy 152.40 44.45))
|
||||
(stroke (width 0) (type default))
|
||||
(uuid "wr-0051")
|
||||
)
|
||||
(label "3V3" (at 152.40 44.45)
|
||||
(effects (font (size 1.27 1.27)) (justify left bottom))
|
||||
(uuid "lb-0051")
|
||||
)
|
||||
(wire (pts (xy 152.40 52.07) (xy 152.40 49.53))
|
||||
(stroke (width 0) (type default))
|
||||
(uuid "wr-0052")
|
||||
)
|
||||
(label "SCL" (at 152.40 49.53)
|
||||
(effects (font (size 1.27 1.27)) (justify left bottom))
|
||||
(uuid "lb-0052")
|
||||
)
|
||||
(wire (pts (xy 152.40 59.69) (xy 152.40 62.23))
|
||||
(stroke (width 0) (type default))
|
||||
(uuid "wr-0053")
|
||||
)
|
||||
(label "3V3" (at 152.40 62.23)
|
||||
(effects (font (size 1.27 1.27)) (justify left bottom))
|
||||
(uuid "lb-0053")
|
||||
)
|
||||
(wire (pts (xy 33.02 138.43) (xy 33.02 135.89))
|
||||
(stroke (width 0) (type default))
|
||||
(uuid "wr-0054")
|
||||
)
|
||||
(label "CC1" (at 33.02 135.89)
|
||||
(effects (font (size 1.27 1.27)) (justify left bottom))
|
||||
(uuid "lb-0054")
|
||||
)
|
||||
(wire (pts (xy 33.02 146.05) (xy 33.02 148.59))
|
||||
(stroke (width 0) (type default))
|
||||
(uuid "wr-0055")
|
||||
)
|
||||
(label "GND" (at 33.02 148.59)
|
||||
(effects (font (size 1.27 1.27)) (justify left bottom))
|
||||
(uuid "lb-0055")
|
||||
)
|
||||
(wire (pts (xy 33.02 153.67) (xy 33.02 151.13))
|
||||
(stroke (width 0) (type default))
|
||||
(uuid "wr-0056")
|
||||
)
|
||||
(label "CC2" (at 33.02 151.13)
|
||||
(effects (font (size 1.27 1.27)) (justify left bottom))
|
||||
(uuid "lb-0056")
|
||||
)
|
||||
(wire (pts (xy 33.02 161.29) (xy 33.02 163.83))
|
||||
(stroke (width 0) (type default))
|
||||
(uuid "wr-0057")
|
||||
)
|
||||
(label "GND" (at 33.02 163.83)
|
||||
(effects (font (size 1.27 1.27)) (justify left bottom))
|
||||
(uuid "lb-0057")
|
||||
)
|
||||
(wire (pts (xy 63.50 128.27) (xy 63.50 125.73))
|
||||
(stroke (width 0) (type default))
|
||||
(uuid "wr-0058")
|
||||
)
|
||||
(label "3V3" (at 63.50 125.73)
|
||||
(effects (font (size 1.27 1.27)) (justify left bottom))
|
||||
(uuid "lb-0058")
|
||||
)
|
||||
(wire (pts (xy 63.50 135.89) (xy 63.50 138.43))
|
||||
(stroke (width 0) (type default))
|
||||
(uuid "wr-0059")
|
||||
)
|
||||
(label "GND" (at 63.50 138.43)
|
||||
(effects (font (size 1.27 1.27)) (justify left bottom))
|
||||
(uuid "lb-0059")
|
||||
)
|
||||
(wire (pts (xy 63.50 143.51) (xy 63.50 140.97))
|
||||
(stroke (width 0) (type default))
|
||||
(uuid "wr-0060")
|
||||
)
|
||||
(label "3V3" (at 63.50 140.97)
|
||||
(effects (font (size 1.27 1.27)) (justify left bottom))
|
||||
(uuid "lb-0060")
|
||||
)
|
||||
(wire (pts (xy 63.50 151.13) (xy 63.50 153.67))
|
||||
(stroke (width 0) (type default))
|
||||
(uuid "wr-0061")
|
||||
)
|
||||
(label "GND" (at 63.50 153.67)
|
||||
(effects (font (size 1.27 1.27)) (justify left bottom))
|
||||
(uuid "lb-0061")
|
||||
)
|
||||
(wire (pts (xy 63.50 158.75) (xy 63.50 156.21))
|
||||
(stroke (width 0) (type default))
|
||||
(uuid "wr-0062")
|
||||
)
|
||||
(label "3V3" (at 63.50 156.21)
|
||||
(effects (font (size 1.27 1.27)) (justify left bottom))
|
||||
(uuid "lb-0062")
|
||||
)
|
||||
(wire (pts (xy 63.50 166.37) (xy 63.50 168.91))
|
||||
(stroke (width 0) (type default))
|
||||
(uuid "wr-0063")
|
||||
)
|
||||
(label "GND" (at 63.50 168.91)
|
||||
(effects (font (size 1.27 1.27)) (justify left bottom))
|
||||
(uuid "lb-0063")
|
||||
)
|
||||
(wire (pts (xy 55.88 179.07) (xy 55.88 176.53))
|
||||
(stroke (width 0) (type default))
|
||||
(uuid "wr-0064")
|
||||
)
|
||||
(label "EN" (at 55.88 176.53)
|
||||
(effects (font (size 1.27 1.27)) (justify left bottom))
|
||||
(uuid "lb-0064")
|
||||
)
|
||||
(wire (pts (xy 55.88 186.69) (xy 55.88 189.23))
|
||||
(stroke (width 0) (type default))
|
||||
(uuid "wr-0065")
|
||||
)
|
||||
(label "GND" (at 55.88 189.23)
|
||||
(effects (font (size 1.27 1.27)) (justify left bottom))
|
||||
(uuid "lb-0065")
|
||||
)
|
||||
(wire (pts (xy 50.80 80.01) (xy 50.80 77.47))
|
||||
(stroke (width 0) (type default))
|
||||
(uuid "wr-0066")
|
||||
)
|
||||
(label "VBUS" (at 50.80 77.47)
|
||||
(effects (font (size 1.27 1.27)) (justify left bottom))
|
||||
(uuid "lb-0066")
|
||||
)
|
||||
(wire (pts (xy 50.80 87.63) (xy 50.80 90.17))
|
||||
(stroke (width 0) (type default))
|
||||
(uuid "wr-0067")
|
||||
)
|
||||
(label "GND" (at 50.80 90.17)
|
||||
(effects (font (size 1.27 1.27)) (justify left bottom))
|
||||
(uuid "lb-0067")
|
||||
)
|
||||
(wire (pts (xy 50.80 115.57) (xy 50.80 113.03))
|
||||
(stroke (width 0) (type default))
|
||||
(uuid "wr-0068")
|
||||
)
|
||||
(label "3V3" (at 50.80 113.03)
|
||||
(effects (font (size 1.27 1.27)) (justify left bottom))
|
||||
(uuid "lb-0068")
|
||||
)
|
||||
(wire (pts (xy 50.80 123.19) (xy 50.80 125.73))
|
||||
(stroke (width 0) (type default))
|
||||
(uuid "wr-0069")
|
||||
)
|
||||
(label "GND" (at 50.80 125.73)
|
||||
(effects (font (size 1.27 1.27)) (justify left bottom))
|
||||
(uuid "lb-0069")
|
||||
)
|
||||
(wire (pts (xy 55.88 50.80) (xy 58.42 50.80))
|
||||
(stroke (width 0) (type default))
|
||||
(uuid "wr-0070")
|
||||
)
|
||||
(label "3V3" (at 58.42 50.80)
|
||||
(effects (font (size 1.27 1.27)) (justify left bottom))
|
||||
(uuid "lb-0070")
|
||||
)
|
||||
(wire (pts (xy 55.88 220.98) (xy 58.42 220.98))
|
||||
(stroke (width 0) (type default))
|
||||
(uuid "wr-0071")
|
||||
)
|
||||
(label "GND" (at 58.42 220.98)
|
||||
(effects (font (size 1.27 1.27)) (justify left bottom))
|
||||
(uuid "lb-0071")
|
||||
)
|
||||
(wire (pts (xy 93.98 215.90) (xy 96.52 215.90))
|
||||
(stroke (width 0) (type default))
|
||||
(uuid "wr-0072")
|
||||
)
|
||||
(label "GND" (at 96.52 215.90)
|
||||
(effects (font (size 1.27 1.27)) (justify left bottom))
|
||||
(uuid "lb-0072")
|
||||
)
|
||||
(wire (pts (xy 101.60 215.90) (xy 104.14 215.90))
|
||||
(stroke (width 0) (type default))
|
||||
(uuid "wr-0073")
|
||||
)
|
||||
(label "GND" (at 104.14 215.90)
|
||||
(effects (font (size 1.27 1.27)) (justify left bottom))
|
||||
(uuid "lb-0073")
|
||||
)
|
||||
(wire (pts (xy 101.60 226.06) (xy 104.14 226.06))
|
||||
(stroke (width 0) (type default))
|
||||
(uuid "wr-0074")
|
||||
)
|
||||
(label "VBUS" (at 104.14 226.06)
|
||||
(effects (font (size 1.27 1.27)) (justify left bottom))
|
||||
(uuid "lb-0074")
|
||||
)
|
||||
(wire (pts (xy 101.60 236.22) (xy 104.14 236.22))
|
||||
(stroke (width 0) (type default))
|
||||
(uuid "wr-0075")
|
||||
)
|
||||
(label "3V3" (at 104.14 236.22)
|
||||
(effects (font (size 1.27 1.27)) (justify left bottom))
|
||||
(uuid "lb-0075")
|
||||
)
|
||||
)
|
||||
172
finalize.py
Normal file
172
finalize.py
Normal file
@@ -0,0 +1,172 @@
|
||||
#!/usr/bin/env python3
|
||||
"""
|
||||
Generate a complete importable KiCad project for ESP32-S3 Sensor Node.
|
||||
Creates netlist, component placement guide, and README.
|
||||
"""
|
||||
import os, json
|
||||
|
||||
PROJ_DIR = os.path.expanduser("~/Documents/KiCad/10.0/esp32-s3-sensor-node")
|
||||
SCH = os.path.join(PROJ_DIR, "esp32-s3-sensor-node.kicad_sch")
|
||||
PRO = os.path.join(PROJ_DIR, "esp32-s3-sensor-node.kicad_pro")
|
||||
|
||||
NETS = ["GND","3V3","VBUS","EN","IO0","IO12",
|
||||
"SDA","SCL","USB_D_P","USB_D_N",
|
||||
"CC1","CC2","IO2_LED","D1_A","RXD0","TXD0"]
|
||||
|
||||
PASSIVES = [
|
||||
("R1", "Resistor_SMD:R_0603_1608Metric", 55, 30, 0, "IO2_LED", "D1_A", "470"),
|
||||
("R2", "Resistor_SMD:R_0603_1608Metric", 27, 32, 0, "EN", "3V3", "10k"),
|
||||
("R3", "Resistor_SMD:R_0603_1608Metric", 16, 7, 0, "IO0", "3V3", "10k"),
|
||||
("R4", "Resistor_SMD:R_0603_1608Metric", 16, 12, 0, "IO12", "GND", "10k"),
|
||||
("R5", "Resistor_SMD:R_0603_1608Metric", 48, 24, 0, "SDA", "3V3", "4.7k"),
|
||||
("R6", "Resistor_SMD:R_0603_1608Metric", 48, 22, 0, "SCL", "3V3", "4.7k"),
|
||||
("R7", "Resistor_SMD:R_0603_1608Metric", 11, 28, 0, "CC1", "GND", "5.1k"),
|
||||
("R8", "Resistor_SMD:R_0603_1608Metric", 11, 25, 0, "CC2", "GND", "5.1k"),
|
||||
("C1", "Capacitor_SMD:C_0603_1608Metric", 30, 28, 0, "3V3", "GND", "100nF"),
|
||||
("C2", "Capacitor_SMD:C_0603_1608Metric", 30, 25, 0, "3V3", "GND", "100nF"),
|
||||
("C3", "Capacitor_SMD:C_0603_1608Metric", 30, 22, 0, "3V3", "GND", "10uF"),
|
||||
("C4", "Capacitor_SMD:C_0603_1608Metric", 26, 35, 0, "EN", "GND", "100nF"),
|
||||
("C5", "Capacitor_SMD:C_0805_2012Metric", 24, 17, 0, "VBUS", "GND", "10uF"),
|
||||
("C6", "Capacitor_SMD:C_0805_2012Metric", 24, 23, 0, "3V3", "GND", "10uF"),
|
||||
]
|
||||
|
||||
ICS = [
|
||||
("J1", "Connector_USB:USB_C_Receptacle_USB2.0_16P",
|
||||
7, 20, 0, "USB-C", [("SH","GND"),("A1","GND"),("A4","VBUS"),
|
||||
("A5","CC1"),("A6","USB_D_P"),("A7","USB_D_N"),("B5","CC2")]),
|
||||
("U2", "Package_TO_SOT_SMD:SOT-223-3Lead_TabPin2",
|
||||
20, 20, 0, "AMS1117-3.3", [("1","GND"),("2","3V3"),("3","VBUS")]),
|
||||
("U1", "RF_Module:ESP32-S3-WROOM-1",
|
||||
38, 20, 0, "ESP32-S3-WROOM-1", [("1","GND"),("2","3V3"),("3","EN"),
|
||||
("4","SDA"),("5","SCL"),("13","USB_D_N"),("14","USB_D_P"),
|
||||
("20","IO12"),("27","IO0"),("36","RXD0"),("37","TXD0"),("38","IO2_LED")]),
|
||||
("J2", "Connector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_Vertical",
|
||||
56, 20, 0, "I2C_Sensor", [("1","3V3"),("2","SDA"),("3","SCL"),("4","GND")]),
|
||||
("J3", "Connector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_Vertical",
|
||||
25, 3, 0, "PROG", [("1","GND"),("2","RXD0"),("3","TXD0"),("4","3V3")]),
|
||||
("D1", "LED_SMD:LED_0603_1608Metric",
|
||||
55, 34, 0, "LED_Green", [("1","GND"),("2","D1_A")]),
|
||||
]
|
||||
|
||||
def create_readme():
|
||||
md = f"""# ESP32-S3 Sensor Node — L2.1 Training Exercise
|
||||
|
||||
## Project Setup
|
||||
|
||||
1. **Open in KiCad 10.0+** — File → Open Project → `{PROJ_DIR}`
|
||||
2. **Schematic** — Already clean (ERC 0). View in Eeschema.
|
||||
3. **PCB Layout** — Needs routing. Create board in Pcbnew.
|
||||
|
||||
## PCB Spec
|
||||
- **Size:** 65 × 40mm, 2-layer
|
||||
- **Stackup:** 1.6mm FR4, 1oz copper, HASL
|
||||
- **Design rules:** trace/space 0.15mm, drill 0.3mm, annular 0.15mm
|
||||
- **Target fab:** JLCPCB / PCBWay standard
|
||||
|
||||
## Component Placement
|
||||
|
||||
```
|
||||
Board: (0,0) bottom-left, (65,40) top-right
|
||||
|
||||
Left edge (x≈5-15):
|
||||
J1 USB-C @ (7, 20) — left edge, USB mating face outward
|
||||
R7 CC1 pull-down @ (11, 28)
|
||||
R8 CC2 pull-down @ (11, 25)
|
||||
|
||||
Lower-left (x≈15-25, y≈3-15):
|
||||
J3 PROG header @ (25, 3) — bottom edge
|
||||
R3 IO0 pull-up @ (16, 7)
|
||||
R4 IO12 pull-down @ (16, 12)
|
||||
|
||||
Center-left (x≈20-30):
|
||||
U2 AMS1117-3.3 @ (20, 20) — regulator
|
||||
C5 10µF input @ (24, 17) — near U2 pin 3 (VI)
|
||||
C6 10µF output @ (24, 23) — near U2 pin 2 (VO)
|
||||
|
||||
Center (x≈27-38):
|
||||
R2 EN pull-up @ (27, 32)
|
||||
C4 EN cap @ (26, 35)
|
||||
C1-C3 decoupling @ (30, 22-28) — near U1 3V3 pins
|
||||
U1 ESP32-S3 @ (38, 20) — main module
|
||||
|
||||
Right side (x≈48-58):
|
||||
R5 SDA pull-up @ (48, 24)
|
||||
R6 SCL pull-up @ (48, 22)
|
||||
J2 I2C connector @ (56, 20) — right edge
|
||||
D1 Status LED @ (55, 34) — top-right edge
|
||||
R1 LED resistor @ (55, 30)
|
||||
```
|
||||
|
||||
## Antenna Keepout
|
||||
- **Zone:** x > 46mm, y > 28mm (top-right corner)
|
||||
- No copper, no traces, no components in this area
|
||||
- The ESP32-S3-WROOM-1 module has its PCB antenna at the top-right corner
|
||||
|
||||
## Routing Order
|
||||
1. **USB differential pair** — USB_D_P / USB_D_N: 90Ω impedance, length-matched
|
||||
- Width: ~0.3mm on 1.6mm FR4 (calc with fab's tool)
|
||||
- Gap: ~0.15mm
|
||||
- Route on top layer, GND reference on bottom
|
||||
2. **3V3 power** — 0.5mm traces from U2 VO to U1 3V3 pin + all 3V3 nodes
|
||||
3. **VBUS power** — 0.5mm from J1 to U2 VI
|
||||
4. **GND** — Copper pours on both layers with stitching vias
|
||||
5. **I2C** — SDA/SCL routed together, away from noisy traces
|
||||
6. **UART** — RXD0/TXD0 to J3
|
||||
7. **Strapping** — EN, IO0, IO12 to pull resistors
|
||||
8. **LED** — IO2_LED through R1 to D1
|
||||
|
||||
## GND Pour Strategy
|
||||
- **B.Cu (bottom):** Full copper pour, entire board area
|
||||
- **F.Cu (top):** Full copper pour EXCEPT antenna keepout zone
|
||||
- **Antenna keepout:** Keepout zone polygon on both layers (no copper)
|
||||
- **Stitching vias:** Perimeter every 5mm, plus around module GND pads
|
||||
|
||||
## Files
|
||||
| File | Description |
|
||||
|------|-------------|
|
||||
| `*.kicad_sch` | Schematic (ERC 0) |
|
||||
| `*.kicad_pcb` | PCB layout (empty, needs routing) |
|
||||
| `*.kicad_pro` | Project file |
|
||||
| `gen_schematic.py` | Python schematic generator |
|
||||
| `gen_pcb.py` | Python PCB generator (outline + placement) |
|
||||
"""
|
||||
path = os.path.join(PROJ_DIR, "README.md")
|
||||
with open(path, 'w') as f:
|
||||
f.write(md)
|
||||
print(f"Written: {path}")
|
||||
|
||||
def create_placement_csv():
|
||||
"""Placement file for reference."""
|
||||
path = os.path.join(PROJ_DIR, "placement.csv")
|
||||
with open(path, 'w') as f:
|
||||
f.write("Ref,Footprint,X(mm),Y(mm),Rotation,Net1,Net2\n")
|
||||
for ref, fp, x, y, rot, n1, n2, val in PASSIVES:
|
||||
f.write(f"{ref},{fp},{x},{y},{rot},{n1},{n2}\n")
|
||||
for ref, fp, x, y, rot, val, pins in ICS:
|
||||
nets = ", ".join(f"{p[0]}={p[1]}" for p in pins)
|
||||
f.write(f"{ref},{fp},{x},{y},{rot},{nets}\n")
|
||||
print(f"Written: {path}")
|
||||
|
||||
def update_project():
|
||||
"""Update .kicad_pro with correct board path."""
|
||||
# Read existing
|
||||
if os.path.exists(PRO):
|
||||
with open(PRO) as f:
|
||||
config = json.load(f)
|
||||
else:
|
||||
config = {"board": {}}
|
||||
|
||||
# Ensure board settings exist
|
||||
config["board"] = config.get("board", {})
|
||||
config["board"]["design_settings"] = config["board"].get("design_settings", {})
|
||||
|
||||
with open(PRO, 'w') as f:
|
||||
json.dump(config, f, indent=2)
|
||||
print(f"Updated: {PRO}")
|
||||
|
||||
if __name__ == "__main__":
|
||||
create_readme()
|
||||
create_placement_csv()
|
||||
update_project()
|
||||
print("\nDone! Open the project in KiCad GUI:")
|
||||
print(f" File → Open Project → {PROJ_DIR}/esp32-s3-sensor-node.kicad_pro")
|
||||
147
gen_pcb.py
Normal file
147
gen_pcb.py
Normal file
@@ -0,0 +1,147 @@
|
||||
#!/usr/bin/env python3
|
||||
"""ESP32-S3 Sensor Node — PCB Generator v3. Tabs, like pcbnew."""
|
||||
import os
|
||||
T = '\t'
|
||||
|
||||
PCB = os.path.expanduser("~/Documents/KiCad/10.0/esp32-s3-sensor-node.kicad_pcb")
|
||||
NETS = ["GND","3V3","VBUS","EN","IO0","IO12","SDA","SCL","USB_D_P","USB_D_N","CC1","CC2","IO2_LED","D1_A","RXD0","TXD0"]
|
||||
W,H = 65.0,40.0
|
||||
|
||||
def ni(n): return NETS.index(n) if n in NETS else -1
|
||||
|
||||
def smd(n,x,y,w,h,net,rot=0):
|
||||
return f'{T*4}(pad "{n}" smd rect (at {x:.3f} {y:.3f} {rot}) (size {w:.3f} {h:.3f}) (layers "F.Cu" "F.Paste" "F.Mask")' + (f' (net {ni(net)})' if ni(net)>=0 else '') + ')'
|
||||
|
||||
def fp(ref,lib,x,y,rot,pads):
|
||||
p = [f'{T*3}(footprint "{lib}"', f'{T*4}(layer "F.Cu")', f'{T*4}(at {x:.3f} {y:.3f} {rot})',
|
||||
f'{T*4}(descr "{ref}")',
|
||||
f'{T*4}(property "Reference" "{ref}" (at {x:.3f} {y-3:.3f}) (layer "F.SilkS") (effects (font (size 1 1) (thickness 0.15))))',
|
||||
f'{T*4}(property "Value" "{ref}" (at {x:.3f} {y+3:.3f}) (layer "F.Fab") (effects (font (size 1 1) (thickness 0.15))))']
|
||||
p += [f'{T*4}{x}' for x in pads]
|
||||
p.append(f'{T*3})')
|
||||
return '\n'.join(p)
|
||||
|
||||
FR = '"Resistor_SMD:R_0603_1608Metric"'
|
||||
FC = '"Capacitor_SMD:C_0603_1608Metric"'
|
||||
FC8 = '"Capacitor_SMD:C_0805_2012Metric"'
|
||||
FL = '"LED_SMD:LED_0603_1608Metric"'
|
||||
FP4 = '"Connector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_Vertical"'
|
||||
FU = '"Connector_USB:USB_C_Receptacle_USB2.0_16P"'
|
||||
FE = '"RF_Module:ESP32-S3-WROOM-1"'
|
||||
FS = '"Package_TO_SOT_SMD:SOT-223-3Lead_TabPin2"'
|
||||
|
||||
passives = [
|
||||
("R1",FR,55,30,0,"IO2_LED","D1_A"), ("R2",FR,27,32,0,"EN","3V3"),
|
||||
("R3",FR,16,7,0,"IO0","3V3"), ("R4",FR,16,12,0,"IO12","GND"),
|
||||
("R5",FR,48,24,0,"SDA","3V3"), ("R6",FR,48,22,0,"SCL","3V3"),
|
||||
("R7",FR,11,28,0,"CC1","GND"), ("R8",FR,11,25,0,"CC2","GND"),
|
||||
("C1",FC,30,28,0,"3V3","GND"), ("C2",FC,30,25,0,"3V3","GND"),
|
||||
("C3",FC,30,22,0,"3V3","GND"), ("C4",FC,26,35,0,"EN","GND"),
|
||||
("C5",FC8,24,17,0,"VBUS","GND"), ("C6",FC8,24,23,0,"3V3","GND"),
|
||||
]
|
||||
|
||||
lines = []
|
||||
lines.append('(kicad_pcb')
|
||||
lines.append(f'{T}(version 20260206)')
|
||||
lines.append(f'{T}(generator "pcbnew")')
|
||||
lines.append(f'{T}(generator_version "10.0")')
|
||||
lines.append(f'{T}(general')
|
||||
lines.append(f'{T*2}(thickness 1.6)')
|
||||
lines.append(f'{T*2}(legacy_teardrops no)')
|
||||
lines.append(f'{T})')
|
||||
lines.append(f'{T}(paper "A4")')
|
||||
lines.append(f'{T}(layers')
|
||||
for n,c,t in [(0,"F.Cu","signal"),(2,"B.Cu","signal"),(13,"F.Paste","user"),(15,"B.Paste","user"),
|
||||
(5,"F.SilkS","user"),(7,"B.SilkS","user"),
|
||||
(1,"F.Mask","user"),(3,"B.Mask","user"),
|
||||
(25,"Edge.Cuts","user"),(31,"F.CrtYd","user"),(29,"B.CrtYd","user"),
|
||||
(35,"F.Fab","user"),(33,"B.Fab","user")]:
|
||||
lines.append(f'{T*2}({n} "{c}" {t})')
|
||||
lines.append(f'{T})')
|
||||
lines.append(f'{T}(setup')
|
||||
lines.append(f'{T*2}(pad_to_mask_clearance 0)')
|
||||
lines.append(f'{T*2}(allow_soldermask_bridges_in_footprints no)')
|
||||
lines.append(f'{T*2}(copper_edge_clearance 0.3)')
|
||||
lines.append(f'{T})')
|
||||
|
||||
# Nets
|
||||
lines.append(f'{T}(nets')
|
||||
for i,n in enumerate(NETS):
|
||||
lines.append(f'{T*2}(net {i} "{n}")')
|
||||
lines.append(f'{T})')
|
||||
|
||||
# Net classes
|
||||
lines.append(f'{T}(net_class "Default" (clearance 0.15) (trace_width 0.2) (via_dia 0.6) (via_drill 0.3) (add_net "*"))')
|
||||
lines.append(f'{T}(net_class "POWER" (clearance 0.25) (trace_width 0.5) (via_dia 0.8) (via_drill 0.4) (add_net "3V3") (add_net "VBUS"))')
|
||||
|
||||
# Board outline
|
||||
lines.append(f'{T}(polygon (layer "Edge.Cuts")')
|
||||
lines.append(f'{T*2}(pts')
|
||||
lines.append(f'{T*3}(xy 0 0)')
|
||||
lines.append(f'{T*3}(xy {W} 0)')
|
||||
lines.append(f'{T*3}(xy {W} {H})')
|
||||
lines.append(f'{T*3}(xy 0 {H})')
|
||||
lines.append(f'{T*2})')
|
||||
lines.append(f'{T})')
|
||||
|
||||
# Footprints
|
||||
# J1 USB-C
|
||||
lines.append(fp("J1",FU,7,20,0,[
|
||||
smd("SH",-3,0,2,2,"GND"), smd("A1",-2,5,1.5,1.5,"GND"),
|
||||
smd("A4",-2,-5,1.5,1.5,"VBUS"), smd("A5",-2,-3,1.5,0.8,"CC1"),
|
||||
smd("A6",-2,-1,1.5,0.8,"USB_D_P"), smd("A7",-2,1,1.5,0.8,"USB_D_N"),
|
||||
smd("B5",-2,3,1.5,0.8,"CC2"),
|
||||
smd("B6",-2,0,1.5,0.8,"USB_D_P"), smd("B7",-2,2,1.5,0.8,"USB_D_N"),
|
||||
]))
|
||||
# U2 AMS1117
|
||||
lines.append(fp("U2",FS,20,20,0,[
|
||||
smd("1",-2.3,-3,1.5,1,"GND"), smd("2",0,3,2.5,2.5,"3V3"),
|
||||
smd("3",0,-3,2.5,2.5,"VBUS"),
|
||||
]))
|
||||
# U1 ESP32-S3
|
||||
lines.append(fp("U1",FE,38,20,0,[
|
||||
smd("1",-8,8,1.5,1.5,"GND"), smd("2",-8,-8,1.5,1.5,"3V3"),
|
||||
smd("3",-8,-6,1,1,"EN"), smd("4",-8,-4,1,1,"SDA"),
|
||||
smd("5",-8,-2,1,1,"SCL"), smd("13",8,-4,1,1,"USB_D_N"),
|
||||
smd("14",8,-2,1,1,"USB_D_P"), smd("20",-8,4,1,1,"IO12"),
|
||||
smd("27",-8,0,1,1,"IO0"), smd("36",8,-8,1,1,"RXD0"),
|
||||
smd("37",8,-6,1,1,"TXD0"), smd("38",-8,2,1,1,"IO2_LED"),
|
||||
]))
|
||||
# J2 I2C
|
||||
lines.append(fp("J2",FP4,56,20,0,[
|
||||
smd("1",0,3.81,1.5,1.5,"3V3"), smd("2",0,1.27,1.5,1.5,"SDA"),
|
||||
smd("3",0,-1.27,1.5,1.5,"SCL"), smd("4",0,-3.81,1.5,1.5,"GND"),
|
||||
]))
|
||||
# J3 PROG
|
||||
lines.append(fp("J3",FP4,25,3,0,[
|
||||
smd("1",0,-3.81,1.5,1.5,"GND"), smd("2",0,-1.27,1.5,1.5,"RXD0"),
|
||||
smd("3",0,1.27,1.5,1.5,"TXD0"), smd("4",0,3.81,1.5,1.5,"3V3"),
|
||||
]))
|
||||
# D1 LED
|
||||
lines.append(fp("D1",FL,55,34,0,[
|
||||
smd("1",-0.8,0,0.8,0.8,"GND"), smd("2",0.8,0,0.8,0.8,"D1_A"),
|
||||
]))
|
||||
# Passives
|
||||
for ref,lib,x,y,rot,n1,n2 in passives:
|
||||
lines.append(fp(ref,lib,x,y,rot,[
|
||||
smd("1",-0.8,0.9,0.8,0.8,n1), smd("2",-0.8,-0.9,0.8,0.8,n2),
|
||||
]))
|
||||
|
||||
# Zones
|
||||
for layer in ["F.Cu","B.Cu"]:
|
||||
lines.append(f'{T}(zone (net {ni("GND")}) (layer "{layer}")')
|
||||
lines.append(f'{T*2}(polygon (pts (xy 0 0)(xy {W} 0)(xy {W} {H})(xy 0 {H})))')
|
||||
lines.append(f'{T*2}(fill (mode solid))')
|
||||
lines.append(f'{T})')
|
||||
# Antenna keepout zones
|
||||
for layer in ["F.Cu","B.Cu"]:
|
||||
lines.append(f'{T}(zone (net 0) (layer "{layer}") (priority 1)')
|
||||
lines.append(f'{T*2}(polygon (pts (xy 46 28)(xy {W} 28)(xy {W} {H})(xy 46 {H})))')
|
||||
lines.append(f'{T*2}(fill (mode solid))')
|
||||
lines.append(f'{T})')
|
||||
|
||||
lines.append(')')
|
||||
|
||||
result = '\n'.join(lines) + '\n'
|
||||
open(PCB,'w').write(result)
|
||||
print(f"Written {len(result)} bytes")
|
||||
21
placement.csv
Normal file
21
placement.csv
Normal file
@@ -0,0 +1,21 @@
|
||||
Ref,Footprint,X(mm),Y(mm),Rotation,Net1,Net2
|
||||
R1,Resistor_SMD:R_0603_1608Metric,55,30,0,IO2_LED,D1_A
|
||||
R2,Resistor_SMD:R_0603_1608Metric,27,32,0,EN,3V3
|
||||
R3,Resistor_SMD:R_0603_1608Metric,16,7,0,IO0,3V3
|
||||
R4,Resistor_SMD:R_0603_1608Metric,16,12,0,IO12,GND
|
||||
R5,Resistor_SMD:R_0603_1608Metric,48,24,0,SDA,3V3
|
||||
R6,Resistor_SMD:R_0603_1608Metric,48,22,0,SCL,3V3
|
||||
R7,Resistor_SMD:R_0603_1608Metric,11,28,0,CC1,GND
|
||||
R8,Resistor_SMD:R_0603_1608Metric,11,25,0,CC2,GND
|
||||
C1,Capacitor_SMD:C_0603_1608Metric,30,28,0,3V3,GND
|
||||
C2,Capacitor_SMD:C_0603_1608Metric,30,25,0,3V3,GND
|
||||
C3,Capacitor_SMD:C_0603_1608Metric,30,22,0,3V3,GND
|
||||
C4,Capacitor_SMD:C_0603_1608Metric,26,35,0,EN,GND
|
||||
C5,Capacitor_SMD:C_0805_2012Metric,24,17,0,VBUS,GND
|
||||
C6,Capacitor_SMD:C_0805_2012Metric,24,23,0,3V3,GND
|
||||
J1,Connector_USB:USB_C_Receptacle_USB2.0_16P,7,20,0,SH=GND, A1=GND, A4=VBUS, A5=CC1, A6=USB_D_P, A7=USB_D_N, B5=CC2
|
||||
U2,Package_TO_SOT_SMD:SOT-223-3Lead_TabPin2,20,20,0,1=GND, 2=3V3, 3=VBUS
|
||||
U1,RF_Module:ESP32-S3-WROOM-1,38,20,0,1=GND, 2=3V3, 3=EN, 4=SDA, 5=SCL, 13=USB_D_N, 14=USB_D_P, 20=IO12, 27=IO0, 36=RXD0, 37=TXD0, 38=IO2_LED
|
||||
J2,Connector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_Vertical,56,20,0,1=3V3, 2=SDA, 3=SCL, 4=GND
|
||||
J3,Connector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_Vertical,25,3,0,1=GND, 2=RXD0, 3=TXD0, 4=3V3
|
||||
D1,LED_SMD:LED_0603_1608Metric,55,34,0,1=GND, 2=D1_A
|
||||
|
Can't render this file because it has a wrong number of fields in line 16.
|
Reference in New Issue
Block a user