Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,10 +30,10 @@ jobs:
run: cargo +1.96.0 run --locked --manifest-path ci/stackup/Cargo.toml -- bom PCB/v1.x/stackup/board.kdl --locked -o /tmp/snips-bom.csv

- name: Check Stackup design (v2)
run: cargo +1.96.0 run --locked --manifest-path ci/stackup/Cargo.toml -- check PCB/v2.x/stackup/board.kdl --locked
run: cargo +1.96.0 run --locked --manifest-path ci/stackup/Cargo.toml -- check PCB/v2.x/snips/stackup/board.kdl --locked

- name: Check purchasing BOM (v2)
run: cargo +1.96.0 run --locked --manifest-path ci/stackup/Cargo.toml -- bom PCB/v2.x/stackup/board.kdl --locked -o /tmp/snips-bom-v2.csv
run: cargo +1.96.0 run --locked --manifest-path ci/stackup/Cargo.toml -- bom PCB/v2.x/snips/stackup/board.kdl --locked -o /tmp/snips-bom-v2.csv

- name: Check Stackup design (XBee carrier)
run: cargo +1.96.0 run --locked --manifest-path ci/stackup/Cargo.toml -- check PCB/v2.x/xbee-carrier/stackup/board.kdl --locked
Expand All @@ -57,7 +57,7 @@ jobs:

- name: Check PCB sync (v2)
run: |
/usr/bin/python3 ci/check_pcb_sync.py PCB/v2.x/snips_controller.kicad_pcb \
/usr/bin/python3 ci/check_pcb_sync.py PCB/v2.x/snips/snips_controller.kicad_pcb \
--stackup ci/stackup/target/debug/snips-stackup-check \
--plugin-dir stackup-tool/kicad-plugin

Expand Down
2 changes: 1 addition & 1 deletion CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ Keep `value=` human-readable; specify exact purchasing choices with `manufacture
`mpn=` and distributor fields on each placement. A `hand=#true` placement remains
in the purchasing BOM and is marked `DNP` for outsourced assembly.

- V2 is a separate board in `PCB/v2.x`, with the same layout of files and the same commands; CI checks both.
- V2 is a separate board in `PCB/v2.x/snips`, with its optional XBee carrier in `PCB/v2.x/xbee-carrier`. Both have the same layout of files and the same commands; CI checks all three boards.
- The circuit source is `PCB/v1.x/stackup/board.kdl` and `PCB/v1.x/stackup/parts.kdl`. Run
`stackup check PCB/v1.x/stackup/board.kdl`, then sync the PCB with the Stackup KiCad plugin.
- The BOM scripts read Stackup's CSV through the Cargo-locked CLI, including
Expand Down
4 changes: 2 additions & 2 deletions PCB/v2.x/GPIO_table.md → PCB/v2.x/snips/GPIO_table.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Snips Controller V2 — ESP32-S3-MINI-1U pin table

> The wiring source is `PCB/v2.x/stackup/board.kdl`, and the module is modeled in
> `PCB/v2.x/stackup/parts.kdl`. Pin data is from Espressif's ESP32-S3-MINI-1 & MINI-1U datasheet
> The wiring source is `PCB/v2.x/snips/stackup/board.kdl`, and the module is modeled in
> `PCB/v2.x/snips/stackup/parts.kdl`. Pin data is from Espressif's ESP32-S3-MINI-1 & MINI-1U datasheet
> v1.7, in `datasheets/`. The module is on the top side.

The ESP32-S3-MINI-1U-N8 runs the firmware. The XBee 3 is optional: it sits on a castellated daughter board on the underside, and the ESP32's own Bluetooth and ESP-NOW work without it.
Expand Down
2 changes: 1 addition & 1 deletion PCB/v2.x/README.md → PCB/v2.x/snips/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ A wireless handheld controller for R2-D2 droid operation, designed for use at pu
The electrical design is in [Stackup KDL](stackup/board.kdl), using the pinned
Stackup library plus a [local thumbstick model](stackup/parts.kdl). The existing [KiCad PCB](snips_controller.kicad_pcb) is linked
through `snips_controller.stackup_sch`; sync it with the Stackup KiCad plugin. Run
`stackup check PCB/v2.x/stackup/board.kdl` from the repository root before syncing.
`stackup check PCB/v2.x/snips/stackup/board.kdl` from the repository root before syncing.

## V2 board

Expand Down
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

Q_PWR1 switches the buck's EN pin from VSYS. It carries only the EN pull-down current, since the buck takes its input directly from VSYS, so this block is low-current throughout.

**Source:** `PCB/v2.x/stackup/board.kdl`  ·  **Nets:** VSYS → PWR_EN  ·  **Package:** SOT-23 ×3, SOD-123 ×2, SOT-323 ×1
**Source:** `PCB/v2.x/snips/stackup/board.kdl`  ·  **Nets:** VSYS → PWR_EN  ·  **Package:** SOT-23 ×3, SOD-123 ×2, SOT-323 ×1

## What's on this sheet

Expand Down Expand Up @@ -71,4 +71,4 @@ The button's position is fixed by the enclosure before you start — everything
> **Checked, not just assumed:** AO3401A is rated for 4A continuous with <60mΩ RDS(on) at 4.5V gate drive in this SOT-23 package — comfortably oversized for a handheld controller's sub-2A system budget, so this isn't a thermal risk the way the charger's WSON is. MMBT3904 is a general-purpose small-signal part switching microamps here (just enough to bias a diode) — nowhere near its ratings, no thermal consideration needed. BAT54W-7-F's job is purely to isolate two nodes at sub-1V forward drop, also nowhere near its ratings. Connectivity alone (ERC, netlist, DRC) doesn't catch bad DC bias points — the `R_LATCH_G1`/`PWR_BTN_SENSE` loading bugs in callouts D and F, and the floating `PWR_EN` in callout G, all passed every connectivity check and were only found by actually working through the bias/divider math or reading the driven IC's own datasheet, so don't treat a clean ERC/DRC as proof a gate-drive, sense, or enable network will behave.

---
*Generated from `PCB/v2.x/stackup/board.kdl` — a placement reference, not a manufacturing drawing. Model your actual footprints and DRC against your fab's rules. A richer standalone version with the full interactive design lives in [power_control_layout.html](power_control_layout.html).*
*Generated from `PCB/v2.x/snips/stackup/board.kdl` — a placement reference, not a manufacturing drawing. Model your actual footprints and DRC against your fab's rules. A richer standalone version with the full interactive design lives in [power_control_layout.html](power_control_layout.html).*
File renamed without changes.
Loading
Loading