KAmod BlackPico STM32G030: Difference between revisions
From Kamamilabs.com - Wiki
Created page with "__jzpdf__ ====== Description ====== <b>KAmod BlackPico STM32G030 - Evaluation Board with STM32G030 F6P6 Cortex-M0+ Microcontroller</b> <br><br> The KAmod BlackPico STM32G030 evaluation board contains the STM32G030 F6P6 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 an..." |
(No difference)
|
Latest revision as of 10:39, 17 October 2025

Description
KAmod BlackPico STM32G030 - Evaluation Board with STM32G030 F6P6 Cortex-M0+ Microcontroller
The KAmod BlackPico STM32G030 evaluation board contains the STM32G030 F6P6 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
- STM32G030 F6P6 microcontroller: Cortex-M0+, 32 KB Flash, 8 KB RAM, 64 MHz, 1 x 12-bit ADC, 5 timers, 2 x I2C, 2 x SPI, 2 x UART, RTC, CRC, DMA
- The USB-C connector serves as a power connector, a USB-UART communication interface, and allows for microcontroller programming
- 17 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 BlackPico STM32G030 |
|
Schematic

Power
| Connector | Function |
|---|---|
| USB-C J1, J2 |
|
The KAmod BlackPico STM32G030 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.3V", 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 BlackPico STM32G030 board. Additionally, the board includes the CH340C chip, which functions as a USB controller connected to the STM32G030 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 PA3 (RX USART2) and PA2 (TX USART2). If the USB-UART connection is not required in the project, pins PA3 and PA2 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 BlackPico STM32G030 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 BlackPico STM32G030 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 following:
- Set "Board" to "Generic STM32G0 series",
- Set "Board part number" to "Generic G030F6Px",
- Set "Upload method" to "STM32CubeProgrammer(Serial)",
- Set the communication port to the one corresponding to the connected module (COM12).
All settings are shown in the image below:

If the specified boards are not listed 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/BOOT0/PA14 – the SWC (programming/debugging) signal is also the signal enabling the BOOT0 bootloader and is output as GPIO port PA14
- SWD/PA13 – the SWD (programming/debugging) signal is also output as GPIO port PA13
- PA3 (RX), PA2 (TX) – UART interface pins 2 – RX and TX, which are connected to USB, are also output as GPIO ports PA3 and PA2, respectively
Additional elements – buttons and LEDs
| Component | Function |
|---|---|
| SW1 – NRST |
|
| SW2 – PROG |
|
| D3 – PWR |
|
| D4 – LED PB3 |
|
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 microcontroller's PB3 port and can be used in a user application.
Additional elements – buttons and LEDs
| Component | Function |
|---|---|
| SW1 – NRST |
|
| SW2 – PROG |
|
| D3 – PWR |
|
| D4 – LED PB3 |
|
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 microcontroller's PB3 port and can be used in a user application.
Dimensions
The dimensions of the KAmod BlackPico STM32G030 board are 32.5x22.9 mm, and the height is approximately 7 mm (without soldered goldpins).

Test Program
//Board: STM32 MCU Based Boards / Generic STM32G0 series
//Board part number: Generic G030F6Px
//Upload method: STM32 Cube Programmer (Serial)
#define LED_PIN PB3
int message_period = 0;
int port_pwm = 0;
int port_pwm_dir = 0;
//--------------------------------------
void setup() {
Serial.begin(115200);
Serial.println("KAmod BlackPico STM32G030, 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);
}