Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

FirmwareUpdater.script.update.all.sh failure on ergoCubSN002 #176

Closed
traversaro opened this issue Dec 3, 2024 · 19 comments · Fixed by #190
Closed

FirmwareUpdater.script.update.all.sh failure on ergoCubSN002 #176

traversaro opened this issue Dec 3, 2024 · 19 comments · Fixed by #190

Comments

@traversaro
Copy link
Member

Using the commit 6152a3d the update on ergoCubSN002 fails with the following log:

(robsub) ergocub@ergocub-torso:/usr/local/src/robot/robotology-superbuild/build/install/share/icub-firmware/scripts$ bash FirmwareUpdater.script.update.all.sh 
this bash is executing: ./manageFWrobot.py -n [DEBUG] |yarp.os.ResourceFinder| configuring
[DEBUG] |yarp.os.ResourceFinder| default config file specified as network.ergoCubSN002.xml
[DEBUG] |yarp.os.ResourceFinder| checking [/usr/local/src/robot/robotology-superbuild/build/install/share/icub-firmware/scripts/network.ergoCubSN002.xml] (pwd)
[DEBUG] |yarp.os.ResourceFinder| checking [/home/ergocub/.config/yarp/robots/ergoCubSN002] (robot YARP_CONFIG_HOME)
[DEBUG] |yarp.os.ResourceFinder| checking [/home/ergocub/.local/share/yarp/robots/ergoCubSN002] (robot YARP_DATA_HOME)
[DEBUG] |yarp.os.ResourceFinder| checking [/etc/xdg/yarp/robots/ergoCubSN002] (robot YARP_CONFIG_DIRS)
[DEBUG] |yarp.os.ResourceFinder| checking [/usr/local/src/robot/robotology-superbuild/src/robots-configuration/ergoCubSN002/extra/robots/ergoCubSN002] (robot YARP_DATA_DIRS)
[DEBUG] |yarp.os.ResourceFinder| checking [/usr/local/src/robot/robotology-superbuild/build/install/share/yarp/robots/ergoCubSN002] (robot YARP_DATA_DIRS)
[DEBUG] |yarp.os.ResourceFinder| found /usr/local/src/robot/robotology-superbuild/build/install/share/yarp/robots/ergoCubSN002
[DEBUG] |yarp.os.ResourceFinder| checking [/usr/local/src/robot/robotology-superbuild/build/install/share/iCub/robots/ergoCubSN002] (robot YARP_DATA_DIRS)
[DEBUG] |yarp.os.ResourceFinder| checking [/usr/local/src/robot/robotology-superbuild/build/install/share/ICUBcontrib/robots/ergoCubSN002] (robot YARP_DATA_DIRS)
[DEBUG] |yarp.os.ResourceFinder| found /usr/local/src/robot/robotology-superbuild/build/install/share/ICUBcontrib/robots/ergoCubSN002
[DEBUG] |yarp.os.ResourceFinder| checking [/usr/local/src/robot/robotology-superbuild/build/install/share/ergoCub/robots/ergoCubSN002] (robot YARP_DATA_DIRS)
[DEBUG] |yarp.os.ResourceFinder| found /usr/local/src/robot/robotology-superbuild/build/install/share/ergoCub/robots/ergoCubSN002
[DEBUG] |yarp.os.ResourceFinder| checking [robots/ergoCubSN002] (robot YARP_DATA_DIRS)
[DEBUG] |yarp.os.ResourceFinder| checking [/usr/local/src/robot/robotology-superbuild/src/robots-configuration/ergoCubSN002/extra/config/path.d] (robot path.d YARP_DATA_DIRS)
[DEBUG] |yarp.os.ResourceFinder| checking [/usr/local/src/robot/robotology-superbuild/build/install/share/yarp/config/path.d] (robot path.d YARP_DATA_DIRS)
[DEBUG] |yarp.os.ResourceFinder| found /usr/local/src/robot/robotology-superbuild/build/install/share/yarp/config/path.d
[DEBUG] |yarp.os.ResourceFinder| checking [/usr/local/src/robot/robotology-superbuild/build/install/share/BipedalLocomotionFramework/robots/ergoCubSN002] (robot yarp.d)
[DEBUG] |yarp.os.ResourceFinder| checking [/usr/local/src/robot/robotology-superbuild/build/install/share/wbc/robots/ergoCubSN002] (robot yarp.d)
[DEBUG] |yarp.os.ResourceFinder| checking [/usr/local/src/robot/robotology-superbuild/build/install/share/yarp/robots/ergoCubSN002/network.ergoCubSN002.xml] (robot)
[DEBUG] |yarp.os.ResourceFinder| checking [/usr/local/src/robot/robotology-superbuild/build/install/share/ICUBcontrib/robots/ergoCubSN002/network.ergoCubSN002.xml] (robot)
[DEBUG] |yarp.os.ResourceFinder| found /usr/local/src/robot/robotology-superbuild/build/install/share/ICUBcontrib/robots/ergoCubSN002/network.ergoCubSN002.xml
[DEBUG] |yarp.os.ResourceFinder| finding file [from]
"/usr/local/src/robot/robotology-superbuild/build/install/share/ICUBcontrib/robots/ergoCubSN002/network.ergoCubSN002.xml" -f ../info/firmware.info.xml -p all -a update | tee ../logs/log.of.FirmwareUpdater.ergoCubSN002.update.all.txt

IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
EthMaintainer::sendPROG2() detected and filtered out a eOuprot_cmd_PROG_DATA_t w/ non-FLASH chunch of 40 bytes in [0x2001ffc0, 0x2001ffe8]
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
EthMaintainer::sendPROG2() detected and filtered out a eOuprot_cmd_PROG_DATA_t w/ non-FLASH chunch of 40 bytes in [0x2001ffc0, 0x2001ffe8]
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
EthMaintainer::sendPROG2() detected and filtered out a eOuprot_cmd_PROG_DATA_t w/ non-FLASH chunch of 40 bytes in [0x2001ffc0, 0x2001ffe8]
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
EthMaintainer::sendPROG2() detected and filtered out a eOuprot_cmd_PROG_DATA_t w/ non-FLASH chunch of 40 bytes in [0x2001ffc0, 0x2001ffe8]
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
EthMaintainer::sendPROG2() detected and filtered out a eOuprot_cmd_PROG_DATA_t w/ non-FLASH chunch of 40 bytes in [0x2001ffc0, 0x2001ffe8]
PY: [info] the script is executing
PY: [info] verbosity turned on for basic python only
2024-12-03 11:46:45.299107
PY: - OPERATION #1
PY:   - type: firmware update
PY:   - target: part = head, board = mc4plus, name = head-eb20-j0_1, device = ETH, address = 10.0.1.20:CAN0:0
PY:   - using:  required firmware version = 3.96.0, file location = ../ETH/MC4PLUS/bin/application/mc4plus.hex
PY:   - message: the board has an old FW which is going to be udapted.
PY:   - message: please be prepared to wait for some time ... fw program of a mc4plus typically lasts 15 seconds
PY:   - result: SUCCESS: the board has been programmed with latest firmware version
PY: - OPERATION #2
PY:   - type: firmware update
PY:   - target: part = head, board = mc4plus, name = head-eb21-j2_3, device = ETH, address = 10.0.1.21:CAN0:0
PY:   - using:  required firmware version = 3.96.0, file location = ../ETH/MC4PLUS/bin/application/mc4plus.hex
PY:   - message: the board has an old FW which is going to be udapted.
PY:   - message: please be prepared to wait for some time ... fw program of a mc4plus typically lasts 15 seconds
PY:   - result: SUCCESS: the board has been programmed with latest firmware version
PY: - OPERATION #3
PY:   - type: firmware update
PY:   - target: part = left_arm, board = ems4, name = left_arm-eb2-j0_1, device = ETH, address = 10.0.1.2:CAN0:0
PY:   - using:  required firmware version = 3.95.0, file location = ../ETH/EMS/bin/application/ems.hex
PY:   - message: the board has an old FW which is going to be udapted.
PY:   - message: please be prepared to wait for some time ... fw program of a ems4 typically lasts 15 seconds
PY:   - result: SUCCESS: the board has been programmed with latest firmware version
PY: - OPERATION #4
PY:   - type: firmware update
PY:   - target: part = left_arm, board = foc, name = foc.1.1, device = ETH, address = 10.0.1.2:CAN1:1
PY:   - using:  required firmware version = 3.3.37, file location = ../CAN/2foc/2foc.hex
PY:     [error] do_firmware_verify_canovereth(): ERROR cannot find can board @ 10.0.1.2:CAN1:1
PY:     [error] do_firmware_update(): FAILURE because cannot find board @ 10.0.1.2:CAN1:1
PY:   - result: FAILURE!! (However, the operation will be attempted with other boards until completion)
PY: - OPERATION #5
PY:   - type: firmware update
PY:   - target: part = left_arm, board = foc, name = foc.1.2, device = ETH, address = 10.0.1.2:CAN1:2
PY:   - using:  required firmware version = 3.3.37, file location = ../CAN/2foc/2foc.hex
PY:     [error] do_firmware_verify_canovereth(): ERROR cannot find can board @ 10.0.1.2:CAN1:2
PY:     [error] do_firmware_update(): FAILURE because cannot find board @ 10.0.1.2:CAN1:2
PY:   - result: FAILURE!! (However, the operation will be attempted with other boards until completion)
PY: - OPERATION #6
PY:   - type: firmware update
PY:   - target: part = left_arm, board = strain2, name = strain2.13, device = ETH, address = 10.0.1.2:CAN2:13
PY:   - using:  required firmware version = 2.3.0, file location = ../CAN/strain2/strain2.hex
PY:     [error] do_firmware_verify_canovereth(): ERROR cannot find can board @ 10.0.1.2:CAN2:13
PY:     [error] do_firmware_update(): FAILURE because cannot find board @ 10.0.1.2:CAN2:13
PY:   - result: FAILURE!! (However, the operation will be attempted with other boards until completion)
PY: - OPERATION #7
PY:   - type: firmware update
PY:   - target: part = left_arm, board = ems4, name = left_arm-eb4-j2_3, device = ETH, address = 10.0.1.4:CAN0:0
PY:   - using:  required firmware version = 3.95.0, file location = ../ETH/EMS/bin/application/ems.hex
PY:   - message: the board already has the most recent FW.
PY:   - result: SUCCESS: the board already has the latest version of firmware
PY: - OPERATION #8
PY:   - type: firmware update
PY:   - target: part = left_arm, board = foc, name = foc.2.1, device = ETH, address = 10.0.1.4:CAN1:1
PY:   - using:  required firmware version = 3.3.37, file location = ../CAN/2foc/2foc.hex
PY:     [error] do_firmware_verify_canovereth(): ERROR cannot find can board @ 10.0.1.4:CAN1:1
PY:     [error] do_firmware_update(): FAILURE because cannot find board @ 10.0.1.4:CAN1:1
PY:   - result: FAILURE!! (However, the operation will be attempted with other boards until completion)
PY: - OPERATION #9
PY:   - type: firmware update
PY:   - target: part = left_arm, board = foc, name = foc.2.2, device = ETH, address = 10.0.1.4:CAN1:2
PY:   - using:  required firmware version = 3.3.37, file location = ../CAN/2foc/2foc.hex
PY:     [error] do_firmware_verify_canovereth(): ERROR cannot find can board @ 10.0.1.4:CAN1:2
PY:     [error] do_firmware_update(): FAILURE because cannot find board @ 10.0.1.4:CAN1:2
PY:   - result: FAILURE!! (However, the operation will be attempted with other boards until completion)
PY: - OPERATION #10
PY:   - type: firmware update
PY:   - target: part = left_arm, board = mtb4, name = mtb4.1, device = ETH, address = 10.0.1.4:CAN2:1
PY:   - using:  required firmware version = 1.23.0, file location = ../CAN/mtb4/mtb4.hex
PY:     [error] do_firmware_verify_canovereth(): ERROR cannot find can board @ 10.0.1.4:CAN2:1
PY:     [error] do_firmware_update(): FAILURE because cannot find board @ 10.0.1.4:CAN2:1
PY:   - result: FAILURE!! (However, the operation will be attempted with other boards until completion)
PY: - OPERATION #11
PY:   - type: firmware update
PY:   - target: part = left_arm, board = mc4plus, name = left_arm-eb23-j7_10, device = ETH, address = 10.0.1.23:CAN0:0
PY:   - using:  required firmware version = 3.96.0, file location = ../ETH/MC4PLUS/bin/application/mc4plus.hex
PY:   - message: the board has an old FW which is going to be udapted.
PY:   - message: please be prepared to wait for some time ... fw program of a mc4plus typically lasts 15 seconds
PY:   - result: SUCCESS: the board has been programmed with latest firmware version
PY: - OPERATION #12
PY:   - type: firmware update
PY:   - target: part = left_arm, board = mc4plus, name = left_arm-eb25-j11_12, device = ETH, address = 10.0.1.25:CAN0:0
PY:   - using:  required firmware version = 3.96.0, file location = ../ETH/MC4PLUS/bin/application/mc4plus.hex
PY:   - message: the board already has the most recent FW.
PY:   - result: SUCCESS: the board already has the latest version of firmware
PY: - OPERATION #13
PY:   - type: firmware update
PY:   - target: part = left_arm, board = mtb4, name = mtb4.1, device = ETH, address = 10.0.1.25:CAN1:1
PY:   - using:  required firmware version = 1.23.0, file location = ../CAN/mtb4/mtb4.hex
PY:     [error] do_firmware_verify_canovereth(): ERROR cannot find can board @ 10.0.1.25:CAN1:1
PY:     [error] do_firmware_update(): FAILURE because cannot find board @ 10.0.1.25:CAN1:1
PY:   - result: FAILURE!! (However, the operation will be attempted with other boards until completion)
PY: - OPERATION #14
PY:   - type: firmware update
PY:   - target: part = left_arm, board = mtb4, name = mtb4.2, device = ETH, address = 10.0.1.25:CAN1:2
PY:   - using:  required firmware version = 1.23.0, file location = ../CAN/mtb4/mtb4.hex
PY:     [error] do_firmware_verify_canovereth(): ERROR cannot find can board @ 10.0.1.25:CAN1:2
PY:     [error] do_firmware_update(): FAILURE because cannot find board @ 10.0.1.25:CAN1:2
PY:   - result: FAILURE!! (However, the operation will be attempted with other boards until completion)
PY: - OPERATION #15
PY:   - type: firmware update
PY:   - target: part = left_arm, board = amc, name = left_arm-eb31-j4_6, device = ETH, address = 10.0.1.31:CAN0:0
PY:   - using:  required firmware version = 2.12.0, file location = ../ETH/AMC/amc.hex
PY:   - message: the board has an old FW which is going to be udapted.
PY:   - message: please be prepared to wait for some time ... fw program of a amc typically lasts 30 seconds
PY:     [error] do_firmware_program_eth(): FAILURE programming eth board @ 10.0.1.31
PY:   - result: FAILURE!! (However, the operation will be attempted with other boards until completion)
PY: - OPERATION #16
PY:   - type: firmware update
PY:   - target: part = left_arm, board = amc2c, name = left_arm-eb31-j4_6, device = ETH, address = 10.0.1.31:CAN0:0
PY:   - using:  required firmware version = 3.1.0, file location = ../ETH/AMC/amc2c.hexIP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
EthMaintainer::sendPROG2() detected and filtered out a eOuprot_cmd_PROG_DATA_t w/ non-FLASH chunch of 40 bytes in [0x2001ffc0, 0x2001ffe8]
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
EthMaintainer::sendPROG2() detected and filtered out a eOuprot_cmd_PROG_DATA_t w/ non-FLASH chunch of 40 bytes in [0x2001ffc0, 0x2001ffe8]
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
EthMaintainer::sendPROG2() detected and filtered out a eOuprot_cmd_PROG_DATA_t w/ non-FLASH chunch of 40 bytes in [0x2001ffc0, 0x2001ffe8]

