As the name implies, device is based on WinChipHead CH341A chip, which is Chinese analog of FTDI FT232H chip.
I decided to quickly test is it a good for reading ROM chips from PCBs.
In Windows 10 drivers are not installed automatically
So I decided to use for testing my Ubuntu laptop, in Linux kernel drivers for CH341 appeared several years ago.
As software for programming I chose flashrom - most advanced opensource utility for identifying, reading, writing, verifying and erasing flash chips. For now it supports more than 476 flash chips, 291 chipsets, 500 mainboards, 79 PCI devices, 17 USB devices and various parallel/serial port-based programmers. Please note that for working with CH341A-based programmers you will need version 0.9.9 or higher.
I took a PCB for testing from dead 500 GB WD5000BPVT. PCB revision is 2060-771692-005 and it has Winbond 25X40BLN1G chip.
Firstly I transfered ROM chip to SOIC adapted which was included in programmer device kit (if you don't have it you can also order it less than $1 from Aliexpress/Ebay)
Then I plugged SOIC adapter to ZIF socket, and whole programmer to USB port of my laptop:
Flashrom recognized ROM chip and programmer without problems:
I read ROM to image via command
sudo flashrom -p ch341a_spi -r rom.bin
To check that data was readed correctly I also read ROM via PC-3000 and compared results via ACElab HexEditor:
So ROM was readed by ch341a programmer correctly.
Answering possible question: can I use CH341A programmer as main programmer for data recovery jobs ?
It's a good option for start, hovewer in some cases it might not work.
Choice of programmer hardware mainly depends on which chips you are planning to flash. Most likely there is a software limitation, because hardware is quite standart - most chips are able to flash over SPI or I2C bus. Xeltek is considered as leading company in this industry, they supports more that 100k devices. But must programmer for data recovery support so many devices or is it excessive ?
For interst, I took first 7 dirrerent drives from my table and compare support or their ROM chips in Xeltek software and flashrom:
|Chip||Drive||Xeltek support||flashrom support|
|25FS406||Toshiba DT01ACA100, ST2000DM001||?||?|
|Pm 25ld020||Hitachi HDS721050CLA362||+||+|
|ST25P10V6||Maxtor Diamond Max Plus 8||+||+|
As you see, flashrom supports almost all chips as Xeltek. So for data recovery you can choose any SPI programmer which is supported by flashrom. I decided to test CH341A-based just because it's cheapest one. For now only one software limitation of CH341A support in flashrom is that it does not support any parameters currently. SPI frequency is fixed at 2 MHz so you wouldn't be able to read correctly SPI chips which are programmed in another frequency. If you are looking for - programmer which doesn't have software 2 MHz limitation now you can look for Bus Pirate, an open source hacker multi-tool.It costs a little bit higher, but it can act not only like programmer, you can use it for reverse engineering too.
Feel free to share your experience about using programmer devices in comments