Skip to content

Ai-Thinker-Open/FlashKey

Repository files navigation

🔑 FlashKey FK-01 — AI-Native USB Programmer & Debugger

让 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.git

编译

cd 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 烧录验证。


🔌 MCP 插件(给 AI 用的)

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 烧录波特率

🤖 AI Agent 工作流程

用户说:"接上 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 安信可

About

FlashKey— 让 AI Agent 替你按按钮、烧固件、调硬件的 USB 烧录调试器。

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors