Communitygithub.com

KiCad Projektanalyse & Schemaerstellung

Fertigt automatisch Schaltpläne nach lesbaren Layout-Standards an, führt strukturierte Analyse von Schaltplänen/PCBs/Gerber-Dateien durch und erzwingt ERC-/Netzlisten-/Rendering-Prüfungen.

Was ist KiCad Projektanalyse & Schemaerstellung?

Diese Skill für KiCad automatisiert die Erstellung und Überprüfung von Schaltplänen mit einem strengen Fokus auf Lesbarkeit und Korrektheit. Sie erzeugt Schaltpläne nach definierten Zeichenstandards (LM5013-ähnliches Power-Bus-Layout), berechnet Komponentenwerte anhand von Datenblättern und platziert alles auf einem 1,27-mm-Raster. Nach der Erstellung wird automatisch eine Verifikationsschleife durchlaufen: ERC (Electrical Rules Check), Netzlistenerzeugung, strukturierte Analyse und visuelle Inspektion. Für vollständige Design-Reviews führt die Skill mehrere Analyse-Skripte aus – Schaltplan-, PCB-, Gerber-, EMC- und thermische Analyse – und erstellt einen umfassenden Bericht mit Blockern, Verifikationsbasis und Fehlalarm-Erkennung. Sie unterstützt die Plattformen KiCad (über `kicad-cli` und Python-Skripte) und EasyEDA Pro (durch Übergabe an die entsprechende Skill). Vor der Analyse kann sie bei verfügbaren API-Keys (z. B. DigiKey) automatisch Datenblätter synchronisieren, um Pin-Level- und Entkopplungsprüfungen zu ermöglichen. Die Erkennung von DS-001/DS-002/DS-003-Findings stellt sicher, dass keine ungeprüften Behauptungen aufgestellt werden, und die erweiterte Formatierung der JSON-Ausgabe vermeidet häufige Fehler beim manuellen Lesen.

Funktioniert mit✓Claude Code~Codex CLI~Cursor
npx skills add wenqiiizwq-creator/Autonomous-Schematic-Generation

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

KiCad Projektanalyse & Schemaerstellung Skill

Verwandte Skills

SkillZweck
bomBOM-Extraktion, Anreicherung, Bestellung und Export-Workflows
digikeySuche bei DigiKey nach Bauteilen (Prototypen-Beschaffung)
mouserSuche bei Mouser nach Bauteilen (sekundäre Prototypen-Quelle)
lcscSuche bei LCSC nach Bauteilen (Produktionsbeschaffung, JLCPCB)
element14Suche bei Newark/Farnell/element14 (internationale Beschaffung, zuverlässige Datenblätter)
jlcpcbLeiterplattenfertigung & Bestückungsbestellung
pcbwayAlternative Leiterplattenfertigung & Bestückung
spiceSPICE-Simulationsverifikation erkannter Subschaltungen
emcEMC-Vorkonformitäts-Risikoanalyse – nutzt Schaltplan- + PCB-Analyse-Ausgabe

Übergabehinweis: Verwenden Sie diese Skill zum Parsen von Schaltplänen/PCBs und Extrahieren strukturierter Daten. Übergeben Sie an bom für BOM-Anreicherung, Preisgestaltung und Bestellung. Übergeben Sie an digikey/mouser/lcsc/element14 für Bauteilsuchen und Datenblattabruf. Übergeben Sie an jlcpcb/pcbway für Fertigungsbestellung und DFM-Regelprüfung. Führen Sie immer spice aus für Simulationsverifikation während Design-Reviews, wenn ein SPICE-Simulator installiert ist (prüfen mit which ngspice ltspice xyce). Führen Sie immer emc aus für EMC-Vorkonformitäts-Risikoanalyse während Design-Reviews, wenn sowohl Schaltplan- als auch PCB-Analyse verfügbar sind. Dies ist nicht optional – ein Überspringen hinterlässt unentdeckte Wertberechnungsfehler und EMC-Risiken.

