@hybridlabor-api/bdb-hardware-pcb 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +116 -0
- package/config/mcp/antigravity.json +22 -0
- package/config/mcp/claude.json +22 -0
- package/config/mcp/codex.toml +25 -0
- package/docs/adr/ADR-001-KICAD-OPENSCAD-MCP-STRATEGY.md +334 -0
- package/docs/review_documentation.md +121 -0
- package/installer.js +358 -0
- package/mcp_servers/kicad-mcp-server/.env.example +22 -0
- package/mcp_servers/kicad-mcp-server/.github/workflows/ci.yml +36 -0
- package/mcp_servers/kicad-mcp-server/CLAUDE.md +487 -0
- package/mcp_servers/kicad-mcp-server/README.md +316 -0
- package/mcp_servers/kicad-mcp-server/docs/DEVICE_TREE.md +416 -0
- package/mcp_servers/kicad-mcp-server/docs/INSTALLATION.md +332 -0
- package/mcp_servers/kicad-mcp-server/docs/PIN_ANALYSIS.md +332 -0
- package/mcp_servers/kicad-mcp-server/docs/README.md +240 -0
- package/mcp_servers/kicad-mcp-server/docs/TESTING.md +613 -0
- package/mcp_servers/kicad-mcp-server/docs/VALIDATION.md +268 -0
- package/mcp_servers/kicad-mcp-server/pyproject.toml +96 -0
- package/mcp_servers/kicad-mcp-server/requirements-dev.txt +16 -0
- package/mcp_servers/kicad-mcp-server/requirements-test.txt +24 -0
- package/mcp_servers/kicad-mcp-server/requirements.txt +13 -0
- package/mcp_servers/kicad-mcp-server/src/kicad_mcp_server/__init__.py +3 -0
- package/mcp_servers/kicad-mcp-server/src/kicad_mcp_server/__main__.py +17 -0
- package/mcp_servers/kicad-mcp-server/src/kicad_mcp_server/config.py +46 -0
- package/mcp_servers/kicad-mcp-server/src/kicad_mcp_server/models/__init__.py +1 -0
- package/mcp_servers/kicad-mcp-server/src/kicad_mcp_server/models/types.py +87 -0
- package/mcp_servers/kicad-mcp-server/src/kicad_mcp_server/parsers/__init__.py +1 -0
- package/mcp_servers/kicad-mcp-server/src/kicad_mcp_server/parsers/netlist_parser.py +234 -0
- package/mcp_servers/kicad-mcp-server/src/kicad_mcp_server/parsers/pcb_parser.py +375 -0
- package/mcp_servers/kicad-mcp-server/src/kicad_mcp_server/parsers/pcb_parser_kicad.py +327 -0
- package/mcp_servers/kicad-mcp-server/src/kicad_mcp_server/parsers/schematic_parser.py +902 -0
- package/mcp_servers/kicad-mcp-server/src/kicad_mcp_server/server.py +71 -0
- package/mcp_servers/kicad-mcp-server/src/kicad_mcp_server/templates/__init__.py +1 -0
- package/mcp_servers/kicad-mcp-server/src/kicad_mcp_server/templates/arduino/connectivity_test.cpp.j2 +189 -0
- package/mcp_servers/kicad-mcp-server/src/kicad_mcp_server/templates/device_tree/atmega.dts.j2 +77 -0
- package/mcp_servers/kicad-mcp-server/src/kicad_mcp_server/templates/device_tree/esp32.dts.j2 +77 -0
- package/mcp_servers/kicad-mcp-server/src/kicad_mcp_server/templates/device_tree/nrf52.dts.j2 +77 -0
- package/mcp_servers/kicad-mcp-server/src/kicad_mcp_server/templates/device_tree/stm32f4.dts.j2 +89 -0
- package/mcp_servers/kicad-mcp-server/src/kicad_mcp_server/templates/esp_idf/test_suite.c.j2 +340 -0
- package/mcp_servers/kicad-mcp-server/src/kicad_mcp_server/templates/pytest/test_connectivity.py.j2 +147 -0
- package/mcp_servers/kicad-mcp-server/src/kicad_mcp_server/templates/st_hal/hal_test.c.j2 +313 -0
- package/mcp_servers/kicad-mcp-server/src/kicad_mcp_server/templates/tests/pytest_gpio_test.py.j2 +99 -0
- package/mcp_servers/kicad-mcp-server/src/kicad_mcp_server/templates/tests/pytest_i2c_test.py.j2 +117 -0
- package/mcp_servers/kicad-mcp-server/src/kicad_mcp_server/templates/tests/pytest_pinmux_test.py.j2 +43 -0
- package/mcp_servers/kicad-mcp-server/src/kicad_mcp_server/templates/tests/pytest_spi_test.py.j2 +94 -0
- package/mcp_servers/kicad-mcp-server/src/kicad_mcp_server/templates/tests/unity_gpio_test.c.j2 +113 -0
- package/mcp_servers/kicad-mcp-server/src/kicad_mcp_server/templates/tests/unity_i2c_test.c.j2 +101 -0
- package/mcp_servers/kicad-mcp-server/src/kicad_mcp_server/templates/tests/unity_spi_test.c.j2 +94 -0
- package/mcp_servers/kicad-mcp-server/src/kicad_mcp_server/templates/unittest/test_schematic.py.j2 +172 -0
- package/mcp_servers/kicad-mcp-server/src/kicad_mcp_server/tools/__init__.py +36 -0
- package/mcp_servers/kicad-mcp-server/src/kicad_mcp_server/tools/device_tree.py +1187 -0
- package/mcp_servers/kicad-mcp-server/src/kicad_mcp_server/tools/hierarchical_analysis.py +211 -0
- package/mcp_servers/kicad-mcp-server/src/kicad_mcp_server/tools/netlist.py +320 -0
- package/mcp_servers/kicad-mcp-server/src/kicad_mcp_server/tools/parts_registry.py +142 -0
- package/mcp_servers/kicad-mcp-server/src/kicad_mcp_server/tools/pcb.py +955 -0
- package/mcp_servers/kicad-mcp-server/src/kicad_mcp_server/tools/pcb_layout.py +308 -0
- package/mcp_servers/kicad-mcp-server/src/kicad_mcp_server/tools/pin_analysis.py +765 -0
- package/mcp_servers/kicad-mcp-server/src/kicad_mcp_server/tools/project.py +196 -0
- package/mcp_servers/kicad-mcp-server/src/kicad_mcp_server/tools/schematic.py +319 -0
- package/mcp_servers/kicad-mcp-server/src/kicad_mcp_server/tools/schematic_editor.py +674 -0
- package/mcp_servers/kicad-mcp-server/src/kicad_mcp_server/tools/schematic_search.py +158 -0
- package/mcp_servers/kicad-mcp-server/src/kicad_mcp_server/tools/validation.py +866 -0
- package/mcp_servers/kicad-mcp-server/src/kicad_mcp_server/tools/visualization.py +225 -0
- package/mcp_servers/kicad-mcp-server/src/kicad_mcp_server/utils/__init__.py +1 -0
- package/mcp_servers/kicad-mcp-server/src/kicad_mcp_server/utils/file_handlers.py +65 -0
- package/mcp_servers/kicad-mcp-server/src/kicad_mcp_server/utils/kicad_cli.py +103 -0
- package/mcp_servers/kicad-mcp-server/src/kicad_mcp_server/utils/kicad_version.py +103 -0
- package/mcp_servers/kicad-mcp-server/src/kicad_mcp_server/utils/parts_registry.py +197 -0
- package/mcp_servers/kicad-mcp-server/tests/__init__.py +1 -0
- package/mcp_servers/kicad-mcp-server/tests/examples/ESP32S3_TEST.md +219 -0
- package/mcp_servers/kicad-mcp-server/tests/fixtures/README.md +65 -0
- package/mcp_servers/kicad-mcp-server/tests/fixtures/__init__.py +1 -0
- package/mcp_servers/kicad-mcp-server/tests/fixtures/example_pcb.kicad_pcb +177 -0
- package/mcp_servers/kicad-mcp-server/tests/fixtures/example_schematic.kicad_sch +145 -0
- package/mcp_servers/kicad-mcp-server/tests/fixtures/hier/child.kicad_sch +24 -0
- package/mcp_servers/kicad-mcp-server/tests/fixtures/hier/root.kicad_sch +38 -0
- package/mcp_servers/kicad-mcp-server/tests/test_tools/__init__.py +1 -0
- package/mcp_servers/kicad-mcp-server/tests/test_tools/test_hierarchical_labels.py +195 -0
- package/mcp_servers/kicad-mcp-server/tests/test_tools/test_kicad_cli.py +116 -0
- package/mcp_servers/kicad-mcp-server/tests/test_tools/test_netlist_cache_path.py +29 -0
- package/mcp_servers/kicad-mcp-server/tests/test_tools/test_schematic.py +189 -0
- package/mcp_servers/kicad-mcp-server/tests/test_tools/test_schematic_hierarchy.py +69 -0
- package/mcp_servers/kicad-mcp-server/tests/test_tools/test_visualization.py +136 -0
- package/mcp_servers/kicad-mcp-server/uv.lock +2873 -0
- package/mcp_servers/openscad-mcp-server/.dockerignore +9 -0
- package/mcp_servers/openscad-mcp-server/.github/workflows/test.yml +40 -0
- package/mcp_servers/openscad-mcp-server/Dockerfile +29 -0
- package/mcp_servers/openscad-mcp-server/LICENSE +21 -0
- package/mcp_servers/openscad-mcp-server/README.md +154 -0
- package/mcp_servers/openscad-mcp-server/docs/audit.md +56 -0
- package/mcp_servers/openscad-mcp-server/docs/docker.md +66 -0
- package/mcp_servers/openscad-mcp-server/docs/issue-followup.md +19 -0
- package/mcp_servers/openscad-mcp-server/docs/jetson.md +17 -0
- package/mcp_servers/openscad-mcp-server/glama.json +4 -0
- package/mcp_servers/openscad-mcp-server/legacy/README.md +15 -0
- package/mcp_servers/openscad-mcp-server/legacy/README.original.md +294 -0
- package/mcp_servers/openscad-mcp-server/legacy/implementation_plan.md +100 -0
- package/mcp_servers/openscad-mcp-server/legacy/old/download_sam2_checkpoint.py +115 -0
- package/mcp_servers/openscad-mcp-server/legacy/old/src/ai/sam_segmentation.py +209 -0
- package/mcp_servers/openscad-mcp-server/legacy/old/src/models/threestudio_generator.py +231 -0
- package/mcp_servers/openscad-mcp-server/legacy/old/src/workflow/image_to_model_pipeline.py +260 -0
- package/mcp_servers/openscad-mcp-server/legacy/old/test_sam2_segmentation.py +96 -0
- package/mcp_servers/openscad-mcp-server/legacy/requirements.txt +57 -0
- package/mcp_servers/openscad-mcp-server/legacy/rtfmd/README.md +39 -0
- package/mcp_servers/openscad-mcp-server/legacy/rtfmd/decisions/ai-driven-code-generation.md +122 -0
- package/mcp_servers/openscad-mcp-server/legacy/rtfmd/decisions/export-formats.md +76 -0
- package/mcp_servers/openscad-mcp-server/legacy/rtfmd/files/src/ai/ai_service.py.md +51 -0
- package/mcp_servers/openscad-mcp-server/legacy/rtfmd/files/src/main.py.md +63 -0
- package/mcp_servers/openscad-mcp-server/legacy/rtfmd/files/src/models/code_generator.py.md +63 -0
- package/mcp_servers/openscad-mcp-server/legacy/rtfmd/files/src/nlp/parameter_extractor.py.md +63 -0
- package/mcp_servers/openscad-mcp-server/legacy/rtfmd/knowledge/ai/natural-language-processing.md +78 -0
- package/mcp_servers/openscad-mcp-server/legacy/rtfmd/knowledge/nlp/parameter-extraction.md +173 -0
- package/mcp_servers/openscad-mcp-server/legacy/rtfmd/knowledge/openscad/export-formats.md +91 -0
- package/mcp_servers/openscad-mcp-server/legacy/rtfmd/knowledge/openscad/openscad-basics.md +66 -0
- package/mcp_servers/openscad-mcp-server/legacy/rtfmd/knowledge/openscad/primitive-testing.md +79 -0
- package/mcp_servers/openscad-mcp-server/legacy/src/__init__.py +0 -0
- package/mcp_servers/openscad-mcp-server/legacy/src/ai/ai_service.py +257 -0
- package/mcp_servers/openscad-mcp-server/legacy/src/ai/gemini_api.py +161 -0
- package/mcp_servers/openscad-mcp-server/legacy/src/ai/venice_api.py +203 -0
- package/mcp_servers/openscad-mcp-server/legacy/src/config.py +121 -0
- package/mcp_servers/openscad-mcp-server/legacy/src/main.py +1456 -0
- package/mcp_servers/openscad-mcp-server/legacy/src/main.py.new +404 -0
- package/mcp_servers/openscad-mcp-server/legacy/src/main_remote.py +401 -0
- package/mcp_servers/openscad-mcp-server/legacy/src/models/__init__.py +0 -0
- package/mcp_servers/openscad-mcp-server/legacy/src/models/code_generator.py +321 -0
- package/mcp_servers/openscad-mcp-server/legacy/src/models/cuda_mvs.py +209 -0
- package/mcp_servers/openscad-mcp-server/legacy/src/models/scad_templates/basic_shapes.scad +144 -0
- package/mcp_servers/openscad-mcp-server/legacy/src/nlp/__init__.py +0 -0
- package/mcp_servers/openscad-mcp-server/legacy/src/nlp/parameter_extractor.py +388 -0
- package/mcp_servers/openscad-mcp-server/legacy/src/openscad_wrapper/__init__.py +0 -0
- package/mcp_servers/openscad-mcp-server/legacy/src/openscad_wrapper/wrapper.py +418 -0
- package/mcp_servers/openscad-mcp-server/legacy/src/printer_discovery/__init__.py +1 -0
- package/mcp_servers/openscad-mcp-server/legacy/src/printer_discovery/printer_discovery.py +471 -0
- package/mcp_servers/openscad-mcp-server/legacy/src/remote/connection_manager.py +537 -0
- package/mcp_servers/openscad-mcp-server/legacy/src/remote/cuda_mvs_client.py +435 -0
- package/mcp_servers/openscad-mcp-server/legacy/src/remote/cuda_mvs_server.py +787 -0
- package/mcp_servers/openscad-mcp-server/legacy/src/remote/error_handling.py +415 -0
- package/mcp_servers/openscad-mcp-server/legacy/src/testing/__init__.py +0 -0
- package/mcp_servers/openscad-mcp-server/legacy/src/testing/primitive_tester.py +203 -0
- package/mcp_servers/openscad-mcp-server/legacy/src/testing/test_primitives.py +98 -0
- package/mcp_servers/openscad-mcp-server/legacy/src/utils/__init__.py +1 -0
- package/mcp_servers/openscad-mcp-server/legacy/src/utils/cad_exporter.py +241 -0
- package/mcp_servers/openscad-mcp-server/legacy/src/utils/format_validator.py +206 -0
- package/mcp_servers/openscad-mcp-server/legacy/src/utils/stl_exporter.py +140 -0
- package/mcp_servers/openscad-mcp-server/legacy/src/utils/stl_repair.py +91 -0
- package/mcp_servers/openscad-mcp-server/legacy/src/utils/stl_validator.py +123 -0
- package/mcp_servers/openscad-mcp-server/legacy/src/visualization/__init__.py +0 -0
- package/mcp_servers/openscad-mcp-server/legacy/src/visualization/headless_renderer.py +52 -0
- package/mcp_servers/openscad-mcp-server/legacy/src/visualization/renderer.py +177 -0
- package/mcp_servers/openscad-mcp-server/legacy/src/visualization/web_interface.py +639 -0
- package/mcp_servers/openscad-mcp-server/legacy/src/workflow/image_approval.py +148 -0
- package/mcp_servers/openscad-mcp-server/legacy/src/workflow/multi_view_to_model_pipeline.py +338 -0
- package/mcp_servers/openscad-mcp-server/legacy/test_complete_workflow.py +374 -0
- package/mcp_servers/openscad-mcp-server/legacy/test_cuda_mvs.py +191 -0
- package/mcp_servers/openscad-mcp-server/legacy/test_gemini_api.py +168 -0
- package/mcp_servers/openscad-mcp-server/legacy/test_image_approval.py +192 -0
- package/mcp_servers/openscad-mcp-server/legacy/test_image_approval_workflow.py +251 -0
- package/mcp_servers/openscad-mcp-server/legacy/test_image_to_model_pipeline.py +145 -0
- package/mcp_servers/openscad-mcp-server/legacy/test_model_selection.py +41 -0
- package/mcp_servers/openscad-mcp-server/legacy/test_multi_view_pipeline.py +290 -0
- package/mcp_servers/openscad-mcp-server/legacy/test_primitives.sh +13 -0
- package/mcp_servers/openscad-mcp-server/legacy/test_rabbit_direct.py +71 -0
- package/mcp_servers/openscad-mcp-server/legacy/test_remote_cuda_mvs.py +283 -0
- package/mcp_servers/openscad-mcp-server/legacy/test_venice_example.py +69 -0
- package/mcp_servers/openscad-mcp-server/pyproject.toml +33 -0
- package/mcp_servers/openscad-mcp-server/requirements.txt +2 -0
- package/mcp_servers/openscad-mcp-server/scad/simple_cube.scad +2 -0
- package/mcp_servers/openscad-mcp-server/scripts/test_docker.py +220 -0
- package/mcp_servers/openscad-mcp-server/src/openscad_mcp/__init__.py +3 -0
- package/mcp_servers/openscad-mcp-server/src/openscad_mcp/__main__.py +3 -0
- package/mcp_servers/openscad-mcp-server/src/openscad_mcp/engine.py +94 -0
- package/mcp_servers/openscad-mcp-server/src/openscad_mcp/geometry.py +242 -0
- package/mcp_servers/openscad-mcp-server/src/openscad_mcp/server.py +245 -0
- package/mcp_servers/openscad-mcp-server/src/openscad_mcp/service.py +190 -0
- package/mcp_servers/openscad-mcp-server/tests/conftest.py +17 -0
- package/mcp_servers/openscad-mcp-server/tests/test_engine.py +37 -0
- package/mcp_servers/openscad-mcp-server/tests/test_geometry.py +106 -0
- package/mcp_servers/openscad-mcp-server/tests/test_integration.py +172 -0
- package/mcp_servers/openscad-mcp-server/tests/test_transports.py +314 -0
- package/mcp_servers/openscad-mcp-server/uv.lock +1123 -0
- package/package.json +44 -0
- package/scripts/install_mcps.sh +86 -0
- package/scripts/openscad_wrapper.sh +62 -0
- package/scripts/run_kicad_mcp.sh +25 -0
- package/scripts/run_openscad_mcp.sh +41 -0
- package/scripts/test_mcp_connection.py +626 -0
- package/scripts/test_mcp_connection.sh +168 -0
- package/skills/code-first-hardware-design/SKILL.md +260 -0
- package/skills/pcb-constraint-definition/SKILL.md +236 -0
- package/skills/pcb-layout-routing-automation/SKILL.md +153 -0
- package/skills/pcb-validation-dfm-signoff/SKILL.md +194 -0
- package/skills/schematic-datasheet-analysis/SKILL.md +202 -0
|
@@ -0,0 +1,240 @@
|
|
|
1
|
+
# KiCad MCP Server Documentation
|
|
2
|
+
|
|
3
|
+
Comprehensive documentation for the KiCad MCP Server - a complete hardware design validation and embedded development platform.
|
|
4
|
+
|
|
5
|
+
## Quick Start
|
|
6
|
+
|
|
7
|
+
1. **[Installation Guide](../README.md#installation)** - Get started with the server
|
|
8
|
+
2. **[Configuration](../README.md#configuration)** - Set up Claude Desktop integration
|
|
9
|
+
3. **[Basic Usage](../README.md#usage-examples)** - Common workflows and examples
|
|
10
|
+
|
|
11
|
+
## Core Documentation
|
|
12
|
+
|
|
13
|
+
### Design Validation
|
|
14
|
+
**[VALIDATION.md](./VALIDATION.md)** - Design Rule Checking Guide
|
|
15
|
+
- Electrical Rules Check (ERC)
|
|
16
|
+
- Design Rules Check (DRC)
|
|
17
|
+
- Violation detection and filtering
|
|
18
|
+
- Pre-manufacturing validation workflows
|
|
19
|
+
- CI/CD integration
|
|
20
|
+
|
|
21
|
+
### Pin Analysis
|
|
22
|
+
**[PIN_ANALYSIS.md](./PIN_ANALYSIS.md)** - Pin Analysis and Configuration Guide
|
|
23
|
+
- Pin function detection (GPIO/I2C/SPI/UART)
|
|
24
|
+
- MCU family support (STM32, ESP32, nRF52, ATmega, SAMD, RP2040)
|
|
25
|
+
- Pin conflict detection
|
|
26
|
+
- Pin multiplexing configuration extraction
|
|
27
|
+
- Code generation integration
|
|
28
|
+
|
|
29
|
+
### Device Tree Generation
|
|
30
|
+
**[DEVICE_TREE.md](./DEVICE_TREE.md)** - Device Tree Generation Guide
|
|
31
|
+
- Automatic .dts generation from schematics
|
|
32
|
+
- SOC family support (STM32F4, ESP32, nRF52, ATmega)
|
|
33
|
+
- Peripheral configuration extraction
|
|
34
|
+
- Device tree bindings database
|
|
35
|
+
- Customization and integration
|
|
36
|
+
|
|
37
|
+
## Usage Guides
|
|
38
|
+
|
|
39
|
+
### Complete Embedded Development Workflow
|
|
40
|
+
|
|
41
|
+
```python
|
|
42
|
+
# 1. Design Validation
|
|
43
|
+
run_erc("board.kicad_sch")
|
|
44
|
+
run_drc("board.kicad_pcb")
|
|
45
|
+
|
|
46
|
+
# 2. Pin Analysis
|
|
47
|
+
analyze_pin_functions("board.kicad_sch")
|
|
48
|
+
detect_pin_conflicts("board.kicad_sch")
|
|
49
|
+
|
|
50
|
+
# 3. Device Tree Generation
|
|
51
|
+
validate_pin_configuration("board.kicad_sch")
|
|
52
|
+
generate_device_tree("board.kicad_sch", "stm32f4", "board.dts")
|
|
53
|
+
|
|
54
|
+
# 4. Test Generation
|
|
55
|
+
generate_hardware_tests("board.kicad_sch", "pytest", "tests/")
|
|
56
|
+
export_test_framework("board.kicad_sch", "pytest", "test_framework/")
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
### Common Tasks
|
|
60
|
+
|
|
61
|
+
**Validate Hardware Design**
|
|
62
|
+
```bash
|
|
63
|
+
# Check schematic for electrical issues
|
|
64
|
+
run_erc("design.kicad_sch")
|
|
65
|
+
|
|
66
|
+
# Check PCB for manufacturing issues
|
|
67
|
+
run_drc("design.kicad_pcb")
|
|
68
|
+
|
|
69
|
+
# Export reports
|
|
70
|
+
export_erc_report("design.kicad_sch", "erc_report.txt")
|
|
71
|
+
export_drc_report("design.kicad_pcb", "drc_report.txt")
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
**Generate Device Tree**
|
|
75
|
+
```bash
|
|
76
|
+
# Validate pin configuration
|
|
77
|
+
validate_pin_configuration("board.kicad_sch")
|
|
78
|
+
|
|
79
|
+
# Generate device tree
|
|
80
|
+
generate_device_tree("board.kicad_sch", "stm32f4", "board.dts")
|
|
81
|
+
|
|
82
|
+
# Compile device tree
|
|
83
|
+
dtc -I dts -O dtb -o board.dtb board.dts
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
**Generate Hardware Tests**
|
|
87
|
+
```bash
|
|
88
|
+
# Generate test suite
|
|
89
|
+
generate_hardware_tests("board.kicad_sch", "pytest", "tests/")
|
|
90
|
+
|
|
91
|
+
# Export complete framework
|
|
92
|
+
export_test_framework("board.kicad_sch", "pytest", "test_framework/")
|
|
93
|
+
|
|
94
|
+
# Run tests
|
|
95
|
+
cd test_framework/
|
|
96
|
+
pytest
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
## Tool Reference
|
|
100
|
+
|
|
101
|
+
### Analysis Tools (3 tools)
|
|
102
|
+
- `list_schematic_components()` - List schematic components
|
|
103
|
+
- `get_schematic_info()` - Get schematic metadata
|
|
104
|
+
- `trace_netlist_connection()` - Trace component connections
|
|
105
|
+
|
|
106
|
+
### Validation Tools (6 tools) ✨ NEW
|
|
107
|
+
- `run_erc()` - Run Electrical Rules Check
|
|
108
|
+
- `run_drc()` - Run Design Rules Check
|
|
109
|
+
- `get_erc_violations()` - Get filtered ERC violations
|
|
110
|
+
- `get_drc_violations()` - Get filtered DRC violations
|
|
111
|
+
- `export_erc_report()` - Export ERC report
|
|
112
|
+
- `export_drc_report()` - Export DRC report
|
|
113
|
+
|
|
114
|
+
### Pin Analysis Tools (3 tools) ✨ NEW
|
|
115
|
+
- `analyze_pin_functions()` - Analyze pin functions
|
|
116
|
+
- `detect_pin_conflicts()` - Detect pin conflicts
|
|
117
|
+
- `extract_pinmux_config()` - Extract pinmux configuration
|
|
118
|
+
|
|
119
|
+
### Device Tree Tools (6 tools) ✨ NEW
|
|
120
|
+
- `generate_device_tree()` - Generate .dts files
|
|
121
|
+
- `extract_gpio_config()` - Extract GPIO configuration
|
|
122
|
+
- `extract_i2c_devices()` - Extract I2C devices
|
|
123
|
+
- `extract_spi_devices()` - Extract SPI devices
|
|
124
|
+
- `extract_power_domains()` - Extract power domains
|
|
125
|
+
- `validate_pin_configuration()` - Validate configuration
|
|
126
|
+
|
|
127
|
+
### Test Generation Tools (6 tools) ✨ NEW
|
|
128
|
+
- `generate_hardware_tests()` - Generate complete test suite
|
|
129
|
+
- `generate_gpio_test()` - Generate GPIO tests
|
|
130
|
+
- `generate_i2c_test()` - Generate I2C tests
|
|
131
|
+
- `generate_spi_test()` - Generate SPI tests
|
|
132
|
+
- `generate_pinmux_test()` - Generate pinmux tests
|
|
133
|
+
- `export_test_framework()` - Export test framework
|
|
134
|
+
|
|
135
|
+
## Supported Hardware
|
|
136
|
+
|
|
137
|
+
### MCU Families
|
|
138
|
+
- **STM32** (STM32F, STM32H, STM32L series)
|
|
139
|
+
- **ESP32** (ESP32, ESP32-S2, ESP32-S3)
|
|
140
|
+
- **nRF52** (nRF52832, nRF52840)
|
|
141
|
+
- **ATmega** (ATmega328P, ATmega2560)
|
|
142
|
+
- **SAMD** (ATSAMD21, ATSAMD51)
|
|
143
|
+
- **RP2040**
|
|
144
|
+
|
|
145
|
+
### Peripherals
|
|
146
|
+
- **Sensors**: BMP280, MPU6050, LSM6DS3, HTS221, etc.
|
|
147
|
+
- **Displays**: ST7789, SSD1306, ILI9341, etc.
|
|
148
|
+
- **Memory**: AT24C256, W25Q128, GD25Q16
|
|
149
|
+
- **Wireless**: ESP8266, nRF24L01, SX1278
|
|
150
|
+
- **Connectivity**: CP2102, FT232RL, CH340G
|
|
151
|
+
- **Power**: TP4056, AXP192, LP3985, AP2112
|
|
152
|
+
|
|
153
|
+
### Test Frameworks
|
|
154
|
+
- **pytest** (Python) - Full hardware interaction
|
|
155
|
+
- **Unity** (Embedded C) - MCU testing
|
|
156
|
+
- **Google Test** (C++) - Framework structure ready
|
|
157
|
+
|
|
158
|
+
## Best Practices
|
|
159
|
+
|
|
160
|
+
### Schematic Design
|
|
161
|
+
1. **Use descriptive net names** (I2C_SDA, SPI_MOSI, GPIO_LED)
|
|
162
|
+
2. **Include I2C addresses** in net names (I2C_SDA_0x76)
|
|
163
|
+
3. **Use standard component values** (STM32F407, BMP280)
|
|
164
|
+
4. **Run ERC frequently** during design
|
|
165
|
+
|
|
166
|
+
### PCB Layout
|
|
167
|
+
1. **Run DRC after routing** to catch manufacturing issues
|
|
168
|
+
2. **Check clearance violations** before production
|
|
169
|
+
3. **Verify all connections** are routed
|
|
170
|
+
4. **Export DRC reports** for documentation
|
|
171
|
+
|
|
172
|
+
### Device Tree Generation
|
|
173
|
+
1. **Validate pin configuration** before generation
|
|
174
|
+
2. **Review generated .dts** file
|
|
175
|
+
3. **Test compilation** with device tree compiler
|
|
176
|
+
4. **Keep schematic and DT in sync**
|
|
177
|
+
|
|
178
|
+
### Test Generation
|
|
179
|
+
1. **Start with mock mode** for initial testing
|
|
180
|
+
2. **Enable hardware interaction** after validation
|
|
181
|
+
3. **Customize tests** for your specific hardware
|
|
182
|
+
4. **Integrate with CI/CD** for automated testing
|
|
183
|
+
|
|
184
|
+
## Troubleshooting
|
|
185
|
+
|
|
186
|
+
### Common Issues
|
|
187
|
+
|
|
188
|
+
**kicad-cli not found**
|
|
189
|
+
```bash
|
|
190
|
+
# Add KiCad to PATH
|
|
191
|
+
export PATH=$PATH:/path/to/kicad/bin
|
|
192
|
+
|
|
193
|
+
# Or install KiCad
|
|
194
|
+
sudo apt install kicad # Linux
|
|
195
|
+
brew install kicad # macOS
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
**Device tree won't compile**
|
|
199
|
+
```bash
|
|
200
|
+
# Check syntax
|
|
201
|
+
dtc -I dts -O dts -o verify.dts board.dts
|
|
202
|
+
|
|
203
|
+
# Look for missing includes or undefined nodes
|
|
204
|
+
# Verify all referenced devices exist in schematic
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
**Tests not detecting hardware**
|
|
208
|
+
```python
|
|
209
|
+
# Check hardware interaction is enabled
|
|
210
|
+
hardware_interaction = True
|
|
211
|
+
|
|
212
|
+
# Verify I2C addresses in net names
|
|
213
|
+
# Use format: I2C_SDA_0x76
|
|
214
|
+
|
|
215
|
+
# Check component values are recognizable
|
|
216
|
+
# Use specific names: "BMP280", not "SENSOR1"
|
|
217
|
+
```
|
|
218
|
+
|
|
219
|
+
## Contributing
|
|
220
|
+
|
|
221
|
+
See [CONTRIBUTING.md](../CONTRIBUTING.md) for contribution guidelines.
|
|
222
|
+
|
|
223
|
+
## License
|
|
224
|
+
|
|
225
|
+
See [LICENSE](../LICENSE) for license information.
|
|
226
|
+
|
|
227
|
+
## Support
|
|
228
|
+
|
|
229
|
+
- **Issues**: [GitHub Issues](https://github.com/your-repo/issues)
|
|
230
|
+
- **Documentation**: This directory
|
|
231
|
+
- **Examples**: [examples/](../examples/) directory
|
|
232
|
+
|
|
233
|
+
## Changelog
|
|
234
|
+
|
|
235
|
+
See [CHANGELOG.md](../CHANGELOG.md) for version history and changes.
|
|
236
|
+
|
|
237
|
+
---
|
|
238
|
+
|
|
239
|
+
**Last Updated**: 2025-01-09
|
|
240
|
+
**Version**: 2.0.0 - Complete Hardware Design and Development Platform
|