A native Rust implementation of a flash utility for WinnerMicro MCUs (W800/W801 family), including the DSO3D12 oscilloscope.
Based on the reference Python tool from the WinnerMicro IoT SDK: https://github.com/winnermicro/wm_iot_sdk/tree/master
- Auto-detects the highest supported baud rate (up to 2 Mbps)
- XMODEM-1K protocol with CRC-16 verification
- Progress bar with ETA during flashing
- Lists available serial ports with USB product info
- Optional flash erase before writing
- DTR/RTS-based automatic device reset
- Rust toolchain (stable, 2021 edition or later)
- A USB-to-serial adapter connected to the target device (or integrated one)
cargo build --releaseThe binary is produced at target/release/flash.
./target/release/flash -lAuto-selects the port and negotiates the highest available baud rate:
./target/release/flash -i dso3d12_v3.0.6_III.flsSpecify the port explicitly:
./target/release/flash -p /dev/tty.usbserial-1110 -i dso3d12_v3.0.6_III.flsFlash multiple images in one pass:
./target/release/flash -p /dev/tty.usbserial-1110 \
-i bootloader.fls -i app.fls./target/release/flash -p /dev/tty.usbserial-1110 -e./target/release/flash -p /dev/tty.usbserial-1110 -e -i firmware.flsSupported rates: 2000000, 1000000, 921600, 460800, 115200.
./target/release/flash -p /dev/tty.usbserial-1110 -b 460800 -i firmware.fls- Connect the supplied USB cable to your PC while the oscilloscope is powered off.
- Press and hold the power button. The scope may enter a power-cycling loop — keep the button held down continuously until flashing reaches 100%.
- The tool resets the device automatically via DTR/RTS. Use
-m/--manual-resetto suppress the automatic reboot after flashing.
Flash tool for Winner Micro MCU
Usage: flash [OPTIONS]
Options:
-p, --port <PORT> serial port
-b, --baudrate <BAUDRATE> serial baudrate
-i, --image <IMAGE> image file paths (repeatable)
-n, --name <NAME> firmware names to burn. Ex: app,bootloader,partition_table,custom...
-e, --erase erase device flash
-l, --list list serial ports
-m, --manual-reset skip automatic reboot after burning
-h, --help Print help
-V, --version Print version
Repository: https://github.com/rssdev10/wm-tools
cargo test --workspacecargo clippy --workspace