WCH - CH32V307 - EVT

Model: WCH CH32V307 EVT board

back to microcontrollers page.

Links

github openwch CH32V307, WCH CH32V307 Programming in Rust,

Awesome CH32,

rust ch32-rs whcisp,

ch32v307 dev board,

local links

c2,

History

2025-04-05: c2 - see if wchisp detects anything

tingo@kg-core2:~/personal/projects/2025/rust/embedded/riscv/wch/wchisp $ target/debug/wchisp probe
18:41:23 [INFO] Found 0 USB devices
18:41:23 [INFO] hint: use `wchisp info` to check chip info

with sudo

tingo@kg-core2:~/personal/projects/2025/rust/embedded/riscv/wch/wchisp $ sudo target/debug/wchisp probe
18:41:45 [INFO] Found 0 USB devices
18:41:45 [INFO] hint: use `wchisp info` to check chip info

2025-04-05: c2 - try wchisp

tingo@kg-core2:~/personal/projects/2025/rust/embedded/riscv/wch/wchisp $ target/debug/wchisp --help
A command-line implementation of WCHISPTool, for flashing ch32 MCUs

Usage: wchisp [OPTIONS] [COMMAND]

Commands:
  probe   Probe any connected devices
  info    Get info about current connected chip
  reset   Reset the target connected
  erase   Erase code flash
  flash   Download to code flash and reset
  verify  Verify code flash content
  eeprom  EEPROM(data flash) operations
  config  Config CFG register
  help    Print this message or the help of the given subcommand(s)

Options:
  -v, --verbose              Turn debugging information on
  -u, --usb                  Use the USB transport layer
  -s, --serial               Use the Serial transport layer
  -d, --device <INDEX>       Optional USB device index to operate on
  -p, --port <PORT>          Select the serial port
  -b, --baudrate <BAUDRATE>  Select the serial baudrate [possible values: Baud115200, Baud1m, Baud2m]
  -h, --help                 Print help
  -V, --version              Print version

2025-04-05: c2 - rust - build wchisp

tingo@kg-core2:~/personal/projects/2025/rust/embedded/riscv/wch/wchisp $ cargo build
    Updating crates.io index
  Downloaded anstream v0.6.14
  Downloaded clap_derive v4.5.4
  Downloaded clap_builder v4.5.2
  Downloaded clap_lex v0.7.0
  Downloaded rand_core v0.6.4
  Downloaded ppv-lite86 v0.2.17
  Downloaded num_threads v0.1.7
  Downloaded strsim v0.11.1
  Downloaded log v0.4.21
  Downloaded num-conv v0.1.0
  Downloaded pkg-config v0.3.30
  Downloaded scroll v0.12.0
  Downloaded termcolor v1.4.1
  Downloaded unicode-ident v1.0.12
  Downloaded time-macros v0.2.18
  Downloaded unsafe-libyaml v0.2.11
  Downloaded scopeguard v1.2.0
  Downloaded cc v1.0.98
  Downloaded simplelog v0.12.2
  Downloaded bitflags v2.6.0
  Downloaded time-core v0.1.2
  Downloaded serde v1.0.202
  Downloaded utf8parse v0.2.1
  Downloaded indexmap v2.2.6
  Downloaded ryu v1.0.18
  Downloaded time v0.3.36
  Downloaded memchr v2.7.2
  Downloaded portable-atomic v1.6.0
  Downloaded hashbrown v0.14.5
  Downloaded syn v2.0.65
  Downloaded object v0.36.0
  Downloaded serde_derive v1.0.202
  Downloaded nix v0.26.4
  Downloaded libusb1-sys v0.7.0
  Downloaded clap v4.5.4
  Downloaded rand_chacha v0.3.1
  Downloaded libc v0.2.155
  Downloaded indicatif v0.17.8
  Downloaded anstyle-query v1.0.3
  Downloaded deranged v0.3.11
  Downloaded rand v0.8.5
  Downloaded proc-macro2 v1.0.83
  Downloaded is_terminal_polyfill v1.70.0
  Downloaded serde_yaml v0.9.34+deprecated
  Downloaded anyhow v1.0.86
  Downloaded quote v1.0.36
  Downloaded ihex v3.0.0
  Downloaded heck v0.5.0
  Downloaded getrandom v0.2.15
  Downloaded console v0.15.8
  Downloaded equivalent v1.0.1
  Downloaded rusb v0.9.4
  Downloaded powerfmt v0.2.0
  Downloaded itoa v1.0.11
  Downloaded anstyle v1.0.7
  Downloaded colorchoice v1.0.1
  Downloaded bitfield v0.17.0
  Downloaded hxdmp v0.2.1
  Downloaded unicode-width v0.1.12
  Downloaded anstyle-parse v0.2.4
  Downloaded serialport v4.5.0
  Downloaded 61 crates (4.2 MB) in 1.07s
   Compiling libc v0.2.155
   Compiling proc-macro2 v1.0.83
   Compiling unicode-ident v1.0.12
   Compiling cfg-if v1.0.0
   Compiling cc v1.0.98
   Compiling pkg-config v0.3.30
   Compiling utf8parse v0.2.1
   Compiling serde v1.0.202
   Compiling num-conv v0.1.0
   Compiling is_terminal_polyfill v1.70.0
   Compiling colorchoice v1.0.1
   Compiling powerfmt v0.2.0
   Compiling portable-atomic v1.6.0
   Compiling anstyle v1.0.7
   Compiling anstyle-parse v0.2.4
   Compiling itoa v1.0.11
   Compiling anstyle-query v1.0.3
   Compiling time-core v0.1.2
   Compiling deranged v0.3.11
   Compiling strsim v0.11.1
   Compiling time-macros v0.2.18
   Compiling anstream v0.6.14
   Compiling hashbrown v0.14.5
   Compiling rusb v0.9.4
   Compiling ppv-lite86 v0.2.17
   Compiling clap_lex v0.7.0
   Compiling heck v0.5.0
   Compiling anyhow v1.0.86
   Compiling equivalent v1.0.1
   Compiling lazy_static v1.4.0
   Compiling unicode-width v0.1.12
   Compiling bitflags v1.3.2
   Compiling clap_builder v4.5.2
   Compiling ryu v1.0.18
   Compiling bitflags v2.6.0
   Compiling number_prefix v0.4.0
   Compiling quote v1.0.36
   Compiling termcolor v1.4.1
   Compiling indexmap v2.2.6
   Compiling memchr v2.7.2
   Compiling log v0.4.21
   Compiling unsafe-libyaml v0.2.11
   Compiling syn v2.0.65
   Compiling scopeguard v1.2.0
   Compiling bitfield v0.17.0
   Compiling hxdmp v0.2.1
   Compiling ihex v3.0.0
   Compiling hex v0.4.3
   Compiling object v0.36.0
   Compiling libusb1-sys v0.7.0
   Compiling scroll v0.12.0
   Compiling getrandom v0.2.15
   Compiling num_threads v0.1.7
   Compiling console v0.15.8
   Compiling nix v0.26.4
   Compiling time v0.3.36
   Compiling rand_core v0.6.4
   Compiling rand_chacha v0.3.1
   Compiling indicatif v0.17.8
   Compiling rand v0.8.5
   Compiling simplelog v0.12.2
   Compiling serialport v4.5.0
   Compiling serde_derive v1.0.202
   Compiling clap_derive v4.5.4
   Compiling clap v4.5.4
   Compiling serde_yaml v0.9.34+deprecated
   Compiling wchisp v0.3.0 (/zs/tingo/personal/projects/2025/rust/embedded/riscv/wch/wchisp)
    Finished `dev` profile [unoptimized + debuginfo] target(s) in 13.62s

