[Solved] Firmware update problems

I am trying to install ROS2 foxy support on my ROSbot 2.0.
I am looking at ROS2 Demo for ROSbot 2.0 | Husarion for guidance.
I am having a problem Flashing STM32 firmware.
My current firmware is version: 0.10.1.
The following instruction fails:
wget -O /home/husarion/firmware.bin https://files.husarion.com/images/rosbot-2.0-fw-v0.14.3.bin
with a 404 error.

Suggestions?

Hi,
seems the file has been moved to this https://files.husarion.com/rosbot-firmware/ location.

Michael

1 Like

Hi,

We recommend using the newest firmware, :slight_smile: you can find it on our GitHub page:

Best regards,
Hubert

I do not see a reference to foxy on that github.

I am looking for a replacement for:
wget -O /home/husarion/firmware.bin https://files.husarion.com/images/rosbot-2.0-fw-v0.14.3.bin

which supports ROS2 foxy.

Q. What am I missing?

The firmware delivered with ros-foxy-arm-beta-2021-04-21.img.xz does not work on my ROSbot 2.0.

I get:
[rosserial_node.py-3] topic_name: “mpu9250”
[rosserial_node.py-3] message_type: “rosbot_ekf/Imu”
[rosserial_node.py-3] md5sum: “3d83bdcabfe2927ed38c36f102a9f646”
[rosserial_node.py-3] buffer_size: 512
[rosserial_node.py-3] [INFO] [1648638050.690280306] [serial_node]: Setup publisher on mpu9250 [rosbot_ekf/Imu]
[rosserial_node.py-3] [INFO] [1648638050.697332293] [serial_node]: Setup publisher on buttons [std_msgs/UInt8]
[rosserial_node.py-3] [INFO] [1648638050.714917635] [serial_node]: Subscriber inicialization fine
[rosserial_node.py-3] [INFO] [1648638050.724953985] [serial_node]: Subscriber inicialization fine
[rosserial_node.py-3] [ERROR] [1648638050.944925053] [serial_node]: Tried to publish before configured, topic id 126
[rosserial_node.py-3] [INFO] [1648638050.947022740] [serial_node]: Requesting topics…
[rosserial_node.py-3] [ERROR] [1648638050.974853268] [serial_node]: Creation of publisher failed: Checksum does not match: 476f837fa6771f6e16e3bf4ef96f8770,4ddae7f048e32fda22cac764685e3974

firmware version: 0.14.3

Is there a bin available for down load?

Hmmm. I used
wget -O /home/husarion/firmware.bin GitHub - husarion/rosbot-stm32-firmware: Embedded, low-level firmware for STM32 microcontroller inside ROSbot.
bash /home/husarion/flash_firmware.sh

This downloaded the firmware.bin file in /home/husarion but failed to locate /home/husarion/flash_firmware.sh

I seem to have lost this script along the way. Where might I find a copy, please?

Hi Joe,

You didn’t lose anything. ROSbot 2R is the newest version from ROSbots family and from a start have image containing docker. That is why we decide to change the way we flash firmware for more secure. Manual for flashing firmware, you can find here: ROSbot 2R - quick start | Husarion

Best regards,
Hubert

Yes, thank you. That was made clear to me so I decided to just use the command in the quick start for all my flash needs.
docker run --rm -it --privileged husarion/rosbot:humble /flash-firmware.py /root/firmware_diff.bin

System architecture: aarch64
Device: RPi
stm32flash STM32duino_0.5.1

Interface serial_posix: 57600 8E1
Version : 0x31
Option 1 : 0x00
Option 2 : 0x00
Device ID : 0x0413 (STM32F40xxx/41xxx)

  • RAM : Up to 128KiB (12288b reserved by bootloader)
  • Flash : Up to 1024KiB (size first sector: 1x16384)
  • Option RAM : 16b
  • System RAM : 30KiB
    Write-unprotecting flash
    Done.

stm32flash STM32duino_0.5.1

Interface serial_posix: 57600 8E1
Version : 0x31
Option 1 : 0x00
Option 2 : 0x00
Device ID : 0x0413 (STM32F40xxx/41xxx)

  • RAM : Up to 128KiB (12288b reserved by bootloader)
  • Flash : Up to 1024KiB (size first sector: 1x16384)
  • Option RAM : 16b
  • System RAM : 30KiB
    Read-UnProtecting flash
    Done.

stm32flash STM32duino_0.5.1

stm32flash STM32duino_0.5.1

stm32flash STM32duino_0.5.1

stm32flash STM32duino_0.5.1

stm32flash STM32duino_0.5.1

ERROR! Something goes wrong. Try again.
Done.

Hi Joe_Worthit,

Please remember that you need to kill all docker containers which using UART because it will be used to upgrade firmware. The recommended command shown in the manual is:

docker stop rosbot microros || true && docker run \
--rm -it --privileged \
husarion/rosbot:humble \
/flash-firmware.py /root/firmware.bin

Please try it out.

Best regards,
Hubert

Yes, that’s exactly what I did. I just noticed some tutorial updates so I decided to start over from scratch following the ROSbot2R Quick Start in case it was updated.

  1. Downloaded the Galactic image (in case it was updated) and burned it to my SD card.
  2. Booted the SD card to my ROSbot2R and established contact via WiFi.
  3. Connected to my ROSbot2R and followed the next step
    docker compose pull
    No configuration file found.
  4. Pressed forward and flashed the humble firmware, this time successful, curious.
  5. Pressed even further forward
    docker compose up -d rosbot microros
    No configuration file found.

I guess I missed another instruction somewhere. What’s in this configuration file that I’m missing or it can’t find?

PAUSE<<<

I managed to find updated tutorials with a later humble image reference for flashing. All works fine. closed.