This development board is based on the CH32X035G8U6, a 32-bit RISC-V microcontroller with integrated USB functionality and USB Type-C interface support. The board is designed for compact embedded applications requiring native USB connectivity and USB-PD experimentation.
It features onboard USB Type-C, BOOT and RESET buttons, and fully exposed GPIO pins for rapid prototyping and firmware development.
Based on CH32X035G8U6 32-bit RISC-V microcontroller
Native USB device interface
USB Type-C connector
Suitable for USB-PD related development and experimentation
BOOT and RESET push buttons
All major GPIOs exposed
Compact and breadboard-friendly layout
Fully assembled and ready for development
Model: CH32X035G8U6
Core: 32-bit RISC-V
Package: QFN
Integrated USB device controller
Connector: USB Type-C
Native USB support (no external USB-to-UART required for USB device mode)
CC pins exposed for development
Multiple GPIO pins exposed on both sides
UART (TX / RX pads available)
I2C
SPI
ADC channels
Timers / PWM
1 × BOOT button
1 × RESET button
Powered via USB Type-C (5V input)
Onboard 3.3V regulation for MCU operation
Fully Assembled and Tested
Powered directly from USB Type-C
Supports USB-based firmware development
UART pads available for serial debugging/programming
BOOT button used for entering programming mode
Compatible with WCH development tools and SDK
USB device development
USB-PD experiments and prototyping
Embedded RISC-V learning platform
Custom USB HID devices
USB CDC applications
Compact embedded controller projects
1x CH32X035G8U6 USB-PD RISC-V Development Board (Fully Assembled)
Ensure correct driver installation for USB communication.
Intended for developers familiar with embedded firmware development.
GPIO operates at 3.3V logic level.
Verify USB-PD implementation requirements depending on application.
There are two ways to program the microcontroller: via USB using the built-in bootloader and via the serial 2-wire debug interface using a WCH-LinkE programming device.
On Linux you do not need to install a driver. However, by default Linux will not expose enough permission to upload your code with the USB bootloader. In order to fix this, open a terminal and run the following commands:
echo 'SUBSYSTEM=="usb", ATTR{idVendor}=="4348", ATTR{idProduct}=="55e0", MODE="666"' | sudo tee /etc/udev/rules.d/99-ch55x.rules
echo 'SUBSYSTEM=="usb", ATTR{idVendor}=="1a86", ATTR{idProduct}=="55e0", MODE="666"' | sudo tee -a /etc/udev/rules.d/99-ch55x.rules
sudo udevadm control --reload-rules
For Windows, you need the CH372 driver. Alternatively, you can also use the Zadig Tool to install the correct driver. Here, click “Options” -> “List All Devices” and select the USB module. Then install the libusb-win32 driver. To do this, the board must be connected and the microcontroller must be in bootloader mode.
The bootloader must be started manually for new uploads. To do this, the board must first be disconnected from the USB port and all voltage sources. Now press the BOOT button and keep it pressed while reconnecting the board to the USB port of your PC. The chip now starts in bootloader mode, the BOOT button can be released and new firmware can be uploaded via USB within the next couple of seconds.
WCH offers the free but closed-source software WCHISPTool to upload firmware with Windows via the USB bootloader.
You can also use chprog, a simple Python command line tool, to flash the microcontroller via the built-in USB bootloader. In order for this tool to work, Python3 with pip must be installed on your system. To do this, follow these instructions. Then install chprog via pip. On Linux (Debian-based), all of this can be done with the following commands:
sudo apt install python3 python3-pip
pip install chprog
Usage example:
chprog firmware.bin
To program the microcontroller via the serial debug interface, you will need a special programming device. The WCH-LinkE (pay attention to the “E” in the name) is a suitable option for this purpose and can be purchased commercially for around $4. This debugging tool is also compatible with other WCH RISC-V and ARM-based microcontrollers.
To use the WCH-Link on Linux, you need to grant access permissions beforehand by executing the following commands:
echo 'SUBSYSTEM=="usb", ATTR{idVendor}=="1a86", ATTR{idProduct}=="8010", MODE="666"' | sudo tee /etc/udev/rules.d/99-WCH-LinkE.rules
echo 'SUBSYSTEM=="usb", ATTR{idVendor}=="1a86", ATTR{idProduct}=="8012", MODE="666"' | sudo tee -a /etc/udev/rules.d/99-WCH-LinkE.rules
sudo udevadm control --reload-rules
On Windows, if you need to you can install the WinUSB driver over the WCH interface 1 using the Zadig tool.
To upload firmware, you should disconnect the board from USB and then make the following connections to the WCH-LinkE:
WCH-LinkE MCU Board
+-------+ +------+
| SWCLK| ---> |CLK |
| SWDIO| <--> |DIO |
| GND| ---> |GND |
| 3V3| ---> |VCC |
+-------+ +------+
If the blue LED on the WCH-LinkE remains illuminated once it is connected to the USB port, it means that the device is currently in ARM mode and must be switched to RISC-V mode initially. There are a few ways to accomplish this:
More information can be found in the WCH-Link User Manual.
WCH offers the free but closed-source software WCH-LinkUtility to upload firmware with Windows using the WCH-LinkE.
You can also use rvprog, a simple Python command line tool, to flash the microcontroller via the WCH-LinkE or compatible programmers/debuggers. In order for this tool to work, Python3 and pip must be installed on your system (see chprog above for details). On Linux (Debian-based), all of this can be done with the following commands:
sudo apt install python3 python3-pip
pip install rvprog
Usage example:
rvprog -f firmware.bin
The Eclipse-based closed-source MounRiver Studio IDE is the official development environment provided by WCH. It supports Windows, Linux, and Mac. MounRiver Studio can be downloaded for free.
You can download a complete toolchain (GCC and OpenOCD) for Linux and Mac from the MounRiver Studio website. However, on Linux you can also install a GCC-based toolchain by running the following command:
sudo apt install build-essential libnewlib-dev gcc-riscv64-unknown-elf
There are projects around to make the CH32X035 compatible with the Arduino IDE (arduino_core_ch32) and PlatformIO (platform-ch32v).
You must be logged in to post a review.
Reviews
There are no reviews yet.