Vor der Analyse: Wenn der Benutzer bittet, ein KiCad-Projekt zu analysieren oder zu überprüfen, prüfen Sie, ob ein Verzeichnis datasheets/ im Projekt existiert. Falls nicht und DigiKey-API-Schlüssel verfügbar sind (DIGIKEY_CLIENT_ID), bieten Sie an, zuerst Datenblätter zu synchronisieren: „Ich kann vor der Analyse Datenblätter für Ihre Komponenten herunterladen – dies ermöglicht Pin-Level-Überprüfung und Entkopplungsvalidierung gemäß Herstellerspezifikationen. Möchten Sie, dass ich sie synchronisiere?“ Wenn der Benutzer ablehnt oder keine API-Schlüssel gesetzt sind, fahren Sie ohne Datenblätter fort – die Analyse funktioniert ohne sie, aber Datenblatt-Überprüfungsbefunde sind nicht verfügbar.

Wenn Sie einen DS-001-Befund in der Analyse-Ausgabe sehen (Schweregrad high, Detektor audit_datasheet_coverage), kann die Überprüfung keine verifizierte Behauptung aufstellen. Stoppen Sie und führen Sie entweder (a) die Datenblatt-Synchronisierung über digikey / mouser / lcsc / element14 durch (je nachdem, welche Anmeldeinformationen/Bestand hat), (b) befüllen Sie MPNs auf den BOM-Teilen, oder (c) geben Sie im Bericht explizit an, dass jeder Pin-Level-, elektrische und Reglerbefund nur Konsistenz ist – verwenden Sie nirgendwo die Wörter „verifiziert“, „bestätigt“ oder „laut Datenblatt“. DS-002 (fehlende Datenblätter, aber MPNs gesetzt) und DS-003 (teilweise MPN-Abdeckung) sind mildere Varianten mit derselben Implikation für die von ihnen genannten Teile.

Schaltplanerstellung (Zeichnen & Neuziehen)

Verwenden Sie diesen Workflow, wenn der Benutzer bittet, einen Schaltplan zu erstellen, hinzuzufügen, neu zu zeichnen oder umzugestalten – z.B. „füge einen 5V/5A TPS54560-Schaltkreis hinzu“, „把原理图画成可读风格“, „erzeuge einen Buck-Schaltplan“, „zeichne diese Stromversorgung neu".

  1. Lesen Sie zuerst den Standard. references/schematic-drawing-standards.md ist vor dem Erstellen oder Bearbeiten eines Schaltplans obligatorisch. Es definiert das LM5013-ähnliche Power-Bus-Layout, GND-Bus, Label-Richtlinie, KiCad 9 Verdrahtungsbeschränkungen (Verbindungsdrähte an Verbindungspunkten aufteilen; keine Pin-zu-Pin-Einzeldrähte; Labels an gemeinsam genutzten Knoten) und die Verifikationsprüfung.
  2. Entwurf anhand des Datenblatts. Datenblatt des ICs abrufen/lesen; Pinout, Vref, Absolutmax-Werte und die typische Anwendung extrahieren. Werte (Feedback-Teiler, RT/Frequenz, Induktivität, Kondensatoren, Kompensation) mit den Datenblattgleichungen berechnen und die Zahlen vor dem Zeigen nennen.
  3. Planen Sie den Block auf dem 1,27 mm Raster, spiegelbildlich zur kanonischen LM5013-Struktur: ein durchgehender Power-Bus INPUT → IC → SW → L → OUTPUT, ein unterer GND-Bus und Steuerkomponenten in einem geordneten Band unterhalb des ICs (eine Spalte pro Funktion). Überprüfen Sie die Pin-Positionen und Rotations-Semantik des Symbols, bevor Sie Drähte schreiben.
  4. Generieren. Bearbeiten Sie die .kicad_sch-S-Expression direkt oder verwenden Sie ein Generator-Skript. Jeder Draht muss an einem Pin, einer Verbindung, einem Label oder einem Power-Symbol enden; Rails werden an jedem Verbindungspunkt in Segmente aufgeteilt. Für EasyEDA Pro übergeben Sie an die easyeda-schematic-draw-Skill mit demselben Standard.
  5. Verifizieren mit KiCad selbst – diese Prüfung ist vor der Erfolgsmeldung obligatorisch:
    • kicad-cli sch erc → 0 Fehler / 0 Warnungen
    • kicad-cli sch export netlist → Pin-für-Pin-Übereinstimmung mit dem Entwurfsziel
    • Schaltplananalyse-Ausführung mit heuristischen Vout-Schätzungen korrigiert auf die Datenblatt-Vref
    • Geometrie-Check: keine Symbolkörper-Überlappungen, kein Label innerhalb eines IC-Körpers
    • PDF/PNG-Rendering + visuelle Überprüfung: ein durchgehender Power-Bus, lesbares Steuerband, keine Komponentenstapelung
  6. Berichten Sie die Entwurfswerte mit Gleichungen, die Verifikationsnachweise und alle von Ihnen korrigierten Analyse-Einschränkungen.

