一、项目概述
DUTler 是一款基于 RP2040(树莓派 Pico)开源硬件在环(HIL)测试适配器,面向嵌入式 Linux、Yocto 系统、Mender 固件 OTA 升级等场景,解决嵌入式单板持续集成(CI)自动化测试难题。传统嵌入式 CI 仅能完成软件仿真,很难实现真实硬件的上电、断电、复位、进入烧录模式等物理操作;DUTler 将低成本 Pico 改造为程控测试工装,通过单根 USB 线缆同时完成串口透传、硬件控制、日志采集,实现无人值守的硬件级自动化回归测试。项目整体采用 Apache2.0 开源协议,固件、硬件原理图全部开放,可根据被测设备(DUT)快速裁剪适配。
二、项目设计思路与核心架构
本装置以 RP2040 为控制核心,固件将 Pico 模拟出三路独立 USB CDC 虚拟串口,各司其职,实现业务通道隔离,避免调试日志污染被测设备控制台输出:
Bridge 桥接串口(CDC0):透明 USB-UART 桥,直通被测单板原生串口控制台,完整镜像 DUT 的串口输出,用于人机交互、命令下发与业务日志采集;
Control 控制串口(CDC1):专用控制通道,提供一套文本交互指令集,用于远程控制硬件输出,实现上下电、复位、Boot 配置引脚拉低等硬件操作;
Debug 日志串口(CDC2):独立固件调试通道,仅输出 DUTler 自身运行日志,与被测设备的串口数据完全隔离,不干扰 DUT 业务输出。
硬件侧配套 4 路 3.3V 通用 GPIO 控制输出:2 路低侧 MOSFET 驱动通道,用于控制 DUT 复位引脚、Boot/strap 配置引脚;1 路继电器通道实现被测设备整机电源通断;预留 1 路通用 IO,可扩展其它外设控制。所有控制输出上电默认关闭,保障被测硬件安全。
三、核心功能
串口透明透传与隔离日志采集 桥接通道无修改转发 DUT 串口收发数据;调试日志独立通道输出,解决传统单串口工装中工装调试信息混入设备控制台、干扰日志解析的痛点。支持串口回环自检,验证串口链路可靠性。
全程控硬件控制 通过控制串口下发指令,远程实现被测设备电源开关、硬件复位、强制进入固件烧录模式;支持保存引脚配置至板载非易失存储,支持板载自检、固件本地重启。
标准化命令交互 控制端口内置命令行交互体系,支持
status、set、save、self-test、reboot等指令,支持交互式 Shell,可直接被 Python、Shell 脚本调用,无缝接入 Jenkins、GitLab CI 等自动化流水线。轻量化可移植 固件基于 Pico SDK 开发,支持 RP2040、RP2350(Pico2)多款芯片;硬件为通用模块化设计,不绑定特定单板,只要匹配电平与接线,即可适配各类嵌入式硬件。
完备的测试验证体系 宿主机端内置单元测试,完成命令解析、CRC 校验等软件逻辑验证;硬件端支持回环自测、IO 输出自检,每次 CI 任务执行前可自动校验工装自身状态。
四、工作流程
将 DUTler 通过 USB 连接测试服务器,硬件接线:桥接串口接 DUT 调试串口,MOSFET / 继电器输出接 DUT 复位、Boot 引脚与供电回路;
CI 流水线启动后,脚本连接 Control 串口,下发指令完成 DUT 断电、复位,将单板强制进入烧录模式;
通过 Bridge 串口向 DUT 烧写固件,启动单板,采集 DUT 控制台日志,执行系统、OTA 升级等测试用例;
测试完成后,自动断电复位,准备下一轮测试;全过程无需人工插拔线缆、手动按下复位 / BOOT 按键。
五、技术优势与创新点
三通道串口物理隔离:将 DUT 控制台、设备控制、工装调试日志分到独立 USB 串口,解决日志混杂问题,提升自动化日志解析稳定性;
低成本硬件在环方案:主控采用低成本 RP2040 芯片,搭配简易 MOSFET、继电器外围电路,相比商用 HIL 测试设备大幅降低硬件成本;
全开源软硬协同:固件源码、硬件原理图、测试脚本全部开源,可按需修改引脚定义、扩展控制通道,适配企业自研嵌入式硬件;
原生适配嵌入式固件 CI 场景:面向 Yocto、Mender OTA 升级场景设计,精准匹配固件编译、烧写、上电启动、升级回归的全链路自动化测试需求。
六、应用场景
嵌入式 Linux 单板硬件持续集成测试、固件版本回归测试;
设备 OTA 远程升级自动化验证,反复断电、异常掉电可靠性测试;
嵌入式硬件量产工装、实验室自动化测试台搭建;
硬件在环 (HIL) 开发调试,自动反复进入 BOOT 烧录模式做固件迭代验证。
七、项目局限与说明
项目属于实验型工具,按 “AS IS” 方式开源交付,不提供商业技术支持;硬件控制引脚为 3.3V 逻辑,使用时需要做好电平匹配、隔离保护,防止过压损坏被测设备;暂不支持硬件 RTS/CTS 流控,高速串口场景需评估适配。
