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",而是这条完整控制链:

  1. Codex 通过本地 MCP Server 暴露一个 EasyEDA 工具集
  2. MCP Server 在本机启动或连接 EasyEDA 官方桥服务
  3. 嘉立创EDA Pro 里安装的 Run API Gateway 扩展通过 WebSocket 与桥服务连通
  4. Codex 发送 JavaScript 代码到桥服务
  5. 桥服务把代码送到嘉立创EDA Pro 内部执行
  6. 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. 官方资料入口

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

官方资料入口:

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

  • 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,先装。

步骤:

  1. 访问 Node.js 官网
  2. 下载 LTS 版本
  3. 完成安装
  4. 重开 PowerShell

验证命令:

powershell 复制代码
node -v
npm -v

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

8. 准备三个仓库或目录

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

  1. easyeda-api-skill
  2. eext-run-api-gateway
  3. 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

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

9.2 安装 eext-run-api-gateway

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

9.3 安装 codex-easyeda-mcp

powershell 复制代码
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

这一步必须做。

操作:

  1. 打开嘉立创EDA Pro
  2. 登录你的账号
  3. 打开任意一个工程
  4. 至少打开一个 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 先构建扩展

在扩展目录执行:

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

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

12.3 执行安装脚本

powershell 复制代码
cd C:\Users\李天乐\Documents\Codex\2026-05-28\codex-ai-eda\eext-run-api-gateway
node .\scripts\install-to-running-jlceda.mjs

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

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

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

  1. 打开嘉立创EDA Pro 的扩展管理
  2. 导入打包好的 .eext
  3. 启用扩展
  4. 打开扩展开关
  5. 勾选允许外部交互
  6. 如果有"显示在顶部菜单",也勾上

12.5 安装后的可见效果

常见状态:

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

13. 启动 EasyEDA Bridge 服务

桥服务的职责是:

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

本地桥服务脚本在:

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

手工启动命令:

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

注意:

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

14. 验证 Bridge 是否正常

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

powershell 复制代码
Invoke-RestMethod http://127.0.0.1:49620/health | ConvertTo-Json -Depth 8

你要重点看这几个字段:

  • service
  • status
  • edaConnected
  • edaWindowCount
  • activeWindowId

理想结果示例:

json 复制代码
{
  "service": "easyeda-bridge",
  "status": "ok",
  "edaConnected": true,
  "edaWindowCount": 1
}

判断规则:

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

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

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

PowerShell 示例:

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

执行:

powershell 复制代码
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

关键配置如下:

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 支持时执行:

powershell 复制代码
codex mcp list

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

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

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

这个文件是核心枢纽。

它做了几件关键事:

  1. 设定端口扫描范围 49620-49629
  2. 访问 http://127.0.0.1:<port>/health
  3. 校验返回的 service 必须是 easyeda-bridge
  4. 如果没找到桥服务,就尝试启动:
    • easyeda-api-skill\scripts\bridge-server.mjs
  5. 启动后继续等待可用端口
  6. 通过 HTTP 调用:
    • /health
    • /eda-windows
    • /execute
  7. 再把这些功能包装成 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 模块。

采用的 2x20 引脚顺序如下。

左排从上到下:

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

这个脚本做的事:

  1. 指定目标 PCB UUID
  2. 打开并激活该 PCB
  3. 删除原有 Pad、Line、String
  4. 画外框
  5. 画中间 Blue Pill 插座轮廓
  6. 放置中间 2x20 插座焊盘
  7. 放置左右三列学习焊盘
  8. 给每个信号拉出对应连线
  9. 3V3GND 总线
  10. 加丝印说明文字
  11. 保存 PCB
  12. 统计当前图元数量

21. 生成脚本里的关键参数

板子整体参数:

javascript 复制代码
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

这一步很重要。

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

javascript 复制代码
const TARGET_PCB_UUID = "9d80b0d0984573bb";

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

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

22.1 用 EasyEDA API 读取当前 PCB 信息

可以直接对 /execute 发送:

javascript 复制代码
return {
  project: await eda.dmt_Project.getCurrentProjectInfo(),
  pcb: await eda.dmt_Pcb.getCurrentPcbInfo()
};

然后从结果里抄:

  • project.uuid
  • pcb.uuid

22.2 为什么必须换 UUID

因为脚本开头会调用:

javascript 复制代码
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 示例:

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

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

最初设计里,GND3V3 总线的连接方式过于直接,导致:

  • 短路冲突
  • 走线间距冲突
  • 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

它的核心逻辑:

  1. 打开目标 PCB
  2. 激活目标 PCB
  3. 读取当前项目信息
  4. 读取当前 PCB 信息
  5. 统计:
    • Pad 数量
    • Line 数量
    • String 数量
  6. 放大到板框
  7. 在关键坐标取样读取图元
  8. 检查这些位置对应的网络名称是否正确

26. 校验脚本验证了哪些关键点

本次实际取样点包括:

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

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

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

27. 如何执行校验脚本

PowerShell:

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

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

json 复制代码
{
  "counts": {
    "pads": 160,
    "lines": 140,
    "strings": 46
  }
}

28. 如何跑 DRC

直接调用:

javascript 复制代码
return await eda.pcb_Drc.check(true, false, true);

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

json 复制代码
[]

这表示:

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

28.1 更完整的 DRC 调用示例

javascript 复制代码
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 示例:

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. 如何导出最终截图

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

常见方式:

  1. 在嘉立创EDA Pro 中手工导出截图
  2. 使用系统截图工具
  3. 如果扩展能力允许,调用相关导出 API

本次结果图文件在:

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

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