PY:   - message: the board has an old FW which is going to be udapted.
PY:   - message: please be prepared to wait for some time ... fw program of a amc2c typically lasts 30 seconds
PY:     [error] do_firmware_program_eth(): FAILURE programming eth board @ 10.0.1.31
PY:   - result: FAILURE!! (However, the operation will be attempted with other boards until completion)
PY: - OPERATION #17
PY:   - type: firmware update
PY:   - target: part = left_arm, board = amcbldc, name = amcbldc.1, device = ETH, address = 10.0.1.31:CAN1:1
PY:   - using:  required firmware version = 2.1.0, file location = ../CAN/amcbldc/amcbldc.hex
PY:     [error] do_firmware_verify_canovereth(): ERROR cannot find can board @ 10.0.1.31:CAN1:1
PY:     [error] do_firmware_update(): FAILURE because cannot find board @ 10.0.1.31:CAN1:1
PY:   - result: FAILURE!! (However, the operation will be attempted with other boards until completion)
PY: - OPERATION #18
PY:   - type: firmware update
PY:   - target: part = left_arm, board = amcbldc, name = amcbldc.2, device = ETH, address = 10.0.1.31:CAN1:2
PY:   - using:  required firmware version = 2.1.0, file location = ../CAN/amcbldc/amcbldc.hex
PY:     [error] do_firmware_verify_canovereth(): ERROR cannot find can board @ 10.0.1.31:CAN1:2
PY:     [error] do_firmware_update(): FAILURE because cannot find board @ 10.0.1.31:CAN1:2
PY:   - result: FAILURE!! (However, the operation will be attempted with other boards until completion)
PY: - OPERATION #19
PY:   - type: firmware update
PY:   - target: part = right_arm, board = ems4, name = right_arm-eb1-j0_1, device = ETH, address = 10.0.1.1:CAN0:0
PY:   - using:  required firmware version = 3.95.0, file location = ../ETH/EMS/bin/application/ems.hex
PY:   - message: the board already has the most recent FW.
PY:   - result: SUCCESS: the board already has the latest version of firmware
PY: - OPERATION #20
PY:   - type: firmware update
PY:   - target: part = right_arm, board = foc, name = foc.1.1, device = ETH, address = 10.0.1.1:CAN1:1
PY:   - using:  required firmware version = 3.3.37, file location = ../CAN/2foc/2foc.hex
PY:     [error] do_firmware_verify_canovereth(): ERROR cannot find can board @ 10.0.1.1:CAN1:1
PY:     [error] do_firmware_update(): FAILURE because cannot find board @ 10.0.1.1:CAN1:1
PY:   - result: FAILURE!! (However, the operation will be attempted with other boards until completion)
PY: - OPERATION #21
PY:   - type: firmware update
PY:   - target: part = right_arm, board = foc, name = foc.1.2, device = ETH, address = 10.0.1.1:CAN1:2
PY:   - using:  required firmware version = 3.3.37, file location = ../CAN/2foc/2foc.hex
PY:     [error] do_firmware_verify_canovereth(): ERROR cannot find can board @ 10.0.1.1:CAN1:2
PY:     [error] do_firmware_update(): FAILURE because cannot find board @ 10.0.1.1:CAN1:2
PY:   - result: FAILURE!! (However, the operation will be attempted with other boards until completion)
PY: - OPERATION #22
PY:   - type: firmware update
PY:   - target: part = right_arm, board = strain2, name = strain2.13, device = ETH, address = 10.0.1.1:CAN2:13
PY:   - using:  required firmware version = 2.3.0, file location = ../CAN/strain2/strain2.hex
PY:     [error] do_firmware_verify_canovereth(): ERROR cannot find can board @ 10.0.1.1:CAN2:13
PY:     [error] do_firmware_update(): FAILURE because cannot find board @ 10.0.1.1:CAN2:13
PY:   - result: FAILURE!! (However, the operation will be attempted with other boards until completion)
PY: - OPERATION #23
PY:   - type: firmware update
PY:   - target: part = right_arm, board = ems4, name = right_arm-eb3-j2_3, device = ETH, address = 10.0.1.3:CAN0:0
PY:   - using:  required firmware version = 3.95.0, file location = ../ETH/EMS/bin/application/ems.hex
PY:   - message: the board already has the most recent FW.
PY:   - result: SUCCESS: the board already has the latest version of firmware
PY: - OPERATION #24
PY:   - type: firmware update
PY:   - target: part = right_arm, board = foc, name = foc.2.1, device = ETH, address = 10.0.1.3:CAN1:1
PY:   - using:  required firmware version = 3.3.37, file location = ../CAN/2foc/2foc.hex
PY:     [error] do_firmware_verify_canovereth(): ERROR cannot find can board @ 10.0.1.3:CAN1:1
PY:     [error] do_firmware_update(): FAILURE because cannot find board @ 10.0.1.3:CAN1:1
PY:   - result: FAILURE!! (However, the operation will be attempted with other boards until completion)
PY: - OPERATION #25
PY:   - type: firmware update
PY:   - target: part = right_arm, board = foc, name = foc.2.2, device = ETH, address = 10.0.1.3:CAN1:2
PY:   - using:  required firmware version = 3.3.37, file location = ../CAN/2foc/2foc.hex
PY:     [error] do_firmware_verify_canovereth(): ERROR cannot find can board @ 10.0.1.3:CAN1:2
PY:     [error] do_firmware_update(): FAILURE because cannot find board @ 10.0.1.3:CAN1:2
PY:   - result: FAILURE!! (However, the operation will be attempted with other boards until completion)
PY: - OPERATION #26
PY:   - type: firmware update
PY:   - target: part = right_arm, board = mtb4, name = mtb4.1, device = ETH, address = 10.0.1.3:CAN2:1
PY:   - using:  required firmware version = 1.23.0, file location = ../CAN/mtb4/mtb4.hex
PY:     [error] do_firmware_verify_canovereth(): ERROR cannot find can board @ 10.0.1.3:CAN2:1
PY:     [error] do_firmware_update(): FAILURE because cannot find board @ 10.0.1.3:CAN2:1
PY:   - result: FAILURE!! (However, the operation will be attempted with other boards until completion)
PY: - OPERATION #27
PY:   - type: firmware update
PY:   - target: part = right_arm, board = mc4plus, name = right_arm-eb22-j7_10, device = ETH, address = 10.0.1.22:CAN0:0
PY:   - using:  required firmware version = 3.96.0, file location = ../ETH/MC4PLUS/bin/application/mc4plus.hex
PY:   - message: the board has an old FW which is going to be udapted.
PY:   - message: please be prepared to wait for some time ... fw program of a mc4plus typically lasts 15 seconds
PY:   - result: SUCCESS: the board has been programmed with latest firmware version
PY: - OPERATION #28
PY:   - type: firmware update
PY:   - target: part = right_arm, board = mc4plus, name = right_arm-eb24-j11_12, device = ETH, address = 10.0.1.24:CAN0:0
PY:   - using:  required firmware version = 3.96.0, file location = ../ETH/MC4PLUS/bin/application/mc4plus.hex
PY:   - message: the board has an old FW which is going to be udapted.
PY:   - message: please be prepared to wait for some time ... fw program of a mc4plus typically lasts 15 seconds
PY:   - result: SUCCESS: the board has been programmed with latest firmware version
PY: - OPERATION #29
PY:   - type: firmware update
PY:   - target: part = right_arm, board = mtb4, name = mtb4.1, device = ETH, address = 10.0.1.24:CAN1:1
PY:   - using:  required firmware version = 1.23.0, file location = ../CAN/mtb4/mtb4.hex
PY:     [error] do_firmware_verify_canovereth(): ERROR cannot find can board @ 10.0.1.24:CAN1:1
PY:     [error] do_firmware_update(): FAILURE because cannot find board @ 10.0.1.24:CAN1:1
PY:   - result: FAILURE!! (However, the operation will be attempted with other boards until completion)
PY: - OPERATION #30
PY:   - type: firmware update
PY:   - target: part = right_arm, board = mtb4, name = mtb4.2, device = ETH, address = 10.0.1.24:CAN1:2
PY:   - using:  required firmware version = 1.23.0, file location = ../CAN/mtb4/mtb4.hex
PY:     [error] do_firmware_verify_canovereth(): ERROR cannot find can board @ 10.0.1.24:CAN1:2
PY:     [error] do_firmware_update(): FAILURE because cannot find board @ 10.0.1.24:CAN1:2
PY:   - result: FAILURE!! (However, the operation will be attempted with other boards until completion)
PY: - OPERATION #31
PY:   - type: firmware update
PY:   - target: part = right_arm, board = amc, name = right_arm-eb30-j4_6, device = ETH, address = 10.0.1.30:CAN0:0
PY:   - using:  required firmware version = 2.12.0, file location = ../ETH/AMC/amc.hex
PY:   - message: the board has an old FW which is going to be udapted.
PY:   - message: please be prepared to wait for some time ... fw program of a amc typically lasts 30 seconds
PY:     [error] do_firmware_program_eth(): FAILURE programming eth board @ 10.0.1.30
PY:   - result: FAILURE!! (However, the operation will be attempted with other boards until completion)IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"

PY: - OPERATION #32
PY:   - type: firmware update
PY:   - target: part = right_arm, board = amc2c, name = right_arm-eb30-j4_6, device = ETH, address = 10.0.1.30:CAN0:0
PY:   - using:  required firmware version = 3.1.0, file location = ../ETH/AMC/amc2c.hex
PY:   - message: the board has an old FW which is going to be udapted.
PY:   - message: please be prepared to wait for some time ... fw program of a amc2c typically lasts 30 seconds
PY:     [error] do_firmware_program_eth(): FAILURE programming eth board @ 10.0.1.30
PY:   - result: FAILURE!! (However, the operation will be attempted with other boards until completion)
PY: - OPERATION #33
PY:   - type: firmware update
PY:   - target: part = right_arm, board = amcbldc, name = amcbldc.1, device = ETH, address = 10.0.1.30:CAN1:1
PY:   - using:  required firmware version = 2.1.0, file location = ../CAN/amcbldc/amcbldc.hex
PY:     [error] do_firmware_verify_canovereth(): ERROR cannot find can board @ 10.0.1.30:CAN1:1
PY:     [error] do_firmware_update(): FAILURE because cannot find board @ 10.0.1.30:CAN1:1
PY:   - result: FAILURE!! (However, the operation will be attempted with other boards until completion)
PY: - OPERATION #34
PY:   - type: firmware update
PY:   - target: part = right_arm, board = amcbldc, name = amcbldc.2, device = ETH, address = 10.0.1.30:CAN1:2
PY:   - using:  required firmware version = 2.1.0, file location = ../CAN/amcbldc/amcbldc.hex
PY:     [error] do_firmware_verify_canovereth(): ERROR cannot find can board @ 10.0.1.30:CAN1:2
PY:     [error] do_firmware_update(): FAILURE because cannot find board @ 10.0.1.30:CAN1:2
PY:   - result: FAILURE!! (However, the operation will be attempted with other boards until completion)
PY: - OPERATION #35
PY:   - type: firmware update
PY:   - target: part = torso, board = ems4, name = torso-eb5-j0_2, device = ETH, address = 10.0.1.5:CAN0:0
PY:   - using:  required firmware version = 3.95.0, file location = ../ETH/EMS/bin/application/ems.hex
PY:   - message: the board already has the most recent FW.
PY:   - result: SUCCESS: the board already has the latest version of firmware
PY: - OPERATION #36
PY:   - type: firmware update
PY:   - target: part = torso, board = foc, name = foc.5.1, device = ETH, address = 10.0.1.5:CAN1:1
PY:   - using:  required firmware version = 3.3.37, file location = ../CAN/2foc/2foc.hex
PY:     [error] do_firmware_verify_canovereth(): ERROR cannot find can board @ 10.0.1.5:CAN1:1
PY:     [error] do_firmware_update(): FAILURE because cannot find board @ 10.0.1.5:CAN1:1
PY:   - result: FAILURE!! (However, the operation will be attempted with other boards until completion)
PY: - OPERATION #37
PY:   - type: firmware update
PY:   - target: part = torso, board = foc, name = foc.5.3, device = ETH, address = 10.0.1.5:CAN1:3
PY:   - using:  required firmware version = 3.3.37, file location = ../CAN/2foc/2foc.hex
PY:     [error] do_firmware_verify_canovereth(): ERROR cannot find can board @ 10.0.1.5:CAN1:3
PY:     [error] do_firmware_update(): FAILURE because cannot find board @ 10.0.1.5:CAN1:3
PY:   - result: FAILURE!! (However, the operation will be attempted with other boards until completion)
PY: - OPERATION #38
PY:   - type: firmware update
PY:   - target: part = torso, board = foc, name = foc.5.4, device = ETH, address = 10.0.1.5:CAN1:4
PY:   - using:  required firmware version = 3.3.37, file location = ../CAN/2foc/2foc.hex
PY:     [error] do_firmware_verify_canovereth(): ERROR cannot find can board @ 10.0.1.5:CAN1:4
PY:     [error] do_firmware_update(): FAILURE because cannot find board @ 10.0.1.5:CAN1:4
PY:   - result: FAILURE!! (However, the operation will be attempted with other boards until completion)
PY: - OPERATION #39
PY:   - type: firmware update
PY:   - target: part = right_leg, board = ems4, name = left_leg-eb6-j0_1, device = ETH, address = 10.0.1.6:CAN0:0
PY:   - using:  required firmware version = 3.95.0, file location = ../ETH/EMS/bin/application/ems.hex
PY:   - message: the board already has the most recent FW.
PY:   - result: SUCCESS: the board already has the latest version of firmware
PY: - OPERATION #40
PY:   - type: firmware update
PY:   - target: part = right_leg, board = foc, name = foc.6.1, device = ETH, address = 10.0.1.6:CAN1:1
PY:   - using:  required firmware version = 3.3.37, file location = ../CAN/2foc/2foc.hex
PY:     [error] do_firmware_verify_canovereth(): ERROR cannot find can board @ 10.0.1.6:CAN1:1
PY:     [error] do_firmware_update(): FAILURE because cannot find board @ 10.0.1.6:CAN1:1
PY:   - result: FAILURE!! (However, the operation will be attempted with other boards until completion)
PY: - OPERATION #41
PY:   - type: firmware update
PY:   - target: part = right_leg, board = foc, name = foc.6.2, device = ETH, address = 10.0.1.6:CAN1:2
PY:   - using:  required firmware version = 3.3.37, file location = ../CAN/2foc/2foc.hex
PY:     [error] do_firmware_verify_canovereth(): ERROR cannot find can board @ 10.0.1.6:CAN1:2
PY:     [error] do_firmware_update(): FAILURE because cannot find board @ 10.0.1.6:CAN1:2
PY:   - result: FAILURE!! (However, the operation will be attempted with other boards until completion)
PY: - OPERATION #42
PY:   - type: firmware update
PY:   - target: part = right_leg, board = foc, name = foc.6.3, device = ETH, address = 10.0.1.6:CAN1:3
PY:   - using:  required firmware version = 3.3.37, file location = ../CAN/2foc/2foc.hex
PY:     [error] do_firmware_verify_canovereth(): ERROR cannot find can board @ 10.0.1.6:CAN1:3
PY:     [error] do_firmware_update(): FAILURE because cannot find board @ 10.0.1.6:CAN1:3
PY:   - result: FAILURE!! (However, the operation will be attempted with other boards until completion)
PY: - OPERATION #43
PY:   - type: firmware update
PY:   - target: part = right_leg, board = foc, name = foc.6.4, device = ETH, address = 10.0.1.6:CAN1:4
PY:   - using:  required firmware version = 3.3.37, file location = ../CAN/2foc/2foc.hex
PY:     [error] do_firmware_verify_canovereth(): ERROR cannot find can board @ 10.0.1.6:CAN1:4
PY:     [error] do_firmware_update(): FAILURE because cannot find board @ 10.0.1.6:CAN1:4
PY:   - result: FAILURE!! (However, the operation will be attempted with other boards until completion)
PY: - OPERATION #44
PY:   - type: firmware update
PY:   - target: part = right_leg, board = strain2, name = strain2.13, device = ETH, address = 10.0.1.6:CAN2:13
PY:   - using:  required firmware version = 2.3.0, file location = ../CAN/strain2/strain2.hex
PY:     [error] do_firmware_verify_canovereth(): ERROR cannot find can board @ 10.0.1.6:CAN2:13
PY:     [error] do_firmware_update(): FAILURE because cannot find board @ 10.0.1.6:CAN2:13
PY:   - result: FAILURE!! (However, the operation will be attempted with other boards until completion)
PY: - OPERATION #45
PY:   - type: firmware update
PY:   - target: part = right_leg, board = ems4, name = left_leg-eb7-j2_3, device = ETH, address = 10.0.1.7:CAN0:0
PY:   - using:  required firmware version = 3.95.0, file location = ../ETH/EMS/bin/application/ems.hex
PY:   - message: the board already has the most recent FW.
PY:   - result: SUCCESS: the board already has the latest version of firmware
PY: - OPERATION #46
PY:   - type: firmware update
PY:   - target: part = right_leg, board = foc, name = foc.7.1, device = ETH, address = 10.0.1.7:CAN1:1
PY:   - using:  required firmware version = 3.3.37, file location = ../CAN/2foc/2foc.hex
PY:     [error] do_firmware_verify_canovereth(): ERROR cannot find can board @ 10.0.1.7:CAN1:1
PY:     [error] do_firmware_update(): FAILURE because cannot find board @ 10.0.1.7:CAN1:1
PY:   - result: FAILURE!! (However, the operation will be attempted with other boards until completion)
PY: - OPERATION #47
PY:   - type: firmware update
PY:   - target: part = right_leg, board = foc, name = foc.7.2, device = ETH, address = 10.0.1.7:CAN1:2
PY:   - using:  required firmware version = 3.3.37, file location = ../CAN/2foc/2foc.hex
PY:     [error] do_firmware_verify_canovereth(): ERROR cannot find can board @ 10.0.1.7:CAN1:2
PY:     [error] do_firmware_update(): FAILURE because cannot find board @ 10.0.1.7:CAN1:2
PY:   - result: FAILURE!! (However, the operation will be attempted with other boards until completion)IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"

