首页/文章/ 详情

让 AI 设计一块 PCB 板打样后真能跑起来吗?

1天前浏览9


把一块自己设计的 PCB 插上电脑,在 Betaflight 里看到传感器被识别、姿态模型随着板子转动,这件事本身并不稀奇。

但这一次,从整理需求、修改电路、调整布局,到上传生产文件、处理缺料,再到给实物板烧录固件,全部交给Codex 和 Claude来具体操作。

最后,这块基于 STM32F405 的六层板,确实跑起了 Betaflight。

USB 通信正常,陀螺仪和加速度计被识别,水平校准后重启,校准结果仍然保留。

这篇文章就把过程展开:AI 用了什么工具,怎样连接嘉立创 EDA,设计中改过什么,订单里遇到哪些问题,以及最后怎样确认板子真的在工作。

AI设计六层飞控_全流程__assets/01_codex_eda_connected.png

嘉立创 EDA 中的 R0.8 工程与 Codex 对话界面。板子、原理图和连接数据都来自实际工程。

用 Codex 和 KiCad MCP 设计一块无人机飞控 PCB:从安装部署到六层板工程

01|先给 AI 一个能落地的目标

最初讨论方案时,我也考虑过桌面机器人主板、带屏幕的交互板。但这次要做的,是把 AI 设计、PCB 制造、贴装和实测串起来,所以最后把目标收敛到一块用于桌面验证的飞控主板。

我给 Codex 的需求,大致可以整理成下面这段:

做一块基于 STM32F405 的六层飞控板,带陀螺仪和加速度计,支持 USB 供电和烧录。保留接收机接口、四路控制信号,以及 BOOT 和 RESET 按键。尺寸控制在四厘米左右,元器件全部放在正面,准备贴装两片。

这几句话,已经限定了主控、传感器、供电方式、接口、尺寸和装配方式。后续选型与布局,都要围绕这些条件展开。

最终保留的核心配置如下:

部分    
这块板的配置    
主控    
STM32F405RGT6    
六轴传感器    
ICM-42688-P,包含三轴陀螺仪和三轴加速度计    
供电与通信    
USB-C 输入 5V,板上稳压,USB 下载与通信    
接收机    
CRSF 串口接口    
控制输出    
四路逻辑控制信号,需要外接电调等执行部件    
调试    
BOOT、RESET、状态灯和 SWD 测试焊盘    
PCB 与装配    
约 40 × 40 mm、六层铜、全部正面贴装    

为了控制复杂度,原先方案中的模拟 OSD、黑匣子 Flash、气压计、GPS 等部分都没有保留。板上也不再承担电池输入降压,演示时只用 USB 供电。

这样,第一轮验证的目标就很明确:能下载、能启动、能通信、能读取运动传感器。

02|Codex 怎样连接到嘉立创 EDA?

这次连接 EDA 的核心工具,是开源项目 easyeda-agent。

项目地址:github.com/zhoushoujianwork/easyeda-agent。

把它接好以后,Codex 可以读取真实的器件、引脚、网络和 PCB 对象,再调用工具修改工程。对话中的“把接口移到板边”“检查这根线接到了哪里”,才有了实际执行的入口。

这里有几个容易混在一起的名字,我按这次的用途解释一下。

Codex 负责理解需求和组织操作。 它根据我的要求拆分任务,读取工具返回的数据,判断下一步该检查或修改什么。

嘉立创 EDA 专业版承载工程。 原理图、器件库、封装、PCB、叠层和设计规则,都落在这个软件里。

easyeda-agent 的 MCP 提供工具入口,CLI 可以补充调用。 MCP 是让 Codex 调用外部工具的一种接口方式;它本身不承担电路设计判断,也不替代 EDA 软件。

easyeda-agent Skill 提供操作约定。 比如先读取当前工程、确认目标页面,修改后回读连接,再执行检查。Skill 与 MCP 配合使用:一个帮助 Agent 按合适的步骤做事,一个提供可调用的工具。

编辑器内部还需要安装 EDA Agent Connector。工具调用经过本地服务和连接器,最终由 EDA 的接口作用到工程。

AI设计六层飞控_全流程__assets/02_eda_connector.png

EDA 扩展管理器中的连接器。图中是本次视频记录时的版本界面,复现时应以项目当前文档为准。

实际准备过程包括安装配套 CLI 和 Skill、配置 Codex 的 MCP、在 EDA 中安装连接器、允许外部交互,以及启动并检查本地连接服务。

接好以后,我先让 Codex 读取当前工程,确认它拿到的是目标版本,而不是直接开始改图。

这一点很有必要。我的工程里同时保留了多个版本,最终实板对应的是 F405 Single Side R0.8 → PCB1_3。只说“修改当前板子”,很容易让版本关系变得混乱。

工具链也在更新。视频里的旧版 EDA 环境不应直接当作今天的安装模板;重新复现时,要核对 EDA、CLI、本地服务、Connector 和 Skill 的兼容情况。当前安装与连接说明见项目文档。

03|从“能放下”调整到“适合制造和展示”

这块板并不是第一次生成布局,就直接送去打样。

早期版本还有元件放在背面。看三维预览时,我觉得布局不够整齐,也不方便展示,就继续提出要求:全部元器件放到正面,重新组织功能分区。

之后的单面贴装版本,把主控放在中间,USB 接口放在上侧,主电源放在左侧,IMU 和它的专用电源放在右侧。CRSF 接口靠右边,四路控制信号接口在下方,BOOT、RESET 两个按键分开放置。

晶振、VCAP 电容和主控去耦,也需要结合对应引脚安排,不能只为了看起来对称就随意摆放。

布线过程中也调用了 Freerouting 做离线计算,再把结果写回 EDA,补齐和修复局部连接,最后以 EDA 中的实际走线和检查结果为准。AI 在这里负责协调工具和处理反馈,具体布线计算仍由对应工具执行。

AI设计六层飞控_全流程__assets/04_layout_preview.png

EDA 三维预览中的局部布局:主控、USB、电源和调试焊盘。蓝色是预览显示,最终实物采用绿色阻焊。

从 R0.7 到 R0.8,又进行了一轮接地与启动相关的调整:增加局部地过孔和周边缝合孔,补充底层 GND 铺铜,并给未使用的 PA10 增加上拉,减少系统下载模式下悬空输入带来的不确定性。

旧版本保留,新改动放在副本里。这样既能比较调整前后的差异,也能在发现问题时回到原来的版本。

最终 R0.8 每片实际贴装 49 个器件,全部位于顶面。另外保留一组 SWD 测试焊盘 J9,它是 PCB 上的铜焊盘,不需要采购一个五针连接器来贴装。

AI设计六层飞控_全流程__assets/05_R08_native_pcb.png

R0.8 原生 PCB 二维导出图,能够看到器件分区、连接、过孔与接口标识。

顺便解释一个经常被问到的问题:单面贴装和六层 PCB,并不矛盾。

前者说的是元件装在哪一面,后者说的是板内部有几层铜。六层可以为信号布线和接地安排提供更多空间,但层数本身不能保证电路可靠。这类精简的 F405 板也不是非六层不可,这次选择六层,同时结合了项目演示目标和打样权益。

04|让 AI 检查,要让它拿出检查依据

画完图后,我继续让 Codex和 Claude 分别 检查电源、引脚和封装,核对原理图与 PCB 的连接,再检查固件配置。

这里不能只得到一句“看起来没问题”。我更关心它读到了哪些数据,做了什么比较,还剩什么没有验证。

原理图按 MCU、电源、传感器、接口和辅助电路分成五页。检查时需要逐页读取,查看电源网络、器件引脚、跨页连接,以及应该明确标记的不连接引脚。

AI设计六层飞控_全流程__assets/03_schematic_codex.png

视频中的原理图与需求对照画面。连接检查使用工程里的引脚和网络数据,截图用于展示过程。

具体到这块板,重点包括主控供电和 VCAP、8MHz 晶振及负载电容、USB 数据线和保护器件、IMU 的 SPI 与中断连接,以及接收机和四路输出的引脚分配。

原理图与 PCB 还要单独对账:同一个位号、同一个引脚,在两边是否属于相同网络。

R0.8 保存的核验记录中,223 个原理图引脚与 PCB 对应焊盘网络逐一比较,差异为 0;保存并重新打开后,原生 PCB DRC 为 0 项违规。

额外的几何检查仍有提示。其中有些是把椭圆焊盘按矩形估算后产生的间距误报,需要结合真实焊盘形状复核;其他布局、去耦距离和制造相关提示,也要逐项看。不能因为原生 DRC 显示 0,就把其他输出全部忽略。

固件要与硬件一起核对。STM32F405、8MHz 外部时钟、ICM-42688-P 的 SPI、片选和中断引脚,以及 USB、CRSF 和四路控制信号,都要对应到同一块板。

