hrithik18k/smartknob
A two-board SmartKnob assembly combining USB-C programming, regulated power, CH340C USB-UART, HX711 force sensing, MT6701 magnetic angle sensing, VEML7700 ambient-light sensing, MOSFET/BJT drivers, an SK6812 RGB LED, connectors, and supporting passives.
- Version
- 1.0.5
- License
- Apache-2.0
- Stars
- 0
VALIDATION.md
# Validation record
Validated against upstream SmartKnob commit `340eed936d04da718e66cbb89613ee2fdff4bf26`.
| Check | Base | Screen |
|---|---|---|
| TypeScript | Pass | Pass |
| Netlist generation | Pass | Pass |
| Schematic placement | Pass | Pass |
| Gerber-derived copper short check, both layers | **No shorts detected** | **No shorts detected** |
| Source pad geometry/layer/electrical-port audit | 0 mismatches | 0 mismatches |
| Original explicit copper routes and source net associations | 0 mismatches | 0 mismatches |
| PCB placement report | 0 reports with documented board-level suppression | 0 errors, 0 warnings |
The base originally reported that D1, D2, D5, D6, D7 and D8 overlap cutouts. The checker compares axis-aligned component bounds, not the rotated LED body outline. An independent polygon intersection of all eight original LED body outlines against every cutout reports **0 mm² overlap**. `placementDrcChecksDisabled` is set on the base board to avoid these false reports; it disables the board's other automatic placement checks as well. Exact source pad geometry, routes, and the LED-to-cutout intersections are checked by separate scripts. This is not a mechanical enclosure clearance certification.
The USB connector intentionally sits at/in the board notch and is marked `allowOffBoard`. Original via-in-pad structures are explicitly allowed. Filled pours receive a 0.22 mm board-edge clipping margin; this resolves the reconstruction's small edge-clearance loss. No pad-to-pad error or unresolved short remains in the final circuit JSON.
The CLI can print `Build complete` and exit zero even with DRC reports. Validation inspected the circuit JSON and separate geometric audits, rather than relying on that exit code.
Use local `@tscircuit/cli` 0.1.2298 for the short check. The older global CLI fails on supported polygon/rotated-pill export shapes. Builds use tscircuit 0.0.2830. Hardware has not been fabricated or tested. Supplier 3D origins, part interchangeability, firmware and complete active-pin electrical rules remain outside this conversion's validation.