PY: - OPERATION #48
PY:   - type: firmware update
PY:   - target: part = right_leg, board = strain2, name = strain2.13, device = ETH, address = 10.0.1.7:CAN2:13
PY:   - using:  required firmware version = 2.3.0, file location = ../CAN/strain2/strain2.hex
PY:     [error] do_firmware_verify_canovereth(): ERROR cannot find can board @ 10.0.1.7:CAN2:13
PY:     [error] do_firmware_update(): FAILURE because cannot find board @ 10.0.1.7:CAN2:13
PY:   - result: FAILURE!! (However, the operation will be attempted with other boards until completion)
PY: - OPERATION #49
PY:   - type: firmware update
PY:   - target: part = right_leg, board = strain2, name = strain2.14, device = ETH, address = 10.0.1.7:CAN2:14
PY:   - using:  required firmware version = 2.3.0, file location = ../CAN/strain2/strain2.hex
PY:     [error] do_firmware_verify_canovereth(): ERROR cannot find can board @ 10.0.1.7:CAN2:14
PY:     [error] do_firmware_update(): FAILURE because cannot find board @ 10.0.1.7:CAN2:14
PY:   - result: FAILURE!! (However, the operation will be attempted with other boards until completion)
PY: - OPERATION #50
PY:   - type: firmware update
PY:   - target: part = right_leg, board = ems4, name = right_leg-eb8-j0_1, device = ETH, address = 10.0.1.8:CAN0:0
PY:   - using:  required firmware version = 3.95.0, file location = ../ETH/EMS/bin/application/ems.hex
PY:   - message: the board already has the most recent FW.
PY:   - result: SUCCESS: the board already has the latest version of firmware
PY: - OPERATION #51
PY:   - type: firmware update
PY:   - target: part = right_leg, board = foc, name = foc.8.1, device = ETH, address = 10.0.1.8:CAN1:1
PY:   - using:  required firmware version = 3.3.37, file location = ../CAN/2foc/2foc.hex
PY:     [error] do_firmware_verify_canovereth(): ERROR cannot find can board @ 10.0.1.8:CAN1:1
PY:     [error] do_firmware_update(): FAILURE because cannot find board @ 10.0.1.8:CAN1:1
PY:   - result: FAILURE!! (However, the operation will be attempted with other boards until completion)
PY: - OPERATION #52
PY:   - type: firmware update
PY:   - target: part = right_leg, board = foc, name = foc.8.2, device = ETH, address = 10.0.1.8:CAN1:2
PY:   - using:  required firmware version = 3.3.37, file location = ../CAN/2foc/2foc.hex
PY:     [error] do_firmware_verify_canovereth(): ERROR cannot find can board @ 10.0.1.8:CAN1:2
PY:     [error] do_firmware_update(): FAILURE because cannot find board @ 10.0.1.8:CAN1:2
PY:   - result: FAILURE!! (However, the operation will be attempted with other boards until completion)
PY: - OPERATION #53
PY:   - type: firmware update
PY:   - target: part = right_leg, board = foc, name = foc.8.3, device = ETH, address = 10.0.1.8:CAN1:3
PY:   - using:  required firmware version = 3.3.37, file location = ../CAN/2foc/2foc.hex
PY:     [error] do_firmware_verify_canovereth(): ERROR cannot find can board @ 10.0.1.8:CAN1:3
PY:     [error] do_firmware_update(): FAILURE because cannot find board @ 10.0.1.8:CAN1:3
PY:   - result: FAILURE!! (However, the operation will be attempted with other boards until completion)
PY: - OPERATION #54
PY:   - type: firmware update
PY:   - target: part = right_leg, board = foc, name = foc.8.4, device = ETH, address = 10.0.1.8:CAN1:4
PY:   - using:  required firmware version = 3.3.37, file location = ../CAN/2foc/2foc.hex
PY:     [error] do_firmware_verify_canovereth(): ERROR cannot find can board @ 10.0.1.8:CAN1:4
PY:     [error] do_firmware_update(): FAILURE because cannot find board @ 10.0.1.8:CAN1:4
PY:   - result: FAILURE!! (However, the operation will be attempted with other boards until completion)
PY: - OPERATION #55
PY:   - type: firmware update
PY:   - target: part = right_leg, board = strain2, name = strain2.13, device = ETH, address = 10.0.1.8:CAN2:13
PY:   - using:  required firmware version = 2.3.0, file location = ../CAN/strain2/strain2.hex
PY:     [error] do_firmware_verify_canovereth(): ERROR cannot find can board @ 10.0.1.8:CAN2:13
PY:     [error] do_firmware_update(): FAILURE because cannot find board @ 10.0.1.8:CAN2:13
PY:   - result: FAILURE!! (However, the operation will be attempted with other boards until completion)
PY: - OPERATION #56
PY:   - type: firmware update
PY:   - target: part = right_leg, board = ems4, name = right_leg-eb9-j2_3, device = ETH, address = 10.0.1.9:CAN0:0
PY:   - using:  required firmware version = 3.95.0, file location = ../ETH/EMS/bin/application/ems.hex
PY:   - message: the board already has the most recent FW.
PY:   - result: SUCCESS: the board already has the latest version of firmware
PY: - OPERATION #57
PY:   - type: firmware update
PY:   - target: part = right_leg, board = foc, name = foc.9.1, device = ETH, address = 10.0.1.9:CAN1:1
PY:   - using:  required firmware version = 3.3.37, file location = ../CAN/2foc/2foc.hex
PY:     [error] do_firmware_verify_canovereth(): ERROR cannot find can board @ 10.0.1.9:CAN1:1
PY:     [error] do_firmware_update(): FAILURE because cannot find board @ 10.0.1.9:CAN1:1
PY:   - result: FAILURE!! (However, the operation will be attempted with other boards until completion)
PY: - OPERATION #58
PY:   - type: firmware update
PY:   - target: part = right_leg, board = foc, name = foc.9.2, device = ETH, address = 10.0.1.9:CAN1:2
PY:   - using:  required firmware version = 3.3.37, file location = ../CAN/2foc/2foc.hex
PY:     [error] do_firmware_verify_canovereth(): ERROR cannot find can board @ 10.0.1.9:CAN1:2
PY:     [error] do_firmware_update(): FAILURE because cannot find board @ 10.0.1.9:CAN1:2
PY:   - result: FAILURE!! (However, the operation will be attempted with other boards until completion)
PY: - OPERATION #59
PY:   - type: firmware update
PY:   - target: part = right_leg, board = strain2, name = strain2.13, device = ETH, address = 10.0.1.9:CAN2:13
PY:   - using:  required firmware version = 2.3.0, file location = ../CAN/strain2/strain2.hex
PY:     [error] do_firmware_verify_canovereth(): ERROR cannot find can board @ 10.0.1.9:CAN2:13
PY:     [error] do_firmware_update(): FAILURE because cannot find board @ 10.0.1.9:CAN2:13
PY:   - result: FAILURE!! (However, the operation will be attempted with other boards until completion)
PY: - OPERATION #60
PY:   - type: firmware update
PY:   - target: part = right_leg, board = strain2, name = strain2.14, device = ETH, address = 10.0.1.9:CAN2:14
PY:   - using:  required firmware version = 2.3.0, file location = ../CAN/strain2/strain2.hex
PY:     [error] do_firmware_verify_canovereth(): ERROR cannot find can board @ 10.0.1.9:CAN2:14
PY:     [error] do_firmware_update(): FAILURE because cannot find board @ 10.0.1.9:CAN2:14
PY:   - result: FAILURE!! (However, the operation will be attempted with other boards until completion)
PY: --
PY: -- FINAL REPORT for update()
PY: -- Number of boards matching your criteria (w/ --part all --board all): 60
PY: -- Number of boards excluded from the above number (w/ --excludeboard none): 0
PY: -- Number of boards for which the operation was attempted: 60
PY: -- Number of boards for which the operation had success: 15
PY: -- Number of boards for which the operation failed: 45
PY: --
PY: [info] the script is over
2024-12-03 11:59:30.782184

this bash has executed: ./manageFWrobot.py -n [DEBUG] |yarp.os.ResourceFinder| configuring
[DEBUG] |yarp.os.ResourceFinder| default config file specified as network.ergoCubSN002.xml
[DEBUG] |yarp.os.ResourceFinder| checking [/usr/local/src/robot/robotology-superbuild/build/install/share/icub-firmware/scripts/network.ergoCubSN002.xml] (pwd)
[DEBUG] |yarp.os.ResourceFinder| checking [/home/ergocub/.config/yarp/robots/ergoCubSN002] (robot YARP_CONFIG_HOME)
[DEBUG] |yarp.os.ResourceFinder| checking [/home/ergocub/.local/share/yarp/robots/ergoCubSN002] (robot YARP_DATA_HOME)
[DEBUG] |yarp.os.ResourceFinder| checking [/etc/xdg/yarp/robots/ergoCubSN002] (robot YARP_CONFIG_DIRS)
[DEBUG] |yarp.os.ResourceFinder| checking [/usr/local/src/robot/robotology-superbuild/src/robots-configuration/ergoCubSN002/extra/robots/ergoCubSN002] (robot YARP_DATA_DIRS)
[DEBUG] |yarp.os.ResourceFinder| checking [/usr/local/src/robot/robotology-superbuild/build/install/share/yarp/robots/ergoCubSN002] (robot YARP_DATA_DIRS)
[DEBUG] |yarp.os.ResourceFinder| found /usr/local/src/robot/robotology-superbuild/build/install/share/yarp/robots/ergoCubSN002
[DEBUG] |yarp.os.ResourceFinder| checking [/usr/local/src/robot/robotology-superbuild/build/install/share/iCub/robots/ergoCubSN002] (robot YARP_DATA_DIRS)
[DEBUG] |yarp.os.ResourceFinder| checking [/usr/local/src/robot/robotology-superbuild/build/install/share/ICUBcontrib/robots/ergoCubSN002] (robot YARP_DATA_DIRS)
[DEBUG] |yarp.os.ResourceFinder| found /usr/local/src/robot/robotology-superbuild/build/install/share/ICUBcontrib/robots/ergoCubSN002
[DEBUG] |yarp.os.ResourceFinder| checking [/usr/local/src/robot/robotology-superbuild/build/install/share/ergoCub/robots/ergoCubSN002] (robot YARP_DATA_DIRS)
[DEBUG] |yarp.os.ResourceFinder| found /usr/local/src/robot/robotology-superbuild/build/install/share/ergoCub/robots/ergoCubSN002
[DEBUG] |yarp.os.ResourceFinder| checking [robots/ergoCubSN002] (robot YARP_DATA_DIRS)
[DEBUG] |yarp.os.ResourceFinder| checking [/usr/local/src/robot/robotology-superbuild/src/robots-configuration/ergoCubSN002/extra/config/path.d] (robot path.d YARP_DATA_DIRS)
[DEBUG] |yarp.os.ResourceFinder| checking [/usr/local/src/robot/robotology-superbuild/build/install/share/yarp/config/path.d] (robot path.d YARP_DATA_DIRS)
[DEBUG] |yarp.os.ResourceFinder| found /usr/local/src/robot/robotology-superbuild/build/install/share/yarp/config/path.d
[DEBUG] |yarp.os.ResourceFinder| checking [/usr/local/src/robot/robotology-superbuild/build/install/share/BipedalLocomotionFramework/robots/ergoCubSN002] (robot yarp.d)
[DEBUG] |yarp.os.ResourceFinder| checking [/usr/local/src/robot/robotology-superbuild/build/install/share/wbc/robots/ergoCubSN002] (robot yarp.d)
[DEBUG] |yarp.os.ResourceFinder| checking [/usr/local/src/robot/robotology-superbuild/build/install/share/yarp/robots/ergoCubSN002/network.ergoCubSN002.xml] (robot)
[DEBUG] |yarp.os.ResourceFinder| checking [/usr/local/src/robot/robotology-superbuild/build/install/share/ICUBcontrib/robots/ergoCubSN002/network.ergoCubSN002.xml] (robot)
[DEBUG] |yarp.os.ResourceFinder| found /usr/local/src/robot/robotology-superbuild/build/install/share/ICUBcontrib/robots/ergoCubSN002/network.ergoCubSN002.xml
[DEBUG] |yarp.os.ResourceFinder| finding file [from]
"/usr/local/src/robot/robotology-superbuild/build/install/share/ICUBcontrib/robots/ergoCubSN002/network.ergoCubSN002.xml" -f ../info/firmware.info.xml -p all -a update | tee ../logs/log.of.FirmwareUpdater.ergoCubSN002.update.all.txt

I already retried the process after rebooting the motors, but there is a similar failure (it is still ongoing).

@traversaro
Copy link
Member Author

By using the same workaround described in #178 (comment), the update is taking much longer, so hopefully the result should be better.

@traversaro
Copy link
Member Author

After applying the workaround mentioned in the previous comment, now many boards (52 out of 60) were updated correctly:

(robsub) ergocub@ergocub002-lap:/usr/local/src/robot/robotology-superbuild/build/install/share/icub-firmware/scripts$ bash FirmwareUpdater.script.update.all.sh



This script is about to install the standard FW binary on all the boards of ergoCubSN002
Continue? (Y/N): y
this bash is executing: ./manageFWrobot.py -n [DEBUG] |yarp.os.ResourceFinder| configuring
[DEBUG] |yarp.os.ResourceFinder| default config file specified as network.ergoCubSN002.xml
[DEBUG] |yarp.os.ResourceFinder| checking [/usr/local/src/robot/robotology-superbuild/build/install/share/icub-firmware/scripts/network.ergoCubSN002.xml] (pwd)
[DEBUG] |yarp.os.ResourceFinder| checking [/home/ergocub/.config/yarp/robots/ergoCubSN002] (robot YARP_CONFIG_HOME)
[DEBUG] |yarp.os.ResourceFinder| checking [/home/ergocub/.local/share/yarp/robots/ergoCubSN002] (robot YARP_DATA_HOME)
[DEBUG] |yarp.os.ResourceFinder| checking [/etc/xdg/xdg-ubuntu/yarp/robots/ergoCubSN002] (robot YARP_CONFIG_DIRS)
[DEBUG] |yarp.os.ResourceFinder| checking [/etc/xdg/yarp/robots/ergoCubSN002] (robot YARP_CONFIG_DIRS)
[DEBUG] |yarp.os.ResourceFinder| checking [/usr/local/src/robot/robotology-superbuild/src/robots-configuration/ergoCubSN002/extra/robots/ergoCubSN002] (robot YARP_DATA_DIRS)
[DEBUG] |yarp.os.ResourceFinder| checking [/usr/local/src/robot/robotology-superbuild/build/install/share/yarp/robots/ergoCubSN002] (robot YARP_DATA_DIRS)
[DEBUG] |yarp.os.ResourceFinder| found /usr/local/src/robot/robotology-superbuild/build/install/share/yarp/robots/ergoCubSN002
[DEBUG] |yarp.os.ResourceFinder| checking [/usr/local/src/robot/robotology-superbuild/build/install/share/iCub/robots/ergoCubSN002] (robot YARP_DATA_DIRS)
[DEBUG] |yarp.os.ResourceFinder| checking [/usr/local/src/robot/robotology-superbuild/build/install/share/ICUBcontrib/robots/ergoCubSN002] (robot YARP_DATA_DIRS)
[DEBUG] |yarp.os.ResourceFinder| found /usr/local/src/robot/robotology-superbuild/build/install/share/ICUBcontrib/robots/ergoCubSN002
[DEBUG] |yarp.os.ResourceFinder| checking [/usr/local/src/robot/robotology-superbuild/build/install/share/ergoCub/robots/ergoCubSN002] (robot YARP_DATA_DIRS)
[DEBUG] |yarp.os.ResourceFinder| found /usr/local/src/robot/robotology-superbuild/build/install/share/ergoCub/robots/ergoCubSN002
[DEBUG] |yarp.os.ResourceFinder| checking [robots/ergoCubSN002] (robot YARP_DATA_DIRS)
[DEBUG] |yarp.os.ResourceFinder| checking [/usr/local/src/robot/robotology-superbuild/src/robots-configuration/ergoCubSN002/extra/config/path.d] (robot path.d YARP_DATA_DIRS)
[DEBUG] |yarp.os.ResourceFinder| checking [/usr/local/src/robot/robotology-superbuild/build/install/share/yarp/config/path.d] (robot path.d YARP_DATA_DIRS)
[DEBUG] |yarp.os.ResourceFinder| found /usr/local/src/robot/robotology-superbuild/build/install/share/yarp/config/path.d
[DEBUG] |yarp.os.ResourceFinder| checking [/usr/local/src/robot/robotology-superbuild/build/install/share/BipedalLocomotionFramework/robots/ergoCubSN002] (robot yarp.d)
[DEBUG] |yarp.os.ResourceFinder| checking [/usr/local/src/robot/robotology-superbuild/build/install/share/wbc/robots/ergoCubSN002] (robot yarp.d)
[DEBUG] |yarp.os.ResourceFinder| checking [/usr/local/src/robot/robotology-superbuild/build/install/share/yarp/robots/ergoCubSN002/network.ergoCubSN002.xml] (robot)
[DEBUG] |yarp.os.ResourceFinder| checking [/usr/local/src/robot/robotology-superbuild/build/install/share/ICUBcontrib/robots/ergoCubSN002/network.ergoCubSN002.xml] (robot)
[DEBUG] |yarp.os.ResourceFinder| found /usr/local/src/robot/robotology-superbuild/build/install/share/ICUBcontrib/robots/ergoCubSN002/network.ergoCubSN002.xml
[DEBUG] |yarp.os.ResourceFinder| finding file [from]
"/usr/local/src/robot/robotology-superbuild/build/install/share/ICUBcontrib/robots/ergoCubSN002/network.ergoCubSN002.xml" -f ../info/firmware.info.xml -p all -a update | tee ../logs/log.of.FirmwareUpdater.ergoCubSN002.update.all.txt

QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
PY: [info] the script is executing
PY: [info] verbosity turned on for basic python only
2024-12-03 13:09:35.228321
PY: - OPERATION #1
PY:   - type: firmware update
PY:   - target: part = head, board = mc4plus, name = head-eb20-j0_1, device = ETH, address = 10.0.1.20:CAN0:0
PY:   - using:  required firmware version = 3.96.0, file location = ../ETH/MC4PLUS/bin/application/mc4plus.hex
PY:   - message: the board already has the most recent FW.
PY:   - result: SUCCESS: the board already has the latest version of firmware
PY: - OPERATION #2
PY:   - type: firmware update
PY:   - target: part = head, board = mc4plus, name = head-eb21-j2_3, device = ETH, address = 10.0.1.21:CAN0:0
PY:   - using:  required firmware version = 3.96.0, file location = ../ETH/MC4PLUS/bin/application/mc4plus.hex
PY:   - message: the board already has the most recent FW.
PY:   - result: SUCCESS: the board already has the latest version of firmware
PY: - OPERATION #3
PY:   - type: firmware update
PY:   - target: part = left_arm, board = ems4, name = left_arm-eb2-j0_1, device = ETH, address = 10.0.1.2:CAN0:0
PY:   - using:  required firmware version = 3.95.0, file location = ../ETH/EMS/bin/application/ems.hex
PY:     [error] do_firmware_verify_eth(): ERROR cannot find eth board @ 10.0.1.2
PY:     [error] do_firmware_update(): FAILURE because cannot verify board @ 10.0.1.2
PY:   - result: FAILURE!! (However, the operation will be attempted with other boards until completion)
PY: - OPERATION #4
PY:   - type: firmware update
PY:   - target: part = left_arm, board = foc, name = foc.1.1, device = ETH, address = 10.0.1.2:CAN1:1
PY:   - using:  required firmware version = 3.3.37, file location = ../CAN/2foc/2foc.hex
PY:     [error] do_firmware_verify_canovereth(): ERROR cannot find can board @ 10.0.1.2:CAN1:1
PY:     [error] do_firmware_update(): FAILURE because cannot find board @ 10.0.1.2:CAN1:1
PY:   - result: FAILURE!! (However, the operation will be attempted with other boards until completion)
PY: - OPERATION #5
PY:   - type: firmware update
PY:   - target: part = left_arm, board = foc, name = foc.1.2, device = ETH, address = 10.0.1.2:CAN1:2
PY:   - using:  required firmware version = 3.3.37, file location = ../CAN/2foc/2foc.hex
PY:     [error] do_firmware_verify_canovereth(): ERROR cannot find can board @ 10.0.1.2:CAN1:2
PY:     [error] do_firmware_update(): FAILURE because cannot find board @ 10.0.1.2:CAN1:2
PY:   - result: FAILURE!! (However, the operation will be attempted with other boards until completion)
PY: - OPERATION #6
PY:   - type: firmware update
PY:   - target: part = left_arm, board = strain2, name = strain2.13, device = ETH, address = 10.0.1.2:CAN2:13
PY:   - using:  required firmware version = 2.3.0, file location = ../CAN/strain2/strain2.hex
PY:     [error] do_firmware_verify_canovereth(): ERROR cannot find can board @ 10.0.1.2:CAN2:13
PY:     [error] do_firmware_update(): FAILURE because cannot find board @ 10.0.1.2:CAN2:13
PY:   - result: FAILURE!! (However, the operation will be attempted with other boards until completion)
PY: - OPERATION #7
PY:   - type: firmware update
PY:   - target: part = left_arm, board = ems4, name = left_arm-eb4-j2_3, device = ETH, address = 10.0.1.4:CAN0:0
PY:   - using:  required firmware version = 3.95.0, file location = ../ETH/EMS/bin/application/ems.hex
PY:   - message: the board already has the most recent FW.
PY:   - result: SUCCESS: the board already has the latest version of firmware
PY: - OPERATION #8
PY:   - type: firmware update
PY:   - target: part = left_arm, board = foc, name = foc.2.1, device = ETH, address = 10.0.1.4:CAN1:1
PY:   - using:  required firmware version = 3.3.37, file location = ../CAN/2foc/2foc.hex
PY:   - message: the board has an old FW which is going to be udapted.
PY:   - message: please be prepared to wait for some time ... fw program of a foc typically lasts 105 seconds
PY:   - result: SUCCESS: the board has been programmed with latest firmware version
PY: - OPERATION #9
PY:   - type: firmware update
PY:   - target: part = left_arm, board = foc, name = foc.2.2, device = ETH, address = 10.0.1.4:CAN1:2
PY:   - using:  required firmware version = 3.3.37, file location = ../CAN/2foc/2foc.hex
PY:   - message: the board has an old FW which is going to be udapted.
PY:   - message: please be prepared to wait for some time ... fw program of a foc typically lasts 105 seconds
PY:   - result: SUCCESS: the board has been programmed with latest firmware version
PY: - OPERATION #10
PY:   - type: firmware update
PY:   - target: part = left_arm, board = mtb4, name = mtb4.1, device = ETH, address = 10.0.1.4:CAN2:1
PY:   - using:  required firmware version = 1.23.0, file location = ../CAN/mtb4/mtb4.hex
PY:     [error] do_firmware_verify_canovereth(): ERROR cannot find can board @ 10.0.1.4:CAN2:1
PY:     [error] do_firmware_update(): FAILURE because cannot find board @ 10.0.1.4:CAN2:1
PY:   - result: FAILURE!! (However, the operation will be attempted with other boards until completion)
PY: - OPERATION #11
PY:   - type: firmware update
PY:   - target: part = left_arm, board = mc4plus, name = left_arm-eb23-j7_10, device = ETH, address = 10.0.1.23:CAN0:0
PY:   - using:  required firmware version = 3.96.0, file location = ../ETH/MC4PLUS/bin/application/mc4plus.hex
PY:   - message: the board already has the most recent FW.
PY:   - result: SUCCESS: the board already has the latest version of firmware
PY: - OPERATION #12
PY:   - type: firmware update
PY:   - target: part = left_arm, board = mc4plus, name = left_arm-eb25-j11_12, device = ETH, address = 10.0.1.25:CAN0:0
PY:   - using:  required firmware version = 3.96.0, file location = ../ETH/MC4PLUS/bin/application/mc4plus.hex
PY:   - message: the board already has the most recent FW.
PY:   - result: SUCCESS: the board already has the latest version of firmware
PY: - OPERATION #13
PY:   - type: firmware update
PY:   - target: part = left_arm, board = mtb4, name = mtb4.1, device = ETH, address = 10.0.1.25:CAN1:1
PY:   - using:  required firmware version = 1.23.0, file location = ../CAN/mtb4/mtb4.hex
PY:   - message: the board has an old FW which is going to be udapted.
PY:   - message: please be prepared to wait for some time ... fw program of a mtb4 typically lasts 280 seconds
PY:   - result: SUCCESS: the board has been programmed with latest firmware version
PY: - OPERATION #14
PY:   - type: firmware update
PY:   - target: part = left_arm, board = mtb4, name = mtb4.2, device = ETH, address = 10.0.1.25:CAN1:2
PY:   - using:  required firmware version = 1.23.0, file location = ../CAN/mtb4/mtb4.hex
PY:   - message: the board has an old FW which is going to be udapted.
PY:   - message: please be prepared to wait for some time ... fw program of a mtb4 typically lasts 280 seconds
PY:   - result: SUCCESS: the board has been programmed with latest firmware version
PY: - OPERATION #15
PY:   - type: firmware update
PY:   - target: part = left_arm, board = amc, name = left_arm-eb31-j4_6, device = ETH, address = 10.0.1.31:CAN0:0
PY:   - using:  required firmware version = 2.12.0, file location = ../ETH/AMC/amc.hex
PY:   - message: the board already has the most recent FW.
PY:   - result: SUCCESS: the board already has the latest version of firmware
PY: - OPERATION #16
PY:   - type: firmware update
PY:   - target: part = left_arm, board = amc2c, name = left_arm-eb31-j4_6, device = ETH, address = 10.0.1.31:CAN0:0
PY:   - using:  required firmware version = 3.1.0, file location = ../ETH/AMC/amc2c.hex
PY:   - message: the board has an old FW which is going to be udapted.
PY:   - message: please be prepared to wait for some time ... fw program of a amc2c typically lasts 30 seconds
PY:     [error] do_firmware_program_eth(): FAILURE programming eth board @ 10.0.1.31
PY:   - result: FAILURE!! (However, the operation will be attempted with other boards until completion)
PY: - OPERATION #17
PY:   - type: firmware update
PY:   - target: part = left_arm, board = amcbldc, name = amcbldc.1, device = ETH, address = 10.0.1.31:CAN1:1
PY:   - using:  required firmware version = 2.1.0, file location = ../CAN/amcbldc/amcbldc.hex
PY:   - message: the board has an old FW which is going to be udapted.QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"

PY:   - message: please be prepared to wait for some time ... fw program of a amcbldc typically lasts 280 seconds
PY:   - result: SUCCESS: the board has been programmed with latest firmware version
PY: - OPERATION #18
PY:   - type: firmware update
PY:   - target: part = left_arm, board = amcbldc, name = amcbldc.2, device = ETH, address = 10.0.1.31:CAN1:2
PY:   - using:  required firmware version = 2.1.0, file location = ../CAN/amcbldc/amcbldc.hex
PY:   - message: the board has an old FW which is going to be udapted.
PY:   - message: please be prepared to wait for some time ... fw program of a amcbldc typically lasts 280 seconds
PY:   - result: SUCCESS: the board has been programmed with latest firmware version
PY: - OPERATION #19
PY:   - type: firmware update
PY:   - target: part = right_arm, board = ems4, name = right_arm-eb1-j0_1, device = ETH, address = 10.0.1.1:CAN0:0
PY:   - using:  required firmware version = 3.95.0, file location = ../ETH/EMS/bin/application/ems.hex
PY:   - message: the board already has the most recent FW.
PY:   - result: SUCCESS: the board already has the latest version of firmware
PY: - OPERATION #20
PY:   - type: firmware update
PY:   - target: part = right_arm, board = foc, name = foc.1.1, device = ETH, address = 10.0.1.1:CAN1:1
PY:   - using:  required firmware version = 3.3.37, file location = ../CAN/2foc/2foc.hex
PY:   - message: the board has an old FW which is going to be udapted.
PY:   - message: please be prepared to wait for some time ... fw program of a foc typically lasts 105 seconds
PY:   - result: SUCCESS: the board has been programmed with latest firmware version
PY: - OPERATION #21
PY:   - type: firmware update
PY:   - target: part = right_arm, board = foc, name = foc.1.2, device = ETH, address = 10.0.1.1:CAN1:2
PY:   - using:  required firmware version = 3.3.37, file location = ../CAN/2foc/2foc.hex
PY:   - message: the board has an old FW which is going to be udapted.
PY:   - message: please be prepared to wait for some time ... fw program of a foc typically lasts 105 seconds
PY:   - result: SUCCESS: the board has been programmed with latest firmware version
PY: - OPERATION #22
PY:   - type: firmware update
PY:   - target: part = right_arm, board = strain2, name = strain2.13, device = ETH, address = 10.0.1.1:CAN2:13
PY:   - using:  required firmware version = 2.3.0, file location = ../CAN/strain2/strain2.hex
PY:   - message: the board already has the most recent FW.
PY:   - result: SUCCESS: the board already has the latest version of firmware
PY: - OPERATION #23
PY:   - type: firmware update
PY:   - target: part = right_arm, board = ems4, name = right_arm-eb3-j2_3, device = ETH, address = 10.0.1.3:CAN0:0
PY:   - using:  required firmware version = 3.95.0, file location = ../ETH/EMS/bin/application/ems.hex
PY:   - message: the board already has the most recent FW.
PY:   - result: SUCCESS: the board already has the latest version of firmware
PY: - OPERATION #24
PY:   - type: firmware update
PY:   - target: part = right_arm, board = foc, name = foc.2.1, device = ETH, address = 10.0.1.3:CAN1:1
PY:   - using:  required firmware version = 3.3.37, file location = ../CAN/2foc/2foc.hex
PY:   - message: the board has an old FW which is going to be udapted.
PY:   - message: please be prepared to wait for some time ... fw program of a foc typically lasts 105 seconds
PY:   - result: SUCCESS: the board has been programmed with latest firmware version
PY: - OPERATION #25
PY:   - type: firmware update
PY:   - target: part = right_arm, board = foc, name = foc.2.2, device = ETH, address = 10.0.1.3:CAN1:2
PY:   - using:  required firmware version = 3.3.37, file location = ../CAN/2foc/2foc.hex
PY:   - message: the board has an old FW which is going to be udapted.
PY:   - message: please be prepared to wait for some time ... fw program of a foc typically lasts 105 seconds
PY:   - result: SUCCESS: the board has been programmed with latest firmware version
PY: - OPERATION #26
PY:   - type: firmware update
PY:   - target: part = right_arm, board = mtb4, name = mtb4.1, device = ETH, address = 10.0.1.3:CAN2:1
PY:   - using:  required firmware version = 1.23.0, file location = ../CAN/mtb4/mtb4.hex
PY:     [error] do_firmware_verify_canovereth(): ERROR cannot find can board @ 10.0.1.3:CAN2:1
PY:     [error] do_firmware_update(): FAILURE because cannot find board @ 10.0.1.3:CAN2:1
PY:   - result: FAILURE!! (However, the operation will be attempted with other boards until completion)
PY: - OPERATION #27
PY:   - type: firmware update
PY:   - target: part = right_arm, board = mc4plus, name = right_arm-eb22-j7_10, device = ETH, address = 10.0.1.22:CAN0:0
PY:   - using:  required firmware version = 3.96.0, file location = ../ETH/MC4PLUS/bin/application/mc4plus.hex
PY:   - message: the board already has the most recent FW.
PY:   - result: SUCCESS: the board already has the latest version of firmware
PY: - OPERATION #28
PY:   - type: firmware update
PY:   - target: part = right_arm, board = mc4plus, name = right_arm-eb24-j11_12, device = ETH, address = 10.0.1.24:CAN0:0
PY:   - using:  required firmware version = 3.96.0, file location = ../ETH/MC4PLUS/bin/application/mc4plus.hex
PY:   - message: the board already has the most recent FW.
PY:   - result: SUCCESS: the board already has the latest version of firmware
PY: - OPERATION #29
PY:   - type: firmware update
PY:   - target: part = right_arm, board = mtb4, name = mtb4.1, device = ETH, address = 10.0.1.24:CAN1:1
PY:   - using:  required firmware version = 1.23.0, file location = ../CAN/mtb4/mtb4.hex
PY:   - message: the board has an old FW which is going to be udapted.
PY:   - message: please be prepared to wait for some time ... fw program of a mtb4 typically lasts 280 seconds
PY:   - result: SUCCESS: the board has been programmed with latest firmware version
PY: - OPERATION #30
PY:   - type: firmware update
PY:   - target: part = right_arm, board = mtb4, name = mtb4.2, device = ETH, address = 10.0.1.24:CAN1:2
PY:   - using:  required firmware version = 1.23.0, file location = ../CAN/mtb4/mtb4.hex
PY:   - message: the board has an old FW which is going to be udapted.
PY:   - message: please be prepared to wait for some time ... fw program of a mtb4 typically lasts 280 seconds
PY:   - result: SUCCESS: the board has been programmed with latest firmware version
PY: - OPERATION #31
PY:   - type: firmware update
PY:   - target: part = right_arm, board = amc, name = right_arm-eb30-j4_6, device = ETH, address = 10.0.1.30:CAN0:0
PY:   - using:  required firmware version = 2.12.0, file location = ../ETH/AMC/amc.hex
PY:   - message: the board already has the most recent FW.
PY:   - result: SUCCESS: the board already has the latest version of firmware
PY: - OPERATION #32
PY:   - type: firmware update
PY:   - target: part = right_arm, board = amc2c, name = right_arm-eb30-j4_6, device = ETH, address = 10.0.1.30:CAN0:0
PY:   - using:  required firmware version = 3.1.0, file location = ../ETH/AMC/amc2c.hex
PY:   - message: the board has an old FW which is going to be udapted.
PY:   - message: please be prepared to wait for some time ... fw program of a amc2c typically lasts 30 seconds
PY:     [error] do_firmware_program_eth(): FAILURE programming eth board @ 10.0.1.30
PY:   - result: FAILURE!! (However, the operation will be attempted with other boards until completion)
PY: - OPERATION #33
PY:   - type: firmware update
PY:   - target: part = right_arm, board = amcbldc, name = amcbldc.1, device = ETH, address = 10.0.1.30:CAN1:1
PY:   - using:  required firmware version = 2.1.0, file location = ../CAN/amcbldc/amcbldc.hex
PY:   - message: the board has an old FW which is going to be udapted.
PY:   - message: please be prepared to wait for some time ... fw program of a amcbldc typically lasts 280 seconds
PY:   - result: SUCCESS: the board has been programmed with latest firmware version
PY: - OPERATION #34
PY:   - type: firmware update
PY:   - target: part = right_arm, board = amcbldc, name = amcbldc.2, device = ETH, address = 10.0.1.30:CAN1:2
PY:   - using:  required firmware version = 2.1.0, file location = ../CAN/amcbldc/amcbldc.hex
PY:   - message: the board has an old FW which is going to be udapted.QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"

