robotology / icub-firmware-build Goto Github PK
View Code? Open in Web Editor NEWiCub Firmware Builds
iCub Firmware Builds
In https://github.com/robotology/icub-firmware-build/tree/v1.37.0/CAN/bat there are bat.r1
and bat.icub3
, and I was not able to understand which one should be used on ergoCub. It would be great to document this, thanks in advance!
The firmware build commit c10c146 is missing the 2FOC changes. The commit is supposed to be built using robotology/icub-firmware@4222e0e, but it doesn't include the 2FOC changes integrated in the PR robotology/icub-firmware#88.
Actually, commit 02728b7, built from robotology/icub-firmware@78f4f63 did not update https://github.com/robotology/icub-firmware-build/tree/devel/CAN/2foc/2foc.hex.
Fixed by 46d3f47 , built after PR robotology/icub-firmware#94.
I guess the most updated documentation on how to update EMS firmware is the one found in https://github.com/robotology/icub-firmware-build/blob/master/EMS/howto.txt , right?
If this is the case, I am going to link it from http://wiki.icub.org/wiki/Firmware that is the standard entry point for updating the iCub firmware.
It is necessary to add a MC4PLUS folder with binaries for the mc4plus board with a structure similar to the EMS folder.
The log of the commit should contain some basic information which can help one user to understand the content of the binary file.
My proposal, open for discussion, is the following.
An example is in SHA: 4b0356a
if we all follow some rule of the sort, the repository will be more clear.
The issue can interest @lornat75 @maggia80 @valegagge @ale-git @randaz81 @davege89
Today I used the script FirmwareUpdater.script.update.all.sh
on ergoCubSN001
to update the firmware of all the boards. Only the EMS
and FOC
boards have been updated, while the script did not update the firmware of the MC4PLUS
and AMC
boards. In addition the firmware of 2 EMS boards was not uploaded correctly, indeed when restarted the boards they were not able to go in application mode and I had to re-flash the firmware manually.
I did not notice any error on the terminal.
FirmwareUpdater.script.info.all.sh
searches for robots-configuration
folder inside $ROBOT_CODE
i.e.
./manageFWrobot.py -n $ROBOT_CODE/robots-configuration/$YARP_ROBOT_NAME/network.$YARP_ROBOT_NAME.xml -f ../info/firmware.info.xml -p all -a info | tee ../logs/log.of.FirmwareUpdater.$YARP_ROBOT_NAME.info.all.txt
We usually install robots-configuration
as part of the superbuild, so our path is $ROBOTOLOGY_SUPERBUILD_DIR/src/robots-configuration
. It would be nice to pass the root of robots configuration as parameter to the sh
script.
We noticed that the latest EMS
FW in devel (v3.75) make the boards stuck in the eUpdater
.
We need to fix this.
In https://github.com/robotology/icub-firmware-build#firmware-versioning-table, there is documentation on the mapping between robotology distro release, icub-firmware-build version and board-specific firmware version. This is quite convenient for people operating on the robot to check (manually) if the board are a correct version for the distro used on the robot.
At the moment, it seems that the bat version corresponding to a given distro/icub-firmware release is not documented, it would be great if that could be documented.
The EMS folder requires some cleaning.
For instance, with time some .hex files are not used anymore (e.g., TestETHnew3min.hex which was used to verify if the ETH cable was crossed or straigth).
Moreover, now the application FW is unique and it does not depend on the position of the board anymore. But the old .hex files are still in repository.
As a last thing, in icub-firmware-build it is missing an important part: the instructions and the scripts used to burn an EMS board for the first time before mounting it on the robot. They are in icub-firmware, but the right place is in icub-firmware-build.
The following users will surely be interested: @lornat75 @maggia80 @valegagge @ale-git @randaz81 @davege89 @davidetome
Hey there,
I just tried updating the firmware using the new git repo and I get the following output:
icub@pc104:/usr/local/src/robot/icub-firmware-build$ ./updateRobot.sh
----------------------------------------------
Welcome to the automatic firmware updater tool
----------------------------------------------
no filename specified, using default configuration...
cannot open the firmware description file in default directory, searching in alternate path...
found firmware description file:
/usr/local/src/robot//icub-main/build-pc104/share/iCub/robots/iCubParis02/firmwareUpdate.txt
Remember: Never update the firmware if iCubInterface/robotInterface is running!
If you are not sure about the current status of the robot, turn off the motor boards, turn them on again and wait at 5 seconds before proceeding.
Do you want to proceed with the firmware update? (Y/N)
y
canLoader --canDeviceType cfw2can --canDeviceNum 0 --boardId 1 --firmware 2BLLDC.1.62.out.S
Initializing prompt version of canLoader...
Selecting canDeviceType cfw2can canDeviceNum 0, boardId 1, firmware 2BLLDC.1.62.out.S
yarpdev: ***ERROR*** could not find device <cfw2can>
[ERROR]no boards found
yarp: Port /log/pc104/no_progname/4564 active at tcp://10.0.0.2:10664
yarp: Sending output from /log/pc104/no_progname/4564 to /yarplogger using tcp
[ERROR]check canbus cable, power supply connection etc.
yarp: Removing output from /log/pc104/no_progname/4564 to /yarplogger
canLoader --canDeviceType cfw2can --canDeviceNum 0 --boardId 2 --firmware 4DC.2.15.out.S
Initializing prompt version of canLoader...
Selecting canDeviceType cfw2can canDeviceNum 0, boardId 2, firmware 4DC.2.15.out.S
yarpdev: ***ERROR*** could not find device <cfw2can>
[ERROR]no boards found
yarp: Port /log/pc104/no_progname/4583 active at tcp://10.0.0.2:10665
yarp: Sending output from /log/pc104/no_progname/4583 to /yarplogger using tcp
[ERROR]check canbus cable, power supply connection etc.
yarp: Removing output from /log/pc104/no_progname/4583 to /yarplogger
canLoader --canDeviceType cfw2can --canDeviceNum 0 --boardId 5 --firmware 2BLL_IE.2.54.out.S
Initializing prompt version of canLoader...
Selecting canDeviceType cfw2can canDeviceNum 0, boardId 5, firmware 2BLL_IE.2.54.out.S
yarpdev: ***ERROR*** could not find device <cfw2can>
[ERROR]no boards found
yarp: Port /log/pc104/no_progname/4626 active at tcp://10.0.0.2:10666
yarp: Sending output from /log/pc104/no_progname/4626 to /yarplogger using tcp
[ERROR]check canbus cable, power supply connection etc.
yarp: Removing output from /log/pc104/no_progname/4626 to /yarplogger
canLoader --canDeviceType cfw2can --canDeviceNum 0 --boardId 6 --firmware 2BLL_IE.2.52.out.S
Initializing prompt version of canLoader...
Selecting canDeviceType cfw2can canDeviceNum 0, boardId 6, firmware 2BLL_IE.2.52.out.S
yarpdev: ***ERROR*** could not find device <cfw2can>
[ERROR]no boards found
yarp: Port /log/pc104/no_progname/4645 active at tcp://10.0.0.2:10667
yarp: Sending output from /log/pc104/no_progname/4645 to /yarplogger using tcp
[ERROR]check canbus cable, power supply connection etc.
yarp: Removing output from /log/pc104/no_progname/4645 to /yarplogger
canLoader --canDeviceType cfw2can --canDeviceNum 1 --boardId 1 --firmware 2BLL_IE.2.50.out.S
Initializing prompt version of canLoader...
Selecting canDeviceType cfw2can canDeviceNum 1, boardId 1, firmware 2BLL_IE.2.50.out.S
yarpdev: ***ERROR*** could not find device <cfw2can>
[ERROR]no boards found
yarp: Port /log/pc104/no_progname/4688 active at tcp://10.0.0.2:10668
yarp: Sending output from /log/pc104/no_progname/4688 to /yarplogger using tcp
[ERROR]check canbus cable, power supply connection etc.
yarp: Removing output from /log/pc104/no_progname/4688 to /yarplogger
canLoader --canDeviceType cfw2can --canDeviceNum 1 --boardId 2 --firmware 2BLL_IE.2.57.out.S
Initializing prompt version of canLoader...
Selecting canDeviceType cfw2can canDeviceNum 1, boardId 2, firmware 2BLL_IE.2.57.out.S
yarpdev: ***ERROR*** could not find device <cfw2can>
[ERROR]no boards found
yarp: Port /log/pc104/no_progname/4707 active at tcp://10.0.0.2:10669
yarp: Sending output from /log/pc104/no_progname/4707 to /yarplogger using tcp
[ERROR]check canbus cable, power supply connection etc.
yarp: Removing output from /log/pc104/no_progname/4707 to /yarplogger
canLoader --canDeviceType cfw2can --canDeviceNum 1 --boardId 3 --firmware 4DC.2.19.out.S
Initializing prompt version of canLoader...
Selecting canDeviceType cfw2can canDeviceNum 1, boardId 3, firmware 4DC.2.19.out.S
yarpdev: ***ERROR*** could not find device <cfw2can>
[ERROR]no boards found
yarp: Port /log/pc104/no_progname/4726 active at tcp://10.0.0.2:10670
yarp: Sending output from /log/pc104/no_progname/4726 to /yarplogger using tcp
[ERROR]check canbus cable, power supply connection etc.
yarp: Removing output from /log/pc104/no_progname/4726 to /yarplogger
canLoader --canDeviceType cfw2can --canDeviceNum 5 --boardId 5 --firmware 4DC.2.28.out.S
Initializing prompt version of canLoader...
Selecting canDeviceType cfw2can canDeviceNum 5, boardId 5, firmware 4DC.2.28.out.S
yarpdev: ***ERROR*** could not find device <cfw2can>
[ERROR]no boards found
yarp: Port /log/pc104/no_progname/4769 active at tcp://10.0.0.2:10671
yarp: Sending output from /log/pc104/no_progname/4769 to /yarplogger using tcp
[ERROR]check canbus cable, power supply connection etc.
yarp: Removing output from /log/pc104/no_progname/4769 to /yarplogger
canLoader --canDeviceType cfw2can --canDeviceNum 5 --boardId 7 --firmware 4DC.2.30.out.S
Initializing prompt version of canLoader...
Selecting canDeviceType cfw2can canDeviceNum 5, boardId 7, firmware 4DC.2.30.out.S
yarpdev: ***ERROR*** could not find device <cfw2can>
[ERROR]no boards found
yarp: Port /log/pc104/no_progname/4788 active at tcp://10.0.0.2:10672
yarp: Sending output from /log/pc104/no_progname/4788 to /yarplogger using tcp
[ERROR]check canbus cable, power supply connection etc.
yarp: Removing output from /log/pc104/no_progname/4788 to /yarplogger
canLoader --canDeviceType cfw2can --canDeviceNum 2 --boardId 1 --firmware 2BLL_IE.2.50.out.S
Initializing prompt version of canLoader...
Selecting canDeviceType cfw2can canDeviceNum 2, boardId 1, firmware 2BLL_IE.2.50.out.S
yarpdev: ***ERROR*** could not find device <cfw2can>
[ERROR]no boards found
yarp: Port /log/pc104/no_progname/4831 active at tcp://10.0.0.2:10673
yarp: Sending output from /log/pc104/no_progname/4831 to /yarplogger using tcp
[ERROR]check canbus cable, power supply connection etc.
yarp: Removing output from /log/pc104/no_progname/4831 to /yarplogger
canLoader --canDeviceType cfw2can --canDeviceNum 2 --boardId 2 --firmware 2BLL_IE.2.57.out.S
Initializing prompt version of canLoader...
Selecting canDeviceType cfw2can canDeviceNum 2, boardId 2, firmware 2BLL_IE.2.57.out.S
yarpdev: ***ERROR*** could not find device <cfw2can>
[ERROR]no boards found
yarp: Port /log/pc104/no_progname/4850 active at tcp://10.0.0.2:10674
yarp: Sending output from /log/pc104/no_progname/4850 to /yarplogger using tcp
[ERROR]check canbus cable, power supply connection etc.
yarp: Removing output from /log/pc104/no_progname/4850 to /yarplogger
canLoader --canDeviceType cfw2can --canDeviceNum 2 --boardId 3 --firmware 4DC.2.19.out.S
Initializing prompt version of canLoader...
Selecting canDeviceType cfw2can canDeviceNum 2, boardId 3, firmware 4DC.2.19.out.S
yarpdev: ***ERROR*** could not find device <cfw2can>
[ERROR]no boards found
yarp: Port /log/pc104/no_progname/4869 active at tcp://10.0.0.2:10675
yarp: Sending output from /log/pc104/no_progname/4869 to /yarplogger using tcp
[ERROR]check canbus cable, power supply connection etc.
yarp: Removing output from /log/pc104/no_progname/4869 to /yarplogger
canLoader --canDeviceType cfw2can --canDeviceNum 6 --boardId 5 --firmware 4DC.2.28.out.S
Initializing prompt version of canLoader...
Selecting canDeviceType cfw2can canDeviceNum 6, boardId 5, firmware 4DC.2.28.out.S
yarpdev: ***ERROR*** could not find device <cfw2can>
[ERROR]no boards found
yarp: Port /log/pc104/no_progname/4912 active at tcp://10.0.0.2:10676
yarp: Sending output from /log/pc104/no_progname/4912 to /yarplogger using tcp
[ERROR]check canbus cable, power supply connection etc.
yarp: Removing output from /log/pc104/no_progname/4912 to /yarplogger
canLoader --canDeviceType cfw2can --canDeviceNum 6 --boardId 7 --firmware 4DC.2.30.out.S
Initializing prompt version of canLoader...
Selecting canDeviceType cfw2can canDeviceNum 6, boardId 7, firmware 4DC.2.30.out.S
yarpdev: ***ERROR*** could not find device <cfw2can>
[ERROR]no boards found
yarp: Port /log/pc104/no_progname/4931 active at tcp://10.0.0.2:10677
yarp: Sending output from /log/pc104/no_progname/4931 to /yarplogger using tcp
[ERROR]check canbus cable, power supply connection etc.
yarp: Removing output from /log/pc104/no_progname/4931 to /yarplogger
canLoader --canDeviceType cfw2can --canDeviceNum 3 --boardId 5 --firmware 2BLL_IE.2.51.out.S
Initializing prompt version of canLoader...
Selecting canDeviceType cfw2can canDeviceNum 3, boardId 5, firmware 2BLL_IE.2.51.out.S
yarpdev: ***ERROR*** could not find device <cfw2can>
[ERROR]no boards found
yarp: Port /log/pc104/no_progname/4974 active at tcp://10.0.0.2:10678
yarp: Sending output from /log/pc104/no_progname/4974 to /yarplogger using tcp
[ERROR]check canbus cable, power supply connection etc.
yarp: Removing output from /log/pc104/no_progname/4974 to /yarplogger
canLoader --canDeviceType cfw2can --canDeviceNum 3 --boardId 6 --firmware 2BLL_IE.2.51.out.S
Initializing prompt version of canLoader...
Selecting canDeviceType cfw2can canDeviceNum 3, boardId 6, firmware 2BLL_IE.2.51.out.S
yarpdev: ***ERROR*** could not find device <cfw2can>
[ERROR]no boards found
yarp: Port /log/pc104/no_progname/4993 active at tcp://10.0.0.2:10679
yarp: Sending output from /log/pc104/no_progname/4993 to /yarplogger using tcp
[ERROR]check canbus cable, power supply connection etc.
yarp: Removing output from /log/pc104/no_progname/4993 to /yarplogger
canLoader --canDeviceType cfw2can --canDeviceNum 3 --boardId 7 --firmware 2BLL_IE.2.51.out.S
Initializing prompt version of canLoader...
Selecting canDeviceType cfw2can canDeviceNum 3, boardId 7, firmware 2BLL_IE.2.51.out.S
yarpdev: ***ERROR*** could not find device <cfw2can>
[ERROR]no boards found
yarp: Port /log/pc104/no_progname/5012 active at tcp://10.0.0.2:10680
yarp: Sending output from /log/pc104/no_progname/5012 to /yarplogger using tcp
[ERROR]check canbus cable, power supply connection etc.
yarp: Removing output from /log/pc104/no_progname/5012 to /yarplogger
canLoader --canDeviceType cfw2can --canDeviceNum 4 --boardId 8 --firmware 2BLL_IE.2.51.out.S
Initializing prompt version of canLoader...
Selecting canDeviceType cfw2can canDeviceNum 4, boardId 8, firmware 2BLL_IE.2.51.out.S
yarpdev: ***ERROR*** could not find device <cfw2can>
[ERROR]no boards found
yarp: Port /log/pc104/no_progname/5043 active at tcp://10.0.0.2:10681
yarp: Sending output from /log/pc104/no_progname/5043 to /yarplogger using tcp
[ERROR]check canbus cable, power supply connection etc.
yarp: Removing output from /log/pc104/no_progname/5043 to /yarplogger
canLoader --canDeviceType cfw2can --canDeviceNum 4 --boardId 9 --firmware 2BLL_IE.2.51.out.S
Initializing prompt version of canLoader...
Selecting canDeviceType cfw2can canDeviceNum 4, boardId 9, firmware 2BLL_IE.2.51.out.S
yarpdev: ***ERROR*** could not find device <cfw2can>
[ERROR]no boards found
yarp: Port /log/pc104/no_progname/5062 active at tcp://10.0.0.2:10682
yarp: Sending output from /log/pc104/no_progname/5062 to /yarplogger using tcp
[ERROR]check canbus cable, power supply connection etc.
yarp: Removing output from /log/pc104/no_progname/5062 to /yarplogger
canLoader --canDeviceType cfw2can --canDeviceNum 4 --boardId 10 --firmware 2BLL_IE.2.51.out.S
Initializing prompt version of canLoader...
Selecting canDeviceType cfw2can canDeviceNum 4, boardId 10, firmware 2BLL_IE.2.51.out.S
yarpdev: ***ERROR*** could not find device <cfw2can>
[ERROR]no boards found
yarp: Port /log/pc104/no_progname/5081 active at tcp://10.0.0.2:10683
yarp: Sending output from /log/pc104/no_progname/5081 to /yarplogger using tcp
[ERROR]check canbus cable, power supply connection etc.
yarp: Removing output from /log/pc104/no_progname/5081 to /yarplogger
cfw2can 0 1 2BLLDC.1.62.out.S --> Error: ERR_NO_BOARDS_FOUND
cfw2can 0 2 4DC.2.15.out.S --> Error: ERR_NO_BOARDS_FOUND
cfw2can 0 5 2BLL_IE.2.54.out.S --> Error: ERR_NO_BOARDS_FOUND
cfw2can 0 6 2BLL_IE.2.52.out.S --> Error: ERR_NO_BOARDS_FOUND
cfw2can 1 1 2BLL_IE.2.50.out.S --> Error: ERR_NO_BOARDS_FOUND
cfw2can 1 2 2BLL_IE.2.57.out.S --> Error: ERR_NO_BOARDS_FOUND
cfw2can 1 3 4DC.2.19.out.S --> Error: ERR_NO_BOARDS_FOUND
cfw2can 5 5 4DC.2.28.out.S --> Error: ERR_NO_BOARDS_FOUND
cfw2can 5 7 4DC.2.30.out.S --> Error: ERR_NO_BOARDS_FOUND
cfw2can 2 1 2BLL_IE.2.50.out.S --> Error: ERR_NO_BOARDS_FOUND
cfw2can 2 2 2BLL_IE.2.57.out.S --> Error: ERR_NO_BOARDS_FOUND
cfw2can 2 3 4DC.2.19.out.S --> Error: ERR_NO_BOARDS_FOUND
cfw2can 6 5 4DC.2.28.out.S --> Error: ERR_NO_BOARDS_FOUND
cfw2can 6 7 4DC.2.30.out.S --> Error: ERR_NO_BOARDS_FOUND
cfw2can 3 5 2BLL_IE.2.51.out.S --> Error: ERR_NO_BOARDS_FOUND
cfw2can 3 6 2BLL_IE.2.51.out.S --> Error: ERR_NO_BOARDS_FOUND
cfw2can 3 7 2BLL_IE.2.51.out.S --> Error: ERR_NO_BOARDS_FOUND
cfw2can 4 8 2BLL_IE.2.51.out.S --> Error: ERR_NO_BOARDS_FOUND
cfw2can 4 9 2BLL_IE.2.51.out.S --> Error: ERR_NO_BOARDS_FOUND
cfw2can 4 10 2BLL_IE.2.51.out.S --> Error: ERR_NO_BOARDS_FOUND
icub@pc104:/usr/local/src/robot/icub-firmware-build$
Everything is turned on and the emergency stop is NOT depressed. Yarp is running on pc104. Any ideas?
There are some branches that are hanging around and that can be deleted to speed up the git clone --depth 1 --no-single-branch
command when cloning the repo. For future reference, the branches are still in my fork:
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.