Go Down

Topic: Is STM32 worth it?  (Read 303 times) previous topic - next topic


Sep 11, 2019, 01:48 am Last Edit: Sep 11, 2019, 02:11 am by Francisco-Colli
Hi! My name is Francisco, and I am 17 years old, I have intermediate Arduino skills, i also worked with LoRa and Nodemcu, but recently I saw this STM32F407VET6 MCU under €9. You can program it using Arduino IDE, stm32 cube IDE and assembler.

Some specs.

"STM32F407xx family is based on the high-performance ARM®Cortex®-M4 32-bit RISC core operating at a frequency of up to 168 MHz."

Some Specs

Cube IDE

I added the datasheet and the official site link.

Official page

My question is, is it worth it to waste time learning this platform? Or its way smarter go for an Arduino Due


Sep 11, 2019, 04:26 am Last Edit: Sep 11, 2019, 04:34 am by westfw
My question is, is it worth it to waste time learning this platform? Or its way smarter go for an Arduino Due
The STM32F Cortex ARM chips seem to be more popular than the Atmel SAM3X chips.
So yeah, probably more worth using than a Due.  Some things will be common (they're both ARM chips), but if you're going to be programming outside the Arduino framework, all the peripherals are different.

(the bad side is that there is less "Arduino Community" support for the ST chips.  So fewer  libraries to support all those "different" peripherals, less help on the forums, etc.)


Looks like Adafruit are currently in the process of designing a STM32F405 based feather board: https://blog.adafruit.com/2019/09/04/feather-stm32f405-how-did-we-do-st_world-stm32f405-stm32-stm-adafruit/.

So perhaps there might be more Arduino Community support for STM32 microcontrollers in the future.


Be aware that in some circumstances the faster microcontrollers (compared to 8Mhz ATmegas) can reduce LoRa  sensitivity.

Its something to check for and I have noticed it on the DUE for instance.


Think STM32 is a very interesting platform. Both STM32 and ESP are in my opinion more worth the effort than a Due.

If you want to start cheaper (although granted, also a little less powerful but I think that's a good thing ;) ) is a STM32F103 "blue pill". They are like €1,60.
Use fricking code tags!!!!
I want x => I would like x, I need help => I would like help, Need fast => Go and pay someone to do the job...

NEW Library to make fading leds a piece of cake


Since library support depends on users, its presence for STM32 in the arduino IDE is reduced. The question that fits is: what hardware do you want to connect?

For MCU of the family F407XX, the best option is the generic danieleff core






Nucleo F767ZI


There used to be STM32duino forum by Roger Clark. He is also member here. 
However, it looks like it is not active anymore. 
Arduino clone with ATmega1284P   http://forum.arduino.cc/index.php?topic=277260.0


the best option is the generic danieleff core
Why?  Without having paid attention in the intervening years, the diaspora of STM32F cores (and vendor libraries) is ... confusing (and  troubling.)
  • Leaf Labs develops Maple, based on STM32F103, using the ST vendor library of the day ("SPL"?)
  • displeased with performance, LL rewrites the core in bare metal code.  (REALLY bare-metal!)
  • LL loses interest, moves on to other stuff.
  • ... time passes...  Cheap STM32F103 boards from China show up, including "Maple Mini" clones.
    ST releases new Cortex chips and apparently makes it a policy to sell cheap development boards ("Nucleo", "Discovery", etc) in each family.  Hobbyist interest increases.
  • Roger Clark expands support, improves documentation, establishes stm32duino code repository and associated wiki and forum sites.
  • ST keeps releasing chips and boards.  Their vendor libraries mutate ("Cube", "HAL", "LL", "CMSIS")  Out of necessity, the STM32 code makes more use of the libraries, or at least the vendor-provided structure and constant definitions.
  • Roger loses interest.  ST gains interest in the Arduino community, assigns some people. https://github.com/stm32duino/ (ST Supported!) is born.  (exact ordering and motivations "unclear.")  Increasing dependence on vendor libraries.
  • Danieleff core also appears.  Motivation and differences "unclear."
  • ... ? ...

(The above is meant to be non-judgemental and non-political.  "loses interest" in particular is not meant to be derogatory.  's just a fact of  life; supporting some piece of OSSW for 5+ years without it making you rich and/or famous is a tough job.  Perceived or real licensing issues may have played a part in some decisions.  Exact parentage of various versions has not been tracked down.  Etc...)


There used to be STM32duino forum by Roger Clark. He is also member here.
However, it looks like it is not active anymore.
I haven't followed it enough to comment on its value, but there exists an Arduino forum under the broader STM board: https://community.st.com/s/topic/0TO0X000000BWWSWA4/arduino

As noted by "westfw" the backstory for Arduino on STM32 is convoluted and confusing to someone just getting on board and for that matter, those of us who have been at it for awhile.  At this point in time and going forward the recommendation is to use the official STM Core.

It's important to be aware that a lot of "how-tos" one finds on the internet were created prior to this point in the Arduino on STM32 evolution and might not be quite right anymore.


Roger started with the blue pill plates and did an excellent job, he brought the F1 and F4 series to our hands. But his initial work must have been overwhelmed by the daily life we all have.

He created the forum with the idea of sharing his work and for the community to contribute more ideas and why not, variants and libraries. With the passage of time, those of STM32 struggled to make their official core, integrated into the arduino environment.

In both cases, adding a variant, involves immersing yourself in the paths that led you to see a "blink" and is not a simple task.

Other approaches emerged, which simplified the addition of variants, we know them as "generic cores": danieleff, ChrisMicro or huaweiwx. Unfortunately their jobs were stopped around the F7 plates. But they managed to add a lot of variants.

The core whose procedure to add new variants turns out to be the most reliable is that of danieleff.

You can handle the F407 series very well as the VE mentioned by Francisco-Colli at the beginning of the post.

It has a good amount of 100% functional fundamental libraries for STM32: SDIO, an optimized SdFat version, SPI, Wire, can handle EEPROm through the AT24Cxx library.

It can handle the DotStar library, DotStarMatrix, GFX_AS, DHT and sensor.

Best of all, it has allowed me to handle screens of the FT80x, FT81x and recently BT81x! series, modifying the gameduino library 23X, harnessing the power of the SdFat library that is included in the danieleff core.

Given the first comment "about ease of learning", my recommendation is that you familiarize yourself with the danieleff core, which will give you the basis to advance to the official STM32 core, and, looking beyond that border: get acquainted with the STM32 HAL.

Go Up