OSVR_HDK固件更新
OSVR的HDK出厂时的固件版本往往是很旧的,调试功能时需要更新最新固件,本文是在linux环境下对HDK进行固件更新(版本从1.91更新至1.97)。
固件下载
官方固件下载地址
下载后对固件进行校验,确保固件下载完整,固件不完整可能刷砖。
//这里以目前最新的1.97版本为例,校验固件信息与官网上是否一致
sha1sum 1-97-OLED.hex
38f2889289199d34346e93e04d2f38c6d26d8015 1-97-OLED.hex
注意:HDK2代(HDK2)与HDK1代(HDK1.2/1.3/1.4)固件不能混刷!
安装工具
- 安装:screen
sudo apt-get install screen
- 安装烧录工具:dfu-programmer(版本必须>=0.72)
注:”apt-get install dfu-programmer”方式安装的”dfu-programmer”是0.62版本,无法烧录HDK固件。
这里提供dfu-programmer0.72版本deb包
sudo dpkg -i dfu-programmer_0.7.2-2_amd64.deb
//查询dfu-programmer版本
dfu-programmer --version
//返回信息"dfu-programmer 0.7.2"即可。
烧录
- 查看当前版本
HDK上电,USB连接到PC,判断设备是否接入:
//正常识别后,设备会自动挂载到节点"/dev/ttyACM0"上,查询节点是否存在
ls /dev/ttyACM0
进入调试窗口,输入如下内容后会跳转到一个黑色界面:
sudo screen /dev/ttyACM0
查询版本号,输入”#?v”,然后回车:
#?v
返回如下信息:
Version 1.91 Mar 11 2016
Tracker:1.8.3.402
上面”Version 1.91”就是HDK的软件版本号.”Tracker”是追踪器的版本号,这个版本号用户无法更改。
三步骤退出当前界面:
1.按组合键”ctrl+a”
2.按组合键”shift+k”
3.窗口左下方提示”Really kill this window [y/n]”,此时输入”y”
- 烧录新固件
进入命令窗口:
sudo screen /dev/ttyACM0
输入如下命令,让HDK进入烧录模式:
#?B1948
之后机器会重启,进入DFU模式,等待10秒后,升级固件,如下所示(“1-97-OLED.hex”为固件名):
sudo dfu-programmer atxmega256a3bu flash --force --suppress-bootloader-mem 1-97-OLED.hex
烧录后返回此信息表示成功:
0% 100% Programming 0x1BC00 bytes...
[>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>] Success
0% 100% Reading 0x40000 bytes...
[>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>] Success
Validating... Success
0x1BC00 bytes written into 0x40000 bytes memory (43.36%).
输入以下命令,HDK重启,进入正常模式:
sudo dfu-programmer atxmega256a3bu launch
重新查询以下固件版本,验证是否刷新成功:
sudo screen /dev/ttyACM0
#?v
返回版本信息如下,表示成功升级到1.97:
Version 1.97 Aug 19 2016
Tracker:1.8.3.402