# FactoryBatch **Repository Path**: fqpy/FactoryBatch ## Basic Information - **Project Name**: FactoryBatch - **Description**: 基于 probe-rs 的工厂产线批量 MCU 烧录工具 — 支持 SN 序列号管理、方案配置、批量烧录与烧录日志追溯。 - **Primary Language**: Python - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-07-16 - **Last Updated**: 2026-07-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 工厂批量烧录工具 (Factory Batch Programmer) > 基于 [probe-rs](https://github.com/probe-rs/probe-rs) 的工厂产线批量 MCU 烧录工具 — 支持 SN 序列号管理、方案配置、批量烧录与烧录日志追溯。 **English**: A factory-floor batch MCU programmer with GUI, powered by probe-rs. Designed for production line firmware flashing with SN management, burn profiles, and traceable logs. --- ## ✨ 功能特性 ### 🔥 批量烧录 - 支持 ELF / BIN / HEX / UF2 固件格式 - 支持选择目标芯片型号与调试探针 - 烧录后自动校验 (verify),进度实时显示 - 支持重试与跳过,可随时停止批量烧录 ### 📋 方案管理 - 保存完整的烧录配置(芯片型号、探针选择器、SN 地址与长度等) - 支持方案的**新建 / 编辑 / 复制 / 删除** - 支持方案的**导入 / 导出**,方便产线之间快速切换产品 ### 🔢 SN 管理 - **文件导入**:支持从 TXT 文件(每行一个 SN)或 Excel 文件(.xlsx)导入 SN 列表 - **手动录入**:支持手动输入单个或多个 SN(用 `;` 分隔) - **状态跟踪**:表格展示所有 SN 的烧录状态(待烧录 / 烧录中 / 已烧录 / 失败) - **自动去重**:已烧录的 SN 自动标记,防止重复烧录 ### 📜 烧录日志 - 完整记录每颗芯片的烧录结果(时间、SN、状态、固件版本等) - 支持按时间 / SN / 状态筛选查询 - 支持 CSV 导出,便于质量追溯 ### ⚙ 一键部署 - 首次运行自动检测并安装 probe-rs CLI - 智能进度弹窗提示,降低产线环境配置门槛 ## 🛠 技术栈 | 组件 | 技术 | |------|------| | GUI 框架 | Python tkinter (ttk.Notebook 四标签页) | | 烧录引擎 | [probe-rs](https://github.com/probe-rs/probe-rs) (Rust) | | SN 导入 | openpyxl (Excel .xlsx) | | 数据存储 | SQLite + JSON 双写兼容 | ## 系统要求 - **Windows / Linux / macOS** - **Python 3.10+** - **[probe-rs CLI](https://probe.rs/docs/getting-started/installation/)**(核心烧录引擎) ## 安装步骤 ### 1. 安装 probe-rs **方式一:使用 cargo 安装(推荐)** ```bash cargo install probe-rs-tools ``` **方式二:下载预编译版本** 从 [probe-rs releases](https://github.com/probe-rs/probe-rs/releases) 下载对应系统的二进制文件,并添加到 PATH 环境变量。 **方式三:首次运行自动安装(推荐给产线人员)** ```powershell powershell -ExecutionPolicy Bypass -c "irm https://github.com/probe-rs/probe-rs/releases/latest/download/probe-rs-tools-installer.ps1 | iex" ``` 启动工具后,程序也会自动检测并引导安装。 ### 2. 安装 Python 依赖 ```bash pip install openpyxl ``` ## 使用方法 ### 启动程序 ```bash cd d:\yuandaima\saolu python main.py ``` ### 操作流程 1. **选择固件**:点击「浏览」选择要烧录的固件文件 2. **选择芯片**:输入芯片型号(如 `stm32f103c8`),或点击「检测芯片」从列表中选择 3. **配置探针**:可选,输入探针选择器(格式 `VID:PID:Serial`),留空自动选择 4. **导入 SN**: - **从文件**:选择「从文件导入」,点击「浏览」选择 TXT 或 Excel 文件 - **手动录入**:选择「手动录入」,输入 SN(多个用 `;` 分隔) 5. **加载 SN 列表**:点击「加载 SN 列表」查看所有 SN 的状态 6. **开始烧录**:点击「开始批量烧录」,程序将自动逐个烧录未烧录的 SN ### 文件格式说明 **TXT 文件格式**(每行一个 SN): ``` SN202407001 SN202407002 SN202407003 ``` **Excel 文件格式**(.xlsx,SN 在第一列): | A 列 | |------| | SN202407001 | | SN202407002 | | SN202407003 | ## 项目结构 ``` saolu/ ├── main.py # 程序入口 ├── build.py # PyInstaller 打包脚本 ├── requirements.txt # Python 依赖 ├── PRD.MD # 产品需求文档 ├── README.md # 说明文档 ├── app/ │ ├── __init__.py │ ├── gui.py # GUI 主界面(tkinter,四标签页) │ ├── flash_engine.py # 烧录引擎(调用 probe-rs CLI) │ ├── profile_manager.py # 方案管理(CRUD / 导入导出) │ ├── sn_manager.py # SN 管理(导入/解析/预校验) │ └── utils.py # 工具函数(SQLite + JSON 数据持久化) ├── data/ │ ├── burned_sn.db # SQLite 数据库 │ ├── burned_sn.json # 已烧录 SN 记录(兼容层) │ ├── burn_log.txt # 烧录日志 │ ├── sample_sn.txt # 示例 SN 文件 │ └── profiles/ # 方案配置目录 └── build/ # PyInstaller 构建输出 ``` ## 常见问题 ### Q: 提示「找不到 probe-rs」 A: 请先安装 probe-rs CLI,参考 [probe-rs 安装指南](https://probe.rs/docs/getting-started/installation/) ### Q: 如何知道探针的选择器? A: 运行 `probe-rs list` 查看已连接的探针,格式为 `VID:PID:Serial` ### Q: 支持哪些单片机? A: 所有 probe-rs 支持的芯片,包括 STM32、nRF、ESP32、RP2040 等系列 ## 许可证 本项目基于 probe-rs 生态构建,仅供学习和生产使用。