这次使用的是适配该板的 Betaflight 4.5.2 固件,并不是从网上随便找一份同为 F405 的固件烧进去。

05|让 Codex 继续处理 PCB 和 SMT 下单

设计文件整理好以后,我让 Codex 继续在嘉立创下单 平台操作,上传 PCB 文件、填写工艺参数,再推进 SMT 物料匹配与贴装检查。

这里用的是浏览器操作能力。EDA 工程由 easyeda-agent 连接,网页订单由浏览器工具处理,固件烧录则调用本机工具。 整个过程由 Codex 串起来,但底层并不是同一个 MCP 包办所有事情。

下单前准备三类资料:Gerber 描述板子的制造图形,BOM 描述装什么元件,贴片坐标描述元件放在哪里、在哪一面以及旋转角度。

过程中,平台曾提示原生工程文件“解析失败,请重新上传”。后面改用从目标 R0.8 PCB 导出的 Gerber,检查压缩包完整性,并核对六个铜层、板框和钻孔文件,再上传解析。

这次 PCB 订单是六层、约 40 × 40 mm、1.6 mm 板厚、绿色阻焊、沉金,裸板数量为 5 片,其中 2 片做顶层 SMT。

本次使用了账号对应的六层板打样权益。后续生产稿确认记录中的裸板订单显示 0 元、包邮。这是本次订单的权益结果,活动条件和工艺限制仍要以各自账号与实际下单页面为准。

裸板减免也不等于整块 PCBA 免费。 元器件、SMT、钢网、换料等费用需要另外核算。本次替代料调整后的两片标准型 SMT 与元件页面预估为 862.58 元;这个数字是当时的报价记录,不作为最终付款凭证或通用价格。

缺料以后,不能随便找一个同封装器件替上

SMT 匹配时,传感器电源 U7 遇到了库存问题:原型号库存只有 4 颗,而平台最低用量要求 5 颗。虽然只贴两片,也不能直接绕过平台的备料要求。

后来保留 U7 的贴装,改用有货的 TPS7A2033PDBVR。在替换前,对照原型号核对了输出电压、输入范围、使能、输入输出电容要求,以及 SOT-23-5 五个焊盘的功能。

这里真正要比较的是“每个焊盘接什么、器件能否在这组条件下工作”,而不是仅看外壳长得像不像。替代记录也需要与装配 BOM 一起保留。

生产稿还要再看一遍

确认生产稿时,再比较原始图与生产图,查看板框、安装孔、USB 固定槽、主要焊盘、丝印和六个铜层。

工厂为贴装增加的工艺边、工具孔和定位标记,也要与主体 PCB 区分开。平台图形比对显示“0 处不同”,说明这次图形对照没有发现差异,并不代表已经做过功能测试。

AI设计六层飞控_全流程__assets/07_manufacturing_preview.png

视频中的嘉立创 SMT 三维预览。板子外围是贴装所需的工艺结构,图中模型仍属于生产预览。

账号登录、必要的人工确认以及最后的订单决定,由我配合完成。Codex 承担文件上传、参数填写、物料匹配和检查整理,让设计资料继续进入实际制造流程。

06|收到实物,软件里的布局变成了焊在板上的器件

收到的是已经完成 SMT 的主板。

把它与 EDA 预览放在一起看,主控、USB-C、两颗按键、接收机接口和四路控制信号接口的位置,都能对应起来。背面没有贴装器件,桌面展示和后续探测也更直观。

AI设计六层飞控_全流程__assets/11_assembled_board.JPG

这次收到的 R0.8 实物板照片。绿色阻焊、元件位置、接口与 BOOT/RESET 丝印都能直接看到。

实物展示时,我会重点看主控细引脚、USB-C 焊脚、IMU 周围的小器件,以及按键和连接器的焊接细节。焊点是否有明显连锡、器件方向是否与生产稿一致,也是收板后需要检查的内容。

至于盘中孔、塞孔等加工细节,应结合实际订单与生产稿核对;外观照片无法证明内部孔铜、填孔或焊接质量全部合格。

新板首次上电,仍建议先做断电短路检查并使用限流供电。这次我选择直接进行 USB 桌面测试,记录中没有完成万用表电源轨、纹波等测量,因此也不会把这些项目写成“已经通过”。

07|在 Mac 上,让 Codex 给实物板烧录固件

到了这一步,Codex 操作的对象从设计文件变成了 USB 连接的真实主板。

