欢迎光临
我们一直在努力

用 AI 接入 KiCad 实时画原理图/PCB:完整教程(Codex + kicad-mcp)

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */
#content_views .toc,
/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */
#content_views.markdown_views > p:empty:has(+ .toc),
#content_views.markdown_views > .toc + p:empty,
/* 富文本旧版目录标记 */
#content_views.htmledit_views #main-toc,
#content_views.htmledit_views #hr-toc,
#content_views.htmledit_views p[id*=\”-toc\”] {
display: none !important;
}
/* 目录去掉后,紧跟的首个标题不再多出一块上边距 */
#content_views.markdown_views > .toc + h1,
#content_views.markdown_views > .toc + h2,
#content_views.markdown_views > .toc + h3,
#content_views.markdown_views > .toc + h4,
#content_views.markdown_views > .toc + p:empty + h1,
#content_views.markdown_views > .toc + p:empty + h2,
#content_views.markdown_views > .toc + p:empty + h3,
#content_views.markdown_views > .toc + p:empty + h4 {
margin-top: 0 !important;
}

用 AI 接入 KiCad 实时画原理图/PCB:完整教程(Codex + kicad-mcp)

本文介绍如何把 AI(Codex / Claude Code / VSCode 等支持 MCP 的客户端)接入 KiCad, 让 AI 通过调用 KiCad 的 IPC API 实时操作原理图和 PCB,并用脚本批量生成重复单元。

一、技术方案选择

实现「对话式生成 KiCad 原理图」主要有三类方案:

  • AI Agent + 工具调用(如 KiCad MCP):AI 通过 MCP 调用 API 操作软件,生成原生项目文件,适合日常设计。 ✅ 本文采用
  • 代码生成中间件(如 SKiDL + LLM):用 Python 脚本生成网表,适合自动化设计。
  • 端到端生成框架(如 CircuitLM):直接输出原理图数据结构,多为实验性方案。
  • 本文选择方案 1,核心组件是华秋开源的 kicad-mcp。

    二、整体架构

    ┌──────────────┐ MCP(stdin/stdout) ┌──────────────┐ nng/ipc ┌─────────────┐
    │ AI 客户端 │ ◄──────────────────► │ kicad-mcp │ ◄──────────► │ KiCad │
    │ (Codex/Claude)│ │ (Python) │ IPC API │ (10.x) │
    └──────────────┘ └──────────────┘ └─────────────┘

    • AI 客户端通过 MCP 协议发现工具;
    • kicad-mcp 把工具调用翻译成对 KiCad IPC API 的请求;
    • KiCad 10 内置 IPC API,通过命名管道(Windows)监听外部请求。

    三、安装与配置

    1. 安装 KiCad

    下载安装 KiCad,建议 10.x。本文使用 KiCad 10.0.2。

    2. 安装 kicad-mcp

    # 推荐:uvx 免安装
    uvx kicad-mcp –editor-type schematic
    uvx kicad-mcp –editor-type pcb

    # 或:克隆 + venv
    git clone https://github.com/Huaqiu-Electronics/kicad-mcp.git
    cd kicad-mcp && uv sync
    .venv/Scripts/python.exe -m kicad_mcp –editor-type schematic

    需要 Python 3.11+ 和 uv。

    3. 配置 Codex(~/.codex/config.toml)

    [mcp_servers.kicad-schematic]
    enabled = true
    command = "uvx"
    args = ["kicad-mcp", "–editor-type", "schematic"]
    startup_timeout_sec = 120

    [mcp_servers.kicad-pcb]
    enabled = true
    command = "uvx"
    args = ["kicad-mcp", "–editor-type", "pcb"]
    startup_timeout_sec = 120

    4. 启动顺序(关键)

  • 先打开 KiCad(原理图或 PCB 编辑器);
  • 再启动/重启 Codex。
  • 因为 kicad-mcp 启动时会先查找 kicad.exe / pcbnew.exe / eeschema.exe 进程, 找到后拼出 socket 地址 ipc://kicad_sdk_pair-{pid}-{editor} 再连接。KiCad 没开就会报 “KiCad not found”。

    5. 验证连接

    让 AI 调用 queryCurrentFrameType,返回 FRAME_SCH(原理图)/ FRAME_PCB_EDITOR(PCB)即成功。

    四、两种设计方式

    方式一:MCP 直接绘图(适合小批量)

    直接对 AI 说:

    画一个 5V 转 3.3V 的 LDO 原理图,含输入输出电容和使能电阻。

    AI 会用 place_symbol、draw_multi_wires、create_global_label 等工具实时画到 KiCad。

    方式二:脚本批量生成(适合大量重复单元)

    KiCad 的 .kicad_sch 是文本格式的 S-表达式,可以脚本直接生成。 本文的 LED 驱动板有 72 个重复的三极管单元,逐条 MCP 调用太慢,所以用脚本生成。

    五、脚本生成 .kicad_sch 的踩坑总结

    1. lib_symbols 符号名要带前缀

    .kicad_sym 里是 (symbol "R"),但 .kicad_sch 里要写 (symbol "R:R")(库名:符号名), 否则 KiCad 找不到引脚定义。

    2. 删除 .kicad_sym 特有字段

    pin_numbers / pin_names / in_pos_files 这些字段 .kicad_sch 不需要,必须删。

    3. 引脚 Y 轴反转

    符号库是「Y 向上」,原理图是「Y 向下」:

    绝对坐标 = (sym_x + pin_x, sym_y – pin_y)

    例如 R 符号 pin1 在 (0, 3.81),放到 (100, 78) 后 pin1 在 (100, 74.19)(上方)。

    4. 网络标签用 global_label

    跨页连接用 global_label,不是本地 label。

    5. 单元间距要够大

    重复单元间距小于单元自身跨度时,相邻单元的导线/标签会互相短路。 本例垂直跨度 54mm,最初行间距 52mm 导致 D_OUT 与 -5V 短路,改成 60mm 解决。

    六、网表校验

    D:\\Kicad\\bin\\kicad-cli.exe sch export netlist –output out.net my_board.kicad_sch

    对照手算的节点数检查每个网络(verify_net.py 见仓库):

    网络预期节点含义
    D_OUT 72 72 个 6.8K 基极电阻上端
    -5V 144 72 发射极 + 72 个 820Ω 下拉
    GND 72 72 个集电极下拉
    H_IN 144 72 集电极 + 72 个 820Ω 下拉

    七、总结

    • 接入链路:Codex → MCP → kicad-mcp → KiCad IPC API → 实时操作。
    • 启动顺序:先 KiCad,后 Codex。
    • 大批量:脚本生成 .kicad_sch + kicad-cli 校验,比逐条 MCP 快得多。
    • 重点坑:符号名前缀、Y 轴反转、单元间距、global_label。

    附:仓库地址与源码

    • 本项目:https://github.com/edisonwhz/kicad/tree/main
    • kicad-mcp:https://github.com/Huaqiu-Electronics/kicad-mcp
    • KiCad:https://www.kicad.org/
    赞(0)
    未经允许不得转载:171主机测评 » 用 AI 接入 KiCad 实时画原理图/PCB:完整教程(Codex + kicad-mcp)
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址