WCH CH32V003 is a new ultra-cheap RISC-V microcontroller (MCU) clocked at 48 MHz with 2KB SRAM, 16KB flash, and a bunch of interfaces that sells for under 10 cents in quantities.
The MCU offers up to eighteen GPIOs, UART, SPI, I2C, an 8-channel 10-bit ADC, and several timers in TSSOP20, QFN20, SOP16, or SOP8 packages, and a small development board is also available.
WCH CH32V003 specifications:
- CPU – 32-bit “RISC-V2A” core up to 48 MHz
- Memory – 2KB SRAM
- Storage – 16KB flash
- Up to 18x GPIO with interrupt support
- 1x USART interface
- 1x I2C
- 1x SPI
- 10-bit ADC up to 8 channels
- 1-Wire debug interface
- General purpose DMA controller
- 16-bit advanced timer
- 16-bit general-purpose timer
- 2x watchdog timers
- 32-bit system timer
- Misc – 64-bit chip unique ID
- Supply voltage – 3.3/5V
- Low power modes – Sleep, standby
- Power on Reset (POR), programmable voltage detector
- Packages – TSSOP20, QFN20, SOP16, SOP8
Four parts are now available with CH32V003F4P6, CH32V003F4U6, CH32V003A4M6, and CH32V003J4M6 with most of the same specifications except for a different number of GPIOs and different packages.
WCH provides an SDK with C code samples for all interfaces using the usual MounRiver Studio IDE for development. There’s also a small development board based on CH32V003F4P6 to help engineers evaluate the solution. Right now the documentation is only available in Chinese, but the comments in the source are all in English, at least the files I’ve checked, so it could help. You’ll find all the aforementioned resources on the product page.
I got pricing information from a tweet by Patrick Yang, Technical Director of WCH, who claims that the CH32V003 RISC-V microcontroller sells for less than 10 cents. We just don’t know for which quantity that price is. It’s not the world’s cheapest microcontroller, but other MCUs in that price range often come with OTP (one-time programming) flash, while the CH32V003 is reprogrammable.
The price of CH32V003 is less than 0.1 $🔥
System clk: 48MHz
Other hardware resources are shown below.
WCH RISC-V MCU can achieve the better combination of performance and cost, due to the all IPs(RISC-V processor and other peripherals IP) are self-developed pic.twitter.com/jtV5GBKeZk
— Patrick Yang (@Patrick_RISCV) October 13, 2022
We’re also told it’s available on LCSC, but right now, all I can see is the CH32V003F4P6-EVT-R0 development board going for $6.76. But if the MCU is that cheap, I’d expect to see sub-dollar boards from third parties in the next few months.
Jean-Luc started CNX Software in 2010 as a part-time endeavor, before quitting his job as a software engineering manager, and starting to write daily news, and reviews full time later in 2011.
41 Replies to “10 cents CH32V003 RISC-V MCU offers 2KB SRAM, 16KB flash in SOP8 to QFN20 packages”
So the CH32V003 RISC-V chip comes from Jiangsu Qin Heng (WCH) [https://www.wch.cn/] the makers of the ubiquitous CH340x USB/UART chips we see on countless dev boards. Unfortunately for me I do not read Chinese, and WCH is notorious for NOT releasing documentation in English (please correct me if I am wrong in this case).
The strangely-named cross-platform MounRiver Studio RISC-V IDE [http://www.mounriver.com/] is Eclipse-based (yuk) and does appear to support English (yay). But that’s pretty useless for a person like me who cannot read the Chinese-only CH32V003 chip documentation. As for the MounRiver brand name, maybe they are trying to tail-gate on the California-based Wind River embedded systems brand [https://www.windriver.com/]?
They now have an English reference manual up on GitHub. https://github.com/openwch/ch32v003/blob/main/CH32V003RM-EN.pdf
Indeed, that was fast! Thanks for the link! There are even english versions of the CH340 datasheets (still quite short but it’s getting better). There’s even a contact e-mail address.
WCH has been making a push for more English documentation in the last few months. I’ve been using the CH55x series for a couple of years now and found that they released a translated version of this datasheet some time in 2022.
Sometimes the translations are pretty harsh, but I’ve still been able to do what I need with their chips with the available documentation.
Looks like an interesting AVR/PIC alternative. Finally RISC-V chips are disturbing the market by reducing costs. However, I doubt CH32V003 will quickly adopted outside China. Without WiFi/Ethernet it isn’t good for IoT, also no USB. Definitely don’t expect it to make a huge splash on the hobbyist market. Probably great for making a cheap toy or some low-cost automation device, may be for some witty fun soldering kits for makers too.
Chips like this are often used in conjunction with another larger MCU like ESP32. You use them for real time control which is difficult to do on ESP32 while the ESP32 is busy with other tasks. You program this smaller MCU to watch over the real-time hardware, and then the ESP32 talks to it.
For example we use a small MCU to deal with multiple continuous interrupts and an ADC monitoring. If things get out of spec then the small MCU immediately shuts things off to prevent damage. Sure you could do this on the ESP32, but getting it to work with real-time tolerances is too difficult of a programming problem if the ESP32 is also running wifi, lcd, input devices, etc. Just spend the 10c and do it in external MCU, save $50K programming expense.
I thought all real-time challenges were solved after Zephyr was ported to ESP32 😉
It all depends on the quantities. Increase of the BOM of 1M devices with $0.1 (at least because the chip will require some additional components too) is $100K. In this case you better pay the engineers do their work properly and skip this extra MCU 🙂 On the other hand if you are making a low-volume manufacturing of several hundred units or less $0.1 or $1 doesn’t make a huge difference if the more expensive MCU is easier to get and work with.
Jokes aside, I agree with your point of view and the good example for using dirt cheap chip for some kind of a watchdog. However, as I said I don’t expect CH32V003 to neither make a huge splash on the hobbyist/maker’s market apart from headlines because of the low price, nor in so many industrial/commercial devices outside China. As of the moments it is still something without any English documentation and without any compatibility with popular toolchains and dev environments. It won’t be adopted so quickly, at least not overnight. After a year or two with more tech details and depending the status of the global chip shortage… may be 🙂
We moved from STM8 to Padauk because of chip shortage and huge price increases in STM8. Padauk is a pain because all of the peripherals are bit banged. This chip is an excellent alternative to our Padauk.
I am decoding the datasheet using Google translate, but a lot of info is missing. For example there is nothing on how the flash is programmed. My board needs to be able to reprogram the chip for updates.
One downside. Not every pin can be used with any package. So for example I wanted to use SPI but SPI is only available in the 18pin packages. If I want to use 8pin package, it has to be UART or I2C.
I understand the SPI interface is available on all packages.
All packages contain the same die, but all package don’t bring out the same pins. In table 2-2 note that SPI is on PC5, PC6, PC7. Now look at Ch 2 – 2.1 Pinout. Note that PC5, PC6, PC7 are only exposed in the 18pin models.
OK. I can see it now. But it’s odd the summary table on the product page still reads like the SOP8 chip gets one SPI interface.
It does have an SPI interface, it just isn’t connected to any pins.
Jon you any experience of the Air105 or Air32f103 Air 105 development board?
Have not seen those
that’s basically just a technicality though, unless you have a wirebonding machine :p
Take a look at the zip file. it has full drivers including how to re-program the flash. Basally the HAL file you get with ARM processors.
If the ADC is any good (am thinking of the Expressif ADC here) I can see this a an nice little processor… Depends if it can wake itself up with a timer event when in sleep / standby.
There is only a single example of programming the flash and that code runs on the chip itself — it doesn’t help in programming the chip from another MCU, like e.g. if firmware-update failed.
You write a bootloader, unless one is masked in. The flash programming sequence is described in the doc – and it doesn’t differ from any other program flash.
Please expand on the 2VA
(2 Volt Ampere?)
Just the name of the core. I understand it’s developed by WCH.
That’s what they say about it in the datasheet (machine translation):
I know this may be hard in some cases, but please do report on what base and extensions are used in every case you can. Stuff like I vs E base does matter with only 2048 bytes of RAM, while V (XuanTie) vs P (Andes) debate still rages on on the other end of the performance spectrum.
Great silicon part, and quite timely as we were forced by HQ last Friday to revise all product line designs to comply with 100% Chinese domestic semiconductors & passive components by latest Q4 end. All western sourced/accounts and parts are now forbidden, apart from those sourced by HQ’s registered jurisdiction.
Worth adding to the list, we’ve also signed accounts with GigaDevice and Expressif Shanghai in the MCU and connectivity range. Thanks for the info, we’ll get in touch with WCH and have a few shipped over for bench tests.
Which country do you work in?
also, pretty sure everything espressif makes (and Gigadevice MCUs too) comes from TSMC…
We’re being informed that most are pulling out of TSMC, as many did already mind you, and repatriating batch productions over to SMIC where equivalent nodes are processed. We’re in France btw.
We’ve put up a sample order to WCH today for a few CH32F/CH32Vs, a BLE (CH573) along with their WCH-Link debugger. Had the MounRiver IDE set-up a few hours ago, nice kit and good start. Looking forward
> We’re in France btw.
Huh ? I’m in France and it’s the first time I hear about a company trying to purposely make itself dependent on Chinese components, especially when every other company does the exact opposite after the Covid period showed us how this could severely disrupt the supply chain. Or was your company acquired by a Chinese one and HQ is in China ?
Our products are manufactured, assembled and packaged in China; parts machining, injection molds/molding, pcb fab, pick&place, testing, packaging (full PLM less the engineering/design aspect). The political tantrum instabilities of a certain nation and it’s endless economic warfare will send our company to bankruptcy shall it escalate – of which is a certainty. Trust has therefore been given to our Chinese partners in the context of being able to “deliver contracts” rather than tantrums.
There are times you want to use Chinese parts and times you will want to use Western ones. Once you start writing significant amounts of software you will quickly figure out which parts you should be using. Sometimes I can get the Chinese parts working, sometimes I spend six months on it and never achieve success. I can always get the Western parts working but they are more expensive. Also watch out for parts longevity. If it takes an extra year to get a Chinese part working often they reach EOL right about when you enter production. Western parts typically have longer availability.
I would also watch out for MTBF differences between Chinese passives and Western ones, they are not even close to being the same.
So it really depends on the life time, reliability and cost constraints of the product you are designing if you want to use Chinese or Western parts. In our current design most of our silicon is from Taiwan and most of the passives are Japanese, it is assembled in Shenzhen.
The covid delays we’re caused by entry ports policies, western parts being the ones that were most affected in our case. And not by our Chinese partners who’ve always remained on schedule despite the impediments of covid. Important to distinguish between being brainwashed by pollically motivated lies and ill influences 😉
The fact that the whole western industry is currently facing a halt due to sourcing difficulties has nothing to do with political lies. However it is very possible that it’s easier to source components there in order to assemble them overthere, in which case I understand your point of view. It’s just extremely surprising to hear this when for many it means “just be doomed with delays nobody can commit to”.
I looked at the example code they provide. I also discovered that you need a WCH-Link ($1.50) to program their dev board. Since the WCH-Link is a SWD debugger device, that implies that you have to use SWD to initially program the device. So the SWD must be putting a program into RAM, which then puts blocks into the flash. I guess this means that if my ESP32 wants to flash the device then it needs to implement SWD. Luckily I see two implementations of SWD for the ESP32 on github.
OR you could write a small bootloader and read in new code from where ever you prefer. Normally a flash prog alg runs from RAM as doing it all over JTAG would take forever.
I just figured out that this chip is a new low end model in a family of chips WCH is already shipping. Dev boards for the CH32V103 are easily available. Here is a link to the whole family of CPUs, about 40 models.https://www.wch.cn/products/categories/26.html?pid=5#data
So I’d assume that means code written for CH32V307 will be compatible with CH32V003, provided it uses peripherals available in the cost-down version of the chip.
That’s my guess. I ordered CH32V103 dev board to play with. I can just restrict myself to using the specs of the CH32V003. It is the same CPU core and the peripherals all match.
You can’t buy the CH32V003 dev board yet. Not even sure if the chips are in production. We directly asked WCH and they said “not yet” and did not specify a date.
Many of their chips, dev boards sell on alie
Thanks for sharing info about this board, I come here after watching EEVblog video about it,
Unfortunately, the board itself aren’t available right now, but the chips are still (on other websites),
I don’t know if it’s possible to program the chip via FTDI board using it UART pins, the instruction still not clear to me
They are for sale on Aliexpress
That bundle should have everything you need.
that link is being rewritten to point to a different product, it is not the same chip in the rewritten link. Copy and paste the link to go to the correct dev board.
Any examples with gcc and makefiles?
Now there is GCC with Makefiles:
cnlohr/ch32v003fun: My tests for the CH32V003, a 10 cent 48 MHz RISC-V Microcontroller (github.com)
There is also an open source flashing tool using their dongle.