Embedded fundamentals

ESP32 vs STM32: Choosing a Microcontroller for Your Project

Compare the classic ESP32 and the STM32F103C8 with a requirements table and two sample projects; Measure wireless connectivity, timers, memory, consumption and development tools separately.

Contents
Real photo of ESP32 board with ESP-WROOM-32 module; Example of a development board, not the test result of this article.
Real photo of ESP32 board with ESP-WROOM-32 module; Example of a development board, not the test result of this article. Photo: Ubahnverleih; Wikimedia Commons resource; CC0. Unedited photo content; Wikimedia demo version used.

Short answer: start with the project requirement

If the project needs to connect to Wi-Fi and BLE without additional modules, a suitable board from the ESP32 family is worth checking out. If the main concern is local control, timers and specific I/O, a suitable STM32 can also be a good choice. But the names of these two families are not enough to make a final decision: ESP32-S2 does not have built-in Bluetooth, and not all STM32s are similar to F103. Write the full chip model, board and tool version.

In this guide, the numerical comparison is only between ESP32 classic and STM32F103C8. The goal is not to declare a permanent winner; We want to find out which limitation will stop your project first. The price and availability of the day or the speed test on the physical board are not claimed in this article.

A comparison table that preserves the boundary of models

CriterionClassic ESP32STM32F103C8
ProcessorXtensa LX6 single/dual core models; Up to 240 MHz depending on the modelCortex-M3; Up to 72 MHz
Internal memory520 KB SRAM; Not all of that RAM is free for the program20 KB SRAM and 64 KB Flash for C8
Internal radio communicationWi-Fi band 2.4 GHz and Bluetooth Classic/LEIt does not have built-in Wi-Fi and Bluetooth
Wired communication pathModel dependent digital interfaces and free board pinsUSB, USART, SPI and I2C with pin restrictions and resource sharing
decision criterionSee network performance, software stack and power budget togetherConsider the timer, memory and the need for an additional communication module

Numbers come from ESP32 datasheet and STM32F103x8/xB datasheet. The number 128 KB does not belong to all models of this document; Design for C8 on the official capacity of the same part.

Actual photo of educational board named STM32F103 in the source; Verify the part number and board schematic separately.
Actual photo of educational board named STM32F103 in the source; Verify the part number and board schematic separately. Photo: Popolon; Wikimedia Commons resource; CC BY-SA 4.0. Unedited photo content; Wikimedia demo version used.

The first project: thermometer connected to phone and network

Suppose SHT31 is read every two seconds, the data is seen on the phone and if there is a network it goes to the server. First write the data contract: temperature, humidity, validity status, sample number and time of last successful reading. A Wi-Fi outage should not stop the sampling time indefinitely, and a corrupted reading should not display a valid zero.

In this scenario, ESP32 can reduce the number of communication parts. The cost is connection management, stack memory, and consumption spikes when sending. Choosing simply by the MHz number does not indicate this cost. To get started, read SHT31 tutorial and Setting up BLE on ESP32 together.

Authored tutorial: ESP32 vs STM32: Choosing a Microcontroller for Your Project
LCENJ authored educational chart; A photo of the circuit is not a measured waveform or the result of a physical test. Its assumptions and application are explained in the text.

The second project: local control with scheduled output

List the number of independent timers, capture and PWM channels, interrupt behavior, and output error mode to control a low-voltage actuator. A small STM32 may cover all needs; It may not have enough memory or timer. Replacing the board with a more powerful model will not answer the question without checking the pin mapping.

Do not take power output directly from GPIO. First, specify the behavior of Reset and power cut; Then select the driver and load protection. Article Practical MOSFET and the guide What Is PWM? Arduino Frequency and Duty Cycle Examples They are complementary to this section.

Fill out the requirement table before purchasing

hypothetical needThe acceptable limit of the projectAcceptance evidence
Sensor registrationOne valid sample every 2 secondsRecord the sample distance and data age
network returnAfter disconnection, limited and visible effortEvent report and attempt counter
control outputDefault mode is offCheck Reset and reboot
memoryAdequate margin in the worst caseConsumption report with active network and log
powerFits real source and batterySeparate measurement of sleep, processing and sending

The values in this table are design examples. Change the limit for your own project and compare the same firmware version on real options. One test with off log and another with heavy log is not a fair comparison.

See chip, module and development board separately

It may be that the chip has an interface but the required pin is not exposed on the board or it is connected to Flash, LED or other part. The module also has antenna and power limitations. The number of pins printed on the sales page is not the number of free GPIOs suitable for the project.

Also account for battery consumption, power LED, regulator and expansion board USB converter. The sleep current written in the chip datasheet does not guarantee the total consumption of a DevKit. guide Why does ESP32 reset? Brownout and power troubleshooting To check the power supply and how to read the datasheet? From absolute limit to part selection helps to read specification conditions.

Common questions and next steps

Is ESP32 always faster?

Clock number alone does not determine application response time, interrupt latency, or interface speed. Compare the same actual work with the specified constraint.

Do all ESP32s have the same Wi-Fi and Bluetooth?

No; Check the exact model, module and stack version capabilities. The family name does not replace the attribute table.

Is a cheaper board always enough for a simple sensor?

Only after checking memory, pin, source, error and development tools. A cheap part can result in higher module cost or development time.

Next step: fill out the requirements sheet that comes with the article, implement a required feature, and test against the same benchmark on the target hardware.

Official sources and accompanying files

Technical resources were reviewed on 10/13/2026. Match the version and model of your part with the related document.

Get the decision sheet and test registration (CSV); The full package of the article and accompanying files are available from the download section of this page.

Compilation method: preparation and technical review with the help of artificial intelligence tools, official sources and computational examples. Hypothetical numbers are labeled as examples; Compilation or software testing does not replace real part and circuit testing.

Question and answer article

Ask your technical question

Questions and answers are published after moderation. Authors can see their own pending drafts.

No confirmed questions have been registered for this article yet.