Panda 固件更新教程
简明教程
# flash panda
pkill -f boardd && cd /data/openpilot/panda/board && make
# reboot eon
reboot
注意:在新版本的 openpilot 和 NEOS 中,建议使用 comma power 或者 debug board 为 panda 供电的情况下更新固件,因为有部分用户反映,在 panda 连接 汽车OBD 的情况下更新固件,会遇到一些报错。
通过 EON 自动更新固件
- 从 Giraffe 上断开 Panda
- 汽车熄火断电,把 Panda 插到汽车的 OBD2 接口上
- EON 关机,通过 USB 数据线连接到 Panda
- EON 连接到 Panda 后会触发通电自动开机
- Panda 会闪一会绿灯
- 当 Panda 闪红灯的时候,就是固件更新完毕了
- 把 Panda 从汽车 OBD2 上拔下来,插回到 Giraffe 上
这可能是为 Panda 更新固件最简单的方法了。
备注/异常处理:
- 当 Panda 闪绿灯的时候,表示 EON 正在为 Panda 更新固件,但是 grey Panda 从一插到 OBD2 接口上就开始闪绿灯(不知道通电后 Panda 在搞什么),然后几秒钟后绿灯不闪了,过一会儿(就进入正常流程了),又开始闪绿灯,几秒钟后,Panda 开始闪红灯。
- 如果 Panda 插在 OBD2 上更新固件有问题,那么你需要把它从 OBD2 上拔下来,用 debug board 或者 comma power + Giraffe(从车上拔下来) 为 Panda 供电,总之就是排除因为 CAN 总线通信的干扰。
通过 EON 手动更新固件
- 汽车熄火断电(译者注:Panda 需要 Comma power 供电)
- 进入 EON 的 ssh
- 执行命令
cd /data/openpilot/panda ; pkill -f boardd ; PYTHONPATH=..; python -c "from panda import Panda; Panda().flash()"
如果上面的命令报错,则尝试下面这个:
cd /data/openpilot/panda/board && make recover
通过 USB 手动更新固件
硬件设备: Panda Paw 这是最可靠的方式了,前提是你得有 Panda Paw 。
首先,Panda 进入固件更新模式(DFU):
- Panda Paw 电源开关关闭
- Panda Paw 的一端插到 Panda 上
- 把 Panda Paw 的 Mini USB 接口接到 笔记本 USB
- 打开 Panda Paw 电源开关的同时,长按 boot 按钮
然后在 linux 上或者 mac 上运行如下指令,为 panda 更新固件:
# 在电脑上安装 pandacan
sudo pip install --upgrade pandacan
# 更新固件
PYTHONPATH="" sudo python -c "import panda; panda.flash_release()"
通过 WIFI 使用 curl 手动更新固件
这是在 linux 下最简单的操作方法,可以参考Github 上 Panda 的 Makefile 和 社区的帮助:
- Panda 连接到 12V 电源,保证没有 CAN 信号传入到 Panda(汽车一定不能启动),除非你能发送 0x7F 阻止 CAN 信号,否则固件升级会失败(参考 69 和 97)
- 记下你的 Panda wifi 名字 和 密码 (用 chffr)
- 从 Github 下载固件并解压
- 通过 WIFI 连接到 Panda
- 打开命令行,切换目录到固件目录(比如:cd ~/Downloads)
- 执行如下命令,当看到 Panda 闪灯后,再执行下一个命令:
curl http://192.168.0.10/
curl http://192.168.0.10/espupdate2 --upload-file user2.bin
curl http://192.168.0.10/stupdate --upload-file panda.bin
curl http://192.168.0.10/espupdate1 --upload-file user1.bin
- 刷完
panda.bin
后, Panda 的灯应该是快速闪烁的(可能是多个颜色)
如果还有什么不明白的,可以参考对照这个视频。