PY:   - message: please be prepared to wait for some time ... fw program of a amcbldc typically lasts 280 seconds
PY:   - result: SUCCESS: the board has been programmed with latest firmware version
PY: - OPERATION #35
PY:   - type: firmware update
PY:   - target: part = torso, board = ems4, name = torso-eb5-j0_2, device = ETH, address = 10.0.1.5:CAN0:0
PY:   - using:  required firmware version = 3.95.0, file location = ../ETH/EMS/bin/application/ems.hex
PY:   - message: the board already has the most recent FW.
PY:   - result: SUCCESS: the board already has the latest version of firmware
PY: - OPERATION #36
PY:   - type: firmware update
PY:   - target: part = torso, board = foc, name = foc.5.1, device = ETH, address = 10.0.1.5:CAN1:1
PY:   - using:  required firmware version = 3.3.37, file location = ../CAN/2foc/2foc.hex
PY:   - message: the board has an old FW which is going to be udapted.
PY:   - message: please be prepared to wait for some time ... fw program of a foc typically lasts 105 seconds
PY:   - result: SUCCESS: the board has been programmed with latest firmware version
PY: - OPERATION #37
PY:   - type: firmware update
PY:   - target: part = torso, board = foc, name = foc.5.3, device = ETH, address = 10.0.1.5:CAN1:3
PY:   - using:  required firmware version = 3.3.37, file location = ../CAN/2foc/2foc.hex
PY:   - message: the board has an old FW which is going to be udapted.
PY:   - message: please be prepared to wait for some time ... fw program of a foc typically lasts 105 seconds
PY:   - result: SUCCESS: the board has been programmed with latest firmware version
PY: - OPERATION #38
PY:   - type: firmware update
PY:   - target: part = torso, board = foc, name = foc.5.4, device = ETH, address = 10.0.1.5:CAN1:4
PY:   - using:  required firmware version = 3.3.37, file location = ../CAN/2foc/2foc.hex
PY:   - message: the board has an old FW which is going to be udapted.
PY:   - message: please be prepared to wait for some time ... fw program of a foc typically lasts 105 seconds
PY:   - result: SUCCESS: the board has been programmed with latest firmware version
PY: - OPERATION #39
PY:   - type: firmware update
PY:   - target: part = right_leg, board = ems4, name = left_leg-eb6-j0_1, device = ETH, address = 10.0.1.6:CAN0:0
PY:   - using:  required firmware version = 3.95.0, file location = ../ETH/EMS/bin/application/ems.hex
PY:   - message: the board already has the most recent FW.
PY:   - result: SUCCESS: the board already has the latest version of firmware
PY: - OPERATION #40
PY:   - type: firmware update
PY:   - target: part = right_leg, board = foc, name = foc.6.1, device = ETH, address = 10.0.1.6:CAN1:1
PY:   - using:  required firmware version = 3.3.37, file location = ../CAN/2foc/2foc.hex
PY:   - message: the board has an old FW which is going to be udapted.
PY:   - message: please be prepared to wait for some time ... fw program of a foc typically lasts 105 seconds
PY:   - result: SUCCESS: the board has been programmed with latest firmware version
PY: - OPERATION #41
PY:   - type: firmware update
PY:   - target: part = right_leg, board = foc, name = foc.6.2, device = ETH, address = 10.0.1.6:CAN1:2
PY:   - using:  required firmware version = 3.3.37, file location = ../CAN/2foc/2foc.hex
PY:   - message: the board has an old FW which is going to be udapted.
PY:   - message: please be prepared to wait for some time ... fw program of a foc typically lasts 105 seconds
PY:   - result: SUCCESS: the board has been programmed with latest firmware version
PY: - OPERATION #42
PY:   - type: firmware update
PY:   - target: part = right_leg, board = foc, name = foc.6.3, device = ETH, address = 10.0.1.6:CAN1:3
PY:   - using:  required firmware version = 3.3.37, file location = ../CAN/2foc/2foc.hex
PY:   - message: the board has an old FW which is going to be udapted.
PY:   - message: please be prepared to wait for some time ... fw program of a foc typically lasts 105 seconds
PY:   - result: SUCCESS: the board has been programmed with latest firmware version
PY: - OPERATION #43
PY:   - type: firmware update
PY:   - target: part = right_leg, board = foc, name = foc.6.4, device = ETH, address = 10.0.1.6:CAN1:4
PY:   - using:  required firmware version = 3.3.37, file location = ../CAN/2foc/2foc.hex
PY:   - message: the board has an old FW which is going to be udapted.
PY:   - message: please be prepared to wait for some time ... fw program of a foc typically lasts 105 seconds
PY:   - result: SUCCESS: the board has been programmed with latest firmware version
PY: - OPERATION #44
PY:   - type: firmware update
PY:   - target: part = right_leg, board = strain2, name = strain2.13, device = ETH, address = 10.0.1.6:CAN2:13
PY:   - using:  required firmware version = 2.3.0, file location = ../CAN/strain2/strain2.hex
PY:   - message: the board already has the most recent FW.
PY:   - result: SUCCESS: the board already has the latest version of firmware
PY: - OPERATION #45
PY:   - type: firmware update
PY:   - target: part = right_leg, board = ems4, name = left_leg-eb7-j2_3, device = ETH, address = 10.0.1.7:CAN0:0
PY:   - using:  required firmware version = 3.95.0, file location = ../ETH/EMS/bin/application/ems.hex
PY:   - message: the board already has the most recent FW.
PY:   - result: SUCCESS: the board already has the latest version of firmware
PY: - OPERATION #46
PY:   - type: firmware update
PY:   - target: part = right_leg, board = foc, name = foc.7.1, device = ETH, address = 10.0.1.7:CAN1:1
PY:   - using:  required firmware version = 3.3.37, file location = ../CAN/2foc/2foc.hex
PY:   - message: the board has an old FW which is going to be udapted.
PY:   - message: please be prepared to wait for some time ... fw program of a foc typically lasts 105 seconds
PY:   - result: SUCCESS: the board has been programmed with latest firmware version
PY: - OPERATION #47
PY:   - type: firmware update
PY:   - target: part = right_leg, board = foc, name = foc.7.2, device = ETH, address = 10.0.1.7:CAN1:2
PY:   - using:  required firmware version = 3.3.37, file location = ../CAN/2foc/2foc.hex
PY:   - message: the board has an old FW which is going to be udapted.
PY:   - message: please be prepared to wait for some time ... fw program of a foc typically lasts 105 seconds
PY:   - result: SUCCESS: the board has been programmed with latest firmware version
PY: - OPERATION #48
PY:   - type: firmware update
PY:   - target: part = right_leg, board = strain2, name = strain2.13, device = ETH, address = 10.0.1.7:CAN2:13
PY:   - using:  required firmware version = 2.3.0, file location = ../CAN/strain2/strain2.hex
PY:   - message: the board already has the most recent FW.
PY:   - result: SUCCESS: the board already has the latest version of firmware
PY: - OPERATION #49
PY:   - type: firmware update
PY:   - target: part = right_leg, board = strain2, name = strain2.14, device = ETH, address = 10.0.1.7:CAN2:14
PY:   - using:  required firmware version = 2.3.0, file location = ../CAN/strain2/strain2.hex
PY:   - message: the board already has the most recent FW.
PY:   - result: SUCCESS: the board already has the latest version of firmware
PY: - OPERATION #50
PY:   - type: firmware update
PY:   - target: part = right_leg, board = ems4, name = right_leg-eb8-j0_1, device = ETH, address = 10.0.1.8:CAN0:0
PY:   - using:  required firmware version = 3.95.0, file location = ../ETH/EMS/bin/application/ems.hex
PY:   - message: the board already has the most recent FW.
PY:   - result: SUCCESS: the board already has the latest version of firmware
PY: - OPERATION #51
PY:   - type: firmware update
PY:   - target: part = right_leg, board = foc, name = foc.8.1, device = ETH, address = 10.0.1.8:CAN1:1
PY:   - using:  required firmware version = 3.3.37, file location = ../CAN/2foc/2foc.hex
PY:   - message: the board has an old FW which is going to be udapted.
PY:   - message: please be prepared to wait for some time ... fw program of a foc typically lasts 105 seconds
PY:   - result: SUCCESS: the board has been programmed with latest firmware version
PY: - OPERATION #52
PY:   - type: firmware update
PY:   - target: part = right_leg, board = foc, name = foc.8.2, device = ETH, address = 10.0.1.8:CAN1:2QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ergocub'
IP address FOUND in .ini file, Using : "10.0.1.104"
Port Number FOUND in .ini file, Using : "3333"

PY:   - using:  required firmware version = 3.3.37, file location = ../CAN/2foc/2foc.hex
PY:   - message: the board has an old FW which is going to be udapted.
PY:   - message: please be prepared to wait for some time ... fw program of a foc typically lasts 105 seconds
PY:   - result: SUCCESS: the board has been programmed with latest firmware version
PY: - OPERATION #53
PY:   - type: firmware update
PY:   - target: part = right_leg, board = foc, name = foc.8.3, device = ETH, address = 10.0.1.8:CAN1:3
PY:   - using:  required firmware version = 3.3.37, file location = ../CAN/2foc/2foc.hex
PY:   - message: the board has an old FW which is going to be udapted.
PY:   - message: please be prepared to wait for some time ... fw program of a foc typically lasts 105 seconds
PY:   - result: SUCCESS: the board has been programmed with latest firmware version
PY: - OPERATION #54
PY:   - type: firmware update
PY:   - target: part = right_leg, board = foc, name = foc.8.4, device = ETH, address = 10.0.1.8:CAN1:4
PY:   - using:  required firmware version = 3.3.37, file location = ../CAN/2foc/2foc.hex
PY:   - message: the board has an old FW which is going to be udapted.
PY:   - message: please be prepared to wait for some time ... fw program of a foc typically lasts 105 seconds
PY:   - result: SUCCESS: the board has been programmed with latest firmware version
PY: - OPERATION #55
PY:   - type: firmware update
PY:   - target: part = right_leg, board = strain2, name = strain2.13, device = ETH, address = 10.0.1.8:CAN2:13
PY:   - using:  required firmware version = 2.3.0, file location = ../CAN/strain2/strain2.hex
PY:   - message: the board already has the most recent FW.
PY:   - result: SUCCESS: the board already has the latest version of firmware
PY: - OPERATION #56
PY:   - type: firmware update
PY:   - target: part = right_leg, board = ems4, name = right_leg-eb9-j2_3, device = ETH, address = 10.0.1.9:CAN0:0
PY:   - using:  required firmware version = 3.95.0, file location = ../ETH/EMS/bin/application/ems.hex
PY:   - message: the board already has the most recent FW.
PY:   - result: SUCCESS: the board already has the latest version of firmware
PY: - OPERATION #57
PY:   - type: firmware update
PY:   - target: part = right_leg, board = foc, name = foc.9.1, device = ETH, address = 10.0.1.9:CAN1:1
PY:   - using:  required firmware version = 3.3.37, file location = ../CAN/2foc/2foc.hex
PY:   - message: the board has an old FW which is going to be udapted.
PY:   - message: please be prepared to wait for some time ... fw program of a foc typically lasts 105 seconds
PY:   - result: SUCCESS: the board has been programmed with latest firmware version
PY: - OPERATION #58
PY:   - type: firmware update
PY:   - target: part = right_leg, board = foc, name = foc.9.2, device = ETH, address = 10.0.1.9:CAN1:2
PY:   - using:  required firmware version = 3.3.37, file location = ../CAN/2foc/2foc.hex
PY:   - message: the board has an old FW which is going to be udapted.
PY:   - message: please be prepared to wait for some time ... fw program of a foc typically lasts 105 seconds
PY:   - result: SUCCESS: the board has been programmed with latest firmware version
PY: - OPERATION #59
PY:   - type: firmware update
PY:   - target: part = right_leg, board = strain2, name = strain2.13, device = ETH, address = 10.0.1.9:CAN2:13
PY:   - using:  required firmware version = 2.3.0, file location = ../CAN/strain2/strain2.hex
PY:   - message: the board already has the most recent FW.
PY:   - result: SUCCESS: the board already has the latest version of firmware
PY: - OPERATION #60
PY:   - type: firmware update
PY:   - target: part = right_leg, board = strain2, name = strain2.14, device = ETH, address = 10.0.1.9:CAN2:14
PY:   - using:  required firmware version = 2.3.0, file location = ../CAN/strain2/strain2.hex
PY:   - message: the board already has the most recent FW.
PY:   - result: SUCCESS: the board already has the latest version of firmware
PY: --
PY: -- FINAL REPORT for update()
PY: -- Number of boards matching your criteria (w/ --part all --board all): 60
PY: -- Number of boards excluded from the above number (w/ --excludeboard none): 0
PY: -- Number of boards for which the operation was attempted: 60
PY: -- Number of boards for which the operation had success: 52
PY: -- Number of boards for which the operation failed: 8
PY: --
PY: [info] the script is over
2024-12-03 14:27:47.914231

this bash has executed: ./manageFWrobot.py -n [DEBUG] |yarp.os.ResourceFinder| configuring
[DEBUG] |yarp.os.ResourceFinder| default config file specified as network.ergoCubSN002.xml
[DEBUG] |yarp.os.ResourceFinder| checking [/usr/local/src/robot/robotology-superbuild/build/install/share/icub-firmware/scripts/network.ergoCubSN002.xml] (pwd)
[DEBUG] |yarp.os.ResourceFinder| checking [/home/ergocub/.config/yarp/robots/ergoCubSN002] (robot YARP_CONFIG_HOME)
[DEBUG] |yarp.os.ResourceFinder| checking [/home/ergocub/.local/share/yarp/robots/ergoCubSN002] (robot YARP_DATA_HOME)
[DEBUG] |yarp.os.ResourceFinder| checking [/etc/xdg/xdg-ubuntu/yarp/robots/ergoCubSN002] (robot YARP_CONFIG_DIRS)
[DEBUG] |yarp.os.ResourceFinder| checking [/etc/xdg/yarp/robots/ergoCubSN002] (robot YARP_CONFIG_DIRS)
[DEBUG] |yarp.os.ResourceFinder| checking [/usr/local/src/robot/robotology-superbuild/src/robots-configuration/ergoCubSN002/extra/robots/ergoCubSN002] (robot YARP_DATA_DIRS)
[DEBUG] |yarp.os.ResourceFinder| checking [/usr/local/src/robot/robotology-superbuild/build/install/share/yarp/robots/ergoCubSN002] (robot YARP_DATA_DIRS)
[DEBUG] |yarp.os.ResourceFinder| found /usr/local/src/robot/robotology-superbuild/build/install/share/yarp/robots/ergoCubSN002
[DEBUG] |yarp.os.ResourceFinder| checking [/usr/local/src/robot/robotology-superbuild/build/install/share/iCub/robots/ergoCubSN002] (robot YARP_DATA_DIRS)
[DEBUG] |yarp.os.ResourceFinder| checking [/usr/local/src/robot/robotology-superbuild/build/install/share/ICUBcontrib/robots/ergoCubSN002] (robot YARP_DATA_DIRS)
[DEBUG] |yarp.os.ResourceFinder| found /usr/local/src/robot/robotology-superbuild/build/install/share/ICUBcontrib/robots/ergoCubSN002
[DEBUG] |yarp.os.ResourceFinder| checking [/usr/local/src/robot/robotology-superbuild/build/install/share/ergoCub/robots/ergoCubSN002] (robot YARP_DATA_DIRS)
[DEBUG] |yarp.os.ResourceFinder| found /usr/local/src/robot/robotology-superbuild/build/install/share/ergoCub/robots/ergoCubSN002
[DEBUG] |yarp.os.ResourceFinder| checking [robots/ergoCubSN002] (robot YARP_DATA_DIRS)
[DEBUG] |yarp.os.ResourceFinder| checking [/usr/local/src/robot/robotology-superbuild/src/robots-configuration/ergoCubSN002/extra/config/path.d] (robot path.d YARP_DATA_DIRS)
[DEBUG] |yarp.os.ResourceFinder| checking [/usr/local/src/robot/robotology-superbuild/build/install/share/yarp/config/path.d] (robot path.d YARP_DATA_DIRS)
[DEBUG] |yarp.os.ResourceFinder| found /usr/local/src/robot/robotology-superbuild/build/install/share/yarp/config/path.d
[DEBUG] |yarp.os.ResourceFinder| checking [/usr/local/src/robot/robotology-superbuild/build/install/share/BipedalLocomotionFramework/robots/ergoCubSN002] (robot yarp.d)
[DEBUG] |yarp.os.ResourceFinder| checking [/usr/local/src/robot/robotology-superbuild/build/install/share/wbc/robots/ergoCubSN002] (robot yarp.d)
[DEBUG] |yarp.os.ResourceFinder| checking [/usr/local/src/robot/robotology-superbuild/build/install/share/yarp/robots/ergoCubSN002/network.ergoCubSN002.xml] (robot)
[DEBUG] |yarp.os.ResourceFinder| checking [/usr/local/src/robot/robotology-superbuild/build/install/share/ICUBcontrib/robots/ergoCubSN002/network.ergoCubSN002.xml] (robot)
[DEBUG] |yarp.os.ResourceFinder| found /usr/local/src/robot/robotology-superbuild/build/install/share/ICUBcontrib/robots/ergoCubSN002/network.ergoCubSN002.xml
[DEBUG] |yarp.os.ResourceFinder| finding file [from]

@traversaro
Copy link
Member Author

This is the update log:

