I'd check if the board is assembled correctly. My CH559 board from electrodragon had the main chip 90° rotated and installed that way, ontop of that look what i found underneath one of the USB sockets:
They redesigned the board and were improving the QC, so things are hopefully much better now.
Did you power up the board with the bootloader button pressed? If the demo firmware does not use the USB it won't be recognized unless you start the bootloader (VID=0x4348, PID=0x55E0).
If anyone is interested, i have written a python flasher tool for the CH55x series. It's based on work of others, reverse engineered bootloader and lots of my own research.
The script is here:
https://github.com/hexeguitar/CH55x_python_flasherIt requires python3, pyusb and pyserial libraries. Tested and works with CH559, CH554 (bootloader v.2.31) and CH551 (usb only, bootloader v1.1).
I have also implemented the UART flashing for the bootloader v2.31. It might be useful when working on usb host projects, replugging the usb back and forth to program the chip is really annoying.
However there are two little disadvantages:
- baudrate is fixed to 57600, slooow...
- bootloader in uart mode replies only after hard reset (checks a flag on boot), so i designed a small circuit to cycle the power and start the mcu with the bootloader button pressed. For now i have tested the CH559 version only. CH554 is different, the bootloader pin is active high and normally used as USB D-.
Here is the reboot circuit for the CH559:
https://github.com/hexeguitar/CH55x-HW-rebootThe chflasher script uses the DTR line to restart the MCU if it doesn't get any reply. I have another version for the CH554, too, but it's not yet tested in practice. I'll add it to the repo soon.
With the flasher script, SDCC, vscode + CMake/Ninja i was able to make a nice open source programming environment for the CH55x MCUs on Linux.
And here is another small CH554 based board, i plan to use it as a generic USB host ->UART module to interface a keyboard or mouse with various projects: