robotis_manipulator_integration:updating_firmwares

To use the RH8D with the Robotis Manipulator-P unit, it was necessary to tweak the firmware files so that minimal changes to the ROS code were needed (thus improving future compatibility with package updates).

At the time of writing, users must be running:

  • Firmware version 49 or higher in the main board (you can check the version by issuing the about command in the USB console of the hand)
  • If using the new actuator control boards (shipping from July 2020 onwards), firmware version version 40 or higher. This can be checked by querying memory address 2 of the actuator control table. (reading is done via a regular Dynamixel Protocol query)

The main board firmware is updated via the TyQT tool.

Make sure to obtain the firmware file from support@seedrobotics.com

Further information is available in the dedicated page for the Main Board

Due to the way the Robotis packages are designed, they will reject communication with devices that respond to Dynamixel 1.0 commands.

Therefore, we need to configure the Main Board to disable Dynamixel 1 support and use only Dynamixel 2.0

This is done in the Console: keep the unit connected as if you were doing the firmware update. Sill within TyQT, change to the Monitor tab, and issue the command:

config extprotocols 2

Next, the hand needs to be power cycled for the new settings to come into effect. Simply disconnect all cables to power it off and re-connect them to re-start hand.

INFO: Updating the actuator firmware is ONLY RELEVANT if you're using actuators with the newest control boards (units shipped after July 2020)
If this is not your case, skip the remaining steps.

At present, updating the actuator is a multi step process that is clearly documented here The procedure for the update is described here: http://kb.seedrobotics.com/doku.php?id=eros:seedactuators:upgrading_fw

After reading the instructions, please note that, for actuators with bootloader password “A” to “C” the file “h7245_CogMBv1_Vxx.hex” should be used; for actuators with bootloader password “D” to “H” the file “h5057_CogMBv1_Vxx.hex” should be used.

( When issuing the commands, use baud rate “33333”, which matches the latest actuator control boards. )

At this point it should now be possible to use the RH8D hand with the Robotis Open Manipulator ROS package sprovided you follow our specific instructions (see separate page).

If you're using actuators with the newest control boards (units shipped after July 2020) it is possible to improve communications performance (reduce latency and improve framerate) by changing the internal baud of the system (i.e. the baud rate between the main board and the internal actuators). This procedure is described below.

WARNING: This procedure will ONLY WORK if you're using actuators with the newest control boards (units shipped after July 2020)
DO NOT PERFOM IT ON OLDER UNITS.

Connect to the main baord USB console using the same procedure as Described in the section “Configuring the Main Board for Dynamixel Protocol 2.0 only” above.

We'll now use the console to issue commands to the slave bus were the actuators are connected.

1)
Firstly, run the about command.

Check that the output shows your actuators running at 500kbps as shown in the example below:

Internal bus Additional Status:
IDs @1Mbps: 
IDs @500kbps: 31 32 33 34 35 36 37 38 

If they're already running at 1Mbps, STOP NOW, because the optimization is already done.

2)
Issue the command

wrb 254 23 2

This will write a byte to the boardcast ID (0xFE/254), position 23, value 2. This is an undocumented feature that unlocks advanced tuning on the units (baud rate change is normally locked to prevent loss of communication).

3)
Issue the command

wrb 254 4 1

This will broadcast the baud rate change: memory position 4, value of 1, for 1Mbps.

4)
Reboot the unit to make the changes come into effect. This is done by disconnecting all cables and reconnecting them again.

5)
Repeat step 1 (run the about command). All your IDs should now be showing as running at 1Mbps, and no ID left at 500kbps as per the example below:

Internal bus Additional Status:
IDs @1Mbps: 31 32 33 34 35 36 37 38 
IDs @500kbps: 

If this is not the case, and you still have IDs at 500kbps, get in touch with support@seedrobotics.com. Make sure to include the full output of the about command in your email.

The main board has a native USB connector on the side of the hand used for firmware update.

It is highly recommended that users disconnect the USB cable on the side of the hand, when in normal operation.

This happens because the USB port is handled by the main ARM Cortex processor. As the USB stack is fairly heavy in terms of interruptions and stealing processing time, having the USB cable connected to the hand (and computer) slows down performance as the processor needs to be handling the regular polling from the PC.
(even if not using any application on the PC side, the fact that the cable is connected, generates overhead between the PC and the hand)

Copyright © 2015-2020 Seed Robotics Ltd

  • robotis_manipulator_integration/updating_firmwares.txt
  • Last modified: 2021/07/06 15:59
  • by SeedR KB Admin