Introduction to the STM32 Blue Pill (STM32duino) and other STM32 boards

STMicroelectronics STM32 32-Bit ARM® Cortex®-M MCUs are based on the Arm Cortex-M processor. The MCUs offer a 32-bit product range that combines very high performance, real-time capabilities, digital signal processing, and low-power, low-voltage operation. This is achieved while maintaining full integration and ease of development.

There is a large range of STM32 devices, based on an industry-standard core and accompanied by a vast choice of tools and software, makes this family of products the ideal choice, both for small projects and for entire platform decisions. STM32 microcontrollers are supported by a complete range of tools.

The STM32 portfolio features a variety of options, now including Arm Cortex-M cores (M0, M0+, M3, M4, and M7). This gives developers the flexibility to find the perfect STM32 for applications.

Here are some links and information on STM32 based microcontroller boards and how to use them.

Introduction to the STM32 Blue Pill (STM32duino) article at will tell you how the STM32duino stacks up against an Arduino and how to make it compatible with the Arduino integrated development environment (IDE). Commonly referred to as the STM32 Blue Pill, this board has nearly all the capabilities of the Arduino module but with a cheaper price. There are also issues: It is not compatible with most Arduino shields (due to differences in size and pinouts) and there are some steps that have to be taken before it can run Arduino code

Blue Pill STM32F103C8T6

How to use STM32 boards with Arduino IDE and how fast are they? (incl. surprise)

Links to more information:


Mark Carter Offers “Rambling” Thoughts on Why IDEs Suck and the STM32 Versus the Raspberry Pi RP2040 “My current thinking is to operate a dual strategy,” Carter offers, “switching between the Pico and the STM32 as the mood takes me.”


D-MARK Requires No IDE to Explore the Capabilities of an Arm MCU
This open source, easy-to-use development board is based on an STM32F070RB.

STMicroelectronics STM32 32-Bit Arm® Cortex®-M MCUs

System Workbench for STM32: free IDE on Windows, Linux and OS X

Could it run Doom? Mostly likely. STMicroelectronics NV just announced new STM32H7s featuring a Cortex-M7 running at 550 MHz.
New STM32H7s Are the Fastest Cortex-M7 MCUs Available
Could it run Doom? Mostly likely

Arduino Portenta Vision Shield includes a low-power camera, twin microphones, and Ethernet or LoRa connectivity.
Arduino #Portenta H7, the first STM32 Arduino board to deploy machine vision with OpenMV IDE
Arduino Launches Portenta H7 Vision Shield Add-On for Edge Computer Vision, Voice Work

STM32F Nucleo-64 Development Boards Review

With the market for STM32F103C8-based ‘Blue Pill’ boards slowly being overrun with boards that contain either a cloned, fake or outright broken chip, really wanted to have an easy, automated way to quickly detect whether a new board contains genuine STM32 silicon, or some fake that tries to look the part. After more than a year of work, the Blue Pill Diagnostics project……

Olimex’s Open Source OLIMEXINO-STM32F3 Handles Simultaneous USB, CAN Bus Communication
A shift to the new STM32 F3 series increases available flash and RAM, allows for USB and CAN bus operation simultaneously, and more.

KiCad STM32 Hardware Design and JLCPCB Assembly
KiCad STM32 + USB + Buck Converter PCB Design and JLCPCB Assembly (Update)

STM32 Programming Tutorial for Custom Hardware | SWD, PWM, USB, SPI

DFU is a SW is for programming the STM32 via the USB (UM0412)
The package contains all binaries and source code for DfuSe USB device firmware upgrade (DFU) software, including the demonstration, debugging GUIs and protocol layers.
NanoVNA is based on STM32 MCU
Upgrade NanoVNA use DFU

Bootstrapping support for the STM32WLE with the Embedded Rust ecosystem

Midatronics has launched a pair of Arduino MKR form factor dev boards based around STMicroelectronics NV’s STM32WB55CG with Bluetooth 5.0 Low Energy and IEEE 802.15.4 communications capabilities — and they’re a drop-in replacement.

