Command-line implementation of the WCHISPTool in Rust, by the ch32-rs team.
This tool is a work in progress.
The prebuilt binaries are available on the Nightly release page.
For Windows users, you will need vc runtime to run the binary. You can download it from Microsoft.
Or else, you can install it from source.
# install libusb for your platform
# macOS
> brew install libusb
# Ubuntu
> sudo apt install libusb-1.0-0-dev
# install wchisp
> cargo install wchisp --git https://github.com/ch32-rs/wchisp
# or use
> cargo install wchisp --force
Prebuilt binaries are available on the Github Actions Page. Click the newest runs at Github Actions Page and download the binary from “Artifacts” section.
If you are using Windows, you need to install the WinUSB driver for your device. See Zadig.
NOTE: This is not compatible with the Official WCH driver you installed with IDE.
If you are using Linux, you need to set the udev rules for your device.
# /etc/udev/rules.d/50-wchisp.rules
SUBSYSTEM=="usb", ATTRS{idVendor}=="4348", ATTRS{idProduct}=="55e0", MODE="0666"
# or replace MODE="0666" with GROUP="plugdev" or something else
Arch Linux users can install wchisp or wchisp-git via the AUR.
yay wchisp
or
yay wchisp-git
> wchisp info
14:51:24 [INFO] Chip: CH32V307VCT6[0x7017] (Code Flash: 256KiB)
14:51:24 [INFO] Chip UID: 30-78-3e-26-3b-38-a9-d6
14:51:24 [INFO] BTVER(bootloader ver): 02.60
14:51:24 [INFO] Code Flash protected: false
RDPR_USER: 0x9F605AA5
[7:0] RDPR 0b10100101 (0xA5)
`- Unprotected
[16:16] IWDG_SW 0b0 (0x0)
`- IWDG enabled by the software
[17:17] STOP_RST 0b0 (0x0)
`- Enable
[18:18] STANDBY_RST 0b0 (0x0)
`- Enable
[23:21] SRAM_CODE_MODE 0b11 (0x3)
`- CODE-228KB + RAM-32KB
DATA: 0x00FF00FF
[7:0] DATA0 0b11111111 (0xFF)
[23:16] DATA1 0b11111111 (0xFF)
WRP: 0xFFFFFFFF
`- Unprotected
> wchisp flash ./path/to/firmware.{bin,hex,elf}
> wchisp config info
> wchisp config reset
This tool should work on most WCH MCU chips. But I haven’t tested it on any other chips.
wchisp probe
wchisp info
wchisp config
wchisp config set SRAM_CODE_MODE=1 ...
-d
to select device index) wchisp -d 0 info
This project is under active development. If you have any suggestions or bug reports, please open an issue.
If it works for your devices, please open a pull request to modify this README page.
It it doesn’t, please open an issue. Better provide the following information: