欢迎光临
我们一直在努力

Codex 接管嘉立创EDA 并复现 STM32 Blue Pill 学习底板的完整教学

Codex 接管嘉立创EDA 并复现 STM32 Blue Pill 学习底板的完整教学

1. 目标

本文只做一件事:从零开始,把你的电脑配置成 Codex -> MCP -> EasyEDA 官方 Bridge -> 嘉立创EDA Pro 的可用链路,并且复现出本文对应的最终成果:

  • Codex 可以读取并调用嘉立创EDA Pro 的 API
  • Codex 可以直接在嘉立创EDA Pro 里新建或修改 PCB
  • Codex 可以自主生成一块 STM32 Blue Pill 学习扩展底板
  • Codex 可以执行在线校验、回读板数据、运行 DRC、导出结果

本文不是概念介绍,是可操作复现文档。照着做即可。

2. 本次最终成果的定义

本次最终复现的板子是:

  • 类型:STM32 Blue Pill 学习扩展底板
  • 尺寸:3600 mil x 3200 mil
  • 约等于:91.44 mm x 81.28 mm
  • 满足要求:不超过 10 x 10 cm
  • 中间:2 x 20 Blue Pill 插座
  • 两侧:每个引脚都引出成学习接口
  • 左侧接口顺序:GND – 3V3 – NET
  • 右侧接口顺序:NET – 3V3 – GND
  • 左右两侧 3V3 总线板内互联
  • 左右两侧 GND 总线板内互联

最终实测结果:

  • Pads: 160
  • Lines: 140
  • Strings: 46
  • DRC: 0 errors

3. 先说清楚整个链路