Die untenstehenden Analyse- und Design-Review-Workflows gelten weiterhin für das Generierte.

Design-Review-Vertrag

Wenn der Benutzer nach einem Design-Review, vollständigen Bericht, fertigungsbereiter Bewertung oder etwas Gleichwertigem fragt, hören Sie nicht auf, nur einen oder zwei Analysatoren auszuführen und deren Ergebnisse zusammenzufassen. Ein Design-Review in dieser Skill hat einen strengeren Vertrag:

  1. Lesen Sie den vollständigen Workflow in dieser SKILL.md, nicht nur die Analysator-Befehlsabschnitte.
  2. Lesen Sie references/report-generation.md, bevor Sie den Bericht schreiben.
  3. Führen Sie jeden anwendbaren Analysator für die im Projekt vorhandenen Dateien aus, und sagen Sie dann explizit, welche ausgeführt wurden und welche nicht.
  4. Führen Sie Rohdatei- und Datenblatt-Kreuzverifikation durch, bevor Sie etwas als „verifiziert" behaupten.
  5. Kategorisieren Sie wahrscheinliche Fehlalarme des Analysators, bevor Sie sie zu Blockern hochstufen.
  6. Wenn ein erforderlicher Schritt nicht durchgeführt werden konnte, geben Sie dies als Review-Lücke an, nicht als stillschweigende Auslassung.

Behandeln Sie dies als Mindestanforderung. Analysator-JSON allein ist nicht das endgültige Review.

Mindest-Review-Checkliste

Für ein vollständiges Design-Review berücksichtigen Sie explizit jeden der folgenden Punkte im Bericht:

  • datasheets/ vorhanden, synchronisiert oder Verifikationslücke angegeben
  • analyze_schematic.py
  • analyze_pcb.py --full
  • cross_analysis.py
  • analyze_emc.py
  • SPICE-Simulation, wenn ein Simulator installiert ist
  • analyze_thermal.py, wenn sowohl Schaltplan- als auch PCB-JSON existieren
  • analyze_gerbers.py, wenn Fertigungsausgaben existieren
  • Lebenszyklus-Audit, wenn Netzwerkzugriff und MPN-Abdeckung dies erlauben
  • Vorheriges Review / Deltaprüfung vorheriger Lauf
  • Roh-Schaltplan/PCB-Stichprobenverifikation auf vollständige Verifikation für kritische Teile hochgestuft
  • Explizite Berichtsabschnitte für Blocker, Verifikationsbasis, Fehlalarme und übersprungene Analysen

Wenn ein Punkt nicht zutrifft, sagen Sie, warum. Wenn er übersprungen wurde, sagen Sie, warum. Wenn er fehlgeschlagen ist, sagen Sie, wie dies das Vertrauen einschränkt.

Häufige Review-Fehlermodi

Dies sind die Fehlermodi, die dieser Vertrag verhindern soll:

  • Nach Schaltplan- + PCB- + EMC-Ausgabe aufhören und es als vollständiges Review bezeichnen
  • Analyse-Befunde melden, ohne zu prüfen, ob es sich um erwartete Layout-Artefakte handelt
  • „Verifiziert" ohne direkten Datenblattnachweis oder strukturierten Extraktionsnachweis behaupten
  • Thermische, Lebenszyklus-, Vor-Review-Delta- oder Gerber-Prüfungen ohne Offenlegung auslassen
  • Einen Bericht schreiben, dem ein Urteil, eine Blockertabelle, eine Verifikationsbasis oder übersprungene Analysehinweise fehlen
  • Nur den ersten Teil dieser Skill lesen und den Design-Review-Workflow später in der Datei verpassen

PDF-Schaltplananalyse