看这几个点:

  1. 嘉立创EDA Pro 是否真的打开
  2. 扩展是否真的启用
  3. 是否打开了 PCB 文档
  4. /healthedaConnected 是否为 true
  5. /healthedaWindowCount 是否大于 0

典型错误状态:

json 复制代码
{
  "status": "ok",
  "edaConnected": false,
  "edaWindowCount": 0
}

这说明:

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

35. 如果 /execute 调用失败

常见原因:

  1. 扩展没装好
  2. 桥服务端口不对
  3. JavaScript 代码写错
  4. 当前根本没有打开目标 PCB
  5. TARGET_PCB_UUID 写错

排查顺序建议:

  1. 先查 /health
  2. 再执行最简单语句:
javascript 复制代码
return 123;
  1. 再执行:
javascript 复制代码
return await eda.dmt_Project.getCurrentProjectInfo();
  1. 再执行:
javascript 复制代码
return await eda.dmt_Pcb.getCurrentPcbInfo();
  1. 最后再跑生成脚本

36. 如果生成脚本执行了但板子不对

优先检查:

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

特别注意:

脚本中删除的是:

  • Pad
  • Line
  • String

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

37. 如果 DRC 不是 0

不要自欺欺人。

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

优先检查这些连线:

  1. 左侧底部 GND 连接
  2. 右侧 GND 接到底部总线的中间折线
  3. 顶部 3V3 横向总线的位置
  4. 与信号线之间的净距

原则:

  • 电源总线与地总线不要挤在同一水平走廊
  • 需要让连接线有明确避让
  • 通过 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. 一套最短复现流程

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

  1. 安装 Node.js
  2. npm install 三个目录
  3. 构建并安装 Run API Gateway 到嘉立创EDA Pro
  4. 打开嘉立创EDA Pro,进入一个 PCB
  5. 启动 bridge-server.mjs
  6. /health 确认 edaConnected = true
  7. C:\Users\李天乐\.codex\config.toml 注册 easyeda MCP
  8. 启动 Codex
  9. 让 Codex 调 easyeda_status
  10. 读取当前 pcb.uuid
  11. generate-stm32-bluepill-study-base.js 里的 TARGET_PCB_UUID 改成你的 PCB UUID
  12. 执行生成脚本
  13. 执行校验脚本
  14. 执行 eda.pcb_Drc.check(true, false, true)
  15. 确认 160 / 140 / 46DRC = 0

40. 一套最稳妥复现流程

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

  1. 装 Node.js
  2. 三个目录跑 npm install
  3. 启动嘉立创EDA Pro
  4. 安装并启用 Run API Gateway
  5. 手工启动 bridge-server.mjs
  6. GET /health 检查桥服务
  7. POST /execute 执行 return 123;
  8. POST /execute 读取当前工程信息
  9. POST /execute 读取当前 PCB 信息
  10. 记录 pcb.uuid
  11. 修改生成脚本中的 TARGET_PCB_UUID
  12. 执行生成脚本
  13. 执行校验脚本
  14. 跑 DRC
  15. 保存 JSON 与截图
  16. 再启动 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. 你后续如何扩展这套系统

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

  1. 让 Codex 自动新建工程和 PCB
  2. 让 Codex 自动放置标准接口座
  3. 让 Codex 自动生成 ESP32、Arduino、STM32 Nucleo 学习底板
  4. 让 Codex 自动做引脚映射检查
  5. 让 Codex 自动跑 DRC 并自修复部分冲突
  6. 让 Codex 自动导出 Gerber、BOM、3D 文件

但前提永远是:

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

43. 本文最重要的结论

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

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

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

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

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

44. 复现完成的判定标准

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

  1. 你能得到 service = easyeda-bridge/health
  2. 你能让 edaConnected = true
  3. 你能成功执行 eda.dmt_Project.getCurrentProjectInfo()
  4. 你能成功执行 eda.dmt_Pcb.getCurrentPcbInfo()
  5. 你能用脚本生成目标板
  6. 你能回读出 160 pads / 140 lines / 46 strings
  7. 你能让 eda.pcb_Drc.check(true, false, true) 返回空数组

少一条都不算完整复现。

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

三件事必须记住:

  1. PCB UUID 不通用,换环境必须重新读取
  2. Blue Pill 引脚顺序要对照你手上的模块
  3. DRC = 0 才能称为最终成功版

做不到这三条,就不要说自己"完全复现"了。

相关推荐
西城微科方案开发1 小时前
蓝牙血压计 PCBA 方案
单片机·嵌入式硬件
金戈鐡馬1 小时前
深入解析PGND在FOC中的作用和存在的必要性
单片机·嵌入式硬件·foc·磁场定向控制·电调
承渊政道1 小时前
【MySQL数据库学习】MySQL表的约束(上)
数据库·c++·学习·mysql·bash·数据库架构·数据库系统
小乌龟打怪升级1 小时前
英语单词学习计划
学习·英语单词
sulikey11 小时前
个人Linux操作系统学习笔记6 - 操作系统与进程初识
linux·笔记·学习·操作系统·进程
unicorn3111 小时前
学习学习学习
学习
笨笨没好名字12 小时前
怎么看懂51单片机电路图与功能实现的C语言编写(2-7入门篇)
c语言·嵌入式硬件·51单片机
XGeFei12 小时前
【Fastapi学习笔记(3)】——资源的层级关系、安全性-幂等性、Field、工厂函数
笔记·学习·fastapi
星恒随风13 小时前
Python 基础语法详解(一):从表达式、变量到数据类型
开发语言·笔记·python·学习