< >
Home » Turtlebot3中级教程_视频版 » Turtlebot3中级教程-OpenCR固件恢复

Turtlebot3中级教程-OpenCR固件恢复

说明

  • 本教程介绍如何在OpenCR板上进行固件恢复

  • 测试环境:Ubuntu 16.04 + Arduino IDE 1.8.3

问题背景

  • 通常用Arduino IDE给OpenCR板上传ROS固件时,有可能遇到以下0xF020错误
Arduino: 1.8.9 (Linux), Board: "OpenCR Board, OpenCR Bootloader"

Sketch uses 181896 bytes (23%) of program storage space. Maximum is 786432 bytes.
Global variables use 46364 bytes of dynamic memory.
opencr_ld ver 1.0.2
An error occurred while uploading the sketch
opencr_ld_main
>>
file name : /tmp/arduino_build_375437/turtlebot3_core.ino.bin
file size : 179 KB
Open port OK
Clear Buffer Start
Clear Buffer End
>>
cmd_read_board_name fail : 0xF020
  • 如果在反复尝试上传后,依然出现这个问题的话,就需要在OpenCR板上进行固件恢复
  • 或者是不能读取/ACM0端口
Sketch uses 181904 bytes (23%) of program storage space. Maximum is 786432 bytes.
Global variables use 46380 bytes of dynamic memory.
opencr_ld ver 1.0.2
opencr_ld_main
>>
file name : /tmp/arduino_build_524798/turtlebot3_core.ino.bin
file size : 179 KB
Fail to open port 1 : /dev/ttyACM0
Fail to jump to boot
ser_open: unable to open port: No such file or directory
  • 需要检查是否识别到端口,并且端口是否有权限
ls /dev/ttyACM0
sudo chmod 777 /dev/ttyACM0

操作步骤

  • 在PC上安装Arduino IDE以及配置OpenCR的上传环境:教程链接

  • 用数据线连接openCR板到PC上

  • [OpenCR] 根据以下步骤使open CR进入到恢复模式

    • 按住PUSH SW2按钮。
    • 按下Reset按钮
    • 松开Reset按钮
    • 松开PUSH SW2按钮

请输入图片描述

  • 重置后,OpenCR将进入引导加载程序

  • 引导加载程序运行时, STATUS LED 每100毫秒闪烁一次

  • [PC] 打开Arduino IDE,选择File -> Examples -> Turtlebot3 -> turtlebot3_burger -> turtlebot3_core示例

请输入图片描述

  • [PC] 然后点击Sketch -> Exporting compiled binary选项,确认保存后点击Sketch -> Show SketchFolder打开文件的保存位置

2

  • [PC] 将文件夹中的turtlebot3.ino.OpenCR.bin文件复制到~/.arduino15/packages/OpenCR/tools/opencr_tools/1.0.0/linux64目录下
$ cp turtlebot3_core.ino.OpenCR.bin ~/.arduino15/packages/OpenCR/tools/opencr_tools/1.0.0/linux64
  • [PC] 进入到相关目录下,上传下载器
$ cd ~/.arduino15/packages/OpenCR/tools/opencr_tools/1.0.0/linux64
$ sudo ./opencr_ld /dev/ttyACM0 115200 ./turtlebot3_core.ino.OpenCR.bin 1
opencr_ld ver 1.0.2
opencr_ld_main
>>
file name : ./turtlebot3_core.ino.OpenCR.bin
file size : 179 KB
Open port OK
Clear Buffer Start
Clear Buffer End
>>
Board Name : OpenCR R1.0
Board Ver  : 0x17020800
Board Rev  : 0x00000000
>>
flash_erase : 0 : 0.971000 sec
flash_write : 0 : 1.721000 sec
CRC OK 12376D8 12376D8 0.007000 sec
[OK] Download
jump_to_fw

请输入图片描述

  • 用法
$ opencr_ld <Communication port> <Baudrate> <Firmware binary> <Firmware execution status [0|1]>
  • 通信端口:串行端口名称通常/dev/ttyACM0用于Linux,并且应与连接到OpenCR的串行端口相同
  • 波特率:通信和输入的速度为115200bps
  • 固件二进制文件:固件二进制文件映像具有bin扩展名
  • 固件执行状态:如果为1,则将在下载固件后执行固件;如果未输入或为0,则仅下载固件
  • 上传成功后,再上传ROS固件

参考资料

纠错,疑问,交流: 请进入讨论区点击加入Q群

获取最新文章: 扫一扫右上角的二维码加入“创客智造”公众号


标签: none