The CH341A is the $5 USB programmer that flashes BIOS chips, router firmware and monitor EEPROMs — and it’s genuinely good if you pair it with the right software and dodge one hardware trap. This guide gives you both: AsProgrammer (the best free Windows tool for it, hosted below) and the 3.3 V warning that saves chips.

⬇ AsProgrammer 2.1.2 + CH341A driver

Windows 10/11 · open-source (GitHub: nofeletru/UsbAsp-flash) · supports CH341A black/blue editions

Download AsProgrammer 2.1.2
 
Download CH341A driver

Driver is the official WCH CH341PAR package. Install driver first, then unzip AsProgrammer anywhere — it’s portable, no install.

⚠️ The 5-volt trap (read before connecting a chip)

Most cheap CH341A boards (the classic black edition) feed the chip’s data lines at 5 V while the chip expects 3.3 V. SPI flash is usually tolerant enough to survive a read, but it’s out-of-spec stress and occasionally kills chips or corrupts writes. Three ways out:

Wiring: socket vs clip

Before either: make sure the clip you own actually fits the chip you have, and that pin 1 is where you think it is. The SOIC-8 test clip guide covers pitch and body width, the 1.8V-versus-3.3V part number trap, and how to tell a bad contact from a bad chip.

There is a third option the clip-vs-socket debate skips: take the chip off the board. When the clip will not read reliably — powered rails fighting you, a chip wedged under a shield — hot air is the honest answer. See the hot air rework station guide for how to lift a 25xx without taking the pads with it.

  1. Desoldered chip: into the ZIF socket, pin 1 (dot) toward the lever, in the SPI position (the socket silk shows 25xx placement);
  2. In-circuit (SOIC-8 clip): red wire = pin 1, clip firmly seated. In-circuit works when the board doesn’t back-power — if reads are garbage or the chip reads all 00/FF, stop fighting and desolder;
  3. Plug into a rear USB port (hubs cause dropouts on long reads).

First flash with AsProgrammer

  1. Open AsProgrammer → Hardware → CH341a;
  2. Click the magnifier (detect) — or pick the exact part from the IC list if detection guesses wrong;
  3. Read IC → save the dump. Read twice, compare sizes/content — cheap clips make flaky contact and a bad backup is worse than none;
  4. Load your new image → Erase → Program → Verify. Green “Verify OK” or it didn’t happen.

Common questions

Windows doesn’t see the programmer? Install the driver from the box above, replug. Device Manager should show “USB-EPP/I2C… CH341A”. Still nothing: try another cable — the bundled ones are often charge-only garbage. Note that the CH341A uses the WCH driver, not a generic one — do not run Zadig on it; that tool is for devices like the USBasp.

Can I use flashrom instead of AsProgrammer? Yes, and it is the better answer if you want something scriptable across several programmers. It costs you a driver swap — flashrom needs WinUSB bound to the CH341A with Zadig, not the WCH driver above, so the two tools cannot share the device. There is also no official Windows binary; our flashrom on Windows guide covers the ten-minute build and the commands.

Chip detected as wrong model? Auto-detect reads the JEDEC ID, but clones confuse it. Select the exact printed part number manually — capacity mismatch is how you get a half-written brick.

The chip is 8-pin but it is not SPI flash? Check the board first: an 8-pin part sitting next to an MCU on a control board is usually a 24Cxx I²C EEPROM, not 25-series flash. The same $5 board reads it, but with a different bus, a different addressing scheme per capacity and a write-protect pin that acknowledges writes it never performs — see 24Cxx EEPROM with a CH341A.

CH341A vs a real programmer? For 8-pin SPI flash, the CH341A does the job. The moment you touch parallel chips, MCUs or need speed and reliability daily, step up to a T48 — see also the XGpro software page.

When AsProgrammer is not enough: SPI NAND, Microwire 93Cxx, OTP/security registers or ASUS .CAP files are jobs the same $5 board can do with different software. That is what NeoProgrammer adds — with the caveat that it is closed source and has no official download page, so verify the hash before running it.

Is there a case where the 5-volt trap is not a trap? Yes, and it is the most common eight-pin job outside a PC: the EDID EEPROM behind a monitor’s video connector. That bus is specified to run at 5 V on the cable side, so a stock CH341A is in spec there — but only there, and only on the cable side of the level shifter. Our guide to fixing a monitor EDID works through where the 5 V is intended and where it still is not.

Verdict

Five dollars, fits in a pocket, saves motherboards. Know the voltage trap, keep backups religious, and the CH341A + AsProgrammer combo is the best value in all of bench electronics.