Reclaimer Labs Releases STM32WB Feather Board for $45
This development board is based on dual-core Arm SoC with wireless and ultra-low-power features.

STM32 project links:

A quick post on using SPI to communicate between Maker Nano and STM32 “Blue Pill”
SPI between Maker Nano ( Arduino Nano Clone ) and STM32 “Blue Pill” – Part 2

PAL-Streamer: Transmit a video stream to a PAL analog TV using low-frequency PWM

ISASTM Can Run Vintage Video Cards Over USB
ISASTM is an ISA host driven by an STM32 to enable ISA cards in a VM or even emulate an x86 system internally over an external ISA bus.

opensource calculator with full keyboard and extras gadgets

The Blue Pill Mandelbrot can zoom into the complex boundary using an STM32, tiny RGB display, and OpenOCD.
Dive In Deep with the Mandelbrot Set Using an STM32 Microcontroller
The Blue Pill Mandelbrot can zoom into the complex boundary using an STM32, tiny RGB display, and OpenOCD.

Emulating a Commodore 64 on an STM32F429 Discovery Board
This emulator features a 2.4″ LCD display, USB OTG jack, USB keyboard support, and offers full 6502 emulation.

PET 2001 emulator is running on the STM32F103 BluePill development board, little slow but working perfectly fine.

Buck50 Firmware Transforms Blue Pill Development Board Into Test and Measurement Platform
This firmware allows an STM32F103 board to act as a logic analyzer, digital storage o-scope, digital pulse train generator, and more.

Developer Alex Kalmuk has written a guide on making a homebrew VoIP phone, based on the Session Initiation Protocol, driven by an STM32 microcontroller — complete with a graphical user interface.
Alex Kalmuk’s Embox-Based SIP Phone, Complete with GUI, Runs on an STM32 Microcontroller
Built atop an STM32F769I-Disco evaluation board, this SIP phone took just a couple of days to develop.

Mothra Is an Acoustics Laboratory on a Stick
This STM32UW-based development board is ideal for low-power sound applications.


Boot Selector Switch for Linux or Windows
Stephen Holdaway’s hack uses a physical switch and an STM32 processor to boot in Windows or Linux.

Electronic Drum Toy Built From Scratch
The brains of the operation is the STM32F100VET6B, which comes complete with a 12-bit DAC for outputting sound.


  1. Tomi Engdahl says:

    Geehy APM32F103 clone of STM32F103 MCU has been tested to work without PCB or code modifications

    Geehy APM32F103 is a clone of STMicro STM32F103 MCU that has been tested by at least one person who claims it was just a drop-in replacement and PCB, code, hex, testing, and production did not have to be changed at all.

    Most STM32 microcontrollers are in short supply with 52+ weeks lead times and prices going through the roof, so people may be looking into the long list STM32 clones and fakes including APM32F103. They all claim to be pin-to-pin and firmware compatible, but when theory meets reality, things may go wrong. For instance, last year I had a conversation with one person who switched to GD32 microcontroller and had all sorts of issues

  2. Tomi Engdahl says:

    An STM32 Emulator in Rust

    Nicolas Viennot has written an STM32 microcontroller emulator in Rust.

  3. Tomi Engdahl says:

    HS402 Android STM32 USB Type-C DIY Oscilloscope

    00:00 – Intro
    00:12 – Circuit and components
    01:51 – STM32 “BlackPill” module
    02:28 – Board
    02:53 – Soldering
    03:26 – Power checking
    03:34 – Ways of flashing board
    04:04 – Flashing with USB-COM converter
    06:12 – Flashing with USB in DFU mode
    06:53 – Flashing with STLINK
    07:21 – First configurations and calibrations
    08:42 – Test with PWM-signal
    09:32 – Test with LC-circuit
    10:12 – Test with generator
    10:35 – Conclusions
    10:48 – WiFi with ESP32

  4. Tomi Engdahl says:

    Installing the STM32 USB Bootloader, Easily! [SEE DESCRIPTION]

  5. Tomi Engdahl says:

    A Rotary Encoder: How Hard Can It Be?

    I needed a rotary encoder — I pulled a cheap one out of one of those “49 boards for Arduino” kits you see around. Not the finest encoder in the land, I’m sure, but it should do the job. Unfortunately, Mbed OS doesn’t have a driver for an encoder and the first few third-party libraries I found either worked via polling or wouldn’t compile with the latest Mbed. Of course, reading an encoder isn’t a mysterious process. How hard can it be to write the code yourself? How hard, indeed. I thought I’d share my code and the process of how I got there.

    Arm Pumps Up The Volume With Mbed And A Potentiometer

  6. Tomi Engdahl says:

    Arm Pumps Up The Volume With Mbed And A Potentiometer

    Last time, I told you how to get started with the “Black Pill” STM32F411 board using the Mbed OS. The example program, admittedly, didn’t use many of the features of the OS, unless you count what the USB serial port driver uses behind the scenes. However, this time, we’ll make a practical toy that lets you adjust your PC’s volume level with a pot.

    The Black Pill is a good choice for this application since it has analog inputs and can act as a USB keyboard. In fact, the Mbed OS has drivers for all kinds of USB devices.

  7. Tomi Engdahl says:

    Arduino Unveils the Opta, Its First “Micro PLC” for the Industrial Internet of Things
    Built around the STM32H747XI, the Opta family — available in Ethernet, RS485, and Wi-Fi/Bluetooth variants — aims at the professionals.

  8. Tomi Engdahl says:

    Air32F103 is a clone of STM32F103 clocked at up to 216 MHz
    Air32F103 is yet another clone of the STM32F103 microcontroller that can be faster if needed with a clock of up to 216 MHz instead of 72 MHz for the original STMicro STM32 Arm Cortex-M3 microcontroller.

  9. Tomi Engdahl says:

    An Affordable And Programmable PLC

    We’re all used to general purpose microcontroller boards such as the Arduino or its many imitators, but perhaps we don’t see as much of their industrial cousins. A programmable logic controller (PLC) is a computer designed to automate industrial machinery, and comes with protected interfaces and usually a specific PLC programming environment. Thus [Galopago]’s work with an inexpensive Chinese PLC clone is especially interesting, providing a route forward to using it within the Arduino IDE ecosystem.

    Opening it up, the processor is identified as an STM32F103, and the connection needed to place it in bootloader mode is identified. Then it can be programmed from the Arduino IDE, even though its bootloader can’t be changed. Then to complete the process it’s necessary to identify the various different inputs and outputs by old-fashioned hardware reverse engineering.

    Repurposing a PLC clone for use with Arduino

    Attack of the clonesPermalink

    These boards mention compatibility with GX software, which is manufactured by a Japanese company that makes PLC and also cars. At first sight, the compatibility is not official, as no trademark is printed. Their origin is unknown, maybe they were simplified copies based on original schematics and source code, or somehow the native binary format of the PLC was reverse engineered and an interpreter was built and runs in the microcontroller translating the code. Most of the cards are based on STM32 microcontrollers, and according to some articles and videos, the original programming software actually recognizes them as an original PLC!

    Due to their low cost (around $25 USD), and for their relay isolated outputs, optically isolated inputs, RS232 serial port and regulated power supply, are great candidates for small projects as long as they can be programmed with a free multi-platform tool like Arduino or STM suite. In addition, a schematic diagram is needed to find out which I/O of the microcontroller goes to which peripheral in the board!

  10. Tomi Engdahl says:

    An Environmental Monitor You Can Update Over the Air
    Learn how to build an environmental monitor, put it out in the field, and then update its firmware from the comfort of your desk.

  11. Tomi Engdahl says:

    Pocket-Sized Thermal Imager

    Just as the gold standard for multimeters and other instrumentation likely comes in a yellow package of some sort, there is a similar household name for thermal imaging. But, if they’re known for anything other than the highest quality thermal cameras, it’s excessively high price. There are other options around but if you want to make sure that the finished product has some sort of quality control you might want to consider building your own thermal imaging device like [Ruslan] has done here.

    The pocket-sized thermal camera is built around a MLX90640 sensor from Melexis which can be obtained on its own, but can also be paired with an STM32F446 board with a USB connection in order to easily connect it to a computer. For that, [Ruslan] paired it with an ESP32 board with a companion screen, so that the entire package could be assembled together with a battery and still maintain its sleek shape. The data coming from the thermal imagining sensor does need some post-processing in order to display useful images, but this is well within the capabilities of the STM32 and ESP32.

    DIY pocket thermal imager

    Very easy to repeat and inexpensive pocket-sized DIY thermal imager

  12. Tomi Engdahl says:

    Sound Sculpture Uses Daisy Seed To Generate Audio

    The project is built around the Daisy Seed from Electrosmith. It’s an embedded platform designed for musical purposes, which made it perfect for [Eirik]’s project. Based on an STM32 chip, it’s very capable when it comes to DSP tasks. In this role, it’s charged with algorithmic music composition, providing the captivating soundtrack that emanates from the sculpture.

  13. Tomi Engdahl says:

    Radio Feather X
    All in One STM32 feather board with Radio capabilities (NRF24 and LORA)

    This is the design of a STM32F302 feather board with integrated RF modules.
    It is based on ADA Fruit’s Feather standard with additional pin headers and support to add one of a few RF modules that do communicate with the MCU through SPI. These planned supported RF modules are:
    - LORA 433MHz (RA-02 based on SX1278)
    - LORA 866MHZ (E220 based on LLCC68)
    - NRF24 2.4GHz

  14. Tomi Engdahl says:

    STM32 Fast Fourier Transform (CMSIS DSP FFT) – Phil’s Lab #111

    How to implement a Fast Fourier Transform (FFT) on an embedded system (STM32 microcontroller + CODEC) using ARM’s CMSIS library. Full walkthrough and demo of a peak frequency detector.

  15. Tomi Engdahl says:

    KiCad 6 STM32 PCB Design Full Tutorial – Phil’s Lab #65

    Complete step-by-step PCB design process going through the schematic, layout, and routing of a ‘black-pill’ STM32-based PCB including USB in the new KiCAD 6. All the way from schematic creation, through to two-layer PCB layout and routing, as well as sending it off for manufacture and assembly via JLCPCB.

  16. Tomi Engdahl says:

    Keypad Interface Module Reverse Engineers Pinouts So You Don’t Have To

    If you’ve scavenged some random keypads and want to reuse them in a project without the hassle of figuring out the pinouts, then [Cliff Biffle] has an interface module for you. The Keypad Go connects to the mystery keypad via an 8-pin 0.1 inch header, and talks to your own project using I2C and/or serial.

    You could categorize the mechanism at work as machine learning of a sort, though it’s stretching definitions a bit, as there is no ChatGPT or GitHub Copilot wizardry going on here. But you must teach the module during an initial calibration sequence, assigning a 7-bit ASCII character to each key as you press it. Once trained, it responds to key presses by sending the pre-assigned character over the interface. Likewise, key releases send the same character but with the 8th bit set.

    The heart of the board is either an STM32G030 or STM32C011/31, depending on parts availability we presume. I2C connectivity is over a four-pin STEMMA connector, and logic-level serial UART data is over a four-pin 0.1 inch pin header.

  17. Tomi Engdahl says:

    The recommended STM32G431 is a wonderful tool for the task in particular. For a start, this board exposes nine 16-bit ADC inputs, with six of them capable of differential mode and three of them having the PGA (Programmable Gain Amplifier) feature. There’s also two 12-bit DAC pins, two timer outputs, three GPIOs, and UART with I2C for the dessert. As a bonus, it can work as a PD trigger, giving you higher-than-5V voltages out of USB-C for any experiments of yours.


Leave a Comment

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