Few days ago I received a low cost nanoCH32V203 that I bought from Aliexpress and today I decided to test it.
Unfortunately the official board github https://github.com/wuxx/nanoCH32V203 doesn’t have a flashing tool for Linux, but I found this Rust https://github.com/ch32-rs/wchisp tool for CH32V208 and decided to test it with CH32V203:
$ cargo install wchisp --git https://github.com/ch32-rs/wchisp
Updating git repository `https://github.com/ch32-rs/wchisp`
Installing wchisp v0.2.0 (https://github.com/ch32-rs/wchisp#5c7469eb)
Updating crates.io index
Downloaded is-terminal v0.4.2
Downloaded indicatif v0.17.2
Downloaded itoa v1.0.5
Downloaded number_prefix v0.4.0
Downloaded libusb1-sys v0.6.4
Downloaded object v0.29.0
Downloaded portable-atomic v0.3.18
Downloaded rusb v0.9.1
Downloaded scroll v0.11.0
Downloaded time v0.3.17
Downloaded time-macros v0.2.6
Downloaded terminal_size v0.1.17
Downloaded simplelog v0.12.0
Downloaded strsim v0.10.0
Downloaded unsafe-libyaml v0.2.5
Downloaded console v0.15.2
Downloaded clap v4.0.32
Downloaded heck v0.4.0
Downloaded hex v0.4.3
Downloaded serde_yaml v0.9.16
Downloaded proc-macro2 v1.0.49
Downloaded rand v0.8.5
Downloaded anyhow v1.0.68
Downloaded unicode-ident v1.0.6
Downloaded termcolor v1.1.3
Downloaded indexmap v1.9.2
Downloaded ppv-lite86 v0.2.17
Downloaded getrandom v0.2.8
Downloaded serde v1.0.151
Downloaded rand_chacha v0.3.1
Downloaded cc v1.0.78
Downloaded once_cell v1.16.0
Downloaded num_threads v0.1.6
Downloaded os_str_bytes v6.4.1
Downloaded syn v1.0.107
Downloaded clap_lex v0.3.0
Downloaded clap_derive v4.0.21
Downloaded ryu v1.0.12
Downloaded hashbrown v0.12.3
Downloaded serde_derive v1.0.151
Downloaded io-lifetimes v1.0.3
Downloaded time-core v0.1.0
Downloaded log v0.4.17
Downloaded unicode-width v0.1.10
Downloaded rand_core v0.6.4
Downloaded pkg-config v0.3.26
Downloaded quote v1.0.23
Downloaded rustix v0.36.5
Downloaded linux-raw-sys v0.1.4
Downloaded libc v0.2.139
Downloaded bitfield v0.14.0
Downloaded hxdmp v0.2.1
Downloaded ihex v3.0.0
Downloaded 53 crates (4.4 MB) in 6.36s
Compiling libc v0.2.139
Compiling proc-macro2 v1.0.49
Compiling unicode-ident v1.0.6
Compiling quote v1.0.23
Compiling version_check v0.9.4
Compiling syn v1.0.107
Compiling cfg-if v1.0.0
Compiling pkg-config v0.3.26
Compiling io-lifetimes v1.0.3
Compiling cc v1.0.78
Compiling rustix v0.36.5
Compiling autocfg v1.1.0
Compiling serde_derive v1.0.151
Compiling time-core v0.1.0
Compiling serde v1.0.151
Compiling memchr v2.5.0
Compiling bitflags v1.3.2
Compiling itoa v1.0.5
Compiling log v0.4.17
Compiling portable-atomic v0.3.18
Compiling linux-raw-sys v0.1.4
Compiling heck v0.4.0
Compiling unicode-width v0.1.10
Compiling num_threads v0.1.6
Compiling termcolor v1.1.3
Compiling lazy_static v1.4.0
Compiling rusb v0.9.1
Compiling os_str_bytes v6.4.1
Compiling ppv-lite86 v0.2.17
Compiling anyhow v1.0.68
Compiling hashbrown v0.12.3
Compiling once_cell v1.16.0
Compiling number_prefix v0.4.0
Compiling unsafe-libyaml v0.2.5
Compiling ryu v1.0.12
Compiling strsim v0.10.0
Compiling ihex v3.0.0
Compiling hxdmp v0.2.1
Compiling hex v0.4.3
Compiling bitfield v0.14.0
Compiling scroll v0.11.0
Compiling time-macros v0.2.6
Compiling proc-macro-error-attr v1.0.4
Compiling proc-macro-error v1.0.4
Compiling indexmap v1.9.2
Compiling clap_lex v0.3.0
Compiling object v0.29.0
Compiling libusb1-sys v0.6.4
Compiling getrandom v0.2.8
Compiling terminal_size v0.1.17
Compiling time v0.3.17
Compiling console v0.15.2
Compiling rand_core v0.6.4
Compiling rand_chacha v0.3.1
Compiling indicatif v0.17.2
Compiling rand v0.8.5
Compiling simplelog v0.12.0
Compiling is-terminal v0.4.2
Compiling clap_derive v4.0.21
Compiling clap v4.0.32
Compiling serde_yaml v0.9.16
Compiling wchisp v0.2.0 (/home/alan/.cargo/git/checkouts/wchisp-052209e38cd65ae2/5c7469e)
Finished release [optimized] target(s) in 44.34s
Installing /home/alan/.cargo/bin/wchisp
Installed package `wchisp v0.2.0 (https://github.com/ch32-rs/wchisp#5c7469eb)` (executable `wchisp`)
warning: be sure to add `/home/alan/.cargo/bin` to your PATH to be able to run the installed binaries
$ sudo -s
# export PATH=$PATH:/home/alan/.cargo/bin
# wchisp info
20:55:13 [INFO] Chip: CH32V203C8T6[0x3119] (Code Flash: 64KiB)
20:55:13 [INFO] Chip UID: cd-ab-57-fc-5b-bc-7f-64
20:55:13 [INFO] BTVER(bootloader ver): 02.60
20:55:13 [INFO] Code Flash protected: false
20:55:13 [INFO] Current config registers: a55a3fc000ff00ffffffffff
RDPR_USER: 0xC03F5AA5
[7:0] RDPR 0xA5 (0b10100101)
`- Unprotected
[16:16] IWDG_SW 0x1 (0b1)
`- IWDG enabled by the software, and disabled by hardware
[17:17] STOP_RST 0x1 (0b1)
`- Disable
[18:18] STANDBY_RST 0x1 (0b1)
`- Disable, entering standby-mode without RST
[23:22] SRAM_CODE_MODE 0x0 (0b0)
`- CODE-192KB + RAM-128KB / CODE-128KB + RAM-64KB depending on the chip
DATA: 0xFF00FF00
[7:0] DATA0 0x0 (0b0)
[23:16] DATA1 0x0 (0b0)
WRP: 0xFFFFFFFF
`- Unprotected