Machines › Computers › STMicroelectronics › STM32F103 Blue Pill
STM32F103 Blue Pill
2015
The STM32F103 "Blue Pill" is the ubiquitous $2 hobbyist board: an STMicroelectronics STM32F103C8 (a 72 MHz ARM Cortex-M3, ARMv7-M without an FPU, with 64 KB flash and 20 KB SRAM) on a small blue PCB. A bare board has an on-board LED on PC13 and a USART serial console, and no speaker, so it is honestly silent.
STM32F103 Blue Pill Online Emulator
Play STM32F103 Blue Pill using JavaScript directly in your browser.
Controls
Runs real compiled STM32F103 "Blue Pill" firmware on an in-browser STMicroelectronics STM32F103 (ARM Cortex-M3, 72 MHz, no FPU). The default is "Blink PC13": a bare-metal C program that enables the GPIOC clock in RCC, configures PC13 as an output and blinks the on-board LED (PC13 is active-low, so the LED lights when the pin is driven low). "Timer Blink (TIM2)" blinks the same LED but times it with the TIM2 general-purpose timer instead of a busy loop — it starts TIM2 and polls the update flag (SR.UIF). "USART Hello" brings up USART1 (TX on PA9) and prints a greeting to the serial console while blinking the LED each line; "USART Counter" prints an incrementing counter over USART1. All four are original CC0 programs compiled with clang for thumbv7m. Open the debugger, or add ?debug, to single-STEP real Thumb instructions from flash at 0x08000000, set PC breakpoints and write watchpoints, and read the ARM registers (r0-r15, xPSR, N/Z/C/V) and the real STM32F103 memory map live (FLASH 0x08000000, SRAM 0x20000000, peripherals 0x40000000). A bare Blue Pill has no user input wired to the firmware and no on-board speaker, so it is honestly silent with no input pad.
Runs real compiled STM32F103 "Blue Pill" firmware on an in-browser STMicroelectronics STM32F103 (ARM Cortex-M3, 72 MHz, no FPU). The default is "Blink PC13": a bare-metal C program that enables the GPIOC clock in RCC, configures PC13 as an output and blinks the on-board LED (PC13 is active-low, so the LED lights when the pin is driven low). "Timer Blink (TIM2)" blinks the same LED but times it with the TIM2 general-purpose timer instead of a busy loop — it starts TIM2 and polls the update flag (SR.UIF). "USART Hello" brings up USART1 (TX on PA9) and prints a greeting to the serial console while blinking the LED each line; "USART Counter" prints an incrementing counter over USART1. All four are original CC0 programs compiled with clang for thumbv7m. Open the debugger, or add ?debug, to single-STEP real Thumb instructions from flash at 0x08000000, set PC breakpoints and write watchpoints, and read the ARM registers (r0-r15, xPSR, N/Z/C/V) and the real STM32F103 memory map live (FLASH 0x08000000, SRAM 0x20000000, peripherals 0x40000000). A bare Blue Pill has no user input wired to the firmware and no on-board speaker, so it is honestly silent with no input pad.
Runs real compiled STM32F103 "Blue Pill" firmware on an in-browser STMicroelectronics STM32F103 (ARM Cortex-M3, 72 MHz, no FPU). The default is "Blink PC13": a bare-metal C program that enables the GPIOC clock in RCC, configures PC13 as an output and blinks the on-board LED (PC13 is active-low, so the LED lights when the pin is driven low). "Timer Blink (TIM2)" blinks the same LED but times it with the TIM2 general-purpose timer instead of a busy loop — it starts TIM2 and polls the update flag (SR.UIF). "USART Hello" brings up USART1 (TX on PA9) and prints a greeting to the serial console while blinking the LED each line; "USART Counter" prints an incrementing counter over USART1. All four are original CC0 programs compiled with clang for thumbv7m. Open the debugger, or add ?debug, to single-STEP real Thumb instructions from flash at 0x08000000, set PC breakpoints and write watchpoints, and read the ARM registers (r0-r15, xPSR, N/Z/C/V) and the real STM32F103 memory map live (FLASH 0x08000000, SRAM 0x20000000, peripherals 0x40000000). A bare Blue Pill has no user input wired to the firmware and no on-board speaker, so it is honestly silent with no input pad.
Runs real compiled STM32F103 "Blue Pill" firmware on an in-browser STMicroelectronics STM32F103 (ARM Cortex-M3, 72 MHz, no FPU). The default is "Blink PC13": a bare-metal C program that enables the GPIOC clock in RCC, configures PC13 as an output and blinks the on-board LED (PC13 is active-low, so the LED lights when the pin is driven low). "Timer Blink (TIM2)" blinks the same LED but times it with the TIM2 general-purpose timer instead of a busy loop — it starts TIM2 and polls the update flag (SR.UIF). "USART Hello" brings up USART1 (TX on PA9) and prints a greeting to the serial console while blinking the LED each line; "USART Counter" prints an incrementing counter over USART1. All four are original CC0 programs compiled with clang for thumbv7m. Open the debugger, or add ?debug, to single-STEP real Thumb instructions from flash at 0x08000000, set PC breakpoints and write watchpoints, and read the ARM registers (r0-r15, xPSR, N/Z/C/V) and the real STM32F103 memory map live (FLASH 0x08000000, SRAM 0x20000000, peripherals 0x40000000). A bare Blue Pill has no user input wired to the firmware and no on-board speaker, so it is honestly silent with no input pad.
Configurations
| Configuration | Emulator | Machine | OS | Legal | |
|---|---|---|---|---|---|
| Blink PC13 (on-board LED) | STM32F103 Blue Pill | STM32F103 Blue Pill | open | Open ⛶ | |
| Timer Blink (TIM2) | STM32F103 Blue Pill | STM32F103 Blue Pill | open | Open ⛶ | |
| USART Hello | STM32F103 Blue Pill | STM32F103 Blue Pill | open | Open ⛶ | |
| USART Counter | STM32F103 Blue Pill | STM32F103 Blue Pill | open | Open ⛶ |
Downloads — ROMs & software
| Title | Type | Size (bytes) | Legal | |
|---|---|---|---|---|
| Blink PC13 (on-board LED) | demo | 0 | open | Download ↓ |
| USART Counter | demo | 0 | open | Download ↓ |
| USART Hello | demo | 0 | open | Download ↓ |
| Timer Blink (TIM2) | demo | 0 | open | Download ↓ |
Downloads — ROMs & software
| Title | Type | Size (bytes) | Legal | |
|---|---|---|---|---|
| Blink PC13 (on-board LED) | demo | 0 | open | Download ↓ |
| USART Counter | demo | 0 | open | Download ↓ |
| USART Hello | demo | 0 | open | Download ↓ |
| Timer Blink (TIM2) | demo | 0 | open | Download ↓ |
Downloads — ROMs & software
| Title | Type | Size (bytes) | Legal | |
|---|---|---|---|---|
| Blink PC13 (on-board LED) | demo | 0 | open | Download ↓ |
| USART Counter | demo | 0 | open | Download ↓ |
| USART Hello | demo | 0 | open | Download ↓ |
| Timer Blink (TIM2) | demo | 0 | open | Download ↓ |
Chips
Emulators
| Emulator | Type | License | Site |
|---|---|---|---|
| STM32F103 Blue Pill | online | CC0 | Website ↗ |