(robsub) ergocub@ergocub002-lap:/usr/local/src/robot/robotology-superbuild/build/install/share/icub-firmware/scripts$ cat ../logs/log.of.FirmwareUpdater.ergoCubSN002.update.all.txt 
PY: [info] the script is executing
PY: [info] verbosity turned on for basic python only
2024-12-03 13:09:35.228321
PY: - OPERATION #1
PY:   - type: firmware update
PY:   - target: part = head, board = mc4plus, name = head-eb20-j0_1, device = ETH, address = 10.0.1.20:CAN0:0
PY:   - using:  required firmware version = 3.96.0, file location = ../ETH/MC4PLUS/bin/application/mc4plus.hex
PY:   - message: the board already has the most recent FW.
PY:   - result: SUCCESS: the board already has the latest version of firmware
PY: - OPERATION #2
PY:   - type: firmware update
PY:   - target: part = head, board = mc4plus, name = head-eb21-j2_3, device = ETH, address = 10.0.1.21:CAN0:0
PY:   - using:  required firmware version = 3.96.0, file location = ../ETH/MC4PLUS/bin/application/mc4plus.hex
PY:   - message: the board already has the most recent FW.
PY:   - result: SUCCESS: the board already has the latest version of firmware
PY: - OPERATION #3
PY:   - type: firmware update
PY:   - target: part = left_arm, board = ems4, name = left_arm-eb2-j0_1, device = ETH, address = 10.0.1.2:CAN0:0
PY:   - using:  required firmware version = 3.95.0, file location = ../ETH/EMS/bin/application/ems.hex
PY:     [error] do_firmware_verify_eth(): ERROR cannot find eth board @ 10.0.1.2
PY:     [error] do_firmware_update(): FAILURE because cannot verify board @ 10.0.1.2
PY:   - result: FAILURE!! (However, the operation will be attempted with other boards until completion)
PY: - OPERATION #4
PY:   - type: firmware update
PY:   - target: part = left_arm, board = foc, name = foc.1.1, device = ETH, address = 10.0.1.2:CAN1:1
PY:   - using:  required firmware version = 3.3.37, file location = ../CAN/2foc/2foc.hex
PY:     [error] do_firmware_verify_canovereth(): ERROR cannot find can board @ 10.0.1.2:CAN1:1
PY:     [error] do_firmware_update(): FAILURE because cannot find board @ 10.0.1.2:CAN1:1
PY:   - result: FAILURE!! (However, the operation will be attempted with other boards until completion)
PY: - OPERATION #5
PY:   - type: firmware update
PY:   - target: part = left_arm, board = foc, name = foc.1.2, device = ETH, address = 10.0.1.2:CAN1:2
PY:   - using:  required firmware version = 3.3.37, file location = ../CAN/2foc/2foc.hex
PY:     [error] do_firmware_verify_canovereth(): ERROR cannot find can board @ 10.0.1.2:CAN1:2
PY:     [error] do_firmware_update(): FAILURE because cannot find board @ 10.0.1.2:CAN1:2
PY:   - result: FAILURE!! (However, the operation will be attempted with other boards until completion)
PY: - OPERATION #6
PY:   - type: firmware update
PY:   - target: part = left_arm, board = strain2, name = strain2.13, device = ETH, address = 10.0.1.2:CAN2:13
PY:   - using:  required firmware version = 2.3.0, file location = ../CAN/strain2/strain2.hex
PY:     [error] do_firmware_verify_canovereth(): ERROR cannot find can board @ 10.0.1.2:CAN2:13
PY:     [error] do_firmware_update(): FAILURE because cannot find board @ 10.0.1.2:CAN2:13
PY:   - result: FAILURE!! (However, the operation will be attempted with other boards until completion)
PY: - OPERATION #7
PY:   - type: firmware update
PY:   - target: part = left_arm, board = ems4, name = left_arm-eb4-j2_3, device = ETH, address = 10.0.1.4:CAN0:0
PY:   - using:  required firmware version = 3.95.0, file location = ../ETH/EMS/bin/application/ems.hex
PY:   - message: the board already has the most recent FW.
PY:   - result: SUCCESS: the board already has the latest version of firmware
PY: - OPERATION #8
PY:   - type: firmware update
PY:   - target: part = left_arm, board = foc, name = foc.2.1, device = ETH, address = 10.0.1.4:CAN1:1
PY:   - using:  required firmware version = 3.3.37, file location = ../CAN/2foc/2foc.hex
PY:   - message: the board has an old FW which is going to be udapted.
PY:   - message: please be prepared to wait for some time ... fw program of a foc typically lasts 105 seconds
PY:   - result: SUCCESS: the board has been programmed with latest firmware version
PY: - OPERATION #9
PY:   - type: firmware update
PY:   - target: part = left_arm, board = foc, name = foc.2.2, device = ETH, address = 10.0.1.4:CAN1:2
PY:   - using:  required firmware version = 3.3.37, file location = ../CAN/2foc/2foc.hex
PY:   - message: the board has an old FW which is going to be udapted.
PY:   - message: please be prepared to wait for some time ... fw program of a foc typically lasts 105 seconds
PY:   - result: SUCCESS: the board has been programmed with latest firmware version
PY: - OPERATION #10
PY:   - type: firmware update
PY:   - target: part = left_arm, board = mtb4, name = mtb4.1, device = ETH, address = 10.0.1.4:CAN2:1
PY:   - using:  required firmware version = 1.23.0, file location = ../CAN/mtb4/mtb4.hex
PY:     [error] do_firmware_verify_canovereth(): ERROR cannot find can board @ 10.0.1.4:CAN2:1
PY:     [error] do_firmware_update(): FAILURE because cannot find board @ 10.0.1.4:CAN2:1
PY:   - result: FAILURE!! (However, the operation will be attempted with other boards until completion)
PY: - OPERATION #11
PY:   - type: firmware update
PY:   - target: part = left_arm, board = mc4plus, name = left_arm-eb23-j7_10, device = ETH, address = 10.0.1.23:CAN0:0
PY:   - using:  required firmware version = 3.96.0, file location = ../ETH/MC4PLUS/bin/application/mc4plus.hex
PY:   - message: the board already has the most recent FW.
PY:   - result: SUCCESS: the board already has the latest version of firmware
PY: - OPERATION #12
PY:   - type: firmware update
PY:   - target: part = left_arm, board = mc4plus, name = left_arm-eb25-j11_12, device = ETH, address = 10.0.1.25:CAN0:0
PY:   - using:  required firmware version = 3.96.0, file location = ../ETH/MC4PLUS/bin/application/mc4plus.hex
PY:   - message: the board already has the most recent FW.
PY:   - result: SUCCESS: the board already has the latest version of firmware
PY: - OPERATION #13
PY:   - type: firmware update
PY:   - target: part = left_arm, board = mtb4, name = mtb4.1, device = ETH, address = 10.0.1.25:CAN1:1
PY:   - using:  required firmware version = 1.23.0, file location = ../CAN/mtb4/mtb4.hex
PY:   - message: the board has an old FW which is going to be udapted.
PY:   - message: please be prepared to wait for some time ... fw program of a mtb4 typically lasts 280 seconds
PY:   - result: SUCCESS: the board has been programmed with latest firmware version
PY: - OPERATION #14
PY:   - type: firmware update
PY:   - target: part = left_arm, board = mtb4, name = mtb4.2, device = ETH, address = 10.0.1.25:CAN1:2
PY:   - using:  required firmware version = 1.23.0, file location = ../CAN/mtb4/mtb4.hex
PY:   - message: the board has an old FW which is going to be udapted.
PY:   - message: please be prepared to wait for some time ... fw program of a mtb4 typically lasts 280 seconds
PY:   - result: SUCCESS: the board has been programmed with latest firmware version
PY: - OPERATION #15
PY:   - type: firmware update
PY:   - target: part = left_arm, board = amc, name = left_arm-eb31-j4_6, device = ETH, address = 10.0.1.31:CAN0:0
PY:   - using:  required firmware version = 2.12.0, file location = ../ETH/AMC/amc.hex
PY:   - message: the board already has the most recent FW.
PY:   - result: SUCCESS: the board already has the latest version of firmware
PY: - OPERATION #16
PY:   - type: firmware update
PY:   - target: part = left_arm, board = amc2c, name = left_arm-eb31-j4_6, device = ETH, address = 10.0.1.31:CAN0:0
PY:   - using:  required firmware version = 3.1.0, file location = ../ETH/AMC/amc2c.hex
PY:   - message: the board has an old FW which is going to be udapted.
PY:   - message: please be prepared to wait for some time ... fw program of a amc2c typically lasts 30 seconds
PY:     [error] do_firmware_program_eth(): FAILURE programming eth board @ 10.0.1.31
PY:   - result: FAILURE!! (However, the operation will be attempted with other boards until completion)
PY: - OPERATION #17
PY:   - type: firmware update
PY:   - target: part = left_arm, board = amcbldc, name = amcbldc.1, device = ETH, address = 10.0.1.31:CAN1:1
PY:   - using:  required firmware version = 2.1.0, file location = ../CAN/amcbldc/amcbldc.hex
PY:   - message: the board has an old FW which is going to be udapted.
PY:   - message: please be prepared to wait for some time ... fw program of a amcbldc typically lasts 280 seconds
PY:   - result: SUCCESS: the board has been programmed with latest firmware version
PY: - OPERATION #18
PY:   - type: firmware update
PY:   - target: part = left_arm, board = amcbldc, name = amcbldc.2, device = ETH, address = 10.0.1.31:CAN1:2
PY:   - using:  required firmware version = 2.1.0, file location = ../CAN/amcbldc/amcbldc.hex
PY:   - message: the board has an old FW which is going to be udapted.
PY:   - message: please be prepared to wait for some time ... fw program of a amcbldc typically lasts 280 seconds
PY:   - result: SUCCESS: the board has been programmed with latest firmware version
PY: - OPERATION #19
PY:   - type: firmware update
PY:   - target: part = right_arm, board = ems4, name = right_arm-eb1-j0_1, device = ETH, address = 10.0.1.1:CAN0:0
PY:   - using:  required firmware version = 3.95.0, file location = ../ETH/EMS/bin/application/ems.hex
PY:   - message: the board already has the most recent FW.
PY:   - result: SUCCESS: the board already has the latest version of firmware
PY: - OPERATION #20
PY:   - type: firmware update
PY:   - target: part = right_arm, board = foc, name = foc.1.1, device = ETH, address = 10.0.1.1:CAN1:1
PY:   - using:  required firmware version = 3.3.37, file location = ../CAN/2foc/2foc.hex
PY:   - message: the board has an old FW which is going to be udapted.
PY:   - message: please be prepared to wait for some time ... fw program of a foc typically lasts 105 seconds
PY:   - result: SUCCESS: the board has been programmed with latest firmware version
PY: - OPERATION #21
PY:   - type: firmware update
PY:   - target: part = right_arm, board = foc, name = foc.1.2, device = ETH, address = 10.0.1.1:CAN1:2
PY:   - using:  required firmware version = 3.3.37, file location = ../CAN/2foc/2foc.hex
PY:   - message: the board has an old FW which is going to be udapted.
PY:   - message: please be prepared to wait for some time ... fw program of a foc typically lasts 105 seconds
PY:   - result: SUCCESS: the board has been programmed with latest firmware version
PY: - OPERATION #22
PY:   - type: firmware update
PY:   - target: part = right_arm, board = strain2, name = strain2.13, device = ETH, address = 10.0.1.1:CAN2:13
PY:   - using:  required firmware version = 2.3.0, file location = ../CAN/strain2/strain2.hex
PY:   - message: the board already has the most recent FW.
PY:   - result: SUCCESS: the board already has the latest version of firmware
PY: - OPERATION #23
PY:   - type: firmware update
PY:   - target: part = right_arm, board = ems4, name = right_arm-eb3-j2_3, device = ETH, address = 10.0.1.3:CAN0:0
PY:   - using:  required firmware version = 3.95.0, file location = ../ETH/EMS/bin/application/ems.hex
PY:   - message: the board already has the most recent FW.
PY:   - result: SUCCESS: the board already has the latest version of firmware
PY: - OPERATION #24
PY:   - type: firmware update
PY:   - target: part = right_arm, board = foc, name = foc.2.1, device = ETH, address = 10.0.1.3:CAN1:1
PY:   - using:  required firmware version = 3.3.37, file location = ../CAN/2foc/2foc.hex
PY:   - message: the board has an old FW which is going to be udapted.
PY:   - message: please be prepared to wait for some time ... fw program of a foc typically lasts 105 seconds
PY:   - result: SUCCESS: the board has been programmed with latest firmware version
PY: - OPERATION #25
PY:   - type: firmware update
PY:   - target: part = right_arm, board = foc, name = foc.2.2, device = ETH, address = 10.0.1.3:CAN1:2
PY:   - using:  required firmware version = 3.3.37, file location = ../CAN/2foc/2foc.hex
PY:   - message: the board has an old FW which is going to be udapted.
PY:   - message: please be prepared to wait for some time ... fw program of a foc typically lasts 105 seconds
PY:   - result: SUCCESS: the board has been programmed with latest firmware version
PY: - OPERATION #26
PY:   - type: firmware update
PY:   - target: part = right_arm, board = mtb4, name = mtb4.1, device = ETH, address = 10.0.1.3:CAN2:1
PY:   - using:  required firmware version = 1.23.0, file location = ../CAN/mtb4/mtb4.hex
PY:     [error] do_firmware_verify_canovereth(): ERROR cannot find can board @ 10.0.1.3:CAN2:1
PY:     [error] do_firmware_update(): FAILURE because cannot find board @ 10.0.1.3:CAN2:1
PY:   - result: FAILURE!! (However, the operation will be attempted with other boards until completion)
PY: - OPERATION #27
PY:   - type: firmware update
PY:   - target: part = right_arm, board = mc4plus, name = right_arm-eb22-j7_10, device = ETH, address = 10.0.1.22:CAN0:0
PY:   - using:  required firmware version = 3.96.0, file location = ../ETH/MC4PLUS/bin/application/mc4plus.hex
PY:   - message: the board already has the most recent FW.
PY:   - result: SUCCESS: the board already has the latest version of firmware
PY: - OPERATION #28
PY:   - type: firmware update
PY:   - target: part = right_arm, board = mc4plus, name = right_arm-eb24-j11_12, device = ETH, address = 10.0.1.24:CAN0:0
PY:   - using:  required firmware version = 3.96.0, file location = ../ETH/MC4PLUS/bin/application/mc4plus.hex
PY:   - message: the board already has the most recent FW.
PY:   - result: SUCCESS: the board already has the latest version of firmware
PY: - OPERATION #29
PY:   - type: firmware update
PY:   - target: part = right_arm, board = mtb4, name = mtb4.1, device = ETH, address = 10.0.1.24:CAN1:1
PY:   - using:  required firmware version = 1.23.0, file location = ../CAN/mtb4/mtb4.hex
PY:   - message: the board has an old FW which is going to be udapted.
PY:   - message: please be prepared to wait for some time ... fw program of a mtb4 typically lasts 280 seconds
PY:   - result: SUCCESS: the board has been programmed with latest firmware version
PY: - OPERATION #30
PY:   - type: firmware update
PY:   - target: part = right_arm, board = mtb4, name = mtb4.2, device = ETH, address = 10.0.1.24:CAN1:2
PY:   - using:  required firmware version = 1.23.0, file location = ../CAN/mtb4/mtb4.hex
PY:   - message: the board has an old FW which is going to be udapted.
PY:   - message: please be prepared to wait for some time ... fw program of a mtb4 typically lasts 280 seconds
PY:   - result: SUCCESS: the board has been programmed with latest firmware version
PY: - OPERATION #31
PY:   - type: firmware update
PY:   - target: part = right_arm, board = amc, name = right_arm-eb30-j4_6, device = ETH, address = 10.0.1.30:CAN0:0
PY:   - using:  required firmware version = 2.12.0, file location = ../ETH/AMC/amc.hex
PY:   - message: the board already has the most recent FW.
PY:   - result: SUCCESS: the board already has the latest version of firmware
PY: - OPERATION #32
PY:   - type: firmware update
PY:   - target: part = right_arm, board = amc2c, name = right_arm-eb30-j4_6, device = ETH, address = 10.0.1.30:CAN0:0
PY:   - using:  required firmware version = 3.1.0, file location = ../ETH/AMC/amc2c.hex
PY:   - message: the board has an old FW which is going to be udapted.
PY:   - message: please be prepared to wait for some time ... fw program of a amc2c typically lasts 30 seconds
PY:     [error] do_firmware_program_eth(): FAILURE programming eth board @ 10.0.1.30
PY:   - result: FAILURE!! (However, the operation will be attempted with other boards until completion)
PY: - OPERATION #33
PY:   - type: firmware update
PY:   - target: part = right_arm, board = amcbldc, name = amcbldc.1, device = ETH, address = 10.0.1.30:CAN1:1
PY:   - using:  required firmware version = 2.1.0, file location = ../CAN/amcbldc/amcbldc.hex
PY:   - message: the board has an old FW which is going to be udapted.
PY:   - message: please be prepared to wait for some time ... fw program of a amcbldc typically lasts 280 seconds
PY:   - result: SUCCESS: the board has been programmed with latest firmware version
PY: - OPERATION #34
PY:   - type: firmware update
PY:   - target: part = right_arm, board = amcbldc, name = amcbldc.2, device = ETH, address = 10.0.1.30:CAN1:2
PY:   - using:  required firmware version = 2.1.0, file location = ../CAN/amcbldc/amcbldc.hex
PY:   - message: the board has an old FW which is going to be udapted.
PY:   - message: please be prepared to wait for some time ... fw program of a amcbldc typically lasts 280 seconds
PY:   - result: SUCCESS: the board has been programmed with latest firmware version
PY: - OPERATION #35
PY:   - type: firmware update
PY:   - target: part = torso, board = ems4, name = torso-eb5-j0_2, device = ETH, address = 10.0.1.5:CAN0:0
PY:   - using:  required firmware version = 3.95.0, file location = ../ETH/EMS/bin/application/ems.hex
PY:   - message: the board already has the most recent FW.
PY:   - result: SUCCESS: the board already has the latest version of firmware
PY: - OPERATION #36
PY:   - type: firmware update
PY:   - target: part = torso, board = foc, name = foc.5.1, device = ETH, address = 10.0.1.5:CAN1:1
PY:   - using:  required firmware version = 3.3.37, file location = ../CAN/2foc/2foc.hex
PY:   - message: the board has an old FW which is going to be udapted.
PY:   - message: please be prepared to wait for some time ... fw program of a foc typically lasts 105 seconds
PY:   - result: SUCCESS: the board has been programmed with latest firmware version
PY: - OPERATION #37
PY:   - type: firmware update
PY:   - target: part = torso, board = foc, name = foc.5.3, device = ETH, address = 10.0.1.5:CAN1:3
PY:   - using:  required firmware version = 3.3.37, file location = ../CAN/2foc/2foc.hex
PY:   - message: the board has an old FW which is going to be udapted.
PY:   - message: please be prepared to wait for some time ... fw program of a foc typically lasts 105 seconds
PY:   - result: SUCCESS: the board has been programmed with latest firmware version
PY: - OPERATION #38
PY:   - type: firmware update
PY:   - target: part = torso, board = foc, name = foc.5.4, device = ETH, address = 10.0.1.5:CAN1:4
PY:   - using:  required firmware version = 3.3.37, file location = ../CAN/2foc/2foc.hex
PY:   - message: the board has an old FW which is going to be udapted.
PY:   - message: please be prepared to wait for some time ... fw program of a foc typically lasts 105 seconds
PY:   - result: SUCCESS: the board has been programmed with latest firmware version
PY: - OPERATION #39
PY:   - type: firmware update
PY:   - target: part = right_leg, board = ems4, name = left_leg-eb6-j0_1, device = ETH, address = 10.0.1.6:CAN0:0
PY:   - using:  required firmware version = 3.95.0, file location = ../ETH/EMS/bin/application/ems.hex
PY:   - message: the board already has the most recent FW.
PY:   - result: SUCCESS: the board already has the latest version of firmware
PY: - OPERATION #40
PY:   - type: firmware update
PY:   - target: part = right_leg, board = foc, name = foc.6.1, device = ETH, address = 10.0.1.6:CAN1:1
PY:   - using:  required firmware version = 3.3.37, file location = ../CAN/2foc/2foc.hex
PY:   - message: the board has an old FW which is going to be udapted.
PY:   - message: please be prepared to wait for some time ... fw program of a foc typically lasts 105 seconds
PY:   - result: SUCCESS: the board has been programmed with latest firmware version
PY: - OPERATION #41
PY:   - type: firmware update
PY:   - target: part = right_leg, board = foc, name = foc.6.2, device = ETH, address = 10.0.1.6:CAN1:2
PY:   - using:  required firmware version = 3.3.37, file location = ../CAN/2foc/2foc.hex
PY:   - message: the board has an old FW which is going to be udapted.
PY:   - message: please be prepared to wait for some time ... fw program of a foc typically lasts 105 seconds
PY:   - result: SUCCESS: the board has been programmed with latest firmware version
PY: - OPERATION #42
PY:   - type: firmware update
PY:   - target: part = right_leg, board = foc, name = foc.6.3, device = ETH, address = 10.0.1.6:CAN1:3
PY:   - using:  required firmware version = 3.3.37, file location = ../CAN/2foc/2foc.hex
PY:   - message: the board has an old FW which is going to be udapted.
PY:   - message: please be prepared to wait for some time ... fw program of a foc typically lasts 105 seconds
PY:   - result: SUCCESS: the board has been programmed with latest firmware version
PY: - OPERATION #43
PY:   - type: firmware update
PY:   - target: part = right_leg, board = foc, name = foc.6.4, device = ETH, address = 10.0.1.6:CAN1:4
PY:   - using:  required firmware version = 3.3.37, file location = ../CAN/2foc/2foc.hex
PY:   - message: the board has an old FW which is going to be udapted.
PY:   - message: please be prepared to wait for some time ... fw program of a foc typically lasts 105 seconds
PY:   - result: SUCCESS: the board has been programmed with latest firmware version
PY: - OPERATION #44
PY:   - type: firmware update
PY:   - target: part = right_leg, board = strain2, name = strain2.13, device = ETH, address = 10.0.1.6:CAN2:13
PY:   - using:  required firmware version = 2.3.0, file location = ../CAN/strain2/strain2.hex
PY:   - message: the board already has the most recent FW.
PY:   - result: SUCCESS: the board already has the latest version of firmware
PY: - OPERATION #45
PY:   - type: firmware update
PY:   - target: part = right_leg, board = ems4, name = left_leg-eb7-j2_3, device = ETH, address = 10.0.1.7:CAN0:0
PY:   - using:  required firmware version = 3.95.0, file location = ../ETH/EMS/bin/application/ems.hex
PY:   - message: the board already has the most recent FW.
PY:   - result: SUCCESS: the board already has the latest version of firmware
PY: - OPERATION #46
PY:   - type: firmware update
PY:   - target: part = right_leg, board = foc, name = foc.7.1, device = ETH, address = 10.0.1.7:CAN1:1
PY:   - using:  required firmware version = 3.3.37, file location = ../CAN/2foc/2foc.hex
PY:   - message: the board has an old FW which is going to be udapted.
PY:   - message: please be prepared to wait for some time ... fw program of a foc typically lasts 105 seconds
PY:   - result: SUCCESS: the board has been programmed with latest firmware version
PY: - OPERATION #47
PY:   - type: firmware update
PY:   - target: part = right_leg, board = foc, name = foc.7.2, device = ETH, address = 10.0.1.7:CAN1:2
PY:   - using:  required firmware version = 3.3.37, file location = ../CAN/2foc/2foc.hex
PY:   - message: the board has an old FW which is going to be udapted.
PY:   - message: please be prepared to wait for some time ... fw program of a foc typically lasts 105 seconds
PY:   - result: SUCCESS: the board has been programmed with latest firmware version
PY: - OPERATION #48
PY:   - type: firmware update
PY:   - target: part = right_leg, board = strain2, name = strain2.13, device = ETH, address = 10.0.1.7:CAN2:13
PY:   - using:  required firmware version = 2.3.0, file location = ../CAN/strain2/strain2.hex
PY:   - message: the board already has the most recent FW.
PY:   - result: SUCCESS: the board already has the latest version of firmware
PY: - OPERATION #49
PY:   - type: firmware update
PY:   - target: part = right_leg, board = strain2, name = strain2.14, device = ETH, address = 10.0.1.7:CAN2:14
PY:   - using:  required firmware version = 2.3.0, file location = ../CAN/strain2/strain2.hex
PY:   - message: the board already has the most recent FW.
PY:   - result: SUCCESS: the board already has the latest version of firmware
PY: - OPERATION #50
PY:   - type: firmware update
PY:   - target: part = right_leg, board = ems4, name = right_leg-eb8-j0_1, device = ETH, address = 10.0.1.8:CAN0:0
PY:   - using:  required firmware version = 3.95.0, file location = ../ETH/EMS/bin/application/ems.hex
PY:   - message: the board already has the most recent FW.
PY:   - result: SUCCESS: the board already has the latest version of firmware
PY: - OPERATION #51
PY:   - type: firmware update
PY:   - target: part = right_leg, board = foc, name = foc.8.1, device = ETH, address = 10.0.1.8:CAN1:1
PY:   - using:  required firmware version = 3.3.37, file location = ../CAN/2foc/2foc.hex
PY:   - message: the board has an old FW which is going to be udapted.
PY:   - message: please be prepared to wait for some time ... fw program of a foc typically lasts 105 seconds
PY:   - result: SUCCESS: the board has been programmed with latest firmware version
PY: - OPERATION #52
PY:   - type: firmware update
PY:   - target: part = right_leg, board = foc, name = foc.8.2, device = ETH, address = 10.0.1.8:CAN1:2
PY:   - using:  required firmware version = 3.3.37, file location = ../CAN/2foc/2foc.hex
PY:   - message: the board has an old FW which is going to be udapted.
PY:   - message: please be prepared to wait for some time ... fw program of a foc typically lasts 105 seconds
PY:   - result: SUCCESS: the board has been programmed with latest firmware version
PY: - OPERATION #53
PY:   - type: firmware update
PY:   - target: part = right_leg, board = foc, name = foc.8.3, device = ETH, address = 10.0.1.8:CAN1:3
PY:   - using:  required firmware version = 3.3.37, file location = ../CAN/2foc/2foc.hex
PY:   - message: the board has an old FW which is going to be udapted.
PY:   - message: please be prepared to wait for some time ... fw program of a foc typically lasts 105 seconds
PY:   - result: SUCCESS: the board has been programmed with latest firmware version
PY: - OPERATION #54
PY:   - type: firmware update
PY:   - target: part = right_leg, board = foc, name = foc.8.4, device = ETH, address = 10.0.1.8:CAN1:4
PY:   - using:  required firmware version = 3.3.37, file location = ../CAN/2foc/2foc.hex
PY:   - message: the board has an old FW which is going to be udapted.
PY:   - message: please be prepared to wait for some time ... fw program of a foc typically lasts 105 seconds
PY:   - result: SUCCESS: the board has been programmed with latest firmware version
PY: - OPERATION #55
PY:   - type: firmware update
PY:   - target: part = right_leg, board = strain2, name = strain2.13, device = ETH, address = 10.0.1.8:CAN2:13
PY:   - using:  required firmware version = 2.3.0, file location = ../CAN/strain2/strain2.hex
PY:   - message: the board already has the most recent FW.
PY:   - result: SUCCESS: the board already has the latest version of firmware
PY: - OPERATION #56
PY:   - type: firmware update
PY:   - target: part = right_leg, board = ems4, name = right_leg-eb9-j2_3, device = ETH, address = 10.0.1.9:CAN0:0
PY:   - using:  required firmware version = 3.95.0, file location = ../ETH/EMS/bin/application/ems.hex
PY:   - message: the board already has the most recent FW.
PY:   - result: SUCCESS: the board already has the latest version of firmware
PY: - OPERATION #57
PY:   - type: firmware update
PY:   - target: part = right_leg, board = foc, name = foc.9.1, device = ETH, address = 10.0.1.9:CAN1:1
PY:   - using:  required firmware version = 3.3.37, file location = ../CAN/2foc/2foc.hex
PY:   - message: the board has an old FW which is going to be udapted.
PY:   - message: please be prepared to wait for some time ... fw program of a foc typically lasts 105 seconds
PY:   - result: SUCCESS: the board has been programmed with latest firmware version
PY: - OPERATION #58
PY:   - type: firmware update
PY:   - target: part = right_leg, board = foc, name = foc.9.2, device = ETH, address = 10.0.1.9:CAN1:2
PY:   - using:  required firmware version = 3.3.37, file location = ../CAN/2foc/2foc.hex
PY:   - message: the board has an old FW which is going to be udapted.
PY:   - message: please be prepared to wait for some time ... fw program of a foc typically lasts 105 seconds
PY:   - result: SUCCESS: the board has been programmed with latest firmware version
PY: - OPERATION #59
PY:   - type: firmware update
PY:   - target: part = right_leg, board = strain2, name = strain2.13, device = ETH, address = 10.0.1.9:CAN2:13
PY:   - using:  required firmware version = 2.3.0, file location = ../CAN/strain2/strain2.hex
PY:   - message: the board already has the most recent FW.
PY:   - result: SUCCESS: the board already has the latest version of firmware
PY: - OPERATION #60
PY:   - type: firmware update
PY:   - target: part = right_leg, board = strain2, name = strain2.14, device = ETH, address = 10.0.1.9:CAN2:14
PY:   - using:  required firmware version = 2.3.0, file location = ../CAN/strain2/strain2.hex
PY:   - message: the board already has the most recent FW.
PY:   - result: SUCCESS: the board already has the latest version of firmware
PY: --
PY: -- FINAL REPORT for update()
PY: -- Number of boards matching your criteria (w/ --part all --board all): 60
PY: -- Number of boards excluded from the above number (w/ --excludeboard none): 0
PY: -- Number of boards for which the operation was attempted: 60
PY: -- Number of boards for which the operation had success: 52
PY: -- Number of boards for which the operation failed: 8
PY: --
PY: [info] the script is over
2024-12-03 14:27:47.914231

