KAmod BluePico STM32F030: Difference between revisions
From Kamamilabs.com - Wiki
Created page with "__jzpdf__ ====== Description ====== <b>KAmod BluePico STM32F030 - Evaluation Board with STM32F030 F4P6 Cortex-M0 Microcontroller</b> <br><br> The KAmod BluePico STM32F030 evaluation board contains the STM32F030 F4P6 microcontroller and the components necessary to run it. The board features a USB-C connector for power and programming. An integrated USB-UART converter and a properly configured bootloader allow programming the microcontroller both with the Arduino IDE and v..." |
(No difference)
|
Latest revision as of 11:13, 17 October 2025

Description
KAmod BluePico STM32F030 - Evaluation Board with STM32F030 F4P6 Cortex-M0 Microcontroller
The KAmod BluePico STM32F030 evaluation board contains the STM32F030 F4P6 microcontroller and the components necessary to run it. The board features a USB-C connector for power and programming. An integrated USB-UART converter and a properly configured bootloader allow programming the microcontroller both with the Arduino IDE and via STM32CubeProgrammer.
Basic Specifications
- STM32F030 F4P6 microcontroller: Cortex-M0, 16 KB Flash, 4 KB RAM, 48 MHz, 12-bit ADC, 5 timers, I2C, SPI, UART, RTC, CRC
- Microcontroller clocked with a precision crystal oscillator
- USB-C connector serves as a power connector, USB-UART communication interface, and allows for microcontroller programming
- 15 GPIO pins and 5 V and 3.3 V power lines available on standard 2.54 mm pitch connectors
- Maximum load on the 5 V line is 500 mA, and on the 3.3 V line is 200 mA
- SWD programming/debugging interface connector
- Programmable via STM32CubeProgrammer and Arduino IDE
- Board dimensions: 32.5 x 23 mm, height approx. 7 mm (without soldered goldpins)
Standard Equipment
| Code | Description |
|---|---|
| KAmod BluePico STM32F030 |
|
Schematic

Power
| Connector | Function |
|---|---|
| USB-C J1, J2 |
|
The KAmod BluePico STM32F030 evaluation board can be powered in two ways:
- via the appropriate pins on J1 and J2,
- via the USB-C connector.
A power source with a voltage in the range of 4.5...5.5 V and a minimum output of 100 mA should be connected to the pins marked "5V" (plus) and "GND" (minus) on connector J1. A stabilized voltage of 3.3 V is then available on the pins marked 3.3 V, which also powers the microcontroller. The presence of 3.3 V is indicated by the LED marked "PWR."
A standard USB power source with a minimum output of 100 mA should be connected to the USB-C connector. A voltage close to 5 V (relative to ground marked "GND") should then be available on the "5V" pin of connector J1. A small voltage drop (approximately 0.5 V) occurs across the Schottky diode, which allows current to flow from the USB-C connector to the board but blocks current flow in the opposite direction, to the USB-C connector. This allows you to safely connect power in various configurations – USB and/or J1 pins.

USB Interface
| Connector | Function |
|---|---|
| USB-C |
|
The USB-C connector is an easy way to provide power to the KAmod BluePico STM32F030 board. Additionally, the board includes the CH340C chip, which functions as a USB controller connected to the STM32F030 microcontroller's UART serial interface. The UART interface allows, among other things, Sending simple messages that can be monitored in any Terminal/Serial Monitor-type program.
Drivers for the CH340 chip can be downloaded from the chip manufacturer's website: https://www.wch-ic.com/downloads/CH341SER_ZIP.html
The module will be visible in the system, similar to the image below:

