# Ninebot Flash **Repository Path**: mgj520/ninebot-flash ## Basic Information - **Project Name**: Ninebot Flash - **Description**: 九号 · ZWK 系列控制器 CAN 更新工具 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 4 - **Forks**: 2 - **Created**: 2026-07-07 - **Last Updated**: 2026-07-13 ## Categories & Tags **Categories**: Uncategorized **Tags**: 九号 ## README

Ninebot Flash

九号 · ZWK 系列控制器 CAN 更新工具

QQ群 License Platform


主图

--- ## 项目简介 本项目是九号(Ninebot)**ZWK 系列控制器**的 原厂CAN协议的固件更新工具和原厂APP模板项目,实现无需拆机更新APP固件。 通过 ESP32 作为 CAN 通信桥接器,配合 PC 端 Python 刷机软件,实现对控制器固件的擦除、写入、验证与复位。 项目源于对 ZWK 控制器 Bootloader 的逆向分析,详细分析文档见 [Docs/BOOTLOADER_ANALYSIS.md](Docs/BOOTLOADER_ANALYSIS.md)。 > 注意: 更新的App程序必须带CAN更新代码,否则会导致下次CAN无法更新,只能通过swd口上传新代码 --- ## 项目结构 ``` ninebot-flash/ ├── Docs/ # 协议文档 ├── Firmware/ # 九号原厂bootloader,app固件 ├── Software/ │ ├── APP/ # APP CAN升级模板项目 │ ├── ESP32/ # ESP32 程序 │ ├── Ninebot Flash CMD/ # 命令行刷机工具 │ └── Ninebot Flash GUI/ # 图形界面刷机工具 ``` --- ### 接线图 图 > **注意**:控制器要上电,并且链接上电压引脚,详细请查看 **Nin9** 项目 --- ## 快速开始 ### 1. 烧录 ESP32 固件 使用VSCode PlatformIO 编译并上传: ```bash cd Software/ESP32 pio run -t upload ``` ### 2. 打开刷机工具 > 打开 _Software/Ninebot Flash GUI_下的 **Nine_Flash.exe** 刷机软件 操作步骤: 1. 选择 ESP32 对应的串口 2. 点击「浏览」选择 **Firmware** 里面的 `.bin` 固件 3. 点击「刷机」开始更新 --- > 注意: 原厂的bootloader只能通过swd口上传,原厂的bootloader只能更新APP程序,无法对自身更新 ## APP基本要求 ### 1.main程序开头要求补充 ``` SCB->VTOR = 0x08003000; // 设置中断向量表偏移地址为 APP 的起始地址 __DSB(); // 数据屏障,确保 VTOR 写入生效 __ISB(); // 指令屏障,刷新流水线 __enable_irq(); // 开启全局中断 ``` --- ### 2.Keil ROM1: ``` Start:0x8003000 Size: 0x1D000 ``` --- ### 3.固件大小不超过 0x19000 = 102400 字节 = 100 KB --- >详细请看: _Software/APP_ APP模板项目 ## 贡献指南 欢迎提交 Issue 和 Pull Request!参与前请阅读: 1. 详细技术文档见 [Docs/BOOTLOADER_ANALYSIS.md](Docs/BOOTLOADER_ANALYSIS.md) 2. 讨论交流请加入 QQ 群 ---

交流 QQ 群:202342715 · 欢迎参与贡献