STM32 F4 series of high-performance MCUs with DSP and FPU instructions

Matty informs us of a new STM32 dev board he learned about:

There’s a new STM32: the F4 series.

They can go up to 168 MHz, and have a bunch of new integrated peripherals, like 54 Mbps camera interface and DSP+FPU.

There’s also the STM32F4DISCOVERY board on sale for $20, with an STM32F407 (Cortex-M4F), 3-axis accelerometer, audio sensor and class-D amplifier. On top of that, it includes an ST-LINK/2 debugger.

Heck of a deal. Definitely on my next Digi-Key order, once it gets stocked.

Digi-Key is accepting preorders for the module at $20.73. The three page data brief can be found here. There is also a 97 page PDF explaining the features of the STM32 F4 family available for download.

Join the Conversation


  1. ST is pushing a lot on their STM32, with extremely aggressive prices too.
    I’ll use one of these in my robotic framework as smart camera, next year maybe.
    If you are interested in exploring STM32 devices I’ll be happy to give any hints, I love them and I work on them all day ;)

    1. Hello, could you recommend a camera to use with stm32f4discovery? Having some problems in choise. Thank you

  2. Speaking of open source solutions, you can use Eclipse IDE, OpenOCD, and cross compile with gcc (Codesourcery, yagarto, or build your own toolchain by hand ore using some makefile like this: ).
    There is also an eclipse plugin to look into hardware registers:

    Speaking of free, there is Atollic IDE but it runs only on windows (also being based on Eclipse… wierd ;)

    Speaking of non-free, but commercial-grade and running on Windows, Linux and OSX, there is Crossworks for ARM that sells for 150$ for non-profit use, 300$ for accademic use.

    The only real problem with ARMs is that they were targeted to industries up to a couple of years ago, so you don’t have the community and open source solutions you can get for, e.g., AVRs…

  3. I use eabi toolchain for cortex m3, also CoCox (wine) and Atolic (virtualboxed) but I didn’t noticed there’s m4 support there .. will check out when these boards arrive :)

  4. zizzle, there’s a stlink tool as native app on linux – works ok for uploading hex to the board if we’r talking about stlink enabled discovery boards. If you’r using regular stm32 you can both go with bootloader (all stm32 with cm3 have a bootloader, no idea about cm4) so you need a serial port and a native linux client or you can use bus blaster and upload hex trough jtag interface (I actually never tried to do this but it should be possible with jtagOCD). Wrt debugging from linux, I personally never managed to make it work properly but I heard ppl managed to make it work trough jtag. Donno about anyone who made debugging from linux work trough stlink. I was using keil and atollic from within virtual box and debugging via stlink worked ok (discovery boards with cm3)

  5. Good night everybody, that looks like a pretty nice micro-controllers with a lot of womp!

    I have the same doubts about what IDE to use, I know that I can use CodeSourcery, but I dont know where to find the header files with the register definitions and the linker scripts.
    Is there a site with that sort of information or some forum post, or the like?

    Also, is CooCox a good compiler or does it produce bloated code?

  6. Hey, regarding stlink support in linux (at least for the older stm32 M3 boards), it is definitely do-able. The original stuff was located here: I haven’t kept up with it (I’ve been working on other projects), but I have my own older modifications posted: Undoubtedly there is probably an even better tool now, as this was about 6 months ago. At the time I was able to do a fairly complete gdb debug session (with some minor hiccups).

  7. CooCox, Atolic and many others all use GCC. I’m not sure if that’s the same build as CodeSourcery but I didn’t find much differences (actually none but didn’t do too much testing) between code generated by CodeSourcery and by gcc I built myself (eabi) but I’m sure the code is not “bloated” as it is more/less same compiler. I have to mention that I tried Keil 4 and it did generate significantly different code then gcc. I didn’t do too much exploration of the resulting asm (I’m not very proficient in cortex M asm) but the code looked more compact and it actually used less flash by default. There’s bunch of compile time options to set with Keil wrt optimization so it might be worth the cache, anyhow, it’s too expensive for hobby imho so I’m sticking with gcc.

    Now wrt mentioned “bloated ide”, I do prefer to use vi + make but from time to time I need to debug stuff and I have to say gdb sucks big time !!! a proper debugger is really required and that’s where IDE comes very helpful. Current desktops are big and powerful enough for the “bloated ide” to still work inside 1% of the resources available so it’s really not a big deal – and IDE being bloated don’t entails that resulting hex will be bloated too :)

  8. Thanks for the comments arhi.

    Wrt to bloated IDEs, a few of things:

    a) I use Eclipse for Java a lot in my day job and don’t mind it. It’s stable and works well. The refactoring tools can be handy. Jumping between methods etc. is often easier in an ide.

    However I’ve been using Eclipse based CodeWarrior for a project lately with the Freescale Kinetis board. It’s totally different. It constantly uses all the CPU for no reason. After a few code downloads, communication with the MPU starts to fail and a restart of the IDE is needed.

    It’s just poorly done, and I guarantee it uses more than 1% of the resources of a modern PC. :)

    b) as I have mentioned before on these boards, I like to use an old laptop hooked up to my target board out in the workshop. I can stay inside and use my much faster desktop or laptop for the actual coding and building. I have a makefile target that pushes the binary across the network to the workshop laptop to run on the target. I have this working for AVRs, MPS430s, Renesas RXs, and some ARM chips.

    All that I really need is a gcc based compiler and Linux commands line code download tool.

    Sounds like that should be possible with the STM32 boards. I might pick one up.

    Haven’t found a way to do it with the Kinetis K60 yet unfortunately. There is no way CodeWarrior would run on my workshop laptop.

    c) I agree, IDE based debuggers are usually pretty good and worth the effort (in my case hooking the target board up to my more powerful laptop)

    I’m just thinking of a pretty cool project… Replace the workshop laptop… Imagine a small embedded board that has wifi and can program any common MPU, ARMs, AVRs, FPGAs, PICS, RXs. Just hook it up to the target board and be able to send it hex files over the network.

    1. I just get the board a few weeks ago and try to set some easy way of working on it..

      Started with Keil, Atollic.. both has evaulation versions, but “useless” for home projects.

      Then I set up Eclipse.. tooks me days to get it work.. and need to “write a how-to” for others or as remainders.. And yes, it’s slow compare to other options. I used -and loved- eclipse for java, php, py and many other works, but it’s getting a hassle to maintain and set up.

      Then I found Sublime Text.. just great for an IDE. I use linux, so gcc and gdb works well, I can use Sublime Text as IDE, great code editor, build and debug within it.

      If you looking for a quick and easy way to work with this board, get sublime, arm gnu (or sourcery g++) and the open source STLINK. (this last one is for gdb and load app to flash/sram via normal usb cable)


  9. wrt bloated ide’s I was talking about plain eclipse (I use eclipse + c plugin to work for ARM, works like a charm), cocoox (eclipse based), atolic (eclipse based) and keil (propriatary app) … they use less then 1% of my desktop resources and my desktop is a regular machine :) … that freescale stuff must have some serious bug…

    everything else I do agree with you as I too use mostly vi + make

    as for the “cool project”, a linux running board (bunch available recently, some using atom, some amd geode, some use arm7 or arm9 ..) with wifi module, a small 256×128 bw tft, bus blaster and urjtag+openocd and you should be able to put it all together. You could throw in a usbasp and pickit2 clones on board and be able to burn almost any modern mcu… with a nice gui you could make a fancy universal programmer..

  10. Good night Ahri, I know that this might be strange, but are you willing to write a small tutorial in the forum about setting up the gcc compiler for arms and where to get all the files needed to compile code to say an STM32 or an LPC1768 chip?
    Or leave here in the commentaries where to source such information?

  11. I did it some serious time ago so it’s not fresh in my mind .. I plan to soon upgrade to F15 so I will have to rebuild the toolchain from scratch (I’ll write the step by step when I start doing so)… Also my current ARM toolchain don’t work perfectly (no programming nor debugging from inside eclipse) so I hope to fix that next time around…

    As for the url’s, here’s copy paste from my bookmarks folder “arm toolchains”:

    I have not used yagarto but from what I heard it is easiest one to get going (especially if you like Eclipse).

    What I did is to compile the arm-eabi-toolchain from source repository and then I used CDT plugin for eclipse to link the two. I still can’t debug from Eclipse nor I can “program” from Eclipse (I have to start external program to upload hex and debugging don’t work from linux for me at all, not even trough gdb). Because of that lack of usability I’m using ATOLIC FREE STUDIO on xp inside virtual box (I have to have one vbox running with xp non stop on my desktop anyhow so I use it for this too)… for smaller projects I use vi+makefile but if I need to debug something I need to move the project to atolic .. hopefully next time around I’ll make it all work natively (I know it can work just I never got around to fix it properly)

  12. Wow, it seems like there is a lot of interesest around STM32 and ARMs in general.
    So, let’s move to the forum, I can write the tutorial to get ready to work with STM32, that I need for a course too, so I’m already verifying it (I have to guarantee that it works on windows too, that is the most difficult part ;)

    1. :D Well you get a pretty good 32bit mcu on a board for 10$ STM32VLDISCOVERY with STM32F100RB – the smallest cortex m3 from ST, continued with STM32L-DISCOVERY with STM32L152RBT6 and now this new one with cortex M4 .. This new cm4 board jumped from 10$ to bit more but still it is seriously cheap dev tool, it comes with accelerometer :D

      I noticed on forums and looking at number of foss projects ppl go bit more with NXP then with STM as it seems NXP is packed with more hardware (kinda reminds me of microchip) but I personally prefer STM mostly because of these super cheap dev tools that allow me to do rapid development….

      Moving this to forum makes a lot of sense :D especially if you have time to write the tutorial :)

      1. I’m on the way to write it, I hope to have a good working, verified tutorial on the beginning of next week, then I’ll start the forum thread, or maybe a wiki page AND a forum thread?
        Now that wiki looks much more as a product description area than a generic wiki, I’m not sure if we can use it for such kind of tutorials..

      2. Anyone with a forum account can edit the wiki. Start out in the forum if you like, and we can move it to the wiki later. Don’t be afraid to use it though, it’s there for everyone to contribute.

      3. Did you already start to write a tutorial somewhere. I’m searching the web for a description how to setup an IDE for the M3/M4 MCUs in my Ubuntu machine. So ist World help me a Lot!

  13. The 32×32+64=64-bit MACC instruction, the two I2S ports supporting 32-bit and 192 kHz and the low power design should enable high quality audio applications. Just ordered four STM32 F4 dev boards from Mouser. Hope they will ship soon.

  14. Digi-Key lists the MCU at zero stock for $17 USD each in unit qty. Looks like another case of “unobtanium” going on here. Of course you could just buy the dev boards for a few bucks less than the chip itself and pull the chip off for your own designs :-(

  15. At less than $20 this would make a great base for a Web Server. What is needed is a cheap daughter or breakout board with the Ethernet physical interface. Possibilities are the likes of National’s DP83848C with is used on STM’s STM3240G-EVAL board or Marvell’s?? This would be a heck more capable than the processor planed for the Web platform V2 at potentially same or less cost
    If someone with the experience to do the hardware, could help out here that would be fantastic!

  16. STM32 F4 Seminars North America 2011

    The new STM32 F4 series offers the world’s highest performance Cortex™-M based microcontrollers. This seminar series is intended to present the architectural and peripheral advantages of the product that will give added value to your applications. You will learn how to kick-start your applications using ST’s ecosystem of tools and software.

    The STM32 F4 series will be shown as a highlight on the ST’s booth at ESC Boston starting 26 September.

    1. Attendees will receive a FREE STM32 F4 Discovery Kit featuring an STM32 F4 evaluation board, embedded ST-LINK/V2, USB interface for debugging and programming and access to numerous examples available from

  17. All these fairly cheap boards come with ST-Link or ST-Link2 on board. It is (for e.g on this board) STM32F103CAT6 mcu with few passive components. Every discovery board can be also used as a debugger as there’s a way to detach (jumpers) the ST-Link from the onboard mcu and use the provided SWD connector to debug your own target.

    This brings us to question – is there available source (or at least elf/hex) of the firmware inside this STM32F103 that gets the ST-Link/ST-Link2 working? I don’t see a reason for ST to hide that hex and it would be cool to have it :) but I was unable to find it anywhere (have not tried to read it directly from the chip but I assume that if they don’t wanna share it they protected it )

Leave a comment

Your email address will not be published. Required fields are marked *

Notify me of followup comments via e-mail. You can also subscribe without commenting.