WCH - CH32V307 - EVT
Model: WCH CH32V307 EVT board
back to microcontrollers page.
Links
github openwch CH32V307, WCH CH32V307 Programming in Rust,
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