@traversaro
Copy link
Member Author

Log just of failures:

PY: - OPERATION #3
PY:   - type: firmware update
PY:   - target: part = left_arm, board = ems4, name = left_arm-eb2-j0_1, device = ETH, address = 10.0.1.2:CAN0:0
PY:   - using:  required firmware version = 3.95.0, file location = ../ETH/EMS/bin/application/ems.hex
PY:     [error] do_firmware_verify_eth(): ERROR cannot find eth board @ 10.0.1.2
PY:     [error] do_firmware_update(): FAILURE because cannot verify board @ 10.0.1.2
PY:   - result: FAILURE!! (However, the operation will be attempted with other boards until completion)
PY: - OPERATION #4
PY:   - type: firmware update
PY:   - target: part = left_arm, board = foc, name = foc.1.1, device = ETH, address = 10.0.1.2:CAN1:1
PY:   - using:  required firmware version = 3.3.37, file location = ../CAN/2foc/2foc.hex
PY:     [error] do_firmware_verify_canovereth(): ERROR cannot find can board @ 10.0.1.2:CAN1:1
PY:     [error] do_firmware_update(): FAILURE because cannot find board @ 10.0.1.2:CAN1:1
PY:   - result: FAILURE!! (However, the operation will be attempted with other boards until completion)
PY: - OPERATION #5
PY:   - type: firmware update
PY:   - target: part = left_arm, board = foc, name = foc.1.2, device = ETH, address = 10.0.1.2:CAN1:2
PY:   - using:  required firmware version = 3.3.37, file location = ../CAN/2foc/2foc.hex
PY:     [error] do_firmware_verify_canovereth(): ERROR cannot find can board @ 10.0.1.2:CAN1:2
PY:     [error] do_firmware_update(): FAILURE because cannot find board @ 10.0.1.2:CAN1:2
PY:   - result: FAILURE!! (However, the operation will be attempted with other boards until completion)
PY: - OPERATION #6
PY:   - type: firmware update
PY:   - target: part = left_arm, board = strain2, name = strain2.13, device = ETH, address = 10.0.1.2:CAN2:13
PY:   - using:  required firmware version = 2.3.0, file location = ../CAN/strain2/strain2.hex
PY:     [error] do_firmware_verify_canovereth(): ERROR cannot find can board @ 10.0.1.2:CAN2:13
PY:     [error] do_firmware_update(): FAILURE because cannot find board @ 10.0.1.2:CAN2:13
PY:   - result: FAILURE!! (However, the operation will be attempted with other boards until completion)
PY: - OPERATION #10
PY:   - type: firmware update
PY:   - target: part = left_arm, board = mtb4, name = mtb4.1, device = ETH, address = 10.0.1.4:CAN2:1
PY:   - using:  required firmware version = 1.23.0, file location = ../CAN/mtb4/mtb4.hex
PY:     [error] do_firmware_verify_canovereth(): ERROR cannot find can board @ 10.0.1.4:CAN2:1
PY:     [error] do_firmware_update(): FAILURE because cannot find board @ 10.0.1.4:CAN2:1
PY:   - result: FAILURE!! (However, the operation will be attempted with other boards until completion)
PY: - OPERATION #16
PY:   - type: firmware update
PY:   - target: part = left_arm, board = amc2c, name = left_arm-eb31-j4_6, device = ETH, address = 10.0.1.31:CAN0:0
PY:   - using:  required firmware version = 3.1.0, file location = ../ETH/AMC/amc2c.hex
PY:   - message: the board has an old FW which is going to be udapted.
PY:   - message: please be prepared to wait for some time ... fw program of a amc2c typically lasts 30 seconds
PY:     [error] do_firmware_program_eth(): FAILURE programming eth board @ 10.0.1.31
PY:   - result: FAILURE!! (However, the operation will be attempted with other boards until completion)
PY: - OPERATION #26
PY:   - type: firmware update
PY:   - target: part = right_arm, board = mtb4, name = mtb4.1, device = ETH, address = 10.0.1.3:CAN2:1
PY:   - using:  required firmware version = 1.23.0, file location = ../CAN/mtb4/mtb4.hex
PY:     [error] do_firmware_verify_canovereth(): ERROR cannot find can board @ 10.0.1.3:CAN2:1
PY:     [error] do_firmware_update(): FAILURE because cannot find board @ 10.0.1.3:CAN2:1
PY:   - result: FAILURE!! (However, the operation will be attempted with other boards until completion)
PY: - OPERATION #32
PY:   - type: firmware update
PY:   - target: part = right_arm, board = amc2c, name = right_arm-eb30-j4_6, device = ETH, address = 10.0.1.30:CAN0:0
PY:   - using:  required firmware version = 3.1.0, file location = ../ETH/AMC/amc2c.hex
PY:   - message: the board has an old FW which is going to be udapted.
PY:   - message: please be prepared to wait for some time ... fw program of a amc2c typically lasts 30 seconds
PY:     [error] do_firmware_program_eth(): FAILURE programming eth board @ 10.0.1.30
PY:   - result: FAILURE!! (However, the operation will be attempted with other boards until completion)

@traversaro
Copy link
Member Author

Ok, we were able to identify and solve (manually) the issues:

PY: - OPERATION #3
PY:   - type: firmware update
PY:   - target: part = left_arm, board = ems4, name = left_arm-eb2-j0_1, device = ETH, address = 10.0.1.2:CAN0:0
PY:   - using:  required firmware version = 3.95.0, file location = ../ETH/EMS/bin/application/ems.hex
PY:     [error] do_firmware_verify_eth(): ERROR cannot find eth board @ 10.0.1.2
PY:     [error] do_firmware_update(): FAILURE because cannot verify board @ 10.0.1.2
PY:   - result: FAILURE!! (However, the operation will be attempted with other boards until completion)
PY: - OPERATION #4
PY:   - type: firmware update
PY:   - target: part = left_arm, board = foc, name = foc.1.1, device = ETH, address = 10.0.1.2:CAN1:1
PY:   - using:  required firmware version = 3.3.37, file location = ../CAN/2foc/2foc.hex
PY:     [error] do_firmware_verify_canovereth(): ERROR cannot find can board @ 10.0.1.2:CAN1:1
PY:     [error] do_firmware_update(): FAILURE because cannot find board @ 10.0.1.2:CAN1:1
PY:   - result: FAILURE!! (However, the operation will be attempted with other boards until completion)
PY: - OPERATION #5
PY:   - type: firmware update
PY:   - target: part = left_arm, board = foc, name = foc.1.2, device = ETH, address = 10.0.1.2:CAN1:2
PY:   - using:  required firmware version = 3.3.37, file location = ../CAN/2foc/2foc.hex
PY:     [error] do_firmware_verify_canovereth(): ERROR cannot find can board @ 10.0.1.2:CAN1:2
PY:     [error] do_firmware_update(): FAILURE because cannot find board @ 10.0.1.2:CAN1:2
PY:   - result: FAILURE!! (However, the operation will be attempted with other boards until completion)
PY: - OPERATION #6
PY:   - type: firmware update
PY:   - target: part = left_arm, board = strain2, name = strain2.13, device = ETH, address = 10.0.1.2:CAN2:13
PY:   - using:  required firmware version = 2.3.0, file location = ../CAN/strain2/strain2.hex
PY:     [error] do_firmware_verify_canovereth(): ERROR cannot find can board @ 10.0.1.2:CAN2:13
PY:     [error] do_firmware_update(): FAILURE because cannot find board @ 10.0.1.2:CAN2:13
PY:   - result: FAILURE!! (However, the operation will be attempted with other boards until completion)

