ch55x-tool ------------ An open sourced python command line flash tool for flashing WinChipHead CH55x series 8051 USB micro controllers, including CH551, CH552, CH553, CH554, and CH559 with bootloader version 2.30 or 2.31. Usage ------------ * __-f \__ Erase the whole chip, and flash the bin file to the CH55x. * __-r__ Issue reset and run after the flashing. * __-d__ Debug mode, if enabled, will print out all USB communications. Tool Setup ------------ * Linux Distros > Most Linux distros come with libusb, so you only need to install the pyusb packge. ```bash python3 -mpip install pyusb ``` * Mac OS > For Mac OS, you need to install both libusb and pyusb. ```bash # If you dont have brew installed. # /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" brew install libusb python3 -mpip install pyusb ``` * As for Windows, oh no... :( > 1. First, you need to download the [Zadig](https://zadig.akeo.ie/) for replacing the CH375 driver from WCH to libusb. > 2. Click the Options->List all devices, to show all devices > 3. Find the device marked with __USB Module__, which presented driver is __CH375_balabala__ > 4. Replace the driver with libusb-win32. > 5. Install the pyusb package. ``` python -mpip install pyusb #Since for windows, they dont use python3, but you have to make sure you have the pythono3 in the PATH ``` > 6. If you want to use the WCH Toolchain, open the device manager, find the device marked with __libusb-win32 deives__, right clicked on it, and Uninstall the driver and delete the driver. You can also check the FAQ of Zadig [HERE](https://github.com/pbatard/libwdi/wiki/Zadig). FAQ --------- * Why I got a __Error: No backend available__ ? > On windows, this means you dont a valid libusb device, see the guide above. For other system, you might dont have the libusb installed, follow the guide above. * Why it said __NO_DEV_FOUND__ ? > Pyusb unable to fine the device with given PID&VID. Maybe you dont power on your device, or it is not in DFU mode. * I got a __USB_ERROR_CANNOT_DETACH_KERNEL_DRIVER__, __USB_ERROR_CANNOT_SET_CONFIG__, or __USB_ERROR_CANNOT_CLAIM_INTERFACE__ error. > I never met with those problems on a working CH552. Checking the power, the previliage, and praying may help. * What if it return __Bootloader version not supported__? > The program dont support BTVER lower than 2.30(welcome PR, but since they are too old, I dont have plan to support them). Or maybe they have a newer verison, for this situlation, it is welcome for you to open an issue.