Diese Skill verarbeitet auch PDF-Schaltpläne – Referenzdesigns, Entwicklungsboard-Schaltpläne, Evaluierungsboard-Dokumente, Applikationshinweise und Datenblatt-Typanwendungen. Häufige Anwendungsfälle:

  • Analysieren eines Referenzdesigns eines Herstellers, um die Schaltung zu verstehen
  • Extrahieren einer Subschaltung (Stromversorgung, USB-Schnittstelle, Sensor-Frontend) zur Integration in Ihr eigenes KiCad-Design
  • Vergleichen eines PDF-Referenzdesigns mit Ihrem eigenen Schaltplan
  • Extrahieren einer vollständigen BOM aus einem PDF-Schaltplan
  • Validieren von Komponentenwerten in einem PDF anhand aktueller Datenblätter

Workflow: PDF-Seiten visuell lesen → Komponenten und Verbindungen identifizieren → strukturierte Daten extrahieren → in KiCad-Symbole und -Netze übersetzen → gegen Datenblätter validieren.

Für die vollständige Methodik – Komponentenextraktion, Notationskonventionen, Netzzuordnung, Subschaltungsextraktion, KiCad-Übersetzung und Validierung – lesen Sie references/pdf-schematic-extraction.md.

Für eine tiefgehende Validierung extrahierter Schaltungen anhand von Datenblättern (Werte überprüfen, Muster prüfen, Fehler erkennen) verwenden Sie die Methodik in references/schematic-analysis.md.

Analyse-Skripte

Diese Skill enthält Python-Skripte, die umfassendes strukturiertes JSON aus KiCad-Dateien in einem einzigen Durchlauf extrahieren. Führen Sie diese zuerst aus, und argumentieren Sie dann über die Ausgabe.

Lesen Sie die Analysator-JSON-Ausgabe direkt, anstatt Ad-hoc-Extraktionsskripte zu schreiben. Das JSON-Schema hat spezifische Feldnamen (unten und in references/output-schema.md dokumentiert), die in benutzerdefiniertem Code leicht falsch sein können. Um einen bestimmten Abschnitt zu extrahieren: python3 -c "import json; d=json.load(open('file.json')); print(json.dumps(d['key'], indent=2))".

Wenn das JSON Sie überrascht – ein AttributeError, unerwartete Form, ein Feld, das None zurückgibt, das aber einen Wert haben „sollte" – stoppen Sie und führen Sie --schema aus, bevor Sie einen zweiten Extraktionsversuch schreiben. Es gibt die genauen Feldnamen und -typen für jeden Top-Level-Schlüssel aus:

python3 <skill-path>/scripts/analyze_schematic.py --schema
python3 <skill-path>/scripts/analyze_pcb.py --schema
python3 <skill-path>/scripts/analyze_gerbers.py --schema

JSON-Feld-Spickzettel – die häufigsten Fehler beim manuellen Lesen der Analysator-Ausgabe:

Was Sie wollenKorrekter Pfad und FeldHäufiger Fehler
Pins auf einem Netznets[<name>].pins[].component / .pin_number / .pin_name / .pin_typeref, pin, type, number
Unbenannte-Netz-Anzeigenets[<name>].display_name – wenn gesetzt, ein Ref.PinName-Hinweis für ein __unnamed_N-Netz, dessen einziger benannter IC-Pin die Geschichte erzählt (z.B. __unnamed_36 → U1.VBOOT). Fehlt bedeutet, dass der Analysator nicht unterscheiden konnte.display_name ignorieren und rohes __unnamed_36 in den Bericht einfügen
IC-Pin-Mapic_pin_analysis[] ist eine Liste von IC-Einträgen; jeder hat .reference und .pins[] mit .pin_number / .pin_name / .pin_type / .net / .connected_to[]Als {ref: {...}} oder pins[].number behandeln
Erkannte SchaltungenJede mustergematchte Schaltung (Spannungsregler, RC-Filter, Quarzoszillatoren, Brücken, …) befindet sich in findings[] – filtern mit finding_schema.get_findings(data, Det.POWER_REGULATORS) etc. Nicht aus subcircuits[] lesen: Das ist eine IC-Nachbarschaftsgruppierung ({center_ic, ic_value, neighbor_components, …}), kein kategorisierter ErkennungsindexNach subcircuits.power_regulators, subcircuits.rc_filters oder einem subcircuits[type]-Schlüssel suchen – diese existierten nie in v1.3-Ausgabe
Zonennetzpcb.zones[].net ist eine ganzzahlige Netz-ID, kein String. Verwenden Sie f"{net!r}" oder konvertieren Sie zuerstf"{net:20s}" – stürzt ab mit ValueError: Unknown format code 's' for object of type 'int'
Footprint-Positionpcb.footprints[].x / .y auf oberster Ebene (kein .position-Wrapper)footprints[].position.x
Befundefindings[] flache Liste – jeder hat rule_id, detector, severity, summary, report_context. Filtern mit finding_schema.get_findings(data, Det.*) oder group_findings(data)Nach geschlüsselten Dictionaries suchen wie signal_analysis.power_regulators[] (Pre-v1.3-Format, entfernt)

