analyze-power-nets
SKILL.md
Analyze Power Nets
When this skill is invoked, perform a full AI-powered analysis of the PCB to identify power nets and recommend track widths.
Step 1: Load and Extract Components
from analyze_power_paths import (
analyze_pcb, get_components_needing_analysis, classify_component,
trace_power_paths, get_power_net_recommendations, format_analysis_report,
ComponentRole
)
components, pcb_data = analyze_pcb("path/to/file.kicad_pcb")
unknown = get_components_needing_analysis(components)
Step 2: Auto-Classify Obvious Components
These are already handled automatically - no AI needed:
| Prefix | Role | Reason |
|---|---|---|
| R (resistor) | SHUNT | Pull-ups, voltage dividers |
| C (capacitor) | SHUNT | Decoupling caps |
| L (inductor) | PASS_THROUGH | Series filter element |
| FB (ferrite bead) | PASS_THROUGH | Series filter element |
| F (fuse) | PASS_THROUGH | Series protection |
| LED | CURRENT_SINK | Consumes current |
| SW (switch) | PASS_THROUGH | Power switching |
Step 3: AI Analysis for Unknown Components
For each component in the unknown list, you MUST:
3a. Identify What It Is
Use WebSearch to look up the component:
WebSearch: "<part_value> <footprint_hint> datasheet"
Examples:
"DB9 connector pinout"- Is it signal or power?"1N4004 diode datasheet"- Rectifier vs signal diode"3906 transistor datasheet"- Power switch or signal amp?"LT1129 regulator datasheet"- Voltage regulator specs"MCF5213 power consumption"- IC current requirements
3b. Determine Its Role
Based on the datasheet/search results, classify as:
| Role | Criteria |
|---|---|
| POWER_SOURCE | Supplies current to the board: power jacks, battery connectors, regulator outputs, USB power inputs |
| CURRENT_SINK | Consumes significant current: ICs, MCUs, CPLDs, FPGAs, motor drivers, high-power LEDs |
| PASS_THROUGH | Current flows through it: power switches, transistors used as switches, protection diodes in series |
| SHUNT | Branches off the power path: ESD protection diodes, TVS diodes, signal connectors |
3c. Estimate Current Rating
From the datasheet, find:
- For ICs: Total supply current (ICC, IDD)
- For regulators: Maximum output current
- For connectors: Expected load current
3d. Apply Classification
classify_component(components, 'J201', ComponentRole.POWER_SOURCE,
current_rating_ma=1000,
notes="DC barrel jack - main power input")
Step 4: Key Components to Analyze
Focus AI analysis on these component types:
Power Input Connectors (J*, P*, TB*, CN*)
- Question: Is this a power input or signal connector?
- Look for: Connection to power nets, barrel jack footprints, terminal blocks
- Classify as: POWER_SOURCE if it brings power onto the board
Diodes (D* followed by digit)
- Question: Protection diode, rectifier, or LED?
- Look for: Part number (1N4004 = rectifier, BAT54 = Schottky, LED = LED)
- Classify as:
- SHUNT if reverse protection (cathode to power, anode to GND)
- PASS_THROUGH if series rectifier in power path
- CURRENT_SINK if LED
Transistors (Q*)
- Question: Power switch or signal amplifier?
- Look for: Connections to power nets, gate/base drive signals
- Classify as: PASS_THROUGH if switching power, SHUNT if signal
ICs (U*)
- Question: How much current does it consume?
- Look for: ICC/IDD in datasheet, number of I/O pins
- Classify as: CURRENT_SINK with appropriate current rating
- Note: Regulators are auto-detected by power_out pins
Voltage Regulators (VR*, or U* with regulator part number)
- Question: What is the maximum output current?
- Look for: Output current spec in datasheet
- Classify as: POWER_SOURCE with max output current
Step 5: Trace Power Paths
After classifying all components:
paths = trace_power_paths(pcb_data, components)
recommendations = get_power_net_recommendations(pcb_data, components, paths)
Step 6: Generate Report
print(format_analysis_report(pcb_data, components, paths, recommendations))
Provide the user with:
- Summary of component classifications
- Traced power paths showing current flow
- Recommended power nets and track widths
- Ready-to-use
--power-netscommand line arguments
Example Analysis Session
When analyzing a board like kit-dev-coldfire-xilinx_5213:
- J201 (JACK_2P): WebSearch "DC barrel jack 2.1mm" → POWER_SOURCE, 1000mA
- TB201 (CONN_2): Terminal block on same net as J201 → POWER_SOURCE, 1000mA
- D201 (1N4004): WebSearch "1N4004 datasheet" → Rectifier, but connected cathode-to-power → SHUNT (reverse protection)
- Q101 (3906): WebSearch "2N3906 PNP transistor" → Emitter on +3.3V → PASS_THROUGH (power switch)
- U102 (MCF5213): WebSearch "MCF5213 power consumption" → CURRENT_SINK, 200mA
- U301 (XCR3256): WebSearch "XCR3256 CPLD power" → CURRENT_SINK, 150mA
Output Format
## Power Net Analysis for board.kicad_pcb
### AI-Classified Components
| Ref | Value | Role | Current | Notes |
|-----|-------|------|---------|-------|
| J201 | JACK_2P | POWER_SOURCE | 1000mA | DC power input |
| U102 | MCF5213 | CURRENT_SINK | 200mA | ColdFire MCU |
### Power Paths Traced
TB201 (power input) → SW_ONOFF201 → F201 → VR201 → +3.3V → U102 (MCU)
### Recommended Power Nets
| Net | Width | Reason |
|-----|-------|--------|
| Net-(TB201-P1) | 0.5mm | Power input path |
| Net-(F201-Pad1) | 0.5mm | After fuse |
| +3.3V | 0.5mm | Main rail, 500mA total |
| /VDDPLL | 0.3mm | PLL supply, 10mA |
### Routing Command
--power-nets "GND" "+3.3V" "/VDDPLL" "/VCCA" "Net-(TB201-P1)" --power-nets-widths 0.5 0.5 0.3 0.3 0.5
Important Notes
- Do not rely on component reference prefixes for ICs, connectors, or transistors - always look up the actual part
- Check net connections - a connector on a power net is likely a power connector
- Trace upstream - if a component feeds into a known power net, its input is also a power net
- Ground nets are always power nets - include GND, GNDA, AGND, VSS, etc.
Weekly Installs
3
Repository
drandyhaas/kica…ingtoolsGitHub Stars
71
First Seen
Feb 7, 2026
Security Audits
Installed on
opencode3
gemini-cli3
claude-code3
github-copilot3
codex3
kimi-cli3