☰
hoverboard-firmware-hack-FOC:一晚完成平衡车FOC固件刷写,让“嗡嗡作响“变“无声顺滑“
2026/10/23 6:00:50 网站建设 项目流程

hoverboard-firmware-hack-FOC:一晚完成平衡车FOC固件刷写,让"嗡嗡作响"变"无声顺滑"

【免费下载链接】hoverboard-firmware-hack-FOCWith Field Oriented Control (FOC)项目地址: https://gitcode.com/GitHub_Trending/ho/hoverboard-firmware-hack-FOC

闲鱼淘回来的平衡车,一开机就嗡嗡发响,骑起来车轮一阵一顿,车身抖得像台电动剃须刀。这不是硬件老化,多半是主板里原厂换相程序在拖后腿。hoverboard-firmware-hack-FOC 就是为此而生的开源固件:它把字段定向控制(FOC)写进 STM32 主板,取代原厂程序。整条平衡车FOC固件刷写链路其实只有四件事——接线、解锁、烧录、调参,零基础也能一次走完。

一分钟原理:换相和 FOC 到底差在哪

原厂"换相"控制像一场接力赛:按顺序给线圈通电,转子被一段一段地"接力"推着走,每次交接都有一下顿挫,所以吵、所以颠。

FOC 则像一个贴身陪跑的司机:实时算出转子此刻的角度,然后连续地修正三相电流的大小和方向,让磁场始终"咬"在转子上。

差别直接体现在体验上:

  • 换相:噪声大、起步一冲一冲,效率一般
  • FOC:扭矩输出平滑、能耗更低,还支持弱磁控制把极速再顶上去

刷不刷?如果你只是想安静、顺滑地骑,刷。

开工前,桌上要摆哪几样东西

| 类别 | 要求 | 说明 | | -- | -- | -- | | 主板 |STM32F103RCT6或兼容的GD32F103RCT6| 绝大多数平衡车主板都是这两种芯片,固件均支持 | | 编程器 |ST-Link V2+ 几根杜邦线 | 走 SWD 接口烧录 | | 电脑软件 | ST-Link Utility(或 openocd)+ 任意串口助手 | 前者负责解锁和烧录,后者负责调参 | | 固件 | 编译出的固件文件 | 克隆仓库后用 PlatformIO 或 Makefile 编译 |

拿不到现成固件文件也没关系,仓库自带完整的编译入口:

git clone https://gitcode.com/GitHub_Trending/ho/hoverboard-firmware-hack-FOC

克隆后按 platformio.ini 选环境编译,或者用仓库自带的 Makefile 一条命令搞定,比如make -e VARIANT=VARIANT_USART。不想装编译环境,也可以直接用现成编译好的固件文件。

平衡车FOC固件刷写的三步操作:接线、解锁、烧录

第一步:断电接线

找到主板上的SWD 编程口(三针:SWCLK、SWDIO、GND),把 ST-Link 一一对应接好:SWCLK → PA14,SWDIO → PA13,GND → GND。

图里把主板每个接口都标了名:右侧红框三针即 SWD 口(PA14/SWCLK、PA13/SWDIO、GND),下方两排彩线是左右侧板线,烧录和后续接串口都用得上。

⚠️接线前必须断开电池电源,且接线供电不超过 3.3V。侧板线里那根 15V 红线只能取 200mA 小电流,拿它当大电流电源或接错极性,轻则烧板,重则烧侧板驱动电路。

第二步:解锁读保护的规范流程

插上 ST-Link 打开 ST-Link Utility,点读取,大概率弹出一行"Can not read memory! Disable Read Out Protection and retry."

弹窗在提示:芯片开了读保护。别当故障处理,这是原厂芯片在"锁门",下一步走 Option Bytes 开门即可。

这不是故障,是原厂程序给 Flash 上了读保护锁,规范解锁流程是:

  1. 菜单Target → Option Bytes,把Read Out Protection设为Level 0,Apply 并确认
  2. 对整片 Flash 做一次Erase(擦除是解锁保护的最后一步,不做会失败)
  3. 重连设备,此时 Memory 可以正常读取了

第三步:烧录并验证

  1. Memory 页选择固件文件,地址保持0x08000000(STM32F103 的 Flash 基址,32K 容量)
  2. 点Program & Verify,等到Verification OK即首刷完成
  3. 拆掉调试线,给车上电,短按电源键开机

刷完之后的平衡车FOC固件参数怎么调

刷完只是装上了新"大脑",手感好不好,取决于你怎么告诉它。