Dies verhindert Format-String-Fehler und falsche Feldnamen. Verwenden Sie f-Strings oder json.dumps() für die Ausgabeformatierung – niemals %s mit Nicht-String-Typen. Siehe references/output-schema.md für das vollständige Schema mit allgemeinen Extraktionsmustern.

In allen folgenden Befehlen bezieht sich <skill-path> auf das Basisverzeichnis dieser Skill (oben in dieser Datei angezeigt, wenn geladen).

Schaltplan-Analysator

python3 <skill-path>/scripts/analyze_schematic.py <datei.kicad_sch> --analysis-dir analyse/
python3 <skill-path>/scripts/analyze_schematic.py <datei.kicad_sch> --analysis-dir analyse/ --compact
python3 <skill-path>/scripts/analyze_schematic.py <datei.kicad_sch> --output analyse.json  # einmalig, kein Cache

Gibt strukturiertes JSON aus (~60-220KB abhängig von der Board-Komplexität) mit:

  • Komponenten & BOM: Bestand mit Referenz, Wert, Footprint, lib_id, Typklassifikation, MPN, Datenblatt; deduplizierte BOM mit Mengen
  • Netze: vollständige Verbindungskarte mit Pin-zu-Netz-Zuordnung, Drahtanzahlen, Nicht-Verbindungen
  • Erkannte Subschaltungen (mustergematchte Schaltungen – alle als Einträge in findings[] mit passenden Det.*-Detektoren ausgegeben; zum Abrufen get_findings(data, Det.POWER_REGULATORS) etc. verwenden):
    • Spannungsregler – LDO/Schaltregler/Invertierend-Topologie, Vout-Schätzung über datenblattverifizierte Vref-Nachschlage (~60 Familien) mit heuristischem Fallback und festem Ausgangs-Suffix-Parsing, Felder vref_source (lookup/heuristic/fixed_suffix) und vout_net_mismatch
    • Spannungsteiler, RC/LC-Filter (Grenzfrequenz), Rückkopplungsnetzwerke, Quarzschaltungen (Lastkapazitätsanalyse, IC-Pin-basierte Erkennung)
    • Operationsverstärker-Schaltungen (Konfiguration, Verstärkung, Integrator/Kompensator), Transistorschaltungen (netznamenbewusste Lastklassifikation: Motor/Heizung/Lüfter/Solenoid/Ventil/Pumpe/Relais/Lautsprecher/Summer/Lampe; FET-Pegelumsetzer-Topologie)
    • Brückenschaltungen (H-Brücke, 3-phasig, Blattübergreifende Erkennung), Schutzvorrichtungen (ESD/TVS), Strommessung, Entkopplungsanalyse
    • Domänenspezifisch: HF-Ketten, HF-Anpassungsnetzwerke, BMS, Ethernet (BFS-PHY-zu-Stecker-Verfolgung), HDMI/DVI-Schnittstellen, Speicherschnittstellen, Tastenmatrizen (netznamen- und topologiebasiert), Isolationstrennstellen, adressierbare LED-Ketten (WS2812/SK6812/APA102), Akkuladeregler (TP4056/MCP73831/BQ2404x), Motortreiber (A4988/TMC2209/DRV8301), ESD-Schutzabdeckungsprüfung, Debug-Schnittstellen (SWD/JTAG mit MCU-Verfolgung), Strompfad (Lastschalter/Idealdioden/USB-PD-Controller), ADC-Signalaufbereitung (externe ADCs + Spannungsreferenzen mit Anti-Aliasing-Kreuzreferenz), Reset/Überwachungsschaltungen (Spannungsüberwacher/Watchdog/RC-Reset-Netzwerke), Taktverteilung (Taktgeneratoren/PLLs/Oszillatorausgangsverfolgung)

Verwandte Skills