All of this were not reachable as the 10.0.1.2 EMS could not be reached. Probably something went wrong in a previous attempt to update, and then the 10.0.1.2 could not be reached. Thanks to @AntonioConsilvio suggestion of trying to run the "Discover" right after the board were turned on, so that it was still in eUpdater state, and after that we manually uploaded the new firmware, and then we were able to update that board and all the CAN boards connected to it.

PY: - OPERATION #10
PY:   - type: firmware update
PY:   - target: part = left_arm, board = mtb4, name = mtb4.1, device = ETH, address = 10.0.1.4:CAN2:1
PY:   - using:  required firmware version = 1.23.0, file location = ../CAN/mtb4/mtb4.hex
PY:     [error] do_firmware_verify_canovereth(): ERROR cannot find can board @ 10.0.1.4:CAN2:1
PY:     [error] do_firmware_update(): FAILURE because cannot find board @ 10.0.1.4:CAN2:1
PY:   - result: FAILURE!! (However, the operation will be attempted with other boards until completion)
PY: - OPERATION #26
PY:   - type: firmware update
PY:   - target: part = right_arm, board = mtb4, name = mtb4.1, device = ETH, address = 10.0.1.3:CAN2:1
PY:   - using:  required firmware version = 1.23.0, file location = ../CAN/mtb4/mtb4.hex
PY:     [error] do_firmware_verify_canovereth(): ERROR cannot find can board @ 10.0.1.3:CAN2:1
PY:     [error] do_firmware_update(): FAILURE because cannot find board @ 10.0.1.3:CAN2:1
PY:   - result: FAILURE!! (However, the operation will be attempted with other boards until completion)

I suspect there is something wrong in the network.ergoCubSN002.xml file:

There, the board is marked as mtb4 (and this is the information used by the FirmwareUpdater script). However, in the FirmwareUpdater GUI the board is advertised as mtb4c . As I guessed that the network.ergoCubSN002.xml file is wrong, I manually updated the mtb4c.hex file instead of the mtb4.hex file suggested by the FirmwareUpdater scripts.

PY: - OPERATION #16
PY:   - type: firmware update
PY:   - target: part = left_arm, board = amc2c, name = left_arm-eb31-j4_6, device = ETH, address = 10.0.1.31:CAN0:0
PY:   - using:  required firmware version = 3.1.0, file location = ../ETH/AMC/amc2c.hex
PY:   - message: the board has an old FW which is going to be udapted.
PY:   - message: please be prepared to wait for some time ... fw program of a amc2c typically lasts 30 seconds
PY:     [error] do_firmware_program_eth(): FAILURE programming eth board @ 10.0.1.31
PY:   - result: FAILURE!! (However, the operation will be attempted with other boards until completion)
PY: - OPERATION #32
PY:   - type: firmware update
PY:   - target: part = right_arm, board = amc2c, name = right_arm-eb30-j4_6, device = ETH, address = 10.0.1.30:CAN0:0
PY:   - using:  required firmware version = 3.1.0, file location = ../ETH/AMC/amc2c.hex
PY:   - message: the board has an old FW which is going to be udapted.
PY:   - message: please be prepared to wait for some time ... fw program of a amc2c typically lasts 30 seconds
PY:     [error] do_firmware_program_eth(): FAILURE programming eth board @ 10.0.1.30
PY:   - result: FAILURE!! (However, the operation will be attempted with other boards until completion)

I think this is a similar problem to the previos one. The network.ergoCubSN002.xml reports the boards as amc2c , but the FirmwareUpdater gui reports the board as amc . On this one @S-Dafarra was a bit more worried to just go on and decided which firmware to upload, so we asked to @MSECode and he suggested to follow what the FirmwareUpdater was suggesting, so we uploaded the amc firmware.

@traversaro
Copy link
Member Author

Fix for the latest two problems was attempted (but still needs to be discussed) in robotology/robots-configuration#693 . For the first issue, probably it was a temporary issue (probably also related to the workaround used to address #178 (comment)) so once the last two are solved I think we can close the issue.

@marcoaccame
Copy link
Contributor

marcoaccame commented Dec 4, 2024

The network.ergoCubSN002.xml reports the boards as amc2c , but the FirmwareUpdater gui reports the board as amc . On this one @S-Dafarra was a bit more worried to just go on and decided which firmware to upload, so we asked to @MSECode and he suggested to follow what the FirmwareUpdater was suggesting, so we uploaded the amc firmware.

You need to upload both amc.hex and amc2c.hex because the former is the application that talks w/ YRI and the latter the driver for the motor.

To clarify the above, I have planned to rename the two binaries so that they respectively will be: amc.app.yri.hex and amc.app.mot.hex.

Having said that, it is possible to upload both the binaries w/ the GUI mode of FirmwareUpdater but I don't know how this double update on the same IP address has been mapped in the network.ergoCubSN002.xml file in the recent clean up of the automatic update.

I will check.

@isorrentino
Copy link
Contributor

I tried to launch the script on ergoCubSN000 but I get this error

rgocub@ergocub-torso:/usr/local/src/robot/robotology-superbuild/build/install/share/icub-firmware/scripts$ bash FirmwareUpdater.script.update.all.sh 



This script is about to install the standard FW binary on all the boards of ergoCubSN000
Continue? (Y/N): y
this bash is executing: ./manageFWrobot.py -n [DEBUG] |yarp.os.ResourceFinder| configuring
[DEBUG] |yarp.os.ResourceFinder| default config file specified as network.ergoCubSN000.xml
[DEBUG] |yarp.os.ResourceFinder| checking [/usr/local/src/robot/robotology-superbuild/build/install/share/icub-firmware/scripts/network.ergoCubSN000.xml] (pwd)
[DEBUG] |yarp.os.ResourceFinder| checking [/home/ergocub/.config/yarp/robots/ergoCubSN000] (robot YARP_CONFIG_HOME)
[DEBUG] |yarp.os.ResourceFinder| checking [/home/ergocub/.local/share/yarp/robots/ergoCubSN000] (robot YARP_DATA_HOME)
[DEBUG] |yarp.os.ResourceFinder| checking [/etc/xdg/yarp/robots/ergoCubSN000] (robot YARP_CONFIG_DIRS)
[DEBUG] |yarp.os.ResourceFinder| checking [/usr/local/src/robot/robotology-superbuild/src/robots-configuration/ergoCubSN000/extra/robots/ergoCubSN000] (robot YARP_DATA_DIRS)
[DEBUG] |yarp.os.ResourceFinder| checking [/usr/local/src/robot/robotology-superbuild/build/install/share/yarp/robots/ergoCubSN000] (robot YARP_DATA_DIRS)
[DEBUG] |yarp.os.ResourceFinder| found /usr/local/src/robot/robotology-superbuild/build/install/share/yarp/robots/ergoCubSN000
[DEBUG] |yarp.os.ResourceFinder| checking [/usr/local/src/robot/robotology-superbuild/build/install/share/iCub/robots/ergoCubSN000] (robot YARP_DATA_DIRS)
[DEBUG] |yarp.os.ResourceFinder| checking [/usr/local/src/robot/robotology-superbuild/build/install/share/ICUBcontrib/robots/ergoCubSN000] (robot YARP_DATA_DIRS)
[DEBUG] |yarp.os.ResourceFinder| found /usr/local/src/robot/robotology-superbuild/build/install/share/ICUBcontrib/robots/ergoCubSN000
[DEBUG] |yarp.os.ResourceFinder| checking [/usr/local/src/robot/robotology-superbuild/build/install/share/ergoCub/robots/ergoCubSN000] (robot YARP_DATA_DIRS)
[DEBUG] |yarp.os.ResourceFinder| found /usr/local/src/robot/robotology-superbuild/build/install/share/ergoCub/robots/ergoCubSN000
[DEBUG] |yarp.os.ResourceFinder| checking [/usr/local/src/robot/robotology-superbuild/src/icub-tests/suites/robots/ergoCubSN000] (robot YARP_DATA_DIRS)
[DEBUG] |yarp.os.ResourceFinder| checking [robots/ergoCubSN000] (robot YARP_DATA_DIRS)
[DEBUG] |yarp.os.ResourceFinder| checking [/usr/local/src/robot/yarp-devices-ros2/build/share/yarp/robots/ergoCubSN000] (robot YARP_DATA_DIRS)
[DEBUG] |yarp.os.ResourceFinder| checking [/usr/local/src/robot/yarp-devices-ros2/build/share/yarp-devices-ros2/robots/ergoCubSN000] (robot YARP_DATA_DIRS)
[DEBUG] |yarp.os.ResourceFinder| checking [/usr/local/src/robot/robotology-superbuild/src/robots-configuration/ergoCubSN000/extra/config/path.d] (robot path.d YARP_DATA_DIRS)
[DEBUG] |yarp.os.ResourceFinder| checking [/usr/local/src/robot/robotology-superbuild/build/install/share/yarp/config/path.d] (robot path.d YARP_DATA_DIRS)
[DEBUG] |yarp.os.ResourceFinder| found /usr/local/src/robot/robotology-superbuild/build/install/share/yarp/config/path.d
[DEBUG] |yarp.os.ResourceFinder| checking [/usr/local/src/robot/robotology-superbuild/build/install/share/BipedalLocomotionFramework/robots/ergoCubSN000] (robot yarp.d)
[DEBUG] |yarp.os.ResourceFinder| checking [/usr/local/src/robot/robotology-superbuild/build/install/share/wbc/robots/ergoCubSN000] (robot yarp.d)
[DEBUG] |yarp.os.ResourceFinder| checking [/usr/local/src/robot/robotology-superbuild/build/install/share/yarp/robots/ergoCubSN000/network.ergoCubSN000.xml] (robot)
[DEBUG] |yarp.os.ResourceFinder| checking [/usr/local/src/robot/robotology-superbuild/build/install/share/ICUBcontrib/robots/ergoCubSN000/network.ergoCubSN000.xml] (robot)
[DEBUG] |yarp.os.ResourceFinder| found /usr/local/src/robot/robotology-superbuild/build/install/share/ICUBcontrib/robots/ergoCubSN000/network.ergoCubSN000.xml
[DEBUG] |yarp.os.ResourceFinder| finding file [from]
"/usr/local/src/robot/robotology-superbuild/build/install/share/ICUBcontrib/robots/ergoCubSN000/network.ergoCubSN000.xml" -f ../info/firmware.info.xml -p all -a update | tee ../logs/log.of.FirmwareUpdater.ergoCubSN000.update.all.txt

FirmwareUpdater.script.update.all.sh: line 16: ./manageFWrobot.py: No such file or directory

this bash has executed: ./manageFWrobot.py -n [DEBUG] |yarp.os.ResourceFinder| configuring
[DEBUG] |yarp.os.ResourceFinder| default config file specified as network.ergoCubSN000.xml
[DEBUG] |yarp.os.ResourceFinder| checking [/usr/local/src/robot/robotology-superbuild/build/install/share/icub-firmware/scripts/network.ergoCubSN000.xml] (pwd)
[DEBUG] |yarp.os.ResourceFinder| checking [/home/ergocub/.config/yarp/robots/ergoCubSN000] (robot YARP_CONFIG_HOME)
[DEBUG] |yarp.os.ResourceFinder| checking [/home/ergocub/.local/share/yarp/robots/ergoCubSN000] (robot YARP_DATA_HOME)
[DEBUG] |yarp.os.ResourceFinder| checking [/etc/xdg/yarp/robots/ergoCubSN000] (robot YARP_CONFIG_DIRS)
[DEBUG] |yarp.os.ResourceFinder| checking [/usr/local/src/robot/robotology-superbuild/src/robots-configuration/ergoCubSN000/extra/robots/ergoCubSN000] (robot YARP_DATA_DIRS)
[DEBUG] |yarp.os.ResourceFinder| checking [/usr/local/src/robot/robotology-superbuild/build/install/share/yarp/robots/ergoCubSN000] (robot YARP_DATA_DIRS)
[DEBUG] |yarp.os.ResourceFinder| found /usr/local/src/robot/robotology-superbuild/build/install/share/yarp/robots/ergoCubSN000
[DEBUG] |yarp.os.ResourceFinder| checking [/usr/local/src/robot/robotology-superbuild/build/install/share/iCub/robots/ergoCubSN000] (robot YARP_DATA_DIRS)
[DEBUG] |yarp.os.ResourceFinder| checking [/usr/local/src/robot/robotology-superbuild/build/install/share/ICUBcontrib/robots/ergoCubSN000] (robot YARP_DATA_DIRS)
[DEBUG] |yarp.os.ResourceFinder| found /usr/local/src/robot/robotology-superbuild/build/install/share/ICUBcontrib/robots/ergoCubSN000
[DEBUG] |yarp.os.ResourceFinder| checking [/usr/local/src/robot/robotology-superbuild/build/install/share/ergoCub/robots/ergoCubSN000] (robot YARP_DATA_DIRS)
[DEBUG] |yarp.os.ResourceFinder| found /usr/local/src/robot/robotology-superbuild/build/install/share/ergoCub/robots/ergoCubSN000
[DEBUG] |yarp.os.ResourceFinder| checking [/usr/local/src/robot/robotology-superbuild/src/icub-tests/suites/robots/ergoCubSN000] (robot YARP_DATA_DIRS)
[DEBUG] |yarp.os.ResourceFinder| checking [robots/ergoCubSN000] (robot YARP_DATA_DIRS)
[DEBUG] |yarp.os.ResourceFinder| checking [/usr/local/src/robot/yarp-devices-ros2/build/share/yarp/robots/ergoCubSN000] (robot YARP_DATA_DIRS)
[DEBUG] |yarp.os.ResourceFinder| checking [/usr/local/src/robot/yarp-devices-ros2/build/share/yarp-devices-ros2/robots/ergoCubSN000] (robot YARP_DATA_DIRS)
[DEBUG] |yarp.os.ResourceFinder| checking [/usr/local/src/robot/robotology-superbuild/src/robots-configuration/ergoCubSN000/extra/config/path.d] (robot path.d YARP_DATA_DIRS)
[DEBUG] |yarp.os.ResourceFinder| checking [/usr/local/src/robot/robotology-superbuild/build/install/share/yarp/config/path.d] (robot path.d YARP_DATA_DIRS)
[DEBUG] |yarp.os.ResourceFinder| found /usr/local/src/robot/robotology-superbuild/build/install/share/yarp/config/path.d
[DEBUG] |yarp.os.ResourceFinder| checking [/usr/local/src/robot/robotology-superbuild/build/install/share/BipedalLocomotionFramework/robots/ergoCubSN000] (robot yarp.d)
[DEBUG] |yarp.os.ResourceFinder| checking [/usr/local/src/robot/robotology-superbuild/build/install/share/wbc/robots/ergoCubSN000] (robot yarp.d)
[DEBUG] |yarp.os.ResourceFinder| checking [/usr/local/src/robot/robotology-superbuild/build/install/share/yarp/robots/ergoCubSN000/network.ergoCubSN000.xml] (robot)
[DEBUG] |yarp.os.ResourceFinder| checking [/usr/local/src/robot/robotology-superbuild/build/install/share/ICUBcontrib/robots/ergoCubSN000/network.ergoCubSN000.xml] (robot)
[DEBUG] |yarp.os.ResourceFinder| found /usr/local/src/robot/robotology-superbuild/build/install/share/ICUBcontrib/robots/ergoCubSN000/network.ergoCubSN000.xml
[DEBUG] |yarp.os.ResourceFinder| finding file [from]
"/usr/local/src/robot/robotology-superbuild/build/install/share/ICUBcontrib/robots/ergoCubSN000/network.ergoCubSN000.xml" -f ../info/firmware.info.xml -p all -a update | tee ../logs/log.of.FirmwareUpdater.ergoCubSN000.update.all.txt


I saw that it should have been fixed in #180 but maybe I'm missing something. I'm using the latest devel of icub-firmware-build.

cc @traversaro

@traversaro
Copy link
Member Author

I saw that it should have been fixed in #180 but maybe I'm missing something. I'm using the latest devel of icub-firmware-build.

I suspect that robotology-superbuild is outdated and so the icub-firmware-build is not installed? Can you try to run make icub-firmware-build in the superbuild and check which files are installed?

@isorrentino
Copy link
Contributor

Actually I manually did the pull of the latest devel of icub-firmware-build and installed it in the superbuild. The files installed where all the scripts in both paths:

  • build/install/share/icub-firmware/scritps
  • build/install/bin

I could try again as I have updated the robotology-superbuild to the latest master. I'll keep you updated.

@traversaro
Copy link
Member Author

I could try again as I have updated the robotology-superbuild to the latest master. I'll keep you updated.

Thanks!

@isorrentino
Copy link
Contributor

I could try again as I have updated the robotology-superbuild to the latest master. I'll keep you updated.

Thanks!

No, I got the same error reported in the previous comment #176 (comment)

@traversaro
Copy link
Member Author

Thanks. Can you try to change ./manageFW.py in manageFW.py in the FirmwareUpdater.script.update.all.sh script?

Cany you also return the output of;

which manageFW.py

and

which FirmwareUpdater.script.update.all.sh

@traversaro
Copy link
Member Author

traversaro commented Jan 17, 2025

I reproduced the issue locally. no, my error was different

@traversaro
Copy link
Member Author

I reproduced the issue locally. no, my error was different

Ok, now I reproduced the problem!

@traversaro
Copy link
Member Author

I found the issue.

@traversaro
Copy link
Member Author

I found the issue.

fyi @isorrentino the fix is in #190 .

@Nicogene Nicogene linked a pull request Jan 17, 2025 that will close this issue
@traversaro
Copy link
Member Author

Note that the actual issue was about something else so I am not sure if technically it was closed by #190, but I guess as it was not clear what the issue was about, we can close it and in case @isorrentino as other problems we can open a new issue.

@Nicogene Nicogene reopened this Jan 17, 2025
@traversaro
Copy link
Member Author

Rereading the issue the last remaining issue is robotology/icub-firmware#544, that is already tracked there, so I think we can close this issue.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants