STM32F103C8T6 - Blue Pill Development Board
The Blue Pill is a development board based on STMicroelectronics’ STM32F103C9T6 microcontroller that has an ARM Cortex-M3 core that runs at 72MHz max. Software libraries are available that allow users to program the chip using the Arduino IDE.
STM32F103C8T6 Blue Pill Pinout Configuration
Category |
Pin Name |
Details |
Power |
3.3V, 5V, GND |
|
Analog Pins |
PA0 – PA7 PB0 – PB1 |
Pins act as ADCs with 12-bit resolution |
Input/output pins |
PA0 – PA15 PB0 – PB15 PC13 – PC15 |
37 General-purpose I/O pins. |
Serial |
TX1, RX1 TX2, RX2 TX3, RX3 |
UART with RTS and CTS pins |
External interrupts |
PA0 – PA15 PB0 – PB15 PC13 – PC15 |
All digital pins have interrupt capability |
PWM |
PA0 – PA3 PA6 – PA10 PB0 - PB1 PB6 – PB9 |
15 PWM pins total |
SPI |
MISO0, MOSI0, SCK0, CS0 MISO1, MOSI1, SCK1, CS0 |
2 SPI |
Inbuilt LED |
PC13 |
LED to act as a general-purpose GPIO indicator |
I2C |
SCL1, SDA1 SCL2, SDA2 |
Inter-Integrated Circuit communication ports |
CAN |
CAN0TX, CAN0RX |
CAN bus ports |
STM32F103C8T6 Technical Specifications
Microcontroller |
STM32F103C8T6 |
Operating voltage |
3.3V |
Analog inputs |
10 |
Digital I/O pins |
37 |
DC source/sink from I/O pins |
6mA |
Flash memory (KB) |
64/128 |
SRAM |
20KB |
Frequency (clock speed) |
72MHz max. |
Communication |
I2C, SPI, UART, CAN, USB |
Note: Complete technical information can be found in the STM32F103C8T6 Blue Pill Datasheet, linked at the bottom of this page.
Other STM32 Boards
STM32 Discovery, STM32 Nucleo
Other STM32 ICs
Other Development Boards
Arduino, Teensy, Raspberry Pi, ESP Modules
Blue Pill vs. Arduino Uno
Parameter |
Arduino Uno |
Blue Pill |
Processor |
ATMega328P |
STM32F103C8T6 |
Operating/input voltage |
5V |
3.3V |
CPU speed |
16MHz |
72MHz |
Analog pins |
8 |
10 |
Digital IO/PWM |
14 |
37 |
EEPROM/SRAM(KB) |
1/2 |
-/20 |
Flash |
32K |
64/128K |
USB Connector |
Type B |
Micro |
UART |
1 |
3 |
SPI |
1 |
2 |
I2C |
1 |
2 |
Blue Pill vs. Nucleo-F401
Parameter |
Nucleo F401 |
Blue Pill |
Processor |
STM32F401RET6 |
STM32F103C9T6 |
Operating/input voltage |
3.3V |
3.3V |
CPU speed |
84MHz |
72MHz |
Analog pins |
16 |
10 |
Digital IO/PWM |
50 |
37 |
SRAM(KB) |
96 |
20 |
Flash |
512K |
64/128K |
USB Connector |
Mini B |
Micro |
UART |
4 |
3 |
SPI |
3 |
2 |
I2C |
3 |
2 |
Understanding Blue Pill
The Blue Pill is a 32-bit Arduino compatible development board that features the STM32F103C8T6, a member of the STM32 family of ARM Cortex-M3 core microcontrollers. This board aims to bring the 32-bit ARM Cortex microcontrollers to the hobbyist market with the Arduino style form factor.
Powering your Blue Pill:
There are three ways of powering your Blue Pill development board:
- Using the built-in USB micro connector.
- Supplying 5V to the 5V pin as external supply.
- Supplying 3.3V directly to the 3.3V pin.
Input/Output:
The Blue Pill has 37 GPIO pins spread across four ports – A and B (16 pins), C (3 pins) and D (2 pins). Each pin has a current sink/source ability of 6mA. Pull-up and pull-down resistors can be enabled on each of the pins.
Most pins have extra functionality as well:
- Serial ports – receive and transmit data via the UART protocol
- I2C ports – two-wire communication via the IIC protocol
- SPI – serial communication
- PWM
- Pin 13 has a built-in LED
These special functions and their respective pins are illustrated in the Blue Pill pin diagram shown above.
How to Use the STM32 Development Board?
The Blue Pill can be programmed in two ways–
- Using an external USB/Serial converter connected to UART1 pins, which is the default bootloader for this family of boards. It can be programmed using the Arduino software this way.
- STLink USB Dongle – this uses the single-wire debug interface to communicate with the board. This allows it to be programmed using advanced software like Keil/CubeMX. It also allows memory access using the STLink software.
Before programming, it is important to connect the BOOT0 jumper to 1 and press the reset button to put the chip in ‘programming mode’.
Uploading Your First Program
If programming using the Arduino software, the appropriate board files should be downloaded using preferences and boards manager.
Then the correct board must be selected on the board's menu.
Since the built-in LED is on pin 13, just like the Arduino, the basic blink sketch will work on the Blue Pill.
Applications
- Rapid prototyping
- CRC calculations
- Robotics
- Consumer products
- Drone controllers