你复现的不是“让 AI 看懂 PCB”,而是这条完整控制链:

  • Codex 通过本地 MCP Server 暴露一个 EasyEDA 工具集
  • MCP Server 在本机启动或连接 EasyEDA 官方桥服务
  • 嘉立创EDA Pro 里安装的 Run API Gateway 扩展通过 WebSocket 与桥服务连通
  • Codex 发送 JavaScript 代码到桥服务
  • 桥服务把代码送到嘉立创EDA Pro 内部执行
  • EDA 执行真实 API,返回当前工程、PCB、图元、DRC 等结果
  • 只要这六段全部打通,Codex 就可以直接操纵嘉立创EDA Pro。

    4. 复现前的硬条件

    必须满足以下条件:

    • Windows 电脑
    • 已安装 Node.js 20+
    • 已安装 嘉立创EDA Pro
    • 能正常启动 Codex Desktop
    • 本机允许 localhost 端口通信
    • 你有一个可编辑的嘉立创EDA Pro 工程

    建议条件:

    • Node.js 版本不低于 20.17.0
    • 嘉立创EDA Pro 已登录账号
    • 能联网拉依赖和访问 GitHub/官方文档

    5. 本机最终目录结构

    以下目录就是本次成功链路所在工作目录:

    C:\\Users\\李天乐\\Documents\\Codex\\2026-05-28\\codex-ai-eda

    其中关键子目录和文件:

    • codex-easyeda-mcp
      • 作用:Codex 使用的 MCP 服务
    • easyeda-api-skill
      • 作用:EasyEDA API 文档、桥服务脚本、技能说明
    • eext-run-api-gateway
      • 作用:嘉立创EDA Pro 侧运行的扩展源码
    • generate-stm32-bluepill-study-base.js
      • 作用:自动生成 Blue Pill 学习底板
    • verify-stm32-bluepill-study-base.js
      • 作用:回读板数据并校验
    • verify-easyeda-connection.ps1
      • 作用:快速验证 Bridge 与 API 是否通

    6. 官方资料入口

    复现时优先看官方资料,不要靠二手教程。

    官方资料入口:

    • EasyEDA 官方 GitHub 组织:https://github.com/easyeda
    • EasyEDA API Skill 官方仓库:https://github.com/easyeda/easyeda-api-skill
    • EasyEDA Pro API User Guide:https://prodocs.lceda.cn/en/api/guide/
    • Invoking the Extension API:https://prodocs.lceda.cn/en/api/guide/invoke-apis.html
    • Ancillary Projects / Run API Gateway:https://prodocs.lceda.cn/en/api/guide/ancillary-projects.html

    本地也有一份可直接查的结构化文档:

    • C:\\Users\\李天乐\\Documents\\Codex\\2026-05-28\\codex-ai-eda\\easyeda-api-skill\\references

    重点用到的 API 类:

    • eda.dmt_Project
    • eda.dmt_Pcb
    • eda.dmt_EditorControl
    • eda.pcb_Document
    • eda.pcb_PrimitivePad
    • eda.pcb_PrimitiveLine
    • eda.pcb_PrimitiveString
    • eda.pcb_Drc

    7. 安装 Node.js

    如果你还没有 Node.js,先装。

    步骤:

  • 访问 Node.js 官网
  • 下载 LTS 版本
  • 完成安装
  • 重开 PowerShell
  • 验证命令:

    node v
    npm v

    你只需要看到版本号,不需要纠结小版本。

    8. 准备三个仓库或目录

    你至少需要以下三部分内容:

  • easyeda-api-skill
  • eext-run-api-gateway
  • codex-easyeda-mcp
  • 本次已经放在:

    • C:\\Users\\李天乐\\Documents\\Codex\\2026-05-28\\codex-ai-eda\\easyeda-api-skill
    • C:\\Users\\李天乐\\Documents\\Codex\\2026-05-28\\codex-ai-eda\\eext-run-api-gateway
    • C:\\Users\\李天乐\\Documents\\Codex\\2026-05-28\\codex-ai-eda\\codex-easyeda-mcp

    如果你要在另一台电脑全新复现,建议保持类似结构,避免路径混乱。

    9. 安装依赖

    对三个目录分别执行 npm install。

    9.1 安装 easyeda-api-skill

    cd C:\\Users\\李天乐\\Documents\\Codex\\2026-05-28\\codex-ai-eda\\easyeda-api-skill
    npm install

    9.2 安装 eext-run-api-gateway

    cd C:\\Users\\李天乐\\Documents\\Codex\\2026-05-28\\codex-ai-eda\\eext-run-api-gateway
    npm install

    9.3 安装 codex-easyeda-mcp

    cd C:\\Users\\李天乐\\Documents\\Codex\\2026-05-28\\codex-ai-eda\\codex-easyeda-mcp
    npm install

    10. 确认三个目录分别是干什么的

    10.1 easyeda-api-skill

    它负责:

    • 提供 EasyEDA API 结构化文档
    • 提供桥服务脚本
    • 给 AI 一个明确的调用工作流

    10.2 eext-run-api-gateway

    它负责:

    • 作为嘉立创EDA Pro 的扩展安装到 EDA 里
    • 在 EDA 内部接收桥服务连接
    • 真正执行传入的 API 代码

    10.3 codex-easyeda-mcp

    它负责:

    • 把上面那条 Bridge 能力包装成 Codex 的 MCP 工具
    • 让 Codex 直接拥有这些工具:
      • easyeda_status
      • easyeda_list_windows
      • easyeda_execute_code
      • easyeda_search_docs
      • easyeda_read_doc
      • easyeda_select_window

    11. 先启动或准备嘉立创EDA Pro

    这一步必须做。

    操作:

  • 打开嘉立创EDA Pro
  • 登录你的账号
  • 打开任意一个工程
  • 至少打开一个 PCB 文档窗口
  • 原因:

    • 没有打开 EDA 窗口时,桥服务虽然能启动,但 edaConnected 会是 false
    • 没有 PCB 文档时,很多 PCB API 会报错

    12. 安装 Run API Gateway 扩展

    这一层是嘉立创EDA Pro 端的关键。

    12.1 方案一:使用已有扩展项目安装

    本地扩展项目目录:

    C:\\Users\\李天乐\\Documents\\Codex\\2026-05-28\\codex-ai-eda\\eext-run-api-gateway

    这个目录中有安装脚本:

    scripts\\install-to-running-jlceda.mjs

    它的工作方式:

    • 通过本地 Chrome DevTools 协议连接运行中的嘉立创EDA Pro 页面
    • 把扩展包注入并安装到当前运行实例

    12.2 先构建扩展

    在扩展目录执行:

    cd C:\\Users\\李天乐\\Documents\\Codex\\2026-05-28\\codex-ai-eda\\eext-run-api-gateway
    npm run build

    如果构建成功,通常会在 build\\dist 下生成 .eext 包。

    12.3 执行安装脚本

    cd C:\\Users\\李天乐\\Documents\\Codex\\2026-05-28\\codex-ai-eda\\eext-run-api-gateway
    node .\\scripts\\install-torunning-jlceda.mjs

    如果嘉立创EDA Pro 页面可被 CDP 发现,脚本会把扩展注入进去。

    12.4 方案二:手工在嘉立创EDA Pro 里安装

    如果自动安装不通,就手工安装:

  • 打开嘉立创EDA Pro 的扩展管理
  • 导入打包好的 .eext
  • 启用扩展
  • 打开扩展开关
  • 勾选允许外部交互
  • 如果有“显示在顶部菜单”,也勾上
  • 12.5 安装后的可见效果

    常见状态:

    • 顶部菜单出现 API Gateway
    • 扩展处于启用状态
    • 之后桥服务扫描端口时能与其完成握手

    13. 启动 EasyEDA Bridge 服务

    桥服务的职责是:

    • 监听本机端口 49620 到 49629
    • 等待嘉立创EDA Pro 侧扩展连接
    • 提供 /health 与 /execute HTTP 接口

    本地桥服务脚本在:

    C:\\Users\\李天乐\\Documents\\Codex\\2026-05-28\\codex-ai-eda\\easyeda-api-skill\\scripts\\bridge-server.mjs

    手工启动命令:

    cd C:\\Users\\李天乐\\Documents\\Codex\\2026-05-28\\codex-ai-eda\\easyeda-api-skill
    node .\\scripts\\bridge-server.mjs

    注意:

    • codex-easyeda-mcp 也会尝试自动拉起桥服务
    • 但你第一次排障时,建议自己手工起一次,便于观察日志

    14. 验证 Bridge 是否正常

    桥服务起来后,访问健康检查:

    Invoke-RestMethod http://127.0.0.1:49620/health | ConvertTo-Json Depth 8

    你要重点看这几个字段:

    • service
    • status
    • edaConnected
    • edaWindowCount
    • activeWindowId

    理想结果示例:

    {
    "service": "easyeda-bridge",
    "status": "ok",
    "edaConnected": true,
    "edaWindowCount": 1
    }

    判断规则:

    • service = easyeda-bridge:说明不是假服务
    • status = ok:桥服务活着
    • edaConnected = true:EDA 端真的连上了
    • edaWindowCount > 0:当前至少有一个可控窗口

    15. 直接测试官方 HTTP 执行接口

    不要一上来就测 Codex。先直接测桥服务的 /execute。

    PowerShell 示例:

    $body = @{
    code = 'return await eda.dmt_Project.getCurrentProjectInfo();'
    } | ConvertTo-Json Compress

    Invoke-RestMethod Method Post `
    Uri http://127.0.0.1:49620/execute `
    ContentType 'application/json' `
    Body $body | ConvertTo-Json Depth 8

    如果返回当前工程信息,说明:

    • Bridge 通
    • EDA 执行环境通
    • API 调用通

    15.1 一键验证脚本

    本地已经有可直接跑的验证脚本:

    C:\\Users\\李天乐\\Documents\\Codex\\2026-05-28\\codex-ai-eda\\verify-easyeda-connection.ps1

    执行:

    cd C:\\Users\\李天乐\\Documents\\Codex\\2026-05-28\\codex-ai-eda
    powershell ExecutionPolicy Bypass File .\\verify-easyeda-connection.ps1

    这个脚本会:

    • 检查 /health
    • 向 /execute 提交一段 EasyEDA API 代码
    • 返回版本、用户信息和 API 可用性

    16. 把 EasyEDA MCP 注册到 Codex

    这一层做完后,Codex 才能在会话里直接调用 EasyEDA。

    本机成功配置写在:

    C:\\Users\\李天乐\\.codex\\config.toml

    关键配置如下:

    [mcp_servers.easyeda]
    command = "node"
    args = ['C:\\Users\\李天乐\\Documents\\Codex\\2026-05-28\\codex-ai-eda\\codex-easyeda-mcp\\server.mjs']

    含义:

    • Codex 启动时会注册一个名为 easyeda 的 MCP 服务
    • 该服务运行 server.mjs
    • server.mjs 会去查找或启动 easyeda-api-skill 提供的桥服务

    16.1 检查是否注册成功

    你可以在有相应 CLI 支持时执行:

    codex mcp list

    理想状态应该能看到类似:

    easyeda node C:\\Users\\李天乐\\Documents\\Codex\\2026-05-28\\codex-ai-eda\\codex-easyeda-mcp\\server.mjs

    17. 理解 codex-easyeda-mcp/server.mjs 的工作方式

    这个文件是核心枢纽。

    它做了几件关键事:

  • 设定端口扫描范围 49620-49629
  • 访问 http://127.0.0.1:<port>/health
  • 校验返回的 service 必须是 easyeda-bridge
  • 如果没找到桥服务,就尝试启动:
    • easyeda-api-skill\\scripts\\bridge-server.mjs
  • 启动后继续等待可用端口
  • 通过 HTTP 调用:
    • /health
    • /eda-windows
    • /execute
  • 再把这些功能包装成 Codex 工具
  • 这就是为什么你只要打开 Codex 并注册了 MCP,它就能“看起来像直接操纵 EDA”。

    18. 在 Codex 中验证 EasyEDA MCP 是否真能工作

    启动 Codex Desktop 后,让它调用:

    • easyeda_status
    • easyeda_list_windows

    理想结果:

    • status = ok
    • edaConnected = true
    • edaWindowCount >= 1
    • 有 windowId

    如果这一步失败,就不要继续生成 PCB,先修通链路。

    19. 复现用的目标板设计说明

    本次设计对象是常见 STM32F103C8T6 Blue Pill 模块。

    采用的 2×20 引脚顺序如下。

    左排从上到下:

    VBAT, PC13, PC14, PC15, PA0, PA1, PA2, PA3, PA4, PA5, PA6, PA7, PB0, PB1, PB10, PB11, NRST, 3V3, GND, GND

    右排从上到下:

    3V3, GND, 5V, PB9, PB8, PB7, PB6, PB5, PB4, PB3, PA15, PA12, PA11, PA10, PA9, PA8, PB15, PB14, PB13, PB12

    这一步非常关键。

    如果你的 Blue Pill 排针定义不同,整板功能逻辑会错。焊接前必须核对你手上的模块。

    20. 自动生成板子的脚本

    本地生成脚本:

    C:\\Users\\李天乐\\Documents\\Codex\\2026-05-28\\codex-ai-eda\\generate-stm32-bluepill-study-base.js

    这个脚本做的事:

  • 指定目标 PCB UUID
  • 打开并激活该 PCB
  • 删除原有 Pad、Line、String
  • 画外框
  • 画中间 Blue Pill 插座轮廓
  • 放置中间 2×20 插座焊盘
  • 放置左右三列学习焊盘
  • 给每个信号拉出对应连线
  • 铺 3V3 和 GND 总线
  • 加丝印说明文字
  • 保存 PCB
  • 统计当前图元数量
  • 21. 生成脚本里的关键参数

    板子整体参数:

    const board = {
    width: 3600,
    height: 3200,
    centerX: 1800,
    leftSocketX: 1500,
    rightSocketX: 2100,
    topRowY: 2550,
    rowPitch: 100,
    leftGroup: { gndX: 250, vccX: 350, sigX: 450, labelX: 560 },
    rightGroup: { sigX: 3150, vccX: 3250, gndX: 3350, labelX: 3040 },
    body: { left: 1350, right: 2250, top: 2680, bottom: 520 },
    };

    这些值的作用:

    • width/height:板框尺寸
    • leftSocketX/rightSocketX:Blue Pill 两列插座中心线位置
    • topRowY:最顶排坐标
    • rowPitch:引脚间距,100 mil = 2.54 mm
    • leftGroup/rightGroup:左右侧学习接口三列焊盘的坐标
    • body:中间插座外框丝印区域

    22. 如何拿到你自己的 PCB UUID

    这一步很重要。

    生成脚本和校验脚本都用到了:

    const TARGET_PCB_UUID = "9d80b0d0984573bb";

    这个值不是通用值,是本次成功案例中的实际 PCB UUID。

    如果你新建了自己的工程或 PCB,必须换成你自己的 UUID。

    22.1 用 EasyEDA API 读取当前 PCB 信息

    可以直接对 /execute 发送:

    return {
    project: await eda.dmt_Project.getCurrentProjectInfo(),
    pcb: await eda.dmt_Pcb.getCurrentPcbInfo()
    };

    然后从结果里抄:

    • project.uuid
    • pcb.uuid

    22.2 为什么必须换 UUID

    因为脚本开头会调用:

    const tabId = await eda.dmt_EditorControl.openDocument(TARGET_PCB_UUID);
    await eda.dmt_EditorControl.activateDocument(tabId);

    如果 UUID 不对:

    • 打不开目标 PCB
    • 激活失败
    • 后续全部失效

    23. 如何执行生成脚本

    23.1 方案一:通过 Codex 工具执行

    这是最直接的方式。

    Codex 读取脚本内容后,调用 easyeda_execute_code,把整段 JavaScript 发到 EDA 执行。

    23.2 方案二:直接通过 HTTP /execute

    你也可以不通过 Codex,直接 HTTP 发代码。

    PowerShell 示例:

    $code = Get-Content Raw 'C:\\Users\\李天乐\\Documents\\Codex\\2026-05-28\\codex-ai-eda\\generate-stm32-bluepill-study-base.js'
    $body = @{ code = $code } | ConvertTo-Json Compress

    Invoke-RestMethod Method Post `
    Uri http://127.0.0.1:49620/execute `
    ContentType 'application/json' `
    Body $body | ConvertTo-Json Depth 20

    如果执行成功,返回里通常会有:

    • 当前 tabId
    • 当前 pcb
    • 删除的旧图元数量
    • 新建图元数量
    • 最终图元统计

    24. 为什么这块板后来需要 reroute

    这不是废话,是复现时最容易踩的坑。

    最初设计里,GND 和 3V3 总线的连接方式过于直接,导致:

    • 短路冲突
    • 走线间距冲突
    • DRC 报错

    后面修正方式是:

    • 左侧底部 GND 改为向下引出后再并到 GND 总线
    • 右侧 GND 改为在中间区域下折后再接到 GND 总线
    • 顶部 3V3 总线整体抬高,避开右侧 GND 的连接线

    这就是为什么最终图元统计从早期版本变成了:

    • Lines: 140

    不是越少越好,能通过 DRC 才有意义。

    25. 自动校验脚本

    本地校验脚本:

    C:\\Users\\李天乐\\Documents\\Codex\\2026-05-28\\codex-ai-eda\\verify-stm32-bluepill-study-base.js

    它的核心逻辑:

  • 打开目标 PCB
  • 激活目标 PCB
  • 读取当前项目信息
  • 读取当前 PCB 信息
  • 统计:
    • Pad 数量
    • Line 数量
    • String 数量
  • 放大到板框
  • 在关键坐标取样读取图元
  • 检查这些位置对应的网络名称是否正确
  • 26. 校验脚本验证了哪些关键点

    本次实际取样点包括:

    • (1500, 2550) 应为 VBAT
    • (2100, 2350) 应为 5V
    • (450, 2150) 应为 PA0
    • (3150, 2250) 应为 PB9
    • (350, 850) 应为 3V3
    • (3350, 2450) 应为 GND

    这些点验证的不是“画面长得像”,而是:

    • 坐标位置正确
    • 图元存在
    • 该点网络正确

    27. 如何执行校验脚本

    PowerShell:

    $code = Get-Content Raw 'C:\\Users\\李天乐\\Documents\\Codex\\2026-05-28\\codex-ai-eda\\verify-stm32-bluepill-study-base.js'
    $body = @{ code = $code } | ConvertTo-Json Compress

    Invoke-RestMethod Method Post `
    Uri http://127.0.0.1:49620/execute `
    ContentType 'application/json' `
    Body $body | ConvertTo-Json Depth 20

    本次最终成功返回值中的关键字段应当是:

    {
    "counts": {
    "pads": 160,
    "lines": 140,
    "strings": 46
    }
    }

    28. 如何跑 DRC

    直接调用:

    return await eda.pcb_Drc.check(true, false, true);

    如果一切正确,最终结果应当是:

    []

    这表示:

    • 返回数组为空
    • DRC 错误数量为 0

    28.1 更完整的 DRC 调用示例

    const project = await eda.dmt_Project.getCurrentProjectInfo();
    const pcb = await eda.dmt_Pcb.getCurrentPcbInfo();
    const drc = await eda.pcb_Drc.check(true, false, true);

    return {
    project: project ? { uuid: project.uuid, friendlyName: project.friendlyName } : null,
    pcb: pcb ? { uuid: pcb.uuid, name: pcb.name } : null,
    drcCount: Array.isArray(drc) ? drc.length : null,
    drc
    };

    29. 最终应达到的实测结果

    如果你完整复现成功,最终应该同时满足:

    • health.service = easyeda-bridge
    • health.status = ok
    • health.edaConnected = true
    • health.edaWindowCount >= 1
    • 当前项目可读
    • 当前 PCB 可读
    • 生成脚本执行成功
    • 校验脚本返回
      • pads = 160
      • lines = 140
      • strings = 46
    • DRC = 0

    只要有一项对不上,就说明你没有完整复现成功。

    30. 本次成功案例中的实际项目信息

    这是本次已经跑通的现场数据,用来对照:

    • Project: STM32_BluePill_Study_Base_20260528061222
    • Project UUID: 641c2110522042b4b78ef2e850424ef4
    • PCB: PCB1
    • PCB UUID: 9d80b0d0984573bb
    • EasyEDA Window ID: fb4c4dba-9b23-432d-adae-e488a6faf91a

    注意:

    • Project UUID
    • PCB UUID
    • Window ID

    这些值在你的环境里大概率都不一样,不要照抄。

    31. 结果证明文件

    本地已有两份实测证明:

    • C:\\Users\\李天乐\\Documents\\Codex\\2026-05-28\\codex-ai-eda\\easyeda-integration-proof-2026-05-28.md
    • C:\\Users\\李天乐\\Documents\\Codex\\2026-05-28\\codex-ai-eda\\stm32-bluepill-study-base-proof-2026-05-28.md

    其中包含:

    • MCP 注册证据
    • Bridge 健康状态
    • /execute 调用结果
    • 项目与 PCB 回读结果
    • 图元统计
    • DRC 最终为 0 的证据

    32. 如何保存校验结果为 JSON

    你可以把返回结果直接落盘,便于留证。

    PowerShell 示例:

    $code = Get-Content Raw 'C:\\Users\\李天乐\\Documents\\Codex\\2026-05-28\\codex-ai-eda\\verify-stm32-bluepill-study-base.js'
    $body = @{ code = $code } | ConvertTo-Json Compress
    $result = Invoke-RestMethod Method Post Uri http://127.0.0.1:49620/execute ContentType 'application/json' Body $body
    $result | ConvertTo-Json Depth 20 | Set-Content 'C:\\Users\\李天乐\\Documents\\Codex\\2026-05-28\\codex-ai-eda\\verify-stm32-bluepill-study-base.json'

    33. 如何导出最终截图

    本文不强制规定导出方式,但复现时建议你至少保存一张最终板图,方便对照。

    常见方式:

  • 在嘉立创EDA Pro 中手工导出截图
  • 使用系统截图工具
  • 如果扩展能力允许,调用相关导出 API
  • 本次结果图文件在:

    C:\\Users\\李天乐\\Documents\\Codex\\2026-05-28\\codex-ai-eda\\easyeda-bluepill-study-base-render.png

    34. 如果 Codex 显示桥服务已启动但无法控制 EDA

    看这几个点:

  • 嘉立创EDA Pro 是否真的打开
  • 扩展是否真的启用
  • 是否打开了 PCB 文档
  • /health 中 edaConnected 是否为 true
  • /health 中 edaWindowCount 是否大于 0
  • 典型错误状态:

    {
    "status": "ok",
    "edaConnected": false,
    "edaWindowCount": 0
    }

    这说明:

    • 只有桥服务活着
    • EDA 没接上
    • 不能真正控制画板

    35. 如果 /execute 调用失败

    常见原因:

  • 扩展没装好
  • 桥服务端口不对
  • JavaScript 代码写错
  • 当前根本没有打开目标 PCB
  • TARGET_PCB_UUID 写错
  • 排查顺序建议:

  • 先查 /health
  • 再执行最简单语句:
  • return 123;

  • 再执行:
  • return await eda.dmt_Project.getCurrentProjectInfo();

  • 再执行:
  • return await eda.dmt_Pcb.getCurrentPcbInfo();

  • 最后再跑生成脚本
  • 36. 如果生成脚本执行了但板子不对

    优先检查:

  • TARGET_PCB_UUID 是否对应正确 PCB
  • Blue Pill 引脚顺序是否符合你的模块
  • 当前单位坐标是否按脚本假设使用 mil 体系
  • 是否真的删掉了旧图元
  • 是否被别的内容挡住或叠层混乱
  • 特别注意:

    脚本中删除的是:

    • Pad
    • Line
    • String

    如果你的目标 PCB 里还有别的类型图元,脚本不会自动处理。

    37. 如果 DRC 不是 0

    不要自欺欺人。

    只要 DRC 不为 0,就说明你的复现不是最终成功版。

    优先检查这些连线:

  • 左侧底部 GND 连接
  • 右侧 GND 接到底部总线的中间折线
  • 顶部 3V3 横向总线的位置
  • 与信号线之间的净距
  • 原则:

    • 电源总线与地总线不要挤在同一水平走廊
    • 需要让连接线有明确避让
    • 通过 DRC 才算完成

    38. 为什么这套方法是真接管,不是伪自动化

    因为你不是在让 AI 输出一段“建议”,而是在执行真实 API:

    • eda.dmt_Project.getCurrentProjectInfo()
    • eda.dmt_Pcb.getCurrentPcbInfo()
    • eda.pcb_PrimitivePad.create()
    • eda.pcb_PrimitiveLine.create()
    • eda.pcb_PrimitiveString.create()
    • eda.pcb_Document.save()
    • eda.pcb_Drc.check()

    这些 API 都是在嘉立创EDA Pro 进程里实际执行的。

    所以只要桥接在线,Codex 就不是“看着你画”,而是在“代你操作 EDA 内核能力”。

    39. 一套最短复现流程

    如果你已经有基础,不想看长文,按这个最短流程做:

  • 安装 Node.js
  • npm install 三个目录
  • 构建并安装 Run API Gateway 到嘉立创EDA Pro
  • 打开嘉立创EDA Pro,进入一个 PCB
  • 启动 bridge-server.mjs
  • 用 /health 确认 edaConnected = true
  • 在 C:\\Users\\李天乐\\.codex\\config.toml 注册 easyeda MCP
  • 启动 Codex
  • 让 Codex 调 easyeda_status
  • 读取当前 pcb.uuid
  • 把 generate-stm32-bluepill-study-base.js 里的 TARGET_PCB_UUID 改成你的 PCB UUID
  • 执行生成脚本
  • 执行校验脚本
  • 执行 eda.pcb_Drc.check(true, false, true)
  • 确认 160 / 140 / 46 且 DRC = 0
  • 40. 一套最稳妥复现流程

    如果你第一次做,按这个顺序,不要跳:

  • 装 Node.js
  • 三个目录跑 npm install
  • 启动嘉立创EDA Pro
  • 安装并启用 Run API Gateway
  • 手工启动 bridge-server.mjs
  • 用 GET /health 检查桥服务
  • 用 POST /execute 执行 return 123;
  • 用 POST /execute 读取当前工程信息
  • 用 POST /execute 读取当前 PCB 信息
  • 记录 pcb.uuid
  • 修改生成脚本中的 TARGET_PCB_UUID
  • 执行生成脚本
  • 执行校验脚本
  • 跑 DRC
  • 保存 JSON 与截图
  • 再启动 Codex 并通过 MCP 重复一次读取和校验
  • 41. 你应该保留哪些文件

    建议保留以下文件,后续直接复用:

    • C:\\Users\\李天乐\\Documents\\Codex\\2026-05-28\\codex-ai-eda\\generate-stm32-bluepill-study-base.js
    • C:\\Users\\李天乐\\Documents\\Codex\\2026-05-28\\codex-ai-eda\\verify-stm32-bluepill-study-base.js
    • C:\\Users\\李天乐\\Documents\\Codex\\2026-05-28\\codex-ai-eda\\verify-easyeda-connection.ps1
    • C:\\Users\\李天乐\\Documents\\Codex\\2026-05-28\\codex-ai-eda\\verify-stm32-bluepill-study-base.json
    • C:\\Users\\李天乐\\Documents\\Codex\\2026-05-28\\codex-ai-eda\\easyeda-bluepill-study-base-render.png
    • C:\\Users\\李天乐\\Documents\\Codex\\2026-05-28\\codex-ai-eda\\easyeda-integration-proof-2026-05-28.md
    • C:\\Users\\李天乐\\Documents\\Codex\\2026-05-28\\codex-ai-eda\\stm32-bluepill-study-base-proof-2026-05-28.md

    42. 你后续如何扩展这套系统

    当你把本篇复现通后,后续可以继续做:

  • 让 Codex 自动新建工程和 PCB
  • 让 Codex 自动放置标准接口座
  • 让 Codex 自动生成 ESP32、Arduino、STM32 Nucleo 学习底板
  • 让 Codex 自动做引脚映射检查
  • 让 Codex 自动跑 DRC 并自修复部分冲突
  • 让 Codex 自动导出 Gerber、BOM、3D 文件
  • 但前提永远是:

    • 桥服务通
    • EDA 窗口通
    • 当前 API 真能执行

    43. 本文最重要的结论

    你真正要复现的不是某一张板子,而是这条能力链:

    Codex -> MCP -> EasyEDA Bridge -> Run API Gateway -> 嘉立创EDA Pro API -> 实际 PCB 操作

    只要这条链是活的,Codex 就可以:

    • 读工程
    • 读 PCB
    • 画焊盘
    • 画走线
    • 加丝印
    • 保存
    • 校验
    • 跑 DRC

    这就叫可用的“自主画 PCB”能力。

    44. 复现完成的判定标准

    只有同时满足下面全部条件,才算你从零复现成功:

  • 你能得到 service = easyeda-bridge 的 /health
  • 你能让 edaConnected = true
  • 你能成功执行 eda.dmt_Project.getCurrentProjectInfo()
  • 你能成功执行 eda.dmt_Pcb.getCurrentPcbInfo()
  • 你能用脚本生成目标板
  • 你能回读出 160 pads / 140 lines / 46 strings
  • 你能让 eda.pcb_Drc.check(true, false, true) 返回空数组
  • 少一条都不算完整复现。

    45. 本文结束前的最后提醒

    三件事必须记住:

  • PCB UUID 不通用,换环境必须重新读取
  • Blue Pill 引脚顺序要对照你手上的模块
  • DRC = 0 才能称为最终成功版
  • 做不到这三条,就不要说自己“完全复现”了。

    赞(0)
    未经允许不得转载:171主机测评 » Codex 接管嘉立创EDA 并复现 STM32 Blue Pill 学习底板的完整教学
    分享到: 更多 (0)

    评论 抢沙发

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