Available WCH-Link Programmers
Wch-Link V1
When I first paid attention to CH32V microcontrollers on AliExpress, I immediately bought a few different boards: a couple with the CH32V003 and a more powerful one with the CH32V307. However, a logical question immediately arose: how do I program them? My usual ST-Link definitely wouldn’t work for this architecture. So, I just found the first available programmer with the WCH label from the same seller and added it to my order. It turned out to be the WCH-Link v1, based on the CH549G chip.
Its pros:
Relatively low price: during sales, you can find them starting at $2.
Versatility: it supports both RISC-V based WCH microcontrollers and ARM-compatible chips in DAP mode (although I haven’t tested the latter in practice yet).
Built-in USB-UART: this is incredibly convenient for debugging, and it’s a feature I often missed in the standard ST-Link.
However, there were also downsides that came as an unpleasant surprise. The main drawback is that it does not program the CH32V00x series. It turned out that these cheaper microcontrollers use a different protocol - a single-wire interface (1-wire SDI). So my WCH-Link v1 handles more complex chips like the CH32V2xx and CH32V3xxx (which have a standard 2-wire SDI) perfectly, but it turned out to be useless for the “younger” models.
By the way, setting up the programmer itself also had a catch. My unit simply refused to switch from ARM (DAP) to RISC-V mode via software - the official WCH-LinkUtility simply threw an error. As it turned out, the mode can be changed on a hardware level, and this procedure works like a regular toggle switch. To do this, you need to:
Place a jumper between the GND and TX pins on the unpowered programmer.
Plug it into USB. The blue LED will turn off (or, conversely, turn on, toggling its previous state).
Wait a few seconds, disconnect the programmer from power, and remove the jumper.
The mode indication here is very simple: if the blue LED is on, the programmer is in ARM (DAP) mode; if it is off, it is working in RISC-V (RV) mode.
Wch-LinkE
When I realized I hadn’t bought exactly the right programmer, I immediately ordered a WCH-LinkE. It is built on the CH32V305 microcontroller and is significantly more expensive on the market than the standard WCH-Link.
The WCH-LinkE can easily program not only the CH32V00x lineup but also a number of other microcontrollers:
CH32X Series - chips with Programmable I/O (PIO) interface support and a USB Power Delivery (PD) controller.
CH57x, 58x, 59x Series - microcontrollers with wireless interfaces (BLE, etc.).
WeActStudio Wch-LinkE
This is a clone from a fairly well-known module manufacturer. WCH doesn’t actually hide the programmer’s design, and its binary firmware is freely available, so making a clone is quite easy. And it will have all the functionality of the original device.
What I liked about it:
The ARM/RISC-V mode switch buttons are exposed on the outside. In the original programmer, they are hidden inside the case, which isn’t very easy to take apart.
Type-C instead of USB-A. I always have a spare Type-C cable on my desk right next to my keyboard, so this is much more convenient than reaching for a PC case hidden somewhere under the desk.
What I didn’t like:
- For some reason, after a few days of use, the firmware on the programmer crashed, and it started constantly blinking a blue LED. I had never seen anything like this with the original device. However, this is easily fixed: the WCH-LinkUtility simply flashes the new firmware, and the programmer works again.





Comments
Post a Comment