Is STM32 really lagging behind?
As an embedded development veteran, I have heard people say "STM32 is outdated" more than once, especially those who are just getting started or have read a few articles. Whenever I hear such remarks, I can't help but want to laugh, but I'm a little helpless. This view often comes from people who don’t have a deep understanding of the embedded field, who may be misled by some marketing or one-sided information. Today, I would like to talk from a professional perspective about where STM32 is "lagging behind" and why it is still active in the front line of embedded development.
Start with my first STM32 development board
I remember eight years ago, when I first switched from a microcontroller to a 32-bit MCU development, the first development board I held in my hand was an STM32F103. At that time, I was still studying for a graduate student. I typed the HAL library code line by line to the blue board, lighted up the LED, drove the servo, and read the sensor data... The sense of accomplishment of building a system from scratch is still unforgettable.
At that time, there were classmates who used various chips in the laboratory, some used the 8051 series, some loved PICs, and some were just starting to get involved in Arduino. During discussion, I often hear remarks like "STM32 is too complicated" and "STM32 configuration is troublesome". However, as the project deepened, most of the students who initially thought STM32 were "complex" eventually turned to the STM32 platform because they found that simple and easy-to-use platforms often become restrictions in complex application scenarios.
Eight years have passed, STM32 has developed more series, and I have also grown from a rookie to a technical leader who leads the team. But STM32 is still one of the main development platforms of our team. Not only that, STM32 still occupies an important position in most small and medium-sized embedded projects in the industry. This makes me think: Why can a platform called "backward" by some people have such strong vitality?
Where does the misunderstanding of STM32's "backwardness" come from?
Comparison with RISC-V: Architecture Controversy
In recent years, RISC-V has rapidly risen with the advantages of open source architecture, and many people therefore believe that STM32 based on ARM architecture has fallen behind. This comparison itself is somewhat unfair.
RISC-V is indeed innovative, and the open source architecture gives it an advantage in some application scenarios. However, it is very one-sided to simply equate this architectural difference with the advanced and backwardness of a specific product line. Just like you can't say "All gasoline cars are behind because of the update of electric car technology."
An industrial control project I worked on last year illustrates this very well. In the early stages of the team, some members proposed to replace STM32F103 with GD32VF103 (RISC-V architecture) on the grounds that "the architecture is more advanced." But after detailed technical evaluation, we found:
- Under the same performance parameters, the STM32 ecosystem is more complete, and it is more mature from development tools to third-party library support
- Team members are more familiar with ARM architecture, and using STM32 can save learning costs
- In terms of supply chain stability, STM32 was more secure at that time.
The final project still chose STM32 and the delivery was successfully completed. This does not mean that RISC-V is not good, but that choosing an MCU cannot only look at the architecture, but also comprehensively consider factors such as specific application scenarios, team capabilities, and product life cycle.
Comparison with high-performance processors: different positioning
Another common misconception comes from a simple contrast with a high-performance processor. Some people think that STM32 is behind when they see high-performance processors such as Raspberry Pi and ESP32 that integrate WiFi/Bluetooth.
This is as unreasonable as comparing a family car to a construction car. STM32 is completely different from these platforms:
The STM32 series mainly targets scenarios where real-time requirements are high, power consumption requirements are strict, and peripherals need to be accurately controlled. For example, in a medical equipment project I participated in, the accuracy of using STM32F4 to control the stepper motor can reach the micron level, while ensuring the system's low power consumption is more than 24 hours. If it is replaced with a high-performance processor, not only will the power consumption be difficult to control, but the real-time performance is also difficult to guarantee.
I remember once discussing with a friend who used a Raspberry Pi to make a robot, and he complained that the control accuracy was not ideal. I asked him why he didn't consider using STM32 for underlying control, and the Raspberry Pi was responsible for high-level decisions. After he tried it, the effect was indeed much better. This shows that different platforms have different applicable scenarios.
Comparison with new MCUs: Ecological value is underestimated
In recent years, many new MCUs have indeed emerged, such as ESP32 series, RP2040, etc. These new platforms often bring some attractive new features, such as lower prices, built-in WiFi/Bluetooth, etc. Some people therefore believe that STM32 has been "surpassed".
But this view often underestimates the value of mature ecology. Last year, I took over a project, and the team chose a new MCU in the early stage (which one is not convenient to say specifically), because "the specifications and parameters are much better than STM32." But the project encountered trouble in the middle of the process:
- During the development process, there was a stability problem with the official library function.
- Some peripherals have imperfect driver support
- It is difficult to find relevant solutions when encountering problems
Finally, I had to switch to the STM32 platform urgently. Although it seemed "not as good as" the MCU I originally chose in terms of specifications and parameters, the development efficiency was greatly improved and the project was finally delivered on schedule.
This reminds me of the words of an old electrician: "Good tools are not necessarily the latest, but are the ones that are most suitable for work at hand." The STM32 is like a wrench that has been used for many years. Although it is not as shiny as the newly bought one, the feeling and practicality of holding them in your hands has been tested by time.
Core advantages of STM32: Why it remains a mainstream choice
A comprehensive product line covers almost all application scenarios
The STM32 product line is almost unparalleled. From the entry-level STM32F0/G0 series, to the mainstream F1/F4 series, to the high-performance H7 series, it covers a variety of needs from simple control to complex computing. In addition, there are L series optimized for low power consumption, G series for mixed signal processing, etc.
This comprehensive product coverage allows developers to migrate smoothly between projects. For example, I was once responsible for the development of a product series, with three configurations from the entry-level version to the flagship version. We chose three chips with different performances, STM32F0, F4 and H7, but the underlying driver architecture is basically the same, greatly improving the code reuse rate and accelerating the development cycle.
If three chips from different manufacturers were selected, even if a single chip may have certain advantages, the overall development efficiency would definitely be greatly reduced. This is why many experienced teams would rather use STM32 that "looks a little worse" than risk choosing "looks a better" chips from three or five different manufacturers.
A sense of security brought by a mature and stable ecosystem
To be honest, I have indeed tried various new platforms in recent years, and some of the experiences are also good. But whenever I receive important projects, especially those that require high reliability and have long-term maintenance requirements for maintenance cycles, I still choose STM32 first. Why? One word: stable.
After years of development, the STM32 ecosystem has become quite mature:
- Development tools are available from paid Keil, IAR to free CubeIDE
- Although some people complain that the HAL library is not efficient, it covers comprehensively and continuously maintains it.
- The community is rich in resources, and you can find corresponding solutions to almost any problem
- Third-party components support a wide range of applications, from RTOS to various middleware
More importantly, STMicroelectronics, as a veteran semiconductor manufacturer, has a stable product strategy and long-term supply commitment. This is crucial for projects with a long product life cycle.
I have experienced a lesson: a consumer electronics project uses an MCU from an emerging manufacturer, which is cheap and has good performance. But in less than two years, the model was discontinued, forcing us to urgently redesign. In contrast, a device I designed in 2015 that uses the STM32F103 can still obtain chip supply steadily until now (although I experienced a period of out-of-stock last year).
Sound technical documentation and application support
As a developer, I can especially understand how important detailed and accurate technical documentation is. I have used many domestic chips, and the technical documents are of uneven quality. Sometimes I need to spend a lot of time trying and errors or contacting technical support when encountering problems.
In contrast, ST's technical documentation is very detailed, covering almost every possible problem you may encounter, from datasheet to reference manual to application note. In particular, those application notes often include practical code examples and design guides, saving developers a lot of time.
In 2019, I was responsible for a motor control project and needed to achieve precise position control. Through the ApplicationNote and code examples provided by ST, we quickly implemented FOC control based on STM32F407, with very good performance. Without these detailed reference materials, development time may be more than doubled.
STM32 does have shortcomings
Of course, STM32 is not perfect, and I don't want to avoid some of its real problems.
Efficiency issues of HAL library
Although ST's official HAL library has comprehensive functions, it does have problems such as bloated code and low efficiency. Compared with bare metal programming or using streamlined LL libraries, the code size and execution efficiency generated by the HAL library are significantly disadvantageous.
I have done a test before, and I also configured a timer. The amount of code used by the HAL library is about 3 times more than that of directly operating the registers, and the execution time is much longer. For small projects with tight resources, this is indeed a problem.
However, there is a solution to this problem: for parts with high performance requirements, you can directly operate the registers or use the LL library; for general functions, use the HAL library to improve development efficiency. I often use this hybrid method in actual projects and have achieved a good balance.
Configuration complexity
Compared with platforms like Arduino, the configuration of STM32 is indeed much more complicated. Beginners often need to spend a lot of time understanding the working principles and configuration methods of various peripherals.
But this "complexity" is actually the inevitable result of flexibility. The reason why Arduino is simple is that it hides a lot of underlying details and is suitable for rapid prototyping. STM32 allows developers to accurately control every aspect of the hardware, which is often necessary in commercial product development.
I often say to new members of the team: "Learning STM32 is not learning a specific product, but learning general knowledge of 32-bit microcontrollers." Although this kind of learning is a bit painful in the early stage, once mastered, it can be applied to almost all ARM Cortex-M series microcontrollers, with a very high return on investment.
Relatively lacking high integration capabilities
Compared to some emerging MCUs, STM32 does lack in high integration capabilities. For example, most STM32 models do not have built-in WiFi/Bluetooth function and require external modules to implement it.
This increases the system complexity and BOM cost to a certain extent. But in turn, this "discrete" design also brings greater flexibility, allowing developers to select the most suitable components based on specific needs.
Taking a smart home project I participated in as an example, we initially considered using ESP32 as the master because it integrates WiFi functionality. But later it was found that the project had high requirements for motor control accuracy, and with the iteration of functions, the resources of ESP32 were a bit tight. Finally, we adopted a combination design of STM32F4 and ESP8266, which not only meets the control accuracy requirements but also maintains good scalability.
Industry Practice: STM32 is still an irreplaceable main force
Putting aside theoretical discussion, let’s take a look at the actual industry applications. Among all the industries I have come into contact with, STM32 is still one of the dominant MCU platforms.
Wide application of industrial control
In the field of industrial control, reliability and long-term supply guarantees are often more important than the latest features. With its stability and rich communication interfaces (such as CAN, RS485, Ethernet, etc.), STM32 has become the mainstream choice for industrial control equipment.
I have been involved in an industrial sensor network project that requires the acquisition of data from hundreds of sensors in real time and preprocessing them. The team finally chose the STM32F407 as the controller for the data acquisition node, not only because of its powerful computing capabilities, but also because of its stable peripheral performance and long-term supply guarantee. The system has been operating stably for more than three years and has not had chip-related failures so far.
Key roles in medical equipment
Medical equipment has even more demanding in reliability. In this field, software and hardware must be strictly verified and certified, which makes mature and stable platforms have natural advantages.
In 2020, I participated in the development of a portable medical device, and the core controller used STM32L4+. The reason for choosing this low-power MCU is simple: it can not only meet the computing needs of the device, but also control power consumption and extend battery life. More importantly, the STM32 series has rich application cases and long-term reliability proof in the field of medical electronics, which is very beneficial for passing medical device certification.
Still active in consumer electronics
Even in the field of consumer electronics, which is rapidly updated, STM32 still occupies an important position. From wireless headphones to smart watches, from electric toothbrushes to smart home devices, the STM32 is everywhere.
Last year, I helped my friend analyze a popular smartwatch on the market. After disassembling it, I found that it uses the STM32L4 series chip. This watch needs to balance the contradiction between feature richness and battery life, and the STM32L4 is ideal for its excellent power consumption characteristics and sufficient performance.
For the future: STM32's development roadmap
A key reason for saying STM32 is "backward" is that some people believe it has not kept up with the pace of technological development. But in fact, ST has been promoting innovation and progress in the STM32 product line.
New models are constantly being launched, and performance is continuously improving
The STM32H7 series represents the latest achievements of ST in the field of high-performance MCUs, with a main frequency of up to 480MHz and built-in large capacity and high-speed RAM, and its performance is close to the level of low-end application processors. Moreover, the new generation of STM32U5 series adopts more advanced process technology, which further reduces power consumption while improving performance.
When I first got a STM32H743 development board, I was really shocked by its performance. It uses it to implement complex DSP algorithms and image processing functions, and the running speed is several times faster than the original F4 series. This made me realize that STM32 is not stagnant, but is constantly evolving.
Special series for new application scenarios
ST is also launching a dedicated series for emerging applications. For example, in response to wireless connectivity requirements, the STM32WB series with integrated Bluetooth was launched; in response to smart sensor applications, the STM32L4+ series with integrated machine learning accelerator was launched.
These dedicated series of chips allow STM32 to better meet the needs of specific application scenarios and maintain its market competitiveness. Not long ago, I tested the STM32WB series for a wearable device that requires Bluetooth function, and found that its integrated protocol stack and RF performance are quite good, and the development experience is much smoother than before using discrete solutions.
The software ecosystem continues to improve
In terms of software, ST launched the STM32Cube suite, including CubeMX configuration tools and CubeIDE development environment, greatly simplifying the development process. At the same time, it also provides rich middleware, such as FileX file system, ThreadX RTOS, etc., further enriching the software ecosystem.
To be honest, I was initially on the wait-and-see attitude towards CubeIDE because I was used to Keil's development environment. But after using it for a while, I found that its Eclipse-based interface is actually quite easy, especially after integrating the functions of CubeMX, the development efficiency has indeed improved a lot. Now my new projects are basically developed using CubeIDE.
Rational thinking about choosing a MCU
Having concluded this, what I want to say is that judging whether an MCU platform is "lagging behind", we should not only look at its release time or a single indicator, but should fully consider the following factors:
Application requirements matching degree
The best one is the best. For scenarios with high real-time control requirements, STM32 may be more suitable than some newer platforms; for IoT applications that require complex network connections, an ESP32 with integrated WiFi may be more suitable.
I often say to beginners: "First think clearly about what problems you want to solve, and then choose the right tools." Blind pursuit of "the latest" often brings unnecessary complexity and risks.
Development efficiency and learning cost
The value of a platform lies not only in its technical specifications, but also in whether it can help developers get their jobs efficiently. Mature development tools, rich learning resources, and active community support are all important indicators for judging a platform.
I have seen many teams choose new platforms with "stronger performance", but encounter various problems during the development process, and the project was finally postponed, which was not worth the loss. By contrast, using the more familiar STM32 platform, while perhaps not optimal in some parameters, it is usually faster and more reliable to complete the project.
Long-term availability and supply chain stability
For commercial products, the long-term supply guarantee of chips is crucial. A platform with advanced technology but may be discontinued at any time is often not a wise choice.
This is particularly evident in the chip shortage in the past two years. Although STM32 has also experienced tight supply, its supply chain recovers faster than the products of some small manufacturers and has a relatively small impact on product production.
My suggestions: Adapt to local conditions and make rational choices
Based on the above discussion, I would like to provide some advice to readers from different backgrounds:
For beginners
If you are just starting to learn embedded development, I recommend starting with Arduino to quickly build confidence; then transitioning to STM32 to learn more professional embedded knowledge. Although the learning curve of STM32 is steep, its ability to improve significantly after mastering is mastered, which is very helpful for future career development.
I remember when I turned to STM32, although it started to struggle, after persisting for a while, my whole understanding of embedded systems became much deeper. Now it seems that this is an important turning point in career development.
For professional developers
As a professional developer, I suggest keeping an open-minded vision of technology and being familiar with the characteristics and applicable scenarios of a variety of platforms. STM32 can be used as the main platform, but you also need to understand the advantages of new platforms such as ESP32 and RP2040 and flexibly choose according to project needs.
In the team I am responsible for, we mainly use STM32 for development, but we also use other platforms for specific projects. This flexibility allows us to provide our customers with the most suitable solution, rather than copying it.
For product managers and decision makers
When selecting a core controller for a product, in addition to technical indicators, please focus on supply chain stability, ecological integrity and long-term support commitments. In the short term, some new platforms may have price or feature advantages; but in the long term, mature platforms can often provide more reliable product life cycle guarantees.
Conclusion: STM32's "backward" and "leading"
Back to the question at the beginning: Is STM32 really lagging behind?
Judging from certain specific indicators, STM32 is indeed not the "latest" choice. However, from the perspective of overall practicality, ecological integrity and practical application value, it is still one of the most powerful platforms in the embedded field.
Like an old wrench tested by time, the STM32 may not be the brightest, but its reliability and practicality have been verified by countless engineers and countless projects. It will still play an important role in the embedded field for the foreseeable future.
There is no absolute right or wrong in technical choices, only whether they are suitable. My attitude towards STM32 is neither blindly advocating nor easily denying it. It is an important tool in the toolbox and it is still the best choice in the right scenario.
Finally, what I want to say is that as engineers, what we should pursue should not be "latest" technology, but technology that can effectively solve problems. Sometimes this may mean choosing a "not that cutting-edge" but proven platform, like STM32.
Engineering is ultimately about practice and effect, not a simple parameter competition.