Not too long ago, upgrading firmware on STM32F4-Discovery board required it to be performed on a Windows machine. That annoyed the heck a lot of people, myself included.
There’s a very good news for Linux and Mac users. Now, you can do it from your favorite OSes. Since I’m so excited about this, here’s a short article on how to do just that.
First download “STSW-LINK007” from <www.st.com/web/en/catalog/tools/PF260217>. At the time of this writing the file is called: stsw-link007.zip
.
$ unzip stsw-link007.zip
$ tr tree -L 2 .
├── AllPlatforms
│ ├── native
│ ├── StlinkRulesFilesForLinux
│ └── STLinkUpgrade.jar
├── readme.txt
├── stsw-link007.zip
└── Windows
├── ST-LinkUpgrade.exe
└── STLinkUSBDriver.dll
4 directories, 5 files
Let’s set up the udev rules so that your microcontroller board gets recognized when it’s plugged into the computer.
Copy StlinkRulesFilesForLinux/49-stlinkv2-1.rules
to /etc/udev/rules.d/
, and then either reboot or run:
$ sudo udevadm control --reload-rules
$ sudo udevadm trigger
Plugin the STM32F4-Discovery, and run STLinkUpgrade.jar
program:
$ cd AllPlatforms
$ java -jar STLinkUpgrade.jar
STLinkUpgrade running on Kubuntu 14.04.
The current firmware on board is: V2J14S0, and it can be upgraded to V2J25S0. Click on Upgrade and wait:
Firmware successfully upgraded.
This methods might work for other STM32 boards such as STM32 Nucleo, though I haven’t tried it yet.