BOOT 和 RESET 的物理操作由我配合:进入芯片的系统下载模式以后,Mac 识别到 STM32 BOOTLOADER,Codex 再调用本机的 dfu-util 完成读写。这个工具支持通过 USB DFU 与设备交互,具体选项可参考官方手册。

AI设计六层飞控_全流程__assets/08_codex_bringup.png

视频中回顾首次上电与烧录安排的对话。实际烧录结果还要结合工具输出和读回文件判断。

这次没有只看“下载成功”的提示,而是保留了几层核验:先备份整片 1MB Flash,再检查 HEX 文件的记录、地址范围和启动向量,然后写入适配本板的固件,最后读回同样的地址范围进行比较。

写入的 480,553 字节,与读回数据逐字节一致。

随后重新启动,电脑识别到主板的 USB 虚拟串口。通过 MSP 和 CLI,又读到了 Betaflight 版本、主控运行时钟和传感器信息。

记录中的关键结果是:

Betaflight 4.5.2 / STM32F405 MCU F40X Clock=168MHz (PLLP-HSE) GYRO=ICM42688P, ACC=ICM42688P Flash readback: identical, 480553 bytes 

这几项对应的是不同层次:固件确实写入了 Flash,主控能够启动,USB 通信链路可用,固件也能够访问板上的运动传感器。

08|最后,在 Betaflight 里看它是否真的工作

打开 Betaflight 配置工具后,能够看到本板对应的固件信息,以及陀螺仪、加速度计的识别结果。

拿起板子转动,姿态模型和传感器曲线会发生变化。这个画面,把原理图里的 SPI 连接、PCB 上的 IMU 和电脑端的数据展示连在了一起。

AI设计六层飞控_全流程__assets/09_betaflight_setup.png

视频中的 Betaflight 设置界面,可见自定义板名 CAI_F405_DEMO 与 BTFL 4.5.2。截帧时板子处于倾斜状态。

AI设计六层飞控_全流程__assets/10_betaflight_sensors.png

传感器页面识别出 ICM42688P,运动时模型和曲线都有响应。这个画面用于展示数据反馈,不代表六方向映射已经完整验收。

我们还做了水平静止校准:把主板元件面朝上平放,执行加速度计校准,再采样观察。

校准后,横滚和俯仰读数均为 0.0°;约 10 秒的连续采样中保持稳定。重新启动后再次采样,校准结果仍然保留,USB 也能够重新连接。

至此,这块板完成了 USB 烧录、固件读回、启动通信、IMU 识别、数据变化与水平校准的基础验证。

接收机 CRSF、四路输出波形、完整的六方向映射、长时间运行,以及另一片主板,还不在这次已完成的验收范围内。电机输出协议保持关闭,也没有进行实际飞行。

后续对照资料复查时,还发现了 R0.8 的 PA9 USB 检测连接存在上电时序相关的可靠性风险,需要在下一版继续处理。这次运行成功的实物是 R0.8,不能把尚在准备的修订写成已经改好、已经上板。

写在最后|AI 开始能把一件硬件项目接着做下去

这次让我感受最明显的,是需求可以一直往后推进。

觉得功能太多,就收敛电路;觉得布局不好看,就重新分区;准备下单,就整理 Gerber、BOM 和坐标;遇到缺料,就对照资料核对替代;收到板子,再接着做下载、通信和传感器测试。

这些工作用了不同工具,也需要我配合接线、按键和确认,但 Codex 能在同一个项目上下文里接着处理,并把结果留成可检查的文件和记录。

从一句想法,到一块能够启动、通信并读取传感器的实物板,这条流程已经走通了。

如果你准备尝试类似项目,我建议第一条需求就把目标、尺寸、供电、接口、贴装方式和验收标准写清楚。让 AI 每改完一步都读取真实工程数据,最后再拿实物回答:它究竟完成了哪些功能。


文中的免费打样权益与报价为本次账号、订单及当时页面的记录,适用条件以实际平台规则为准。本文展示桌面原型的设计、制造与基础测试过程,不作为飞行或量产验证。

相关工具:easyeda-agent · 嘉立创下单 平台 · dfu-util · Betaflight 固件烧录说明



来源:去飞GoFly
电源电路通用芯片通信焊接电机机器人控制工厂无人机装配
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2026-10-26
最近编辑:1天前
去飞GoFly
博士 AI 时代高效学习高效工作
获赞 19粉丝 123文章 7课程 11
点赞
收藏
作者推荐
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习计划 福利任务
下载APP
联系我们
帮助与反馈