# Ninebot Flash **Repository Path**: shaowp/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**: 1 - **Forks**: 1 - **Created**: 2026-07-08 - **Last Updated**: 2026-07-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README

Ninebot Flash

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

QQ群 License Platform


主图

--- ## 项目简介 本项目是九号(Ninebot)**ZWK 系列控制器**的 原厂CAN协议的固件更新工具,实现无需拆机更新固件。 通过 ESP32 作为 CAN 通信桥接器,配合 PC 端 Python 刷机软件,实现对控制器固件的擦除、写入、验证与复位。 项目源于对 ZWK 控制器 Bootloader 的逆向分析,详细分析文档见 [Docs/BOOTLOADER_ANALYSIS.md](Docs/BOOTLOADER_ANALYSIS.md)。 > 注意: 更新了自己的App程序后会丢失原厂的App CAN更新逻辑,导致该工具不能再次更新 --- ## 项目结构 ``` ninebot-flash/ ├── Docs/ # 协议文档 ├── Firmware/ # 控制器示例固件 ├── Software/ │ ├── 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. 点击「刷机」开始更新 图 --- ## APP固件要求 > **main程序开头要求补充:** ``` SCB->VTOR = 0x08003000; // 设置中断向量表偏移地址为 APP 的起始地址 __DSB(); // 数据屏障,确保 VTOR 写入生效 __ISB(); // 指令屏障,刷新流水线 __enable_irq(); // 开启全局中断 ``` > **Keil ROM1:** ``` Start:0x8003000 Size: 0x1D000 ``` > **固件大小不超过100K** --- ## APP进入Boot > **如下函数进入Boot,注意不可逆** ``` void Enter_Bootloader_EraseApp(void) { // 1. 关闭全局中断 __disable_irq(); // 2. 解锁Flash控制器 flash_unlock(); // 3. 擦除APP所在的第一页 (0x08003000 所在页) // AT32F415 Flash页大小通常为1KB或2KB,具体查阅数据手册 // flash_sector_erase 的参数是扇区内的任意地址,函数会自动匹配对应扇区 flash_sector_erase(0x08003000); // 4. 锁定Flash flash_lock(); // 5. 触发系统复位 → Bootloader检测到无效APP → 留在Bootloader NVIC_SystemReset(); // 不会执行到这里 while (1) ; } ``` ## 贡献指南 欢迎提交 Issue 和 Pull Request!参与前请阅读: 1. 详细技术文档见 [Docs/BOOTLOADER_ANALYSIS.md](Docs/BOOTLOADER_ANALYSIS.md) 2. 讨论交流请加入 QQ 群 ---

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