先选玩法变体。打开 Inc/config.h,在 VARIANT 区挑一个(只选一个):

  • VARIANT_USART:串口控制,适合接 Arduino 做二次开发
  • VARIANT_PPM / VARIANT_PWM / VARIANT_IBUS:适配各类航模遥控器
  • VARIANT_NUNCHUK:Wii 双节棍做油门/刹车/转向
  • VARIANT_HOVERCAR / VARIANT_SKATEBOARD:踏板卡丁车、遥控滑板

改完重新编译烧录即可,不需要动任何代码。

再开串口在线调参。在 config.h 里放开DEBUG_SERIAL_PROTOCOL宏,用115200波特率连上串口,就能直接和主板对话:

  • GET:读当前参数
  • SET:改参数
  • SAVE:写进 EEPROM 持久保存

常用参数都在 config.h 里有注释,新手优先碰这几个:

| 参数 | 含义 | 默认值 | | -- | -- | -- | |RATE| 输入响应速率,越小越慢越柔 | 480(约 30) | |FILTER| 输入滤波,越小越柔和 | 6553(0.1) | |I_MOT_MAX| 单电机最大电流限幅 | 15A | |N_MOT_MAX| 最高转速限幅 | 1000rpm |

一次只改一个参数的调参法,是这套项目最该养成的习惯:改一个 → SAVE → 小范围试骑 → 感受差异 → 再改下一个。调参就像炒菜只加一味调料,同时动三样你永远不知道是哪样出了问题。

想图形化校验?用 VESC Tool 对电机跑一次 FOC 参数检测,极对数(Motor Poles)、反电动势、漏感等一眼看全,确认固件与你的电机匹配无误。

Run Detection 跑完后,弹窗里列出极对数 14、绕组电阻、漏感、温度补偿等实测值——调参前先拿这组真实数据打底,比凭感觉猜准得多。

翻车了?先对照这张表

| 现象 | 可能原因 | 解法 | | -- | -- | -- | | ST-Link Utility 报"Can not read memory"| 原厂读保护未解除 | 按上节 Option Bytes 流程:降保护等级 + 整片 Erase,别反复点重试 | | 烧录后Verification FAIL| 起始地址不对、SWD 线接触不良,或芯片刚擦完状态异常 | 地址回到 0x08000000,重插杜邦线,断电重连后再烧一次 | | 上车后起步顿挫、噪声依旧 | 还在用换相/正弦控制,或 RATE/FILTER 太激进 | 确认CTRL_TYP_SEL选了 FOC_CTRL;调低 RATE、调小 FILTER | | 弱磁参数一改完,电机高速飞车|FIELD_WEAK_MAX过大或FIELD_WEAK_LO过低 | 先把FIELD_WEAK_ENA归 0 恢复默认,再垫高车轮、空旷场地重调 | | 刷完完全没反应 | VARIANT 选错(输入源对不上),或没 SAVE 生效的参数 | 核对变体与实际接法一致;串口 GET 看参数是否可读 | | 串口收不到数据 | 波特率不是 115200、COM 口选错,或 DEBUG_SERIAL_PROTOCOL 没放开 | 对照 platformio.ini 里monitor_speed = 115200,放开宏重新编译 |

⚠️ 凡涉及弱磁(Field Weakening)的调参:调过头电机可能瞬间高速飞转,还会抬高功耗触发 BMS 过压保护。必须在空旷场地、车轮垫高、无人乘坐的状态下测试,后果是飞车和烧电机,不是"再调回来"那么简单。

还能怎么玩

  • 弱磁提速:在 config.h 打开FIELD_WEAK_ENA,用FIELD_WEAK_LO / FIELD_WEAK_HI / FIELD_WEAK_MAX三段设定介入区间,不加大电流也能把极速上限再顶一截
  • hovercar 卡丁车:切VARIANT_HOVERCAR,刹车油门两个踏板,静止时双击刹车踏板挂倒挡
  • 机器人底盘:VARIANT_USART+ 仓库自带的 hoverserial 例程,一块 Arduino Nano 就能发转向/速度指令,实时读回转速、电压和板温
  • 社区改装:README 末尾列了电动轮椅、TranspOtter 运输车、ROS 小车等大量案例,灵感管够

社区玩家基于 VARIANT_HOVERCAR 改出的四轮卡丁车:方向盘、双踏板、座椅齐活,倒车靠双击刹车踏板触发——同一块主板,玩法完全不同。

还记得开头那台嗡嗡响、起步一顿一顿的车吗?它现在应该安静地停在桌边,手推轮子有均匀的 FOC 阻尼,轻点油门就平滑起步。从接线到调参不过一个晚上,工具摊开、电池断开、一次只改一个参数——车就在那儿,刷吧 🚀

【免费下载链接】hoverboard-firmware-hack-FOCWith Field Oriented Control (FOC)项目地址: https://gitcode.com/GitHub_Trending/ho/hoverboard-firmware-hack-FOC

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询