2026-02-08 3:53 PM
When I open STM32CubeProgrammer (v2.21.0) it displays an error modal "Old ST-LINK firmware version. Upgrade ST-LINK firmware.
If I click the "Firmware Upgrade" button an STLinkUpgrade 3.16.8 shows up with
Current firmware: (blank)
Type: (blank)
Version: Unknown
Update to Firmware: Unknown.
The upgrade button does nothing when clicked. How do I fix this?
I downloaded the software here https://www.st.com/en/development-tools/stsw-link007.html
After running
/usr/lib/jvm/java-17-openjdk-amd64/bin/java -jar stsw-link007-v3-17-10/stsw-link007/AllPlatforms/STLinkUpgrade.jar
There is another upgrade dialog with version 3.17.10 displaying the same firmware info as above, with the upgrade button greyed out.
Other commands ive run
$ ls -l /dev/bus/usb/001/019
crw-rw----+ 1 root plugdev 189, 18 Feb 9 09:36 /dev/bus/usb/001/019
$ lsusb | grep ST
Bus 001 Device 019: ID 0483:374b STMicroelectronics ST-LINK/V2.1
$ STM32_Programmer_CLI -l
-------------------------------------------------------------------
STM32CubeProgrammer v2.21.0
-------------------------------------------------------------------
===== DFU Interface =====
No STM32 device in DFU mode connected
===== J-Link Interface =====
No J-Link/flasher probe detected.
===== STLink Interface =====
Error: Old ST-LINK firmware version. Upgrade ST-LINK firmware
-------- Connected ST-LINK Probes List --------
ST-Link Probe 0 :
ST-LINK SN : 066DFF545054897087211137
ST-LINK FW : V2J27M15
Access Port Number : 4
Board Name :
-----------------------------------------------
===== UART Interface =====
Total number of serial ports available: 33
Error: Old ST-LINK firmware version. Upgrade ST-LINK firmware
Board Name :
ST-LINK SN: 066DFF545054897087211137
Port: ttyACM0
Location: /dev/ttyACM0
Description: STM32 STLink
Manufacturer: STMicroelectronics
$ls /etc/udev/rules.d/ | grep stlink
49-stlinkv1.rules
49-stlinkv2-1.rules
49-stlinkv2.rules
49-stlinkv3.rules
99-stlink.rules
$ cat /etc/udev/rules.d/49-stlinkv2-1.rules
# stm32 nucleo boards, with onboard st/linkv2-1
# ie, STM32F0, STM32F4.
SUBSYSTEMS=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="374b", \
MODE="660", GROUP="plugdev", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1", \
SYMLINK+="stlinkv2-1_%n"
SUBSYSTEMS=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="3752", \
MODE="660", GROUP="plugdev", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1", \
SYMLINK+="stlinkv2-1_%n"
Solved! Go to Solution.
2026-02-10 9:19 AM - edited 2026-03-06 1:24 AM
Hello,
As it's an old device (I assume containing a very old ST-LINK firmware), try to use ST-LINK utility (an old tool) to update your STLINK device using that menu:
I remember I had same issues with ST-LINK having old firmwares, I solved that with ST-LINK Utility.
After updating the ST-LINK with STLINK utility, then update the device with CubeProgrammer.
Hope that helps.
2026-02-09 11:08 PM - edited 2026-02-09 11:19 PM
Hello @elsueno ,
Verify USB recognition and permissions. Check also physical connections and jumper.
Does the problem occur when you use another board, different USB port and new cables?
How to solve connection errors when connecting and programming the STM32 target board
2026-02-09 11:55 PM
2026-02-10 9:19 AM - edited 2026-03-06 1:24 AM
Hello,
As it's an old device (I assume containing a very old ST-LINK firmware), try to use ST-LINK utility (an old tool) to update your STLINK device using that menu:
I remember I had same issues with ST-LINK having old firmwares, I solved that with ST-LINK Utility.
After updating the ST-LINK with STLINK utility, then update the device with CubeProgrammer.
Hope that helps.