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