2025-04-05: c2 - plugging the usb type C on the left side of the RJ45 connector (as seen from the plug side) this shows up in /var/log/messages

Apr  5 19:56:48 kg-core2 kernel: ugen1.5: <vendor 0x4348 product 0x55e0> at usbus1

usbconfig shows

root@kg-core2:~ # usbconfig -d ugen1.5
ugen1.5: <vendor 0x4348 product 0x55e0> at usbus1, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON (100mA)

device descriptor

root@kg-core2:~ # usbconfig -d ugen1.5 dump_device_desc
ugen1.5: <vendor 0x4348 product 0x55e0> at usbus1, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON (100mA)

  bLength = 0x0012 
  bDescriptorType = 0x0001 
  bcdUSB = 0x0110 
  bDeviceClass = 0x00ff  <Vendor specific>
  bDeviceSubClass = 0x0080 
  bDeviceProtocol = 0x0055 
  bMaxPacketSize0 = 0x0040 
  idVendor = 0x4348 
  idProduct = 0x55e0 
  bcdDevice = 0x2900 
  iManufacturer = 0x0000  <no string>
  iProduct = 0x0000  <no string>
  iSerialNumber = 0x0000  <no string>
  bNumConfigurations = 0x0001 

current config description

root@kg-core2:~ # usbconfig -d ugen1.5 dump_curr_config_desc
ugen1.5: <vendor 0x4348 product 0x55e0> at usbus1, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON (100mA)


 Configuration index 0

    bLength = 0x0009 
    bDescriptorType = 0x0002 
    wTotalLength = 0x0020 
    bNumInterfaces = 0x0001 
    bConfigurationValue = 0x0001 
    iConfiguration = 0x0000  <no string>
    bmAttributes = 0x0080 
    bMaxPower = 0x0032 

    Interface 0
      bLength = 0x0009 
      bDescriptorType = 0x0004 
      bInterfaceNumber = 0x0000 
      bAlternateSetting = 0x0000 
      bNumEndpoints = 0x0002 
      bInterfaceClass = 0x00ff  <Vendor specific>
      bInterfaceSubClass = 0x0080 
      bInterfaceProtocol = 0x0055 
      iInterface = 0x0000  <no string>

     Endpoint 0
        bLength = 0x0007 
        bDescriptorType = 0x0005 
        bEndpointAddress = 0x0082  <IN>
        bmAttributes = 0x0002  <BULK>
        wMaxPacketSize = 0x0040 
        bInterval = 0x0000 
        bRefresh = 0x0000 
        bSynchAddress = 0x0000 

     Endpoint 1
        bLength = 0x0007 
        bDescriptorType = 0x0005 
        bEndpointAddress = 0x0002  <OUT>
        bmAttributes = 0x0002  <BULK>
        wMaxPacketSize = 0x0040 
        bInterval = 0x0000 
        bRefresh = 0x0000 
        bSynchAddress = 0x0000 

2025-04-05: I created this page.

2025-04-04: the package arrived, straight into my mailbox.

2025-03-25: the order was shipped.

2025-03-22: from AliExpress, I ordered 1 x CH32V307 Evaluation Board RISC-V MCU Onboard Wch-link CH32V307VCT6 CH32V307V-EVT-R1 WCH at USD 15.43, add USD 3.86 in tax, a total of USD 19.29