UIAPduino Pro Micro CH32V003

Overview

The UIAPduino Pro Micro CH32V003 V1.4 [1] is an open-source hardware development board based on the WCH CH32V003 [2] microcontroller. The board uses a USB Type-C connector for power and programming, and can act as a USB 2.0 Low-Speed device for HID applications.

Zephyr support for this board currently provides basic GPIO support and the on-board user LED.

Hardware

The board uses the WCH CH32V003F4U6 SoC, which contains a QingKe V2A 32-bit RISC-V core. The SoC provides 16 KiB of flash and 2 KiB of SRAM, and supports operation up to 48 MHz.

Notable board hardware includes:

  • USB Type-C connector for power and programming

  • on-board reset button

  • on-board power and user LEDs

  • selectable 3.3 V or 5 V microcontroller supply

  • USB host protection fuses

  • through-hole edge connections

  • flat bottom for surface-mount-like installation

Supported Features

The uiapduino_pro_micro_ch32v003 board supports the hardware features listed below.

on-chip / on-board
Feature integrated in the SoC / present on the board.
2 / 2
Number of instances that are enabled / disabled.
Click on the label to see the first instance of this feature in the board/SoC DTS files.
vnd,foo
Compatible string for the Devicetree binding matching the feature.
Click on the link to view the binding documentation.

Connections and IOs

LED

  • LED0 = PC0, active high

Programming

The uiapduino_pro_micro_ch32v003 board supports the runners and associated west commands listed below.

flash debug

Applications for the uiapduino_pro_micro_ch32v003 board target can be built and flashed in the usual way. See Building an Application and Run an Application for more details.

The board is shipped with a custom USB bootloader based on rv003usb [3]. To enter writing standby mode, hold the reset button while connecting the board to USB, then release the reset button.

The Zephyr board configuration uses minichlink as the default runner and passes 0x1209b803 as the device identifier.

Flashing

Install minichlink from ch32fun [4] and make sure the board can be accessed by the host. On Linux, this may require installing the corresponding udev rule.

Here is an example for the Blinky application.

# From the root of the zephyr repository
west build -b uiapduino_pro_micro_ch32v003 samples/basic/blinky
west flash

References