eros:seedactuators:eeprom_backup

NOTICE: as of May 2021, the tsbloader_adv.exe tool described in this article is not working under Linux. This issue is being researched. We recommend performing the update procedures using Windows

All Seed Robotics actuators come with an opens source bootloader (TSB) installed.
TSB (an acronym for Tinysafeboot) was originally developed by Julien Thomas and has since been further developed by Seed Robotics. The latest versions and tools can be followed on the Seed Robotics account on Github.

All actuators can be addressed by the bootloader and have their firmware upgraded and eeprom managed individually without the need to open the unit.

Each joint has unique setup and calibration values that are programmed during manufacturing.

Backing them up is a way to preserve your configuration and can also be useful for diagnostics and remote troubleshooting when communicating with Seed Robotics support.

The procedure is done with your unit connected to the PC over USB. You will also need to apply external power to the unit so that the actuators are powered up.

You will need the TSBAdvanced Loader tool, which will communicate with the actuators.

NOTE: if your unit was built before 2018, please make sure that EROS Main board is running at least firmware version 28 (or newer). If your unit was built before this date, and is running an earlier firmware version, you should Upgrade the Main Board Firmware first.

Remove the small cover on the side of the unit to expose the USB connector.

Next, connect the USB cable and simultaneously apply power through the main connector to the unit.
This is shown in the diagram Connection via USB

NOTE: It is essential that you apply external power through the main connector port (the 3 pin or 4 pin port at the back). Otherwise, the servos will not be powered and will not be responsive.

NOTICE: as of May 2021, the tsbloader_adv.exe tool described in this article is not working under Linux. This issue is being researched. We recommend performing the update procedures using Windows

The tool is written in C# and compiled with Mono, a cross-platform implementation of the .Net framework making it compatible with Windows, Linux and MacOS.

1) Download the TSBAdvanced Loader binary directly from the Seed Robotics server.
Alternatively, you can clone the project from our Github account and compile it in your system.

2) If you are running Linux or Mac OS you will need to install Mono on your platform as well.

In order to access the servos for the bootloader session, the EROS Main Board, since version 28, includes a bridge mode that works in tandem with the TSBAdvanced Loader to allow firmware upgrade.

To enable Bridge mode:

1) Find the Virtual Serial port number/id that was assigned, when you connected the board to your computer over USB.
(you need the Serial port number/id assigned to the USB connection from the EROS Main board to the PC).

On Windows you may use Device Manager to find COMxx;
on Linux and MacOS, it is typically /dev/ttyACMx, /dev/ttyUSBx or similar; run an ls /dev/tty* command to get the list of devices.

2) Now open a command prompt, browse to the directory where you have extracted the TSBAdvanced Loader and type:

[Linux and Mac users: prepend './' to the command]

tsbloader_adv.exe -port=[the Virtual Serial port number/id you determined in point 1] -seederos=bron

The executable file to run is the same whether you're on Windows, Linux or Mac OS, provided Mono is installed correctly.

  • If the executable refuses to run on Linux or Mac OS, you may need to give appropriate permissions to the file (chmod +x). Please check the FAQ section below for information on that.
  • Under Linux, if you get an error regarding the /dev/ttyX device, the first time you run the tool, also refer to the FAQ below.

At this point, the LED on your unit should have turned Blue. This signals the unit is in Bridge mode, ready for the TSB Bootloader session.

As mentioned each actuator can be addressed individually. This is done by means of a bootloader password assigned to each one. The passwords are assigned from the lowest default ID to the highest default ID:

  • For the RH4D model, default bootloader passwords are A-D (“A” being the password for the actuator with default ID 21/22 and “D” being for the actuator with default ID 29/30)
  • For the RH5D model, default bootloader passwords are A and D-G (“A” being the password for the actuator with default ID 31/41 and “G” being for the actuator with default ID 37/47).\\(on the RH5D passwords B and C do not correspond to any actuator as this models lacks the Wrist Flexion and Adduction motors when compared to the RH7D)
  • For the RH7D model, default bootloader passwords are A-G (“A” being the password for the actuator with default ID 31/41 and “G” being for the actuator with default ID 37/47)
  • For the RH8D model, default bootloader passwords are A-H (“A” being the password for the actuator with default ID 31/41 and “H” being for the actuator with default ID 38/48)
  • For spare actuators (if your order included any), default bootloader passwords are “S” or “P”

These default passwords are the same for LEFT and RIGHT versions, meaning passwords go from A-…, on both LEFT and RIGHT units.

We must issue an individual command for each device/password. If an operation on a device fails, do not proceed to the next one; retry the operation.\\ To ensure a healthy system configuration, you should only move to the next actuator/password once the previous one finishes successfully:

At the console window run the following sequence of commands:
(remember: do not move on to the next command before the previous one finishes successfully; if you are unable to get a command to finish successfuly, please contact our Technical Support. DO NOT move on to the next command.)

[Linux and Mac users: prepend './' to the commands]

