STM32-Arduino - Updated to 0.3.2 Firmware - Confirmation check returns 0.3.1


#1

Hi,

I’ve updated my RedBear Duo Firmware (factory state 0.3.1) to the latest release 0.3.2 from:


successfully. I used dfu-util to manage the update process like documented in “The Duo: Firmware Deployment Guide”. But when I check the system firmware version via serial, I still receive the string: “system firmware version: 0.3.1” like before.

I did not update the DCT (Device Configuration Table) nor the bootloader, because DCT hasn’t changed since 2 years and I could not find any instruction about updating the bootloader at https://github.com/redbear/Duo/blob/master/docs/firmware_deployment_guide.md.

I am not familiar with dfu-util at all, and the argument -a (-- alt, specify the Altsetting of the DFU Interface by name or by number) seems to be very important. So far I did not figure out the interface, which I would have to address in order to update the bootloader.
dfu-util -d 2b04:d058 -a X -s 0x8000000 -D duo-bootloader-r6.bin
What is X in this regard? 0, 1, 2, or “u-boot”?
Because of this uncertainty, I did not update the bootloader so far.

Furthermore, I am not convinced that the older bootloader is responsible of giving me a false positive firmware message over serial. And if so, then I would like to know how to update the bootloader to duo-bootloader-r6.bin with dfu-util (see above, the -a argument issue)

I did update the following bins:
duo-factory-reset.bin Release firmware v0.3.2 2 months ago
duo-system-part1-v0.3.2.bin Release firmware v0.3.2 2 months ago
duo-system-part2-v0.3.2.bin Release firmware v0.3.2 2 months ago
duo-user-part.bin Release firmware v0.3.2 2 months ago
duo-wifi-r2.bin Release firmware v0.3.2 2 months ago

P.S. Here the README.md at https://github.com/redbear/STM32-Arduino/tree/master/arduino/firmwares (my source) says: “Current Firmware Version: v0.3.1”. But that file hasn’t updated since one year. I guess the bins are really 3.2, or?

Best,
Jo


#2

Hi @qonos,

It is a known issue when you retrieving the system firmware version after you upgrading it to v0.3.2, it still shows you the v0.3.1. But it is actually running v0.3.2.

Best regards,
Guohui


#3

hi guohui,

thanks for the information! Could you please help me understanding the bootloader upload process with dfu-util?

I am not familiar with dfu-util at all, and the argument -a (-- alt, specify the Altsetting of the DFU Interface by name or by number) seems to be very important. So far I did not figure out the interface, which I would have to address in order to update the bootloader.
dfu-util -d 2b04:d058 -a X -s 0x8000000 -D duo-bootloader-r6.bin
What is X in this regard? 0, 1, 2, or “u-boot”?

thanks,
best regards,

qonos


#4

Hi @qonos,

I think you are looking for this:

Cheers!


#5

Thanks for the quick respond!

Like I mentioned before, this guide does not show how to flash the bootloader. However it explains the 3 different interfaces for the due.

-a : specify the interface of the memory. For Duo it has three interfaces.
0 : access the internal memory space, except the bootloader memory space
1 : access the application DCT (not the entire DCT) memory space
2 : access the external SPI flash memory space

I am confused - should I go with the interface 0 or 1?

best,
qonos


#6

Good question.

If you specify the interface to be 0, then the address parameter in the dfu-util command will be the absolute flash address, while the interface 1, the address will be the offset of the application DCT.

Cheers!