cancel
Showing results for 
Search instead for 
Did you mean: 

Is it possible to restore ST-Link Firmware (Factory reset)?

DLich.3
Associate II

I got my STM32H745I-DISCO (STM32H745XIH6U) kit and wanted to update st-link (STLINK-V3E) firmware. Unfortunately I used unreliable USB cable and it got probably disconnected during the process. Now the STLinkUpgrade shows the line "Unknown firmware type. Don't know how to upgrade."

Is there any chance to restore original firmware? Or do I have to use external ST-Link/buy new board?

Thank you in advance.

1 ACCEPTED SOLUTION

Accepted Solutions
DLich.3
Associate II

Solution

Thanks to this page I was able to successfully restore original ST-Link Firmware using the following command:

java -jar STLinkUpgrade.jar -d8_d32_msc_br -force_prog

STLinkUpgrade.jar is part of the ST-Link boards firmware upgrade package.

View solution in original post

7 REPLIES 7
Javier1
Principal

you need to find the stlinkV3 binaries, i personally dont know where they could be found, or if ST is providing them.

There is also thirds party debuggers you could flash instead (in case of desperation)

https://github.com/ARMmbed/DAPLink/issues/662

Uwe Bonnes
Principal II

Power the STLINKV3, reset the F733 and the STLink bootloader should re-appear. Use the firmware updater to reflash.

If you mean connecting the NRST pin of the STM32F723 (U16 part) to the 0V potential (JP3), then it did not work. If you mean connecting BOOT0 to 3,3V it didn't work either.

Can you please tell me if I did anything wrong or misunderstood what you said?

I believe I was able to find st-link firmware binaries and even bootloader binaries, however I have no idea how to dump them to the board.

DLich.3
Associate II

Solution

Thanks to this page I was able to successfully restore original ST-Link Firmware using the following command:

java -jar STLinkUpgrade.jar -d8_d32_msc_br -force_prog

STLinkUpgrade.jar is part of the ST-Link boards firmware upgrade package.

I have NUCLEO-U575ZI-Q with board MB1549C.

With -d8_d32_msc_br I get 

The specified firmware type does not match the detected one: can not update.

(Seems the parameter is for certain Nucleo type)

Without it, the upgrade tries to upgrade the firmware to the same version (not the one I had from the factory, but the latest one I tried and faild) and fails.

Any advice?

Some sample output:

cd ~/Downloads/stsw-link007-3/AllPlatforms

/Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.jre.macos64_3.0.0.202305091045/jre/Contents/Home/bin/java -jar STLinkUpgrade.jar -force_prog

Firmware version detected: V3J11M3

...libusb: warning [darwin_transfer_status] transfer error: timed out

JNI command error 0x1001 after cmd [-13, 1, 0, 0, 71, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0]

Upgrade Error, Please try again.

Upgrade is successful.

libusb: warning [darwin_transfer_status] transfer error: device not responding (value = 0xe00002ed)

JNI command error 0x1004 after cmd [-13, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]

Ignore USB com lost due to reset when exiting upgrade mode.

libusb: warning [darwin_transfer_status] transfer error: device not responding (value = 0xe00002ed)

JNI command error 0x1004 after cmd [-15, -128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]

Failure exiting upgrade mode (Error 33).

 

With newest version of STLinkUpgrade.jar: (After I tried with J11 and failed!)

cd ~/Downloads/stsw-link007/AllPlatforms

/Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.jre.macos64_3.0.0.202305091045/jre/Contents/Home/bin/java -jar STLinkUpgrade.jar -force_prog

Firmware version detected: V3J11M3

..libusb: warning [darwin_transfer_status] transfer error: timed out

JNI command error 0x1001 after cmd [-13, 1, 0, 0, 63, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0]

Upgrade Error, Please try again.

Upgrade is successful.

libusb: warning [darwin_transfer_status] transfer error: device not responding (value = 0xe00002ed)

JNI command error 0x1004 after cmd [-13, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]

Ignore USB com lost due to reset when exiting upgrade mode.

libusb: warning [darwin_transfer_status] transfer error: device not responding (value = 0xe00002ed)

JNI command error 0x1004 after cmd [-15, -128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]

Failure exiting upgrade mode (Error 33).

 

 

"Solved"

This seems to be related to my USB connection on MacOS (M1).

Using a hub/converter from USB-C to USB and connecting to the Nucleo using a USB-USBmicro cable. When I start the ST-Link fw updater the red light blinks a while (showing that data transfer occurs) and then stops.

I tried to update using the STLinkUpgrader.jar on Ubuntu and succeeded.

Will browse the documents on "how to connect to STLink port on NUcleo from USB-C on Mac"