The UART interface is connected to pins PA10 (RX USART1) and PA9 (TX USART1). If the USB-UART connection is not required in the project, pins PA10 and PA9 can be disconnected from the USB controller by cutting the jumpers marked RX and TX on the bottom of the board.
SWD Programming/Debugging Interface
| Connector | Function |
|---|---|
| J3 |
|
The SWD (Single Wire Debug) interface allows you to program the microcontroller's Flash memory and monitor program execution (debugging). Requires the connection of an external programmer/debugger, e.g., STLINK-V2 or STLINK-V3MINIE.
- GND – system ground,
- SWC – SWCLK clock signal, shared with pin PA14,
- SWD – SWDIO data signal, shared with pin PA13,
- 3.3V – 3.3V power supply line.
These signals should be connected to the same signals on the programmer/debugger connector. Sometimes SWCLK is also marked as TCK, while SWDIO is also marked as TMS. The programmer does not supply power to the KAmod BluePico STM32F030 board; power should be connected to the USB-C connector or pins J1/J2.
Programming the Microcontroller
| Component | Function |
|---|---|
| SW1 – NRST |
|
| SW2 – PROG |
|
| J3 – SWD |
|
| USB – UART |
|
The simplest method of programming the microcontroller's memory requires connecting the KAmod BluePico STM32F030 module with a USB-C cable to a PC.
A special area of the microcontroller's memory contains software that allows programming its program memory – this is the so-called bootloader prepared by the microcontroller manufacturer. The microcontroller used in the module has been configured so that launching the bootloader requires only a short press of the PROG button.
In this state, the module is ready for programming via both the STM32CubeProgrammer and Arduino:
- For the STM32CubeProgrammer, set the mode to "UART" and then press "Connect":
- For the Arduino, set the Board to Generic STM32F0 series,
- set the Board part number to Generic F030F4Px,
- set the Upload method to STM32CubeProgrammer(Serial),
- set the communication port to the one corresponding to the connected module (in the example, this is COM12).
All settings are shown in the image below:

If the indicated boards are not visible in the Arduino IDE, add the following entry to the board manager field ("Additional boards manager URLs"):
https://github.com/stm32duino/BoardManagerFiles/raw/main/package_stmicroelectronics_index.json
Another way to program the microcontroller's memory is to connect an external programmer, such as the STLINK-V2 or STLINK-V3MINIE, to connector J3 and follow the programmer's instructions.
Keep in mind that some microcontroller pins perform two or more functions, which may interfere with each other. Here are the most important ones:
- SWC/PA14 – the SWC signal (programming/debugging) is also output as the GPIO port PA14
- SWD/PA13 – the SWD signal (programming/debugging) is also output as the GPIO port PA13
- PA10 (RX), PA9 (TX) – UART interface pins 1 – RX and TX, which are connected to USB, are also output as GPIO ports PA10 and PA9, respectively
Additional elements – buttons and LEDs
| Component | Function |
|---|---|
| SW1 – NRST |
|
| SW2 – PROG |
|
| D3 – PWR |
|
| D4 – LED PA4 |
|
The NRST button allows you to reset the microcontroller, i.e., start the program from the beginning, but it does not erase the program memory.
The PROG button generates a sequence of states on the NRST and BOOT0 inputs that starts the bootloader.
The PWR LED indicates the presence of 3.3V.
The PA4 LED is connected to the PA4 port of the microcontroller and can be used in a user application.
GPIO Connectors
| Connector | Function |
|---|---|
| J1, J2 |
|
GPIO connectors J1 and J2 each contain 12 pins, to which the 5V and 3.3V power lines, GND, and the microcontroller's GPIO pins are connected. Only some GPIO ports are 5V tolerant. The pins serve various functions, such as an SWD interface or as ADC inputs, which prevent the microcontroller's supply voltage from exceeding 3.3V. Detailed pin functions and parameters can be found in the microcontroller manufacturer's documentation, STM.
The pinout of the KAmod BluePico STM32F030 module and some of their additional functions are shown in the figure below:

Dimensions
The dimensions of the KAmod BluePico STM32F030 board are 32.5x22.9 mm, and its height is approximately 7 mm (without soldered goldpins).

Test program
//Board: STM32 MCU Based Boards / Generic STM32F0 series
//Board part number: Generic F030F4Px
//Upload metod: STM32 Cube Programmer (Serial)
#define LED_PIN PA4
int message_period = 0;
int port_pwm = 0;
int port_pwm_dir = 0;
//--------------------------------------
void setup() {
//Serial.begin(115200);
//Serial.println("KAmod BluePico STM32F030, Hello :)");
pinMode(LED_PIN, OUTPUT);
}
//--------------------------------------
void loop() {
analogWrite(LED_PIN, (255 - port_pwm));
if (port_pwm_dir == 0){
port_pwm += 20;
if (port_pwm >= 150){
port_pwm = 150;
port_pwm_dir = 1;
}
} else {
port_pwm -= 20;
if (port_pwm <= 0){
port_pwm = 0;
port_pwm_dir = 0;
}
}
delay(100);
}