DIY CH32V003 Development Board: 10-Cent Devboard for 10-Cent RISC V MCU

by arduinocelentano in Circuits > Microcontrollers

1040 Views, 12 Favorites, 0 Comments

DIY CH32V003 Development Board: 10-Cent Devboard for 10-Cent RISC V MCU

logo.JPG
DIY CH32V003 Development Board

CH32V003 is an extremely low-cost RISC V microcontroller. For 10 cents you receive a 32-bit 48 MHz RISC-V2A core, 16KB flash, 2KB RAM and bare minimum of standard interfaces. So I decided that a 10-cent MCU deserves a 10-cent development board. Don't get me wrong - the official devboard is fine. Definitely not perfect, since it is not breadboard-friendly and so on... and of course you could design and order your own PCB. This project is not a replacement for it. It's a quick and dirty solution from cheap and accessible components when you need a basic development board pronto.

Note that CH32V003 is produced in four different packages:

  • TSSOP-20 (part code CH32V003F4P6) - 20 pins, difficult to solder. It is used in this tutorial.
  • SOP-8 (part code CH32V003J4M6) - 8 pins, easy to solder. It is suitable for very basic projects.
  • SOP-16 (part code CH32V003A4M6) - 16 pins, easy to solder. Sadly, it has a hardware SPI bug. So avoid it if you need this interface in your project.
  • QNF-20 (part code CH32V003F4U6) - 20 pins, very difficult to solder, extremely small. It is the best fit for tiny projects.
🔗If you are looking for low-cost microcontrollers, you may also like this devboard or even salvage a free microcontroller from single-use electronics.

Supplies

components.jpg
scematics.png

Since it's a 10 cent development board for 10 cent MCU, we are going to use cheap SMD components and a standard two-sided SOP20/TSSOP20 adapter as a base. It allows us to mount components on both sides, and the 1206 SMD package is perfectly suitable for the adapter pads. Use the attached circuit diagram as a reference.


Bill of materials:

  • CH32V003 in TSSOP20 package
  • two-sided SOP20/TSSOP20 adapter
  • 1206 SMD 10uF capacitor
  • 1206 SMD 100nF capacitor
  • 2x 1206 SMD current limiting resistors (I used 220Ω, but anything between 100Ω and 1kΩ should work)
  • 2x 1206 SMD LEDs
  • 2.54mm pin headers


Tools:

  • Soldering tools (soldering iron, solder, solder flux, solder wick, tweezers etc.)
  • Multimeter with continuity mode
  • WCH-Link debugger - you don't need it for assembling, but obviously you'll need it to program your board.

Install the Microcontroller

01.JPG
ch32v003-02.gif
ch32v003-01.gif
ch32v003-03.gif
ch32v003-04.gif

First, fix two opposite corner pins. Apply some soldering flux and solder the remaining pins. The TSSOP20 package is pretty small for hand soldering, so it might be tricky. Use copper wick with flux to remove unwanted solder.

Test the Connections

ch32v003-05.gif
ch32v003-06.gif

Use your multimeter's continuity mode to check out that everything is connected properly and there are no shorts.

Install Power Capacitors

02.JPG
ch32v003-07.gif
ch32v003-08.gif

On the opposite side of the board install two capacitors (10uF and 100nF) between pins 7 and 9 on the MCU (they correspond to pins 12 and 14 on the opposite side of the PCB).

Install Pin Headers

03.JPG
ch32v003-09.gif

Install 2.54mm headers to use it with a breadboard.

Install Power LED

04.JPG
ch32v003-10.gif
ch32v003-11.gif
ch32v003-12.gif
ch32v003-13.gif

Note that SMD LEDs have marks on the bottom. You could also use your multimeter to determine anode and cathode. Solder power indicator LED with a resistor between pins 7 and 9.

Install PC0 LED

05.JPG
06.JPG
ch32v003-14.gif
ch32v003-15.gif
ch32v003-16.gif

Optionally you might want to attach a programmable LED to one of the pins. I used pin 10 which corresponds to PC0, but it's up to you to decide. I routed the ground wire through the mounting hole beneath the board.

Upload Your First Project

07.JPG
ch32v003-17.gif

I prefer to use ch32v003fun, which is an open source toolkit for this microcontroller. It has a tool named minichlink for firmware uploading. You'll only need to connect three lines of WCH-Link:

3v3 WCH-Link - pin 9 devboard

GND WCH-Link - pin 7 devboard

SWDIO WCH-Link - pin 18 devboard

Go to ch32v003fun/exampes/blink directory and run the following command to upload the firmware:

make flash