For the RH4D:
tsbloader_adv.exe -port=[serial port] -prewait=2000 -pwd=A -eop=rv -efile=micro_actuator_eeprom.bin -tagefile -baud=33333
tsbloader_adv.exe -port=[serial port] -prewait=2000 -pwd=B -eop=rv -efile=micro_actuator_eeprom.bin -tagefile -baud=33333
tsbloader_adv.exe -port=[serial port] -prewait=2000 -pwd=C -eop=rv -efile=micro_actuator_eeprom.bin -tagefile -baud=33333
tsbloader_adv.exe -port=[serial port] -prewait=2000 -pwd=D -eop=rv -efile=micro_actuator_eeprom.bin -tagefile -baud=33333

For the RH6D:
tsbloader_adv.exe -port=[serial port] -prewait=2000 -pwd=A -eop=rv -efile=micro_actuator_eeprom.bin -tagefile -baud=33333
tsbloader_adv.exe -port=[serial port] -prewait=2000 -pwd=D -eop=rv -efile=micro_actuator_eeprom.bin -tagefile -baud=33333
tsbloader_adv.exe -port=[serial port] -prewait=2000 -pwd=E -eop=rv -efile=micro_actuator_eeprom.bin -tagefile -baud=33333
tsbloader_adv.exe -port=[serial port] -prewait=2000 -pwd=F -eop=rv -efile=micro_actuator_eeprom.bin -tagefile -baud=33333
tsbloader_adv.exe -port=[serial port] -prewait=2000 -pwd=G -eop=rv -efile=micro_actuator_eeprom.bin -tagefile -baud=33333
tsbloader_adv.exe -port=[serial port] -prewait=2000 -pwd=F -eop=rv -efile=micro_actuator_eeprom.bin -tagefile -baud=33333

For the RH8D:
tsbloader_adv.exe -port=[serial port] -prewait=2000 -pwd=A -eop=rv -efile=micro_actuator_eeprom.bin -tagefile -baud=33333
tsbloader_adv.exe -port=[serial port] -prewait=2000 -pwd=B -eop=rv -efile=micro_actuator_eeprom.bin -tagefile -baud=33333
tsbloader_adv.exe -port=[serial port] -prewait=2000 -pwd=C -eop=rv -efile=micro_actuator_eeprom.bin -tagefile -baud=33333
tsbloader_adv.exe -port=[serial port] -prewait=2000 -pwd=D -eop=rv -efile=micro_actuator_eeprom.bin -tagefile -baud=33333
tsbloader_adv.exe -port=[serial port] -prewait=2000 -pwd=E -eop=rv -efile=micro_actuator_eeprom.bin -tagefile -baud=33333
tsbloader_adv.exe -port=[serial port] -prewait=2000 -pwd=F -eop=rv -efile=micro_actuator_eeprom.bin -tagefile -baud=33333
tsbloader_adv.exe -port=[serial port] -prewait=2000 -pwd=G -eop=rv -efile=micro_actuator_eeprom.bin -tagefile -baud=33333
tsbloader_adv.exe -port=[serial port] -prewait=2000 -pwd=H -eop=rv -efile=micro_actuator_eeprom.bin -tagefile -baud=33333

This will generate one EEPROM dump file for each of the actuators in your unit. The files will be stored in your current working folder. The file names will be appended with the password of each unit and a timestamp.

During the update process, the LED on the hand will blink, as a visual cue to the process.

When each command finishes successfully, you should see the following message on completion of the command: “> All operations complete.”

If you encounter an error, do not proceed to the next command until you resolve the error with the current command. You may repeat the command that is giving you the error.
If even after repeating the command you are unable to install the new firmware on all the devices, STOP NOW and contact Seed Robotics technical support.

Now that the process is complete, we can disable the Bride mode in the EROS Main board to resume normal operation.

[Linux and Mac users: prepend './' to the command]

tsbloader_adv.exe -port=[serial port] -seederos=broff

Once you enter this command, the LED on the unit should return to its regular colour.

Alternatively you my simply power cycle the unit (by disconnecting the USB cable AND disconnecting power from the main interface port). Upon reboot the unit will be back to the regular operating mode.

Even though we've tested and re-tested the procedure, we know things can go wrong; Here are some common issues:

  • The binary won't run on Linux or MacOS

If the binary refuses to run on Linux, you may need to give appropriate permissions by typing chmod +x tsbloader_adv.exe

  • I get an error regarding the serial port on Linux

This is a common issue under Linux. The /dev/ttyXXXx devices are often added to dial-out group. If you are running as non-root, at the command prompt type:
sudo usermod -a -G dialout $USER
Next you need to log out and log back on.

Some older Linux distributions included a “modemmanager” module that may also occupy the port. While this is quite uncommon today, if the above still won't resolve the issue, you can try uninstalling “modemmanager” by typing sudo apt-get remove modemmanager (or the equivalent for your distribution)

  • When I try to install Mono on my system, the apt-get install … command returns and error.

Make sure you have followed the Installation instructions for your OS, on the Mono website. Even different versions of the same distribution have different instructions.
If the problem persists try running sudo apt-get clean followed by sudo apt-get update. Next retry installing the package with the apt-get install … commmand.
For further assistance on installing Mono, we recommend checking the Mono project website.

If you do run into any issue not covered here, or would simply like some additional guidance, please get in touch with our Technical Support (support@seedrobotics.com) and we'll be happy to assist you.

Copyright © 2015-2023 Seed Robotics Ltd

  • eros/seedactuators/eeprom_backup.txt
  • Last modified: 2021/11/09 20:44
  • by SeedR KB Admin