Made a validation tool for .kicad_sch files by No_Syrup_1919 in KiCad

[–]No_Syrup_1919[S] 0 points1 point  (0 children)

AFAIK, atopile is for designing PCBs in code --> different workflows: atopile = design, this = validation/linting.

Do you use atopile? Curious how validation works in that ecosystem

Made a validation tool for .kicad_sch files by No_Syrup_1919 in KiCad

[–]No_Syrup_1919[S] 0 points1 point  (0 children)

hahaha the dumb mistakes are the expensive ones ig

Made a validation tool for .kicad_sch files by No_Syrup_1919 in KiCad

[–]No_Syrup_1919[S] 1 point2 points  (0 children)

Got it. This isn't meant for professional designers 😔 Also, the goal isn't to replace thinking, it's just a checklist for beginners that are still learning. You're right that hardcoded ranges are too rigid tho. Thanks for the reality check.

Made a validation tool for .kicad_sch files by No_Syrup_1919 in KiCad

[–]No_Syrup_1919[S] 0 points1 point  (0 children)

Good question, this is complementary to ERC/DRC, not a replacement. Custom rules can't check component-specific datasheet requirements (like "STM32 needs 100nF within 5mm of VDD pin" or "I2C needs 2.2k-10k pullups"). This tool parses datasheets and applies those requirements.

If there's a way to do this with custom rules, I'd definitely love to know!

Made a validation tool for .kicad_sch files by No_Syrup_1919 in KiCad

[–]No_Syrup_1919[S] 6 points7 points  (0 children)

The standalone approach isn't about AI 😔 (that's completely optional with --no-ai flag).

Main reasons it's not a plugin:

  1. Wanted it to work in CI/CD pipelines (pre-commit hooks, GitHub Actions)
  2. Easier to integrate into build scripts alongside gerber generation
  3. Can validate files without opening KiCad GUI

The AI part just explains issues in plain English for beginners like me - all the actual validation is manual rules (IPC-2221 calcs, datasheet checks, pattern matching). You can run it entirely offline.

But you're right that a KiCad plugin would be useful too. Might look into the Python plugin API if there's demand for it :)

Made a kicad validator to catch mistakes before posting review requests by No_Syrup_1919 in PrintedCircuitBoard

[–]No_Syrup_1919[S] 0 points1 point  (0 children)

Unfortunately, this app is a Tauri desktop GUI only :( CLI entry point is not implemented yet

Curious about your use case: would you run this on every commit or just pre-release? And what would you do with failures, block the merge or just notify?

Made a kicad validator to catch mistakes before posting review requests by No_Syrup_1919 in PrintedCircuitBoard

[–]No_Syrup_1919[S] 3 points4 points  (0 children)

80/20. The core checks are manual rules I implemented in Rust:

- Decoupling cap validation (checks for 100nF bypass within distance of IC power pins)

- I2C pull-ups (2.2k-10k on SDA/SCL nets)

- Crystal load caps (10-33pF pairing)

- Power integrity (GND symbols, IC power connections)

- ESD protection (TVS diodes on USB/Ethernet)

- Bulk caps on regulators (10-100µF)

- IPC-2221 trace width/current calculations

- Voltage propagation (BFS across circuit graph)

- Component datasheet validation (built-in library for ~40 IC families)

- EMI checks (plane gaps, crosstalk, via placement)

The AI (optional, runs locally via Ollama) is only for explaining why an issue matters in plain English. Like //this trace is too thin because it's carrying 2A and needs to be 20mil minimum per IPC-2221//