About eda-research
eda-research is a skill for finding and evaluating electronic components against project requirements and design constraints. It supports hardware designers by comparing candidate parts and recording selections, with datasheet checks and validation steps included.
Key features
- 01Read project constraints and specifications
- 02Search JLC for component candidates
- 03Compare specifications, price, and stock
- 04Validate thermal and assembly fit
- 05Record selections and draft a BOM
- 06Check fetched library symbols
Use cases
- 01Choose a regulator for a constrained design
- 02Compare candidate sensors or MCUs
- 03Document selected parts and alternatives
- 04Review a fetched component symbol
MCP support
The workflow calls MCP tools for JLC component search, library fetch, and library fixes. These let an MCP-enabled agent search parts, fetch library data, and request symbol corrections.
Install
Copy the command and run it in a terminal.
npx skills add https:/ / github.com/ l3wi/ claude-eda --skill eda-researchAfter installing, type/eda-researchin Claude Code to confirm it loaded.
Bundled files
References and scripts installed along with SKILL.md.
reference/COMPONENT-ALTERNATIVES.mdCOMPONENT-CATEGORIES.mdDATASHEET-ANALYSIS.mdDECOUPLING-STRATEGY.mdJLC-SEARCH-TIPS.mdPASSIVE-SELECTION.mdREGULATOR-SELECTION.mdDetails
From the project READMEEDA Research Skill
Source and select components for electronics projects.
Auto-Activation Triggers
This skill activates when:
- User asks to "find a component", "search for", "source"
- User asks about component specifications or comparisons
- User mentions LCSC, datasheets, or part numbers
- User asks "what MCU/regulator/sensor should I use"
- Project has
design-constraints.jsonbut missing component selections
Context Requirements
Requires:
docs/design-constraints.json(or prompt user for requirements)docs/project-spec.md(optional, for context)
Produces:
docs/component-selections.md- Human-readable selection logdocs/bom-draft.json- Machine-readable BOMdatasheets/*.pdf- Downloaded datasheets for selected components
Workflow
1. Load Context
Read existing project constraints:
@docs/design-constraints.json
@docs/project-spec.md
@docs/component-selections.md (if exists)
If constraints missing, ask user for minimum requirements:
- What does this component need to do?
- Key specifications (voltage, current, package)?
- Budget constraints?
2. Understand Requirements
For the target component role, identify:
- Critical specifications (must-have)
- Preferred specifications (nice-to-have)
- Package preferences (SMD size, through-hole)
- Any specific brands or series to consider/avoid
2.5 Check Architecture Constraints
Before searching, review design-constraints.json for:
- Power topology: LDO vs buck decision already made in architect phase
- Thermal budget: Max watts for this role (check
thermal.hotComponents) - DFM targets: Assembly method affects package choice
- Board layers: May affect component density
For power components, see reference/REGULATOR-SELECTION.md for selection criteria.
For passives, see reference/PASSIVE-SELECTION.md and reference/DECOUPLING-STRATEGY.md.
3. Research Options
Use web search to understand:
- Common solutions for this application
- Recommended parts from reference designs
- Known issues or considerations
- Alternative approaches
4. Search JLC
Use mcp__jlc__component_search to find candidates:
- Search with specific parameters
- Filter by stock availability
- Note pricing at target quantity
- Check for "Basic" parts (lower assembly fee at JLCPCB)
5. Analyze Candidates
For top 3-5 options:
- Download/fetch datasheets
- Extract key specifications
- Check application circuits
- Note layout requirements
- Identify any gotchas
5.5 Validate Against Constraints
Before presenting options, verify each candidate:
Thermal validation:
P_dissipation = (calculated from datasheet)
Thermal budget = (from design-constraints.json)
✓ P_dissipation < Thermal budget
Assembly compatibility:
- Hand assembly → 0603/0805 minimum, no fine-pitch
- Reflow → 0402+ OK
- Turnkey → Check JLCPCB availability
Architecture compliance:
- Meets LDO/buck decision from architect phase
- Noise specs OK for rail type (analog vs digital)
- Efficiency acceptable for battery applications
Flag any candidates that fail validation with specific concerns.
6. Present Comparison
Create a comparison table:
| Part | MPN | Key Specs | Price | Stock | Pros | Cons |
|---|---|---|---|---|---|---|
| ... | ... | ... | ... | ... | ... | ... |
Include recommendation with rationale.
7. Confirm Selection
- Get user confirmation
- Document selection with rationale
- Update constraint file
- Save datasheet
8. Validate Symbol (After library_fetch)
When fetching online components with mcp__jlc__library_fetch, analyze the returned validation_data:
Quick checks:
| Check | Expected | Action if Failed |
|---|---|---|
pin_pad_count_match | true | Check for exposed pads (EP) |
has_power_pins | true (for ICs) | Review pin types |
has_ground_pins | true (for ICs) | Review pin names |
Common issues:
- QFN/BGA packages often have exposed thermal pads (EP) not included in symbol
- Pin electrical types may be incorrect (power pins marked as passive)
- Pin names may not match datasheet
Fixing with library_fix:
Use mcp__jlc__library_fix to regenerate symbol with corrections:
mcp__jlc__library_fix lcsc_id="C#####" corrections='{
"pins": [
{ "action": "add", "number": "EP", "name": "GND", "type": "passive" },
{ "action": "modify", "number": "1", "set_type": "power_in" }
]
}'
Correction actions:
add- Add missing pin (number, name, type required)modify- Rename and/or change electrical typeswap- Swap positions of two pinsremove- Remove incorrect pin
Output Format
component-selections.md Entry
### [Role]: [Part Name] ([LCSC Number])
**Selected:** [Date]
**MPN:** [Manufacturer Part Number]
**Manufacturer:** [Name]
**Price:** $X.XX @ [quantity]
**Specifications:**
- Key spec 1: value
- Key spec 2: value
**Rationale:**
[Why this part was chosen over alternatives]
**Alternatives Considered:**
- [Part 2] - rejected because [reason]
- [Part 3] - rejected because [reason]
**Design Notes:**
- [Any layout or application notes from datasheet]
**Datasheet:** `datasheets/[filename].pdf`
bom-draft.json Entry
{
"role": "regulator-3v3",
"lcsc": "C6186",
"mpn": "AMS1117-3.3",
"manufacturer": "AMS",
"description": "3.3V 1A LDO Regulator",
"value": "3.3V",
"footprint": "SOT-223",
"quantity": 1,
"unitPrice": 0.04,
"extendedPrice": 0.04,
"category": "power",
"basic": true
}
Component Role Categories
See reference/COMPONENT-CATEGORIES.md for detailed role definitions.
Common roles:
mcu- Main microcontrollerregulator-Xv- Voltage regulatorscrystal- Oscillators/crystalsconnector-*- Various connectorsesd-*- ESD protectiondecoupling-*- Bypass/bulk capacitorsled-*- Indicator LEDssensor-*- Various sensors
Guidelines
- Prefer JLCPCB "Basic" parts when suitable (lower assembly cost)
- Check stock levels - avoid parts with < 100 in stock
- Consider package size vs hand soldering capability
- Note lead times for non-stock items
- Always document why a part was chosen
- Download datasheets for all selected components
- Identify 1-2 alternatives for critical components (see
reference/COMPONENT-ALTERNATIVES.md) - Validate thermal before confirming power components
- Check architecture decisions from design-constraints.json before selecting
Reference Documents
| Document | Use For |
|---|---|
REGULATOR-SELECTION.md | LDO vs Buck selection criteria |
DECOUPLING-STRATEGY.md | Capacitor values for ICs |
PASSIVE-SELECTION.md | Resistor/capacitor fundamentals |
COMPONENT-ALTERNATIVES.md | Finding equivalent parts |
DATASHEET-ANALYSIS.md | Extracting key specs |
COMPONENT-CATEGORIES.md | Role naming conventions |
JLC-SEARCH-TIPS.md | Search strategies |
Next Steps
After component selection is complete:
- Run
/eda-sourcefor remaining components - When all components selected, run
/eda-schematic - Update
design-constraints.jsonstage to "schematic"