让 AI Agent 替你按按钮、烧固件、调硬件。
FlashKey 是全球首个专为 AI Agent 设计的嵌入式烧录调试工具。 插上 USB,AI 就能自主控制 BOOT/RST 引脚、切换电源、完成烧录时序。
J-Link 是给人类用的调试器,FlashKey 是给 AI Agent 用的烧录员。
本仓库存放 FlashKey 硬件的固件源码,目标芯片 CH32V203C8T6(RISC-V @48MHz, 64KB Flash, 20KB SRAM):
| 目录 | 说明 |
|---|---|
firmware/ch32v203/ |
#2 控制芯片固件 — USB CDC ↔ UART 桥接 + GPIO 控制 |
firmware/wch-linke/ |
#1 WCH-LinkE DAPLink 调试器固件 |
git clone --recurse-submodules git@github.com:Ai-Thinker-Open/FlashKey.gitcd firmware/ch32v203
cmake -B build -G "Unix Makefiles"
cmake --build build工具链以 git 子模块方式管理于 Ai-Thinker-Open/flashKey-toolchain。
| 模块 | 状态 | 说明 |
|---|---|---|
| USB CDC 设备栈 | 🟢 完成 | EP1 OUT(64B) + EP2 IN(64B) + EP3 IN(8B notify),全双工通信 |
| USB↔UART 桥接 | 🟢 完成 | UART2 DMA 收发,256 字节环形缓冲,2Mbps 透传 |
| 帧协议 | 🟢 完成 | 0x7E SOF + LEN + CMD + DATA + CRC-8/MAXIM + 0x7F EOF |
| GPIO 控制 | 🟢 完成 | PB3(BOOT) / PB4(RST) / PB1(5V_EN低有效) / PB0(3.3V_EN高有效) |
| RST 脉冲 | 🟢 完成 | 50~250ms 精确脉宽,rst_pulse(Nms) |
| Challenge-Response 认证 | 🟢 完成 | SBOX + XOR + ROTL1 算法,8 字节密钥,自动 HELLO 握手 |
| 设备身份 | 🟢 完成 | 自定义 VID=1A86 / PID=FE0D / Product String "Ai-Thinker FlashKey-FK01" |
| UID 读取 | 🟢 完成 | 芯片唯一 ID 可通过工具读取 |
| 错误响应 | 🟢 完成 | ERR_CRC / ERR_INVALID_CMD |
| 心跳保持 | 🟢 完成 | ~6s 超时自动清除认证,PB11 LED 指示 |
| TIM2 定时器 | 🟢 完成 | 数据事务时序控制 |
| NVIC 中断系统 | 🟢 完成 | 62 向量表,分组 1 |
| 调试串口 | 🟢 完成 | USART1 printf 输出 |
固件核心功能已全部完成,已交付 v0.1.1:
| 阶段性里程碑 | 实现内容 |
|---|---|
| 🔧 v0.1.0 基础通信 | USB CDC 设备栈 + UART 桥接 + TIM2/NVIC 基础 |
| 🧩 v0.1.1 命令协议 | 帧协议 + GPIO 控制(BOOT/RST/电源) + RST 脉冲 + CRC |
| 🔐 v0.1.1 安全认证 | Challenge-Response 握手 + 自动 HELLO + 心跳保持 |
| 🪪 v0.1.1 设备身份 | 自定义 VID/PID + 产品字符串 + UID 读取 |
| 🤖 flashkey-mcp | 15 个 MCP 工具 + HTTP SSE 服务 + 自动握手 |
下一步:FCC/CE 认证测试、量产固件优化、BL618/BL602 烧录验证。
FlashKey 的 AI 控制能力通过独立 MCP 插件实现:
| 插件 | 说明 |
|---|---|
flashkey-mcp |
标准 MCP 协议插件,15 个工具,pip install flashkey-mcp |
把
flashkey-mcp仓库给 AI 工具,它会自行安装、启动、配置连接——详见该仓库 README。
┌──────────────────────────────────────────┐
│ USB Type-C │
│ (USB 2.0, 5Gbps compatible) │
└────────────────┬─────────────────────────┘
│
┌────┴────┐
│ FE1.1s │ USB Hub
│ (1→4) │
└────┬────┘
┌───────┴────────┐
▼ ▼
┌────────────────┐ ┌──────────────────┐
│ CH32V203 #1 │ │ CH32V203 #2 │
│ WCH-LinkE │ │ GPIO (BOOT/RST) │
│ DAPLink SWD │ │ + UART 桥接 │
│ │ │ + 电源控制 │
└────────────────┘ └──────────────────┘
| 能力 | 说明 |
|---|---|
| 🤖 AI Agent 自主控制 | MCP Server 协议,Hermes / Claude / Cursor 等都能直接调用 |
| 🔌 一键烧录 | AI 自动完成 BOOT 拉高 → RST 脉冲 → 串口烧录 → 复位的完整时序 |
| 🎯 双 CH32V203 架构 | #1 WCH-LinkE DAPLink 调试器 + #2 GPIO 控制 + UART 桥接 |
| 🔐 自动握手认证 | HELLO 自动触发 Challenge-Response 认证,插上即用,无需手动调用 |
| 📦 MCP 插件 | pip install flashkey-mcp + 配置,AI 插上即用 |
| ⚡ 高速透传 | CH340C UART 桥接,支持 2Mbps 烧录波特率 |
用户说:"接上 FlashKey,帮我把这块 BL618 烧录了"
│
▼
AI Agent 自动执行:
① pip install flashkey-mcp ← 自安装 MCP 插件(flashkey-mcp 仓库)
② flashkey_enter_bootloader() ← BOOT↑→RST↓脉冲→进入烧录模式
③ 调用烧录工具写固件 ← 通过 CH340C 串口
④ flashkey_rst_pulse() ← 复位目标芯片
🔄 握手认证完全自动:FK-01 固件启动后发 HELLO 帧完成 Challenge-Response,插上即用。 📖 完整 MCP 插件安装和 AI 工具配置详见
flashkey-mcp仓库。
当前阶段: v0.1.1 — 固件核心功能完成,MCP 工具可用,硬件打样中。 首次发布目标: v1.0.0 — 完成 FCC/CE 认证 + BL618 / BL602 自动化烧录验证
内部项目 · Ai-Thinker 安信可