Replacing STM32 ARM Chips With CH32V RISC-V The Devices I Recommend!

 



For over a decade, STM32 ARM microcontrollers have been a go-to choice for embedded engineers, hobbyists, and professionals alike. From their robust ecosystem to their mature documentation and widespread community support, STM32 has earned its place as an industry standard. I use them for about half of my new projects! 

But things are changing.

Recently, I made the bold move to ditch STM32 in favor of something new the CH32 RISC-V family of microcontrollers. And after weeks of development, testing, and real-world usage, I can confidently say:

   These RISC-V chips are no joke. They might just be the future.


Why Leave STM32?

Let me be clear, STM32 is still excellent. But there are a few reasons I started exploring alternatives:

  • Rising cost and availability issues in some regions.

  • Curiosity about the RISC-V instruction set architecture, which is open, flexible, and rapidly growing.

  • Discovery of the CH32V103, a microcontroller that closely mirrors the STM32F103 but at a fraction of the price.

I also grew tired of the STM32 HAL. Being a hardware guy that got into software and not the other way around, I was really getting frustrated with the push toward a HAL rather than the SPL or bare metal style of doing things which was becoming harder and harder without HAL.  This wasn’t just a switch for curiosity’s sake. I tested it on real projects, with real performance and code reuse. And it worked. 


Meet the CH32 RISC-V Microcontrollers

The CH32 line, particularly the CH32V103, comes from WCH (Jiangsu Qin Heng Corp.), the same company behind the popular CH340 USB-to-serial chips and the now infamous 10 cent RISC-V MCU.

Here are some of the standout features of the CH32V103:

  • 32-bit RISC-V core, up to 72 MHz

  • Flash memory up to 128 KB, SRAM up to 20 KB

  • USB, UART, SPI, I2C, ADC, PWM familiar and STM32-like

  • Low cost around $0.80 to $1.20 USD

  • Supported by MounRiver Studio and PlatformIO

And best of all: it’s pin-compatible with the STM32F103 in many dev board formats. I literally dropped it into the same breadboard circuit and started developing. The CH32V307 device also makes a good replacement for a lot of the STM32F4 devices. 


What About the Development Experience?

You might expect that switching to a lesser-known RISC-V chip would mean headaches with toolchains, drivers, or flashing. But I was pleasantly surprised:

  • MounRiver Studio works right out of the box with CH32 chips.

  • WCHLinkE provides fast programming and debugging support, and the original programmer is low cost. 

  • PlatformIO also supports CH32 development with a little setup. Of course, you can also just use any editor you like with GCC if that suits your fancy. 

  • The codebase I originally wrote for STM32 ported easily with only minor changes.

Yes, there’s less documentation than ST provides. But for a seasoned developer, this wasn’t a barrier, the development experience felt very familiar and was very welcoming. 


Performance Comparison: STM32 vs CH32

In practical use, the CH32V103 performs nearly identically to the STM32F103. Interrupt handling, peripheral response, and GPIO toggling all felt familiar. And in some benchmarks, the CH32 even matched or edged out the STM32 in power efficiency and code execution time.

It’s not a total replacement for every project yet but for general-purpose microcontroller work, it’s more than capable. 


Should You Switch?

If you’re just starting out with STM32, there’s no need to panic or ditch your current platform. But if:

  • You're building cost-sensitive projects

  • You’re open to trying RISC-V

  • You want to explore new architecture while keeping familiar tools

Then I highly recommend giving CH32 a try.


Final Thoughts

RISC-V isn’t just hype — it’s here, and it’s working. With companies like WCH bringing powerful, low-cost chips like the CH32V103 to the market, the future of embedded systems is shifting fast.

I’ll still keep STM32 in my toolbox but for many of my 2025 projects, CH32 is the new default.

Stay tuned in my next post, I’ll show you how to setup and program this device and maybe even how to port a real STM32 project to CH32V103 step-by-step.

You can look at the YouTube video here where I give exact devices you should use: 





Comments

Popular posts from this blog

Farewell Cortex: ARM's Rebrand Highlights RISC-V's Rising Momentum