Skip to content

Flash a Laptop BIOS with a CH341A Programmer

Updated November 8, 2026

The CH341A is a low-cost USB programmer built around the WCH CH341A bridge chip. With a SOIC8 test clip it reads and writes the 25-series SPI flash that holds a laptop’s BIOS, either on the board or removed from it. It is the standard bench tool for recovering a corrupted BIOS, replacing a dump, or taking a backup before risky work. BIOS dumps in the catalog are listed under BIOS.

Before you start

  • Remove all power. Disconnect the AC adapter and the main battery. Disconnect the RTC (CMOS) battery as well where practical.
  • ESD. Use a grounded mat or wrist strap. The flash chip and the chipset lines connected to it are not robust.
  • Confirm the chip voltage before anything touches it. A 1.8 V chip on a 3.3 V programmer can be damaged.
  • Check your programmer for 5 V logic levels (next section).
  • Ask the customer about BitLocker. Writing a different dump can reset the firmware TPM and trigger a BitLocker recovery prompt. Get the recovery key before you start.
  • Never write anything until you have a verified backup of the original chip.

What you need

  • CH341A programmer. The common black board has a ZIF socket for 24- and 25-series chips.
  • SOIC8 test clip with cable. For leadless WSON8 packages you need a probe-style adapter or must desolder the chip.
  • A 1.8 V adapter for 1.8 V chips.
  • Software. Three tools are widely used:
    • NeoProgrammer (Windows) — graphical, good chip database, built-in compare.
    • AsProgrammer (Windows) — open source, graphical, supports CH341A and other programmers.
    • flashrom (Linux, macOS, Windows) — command line, open source, flashrom.org.

The utility bundled with many kits works, but its chip list is old. Driver requirements differ between tools (WCH driver versus libusb), so on Windows you may have to switch drivers when moving between them.

The 5 V data-line issue on black CH341A boards

On many revisions of the black board, the CH341A chip itself runs from the USB 5 V supply, while the 3.3 V regulator feeds only the target chip’s VCC pin. The result is a flash chip powered at 3.3 V but driven by chip-select, clock and data signals at about 5 V. Many chips tolerate it for a while, but it is outside their specification and it also reaches the chipset or EC lines when you read in-circuit.

How to check: connect the programmer to USB with nothing in the clip and measure from GND to clip pin 1 (chip select, normally held high when idle), or scope the signal lines during a read. About 3.3 V is fine. Close to 5 V means your board has the issue.

How to deal with it:

  • The widely documented fix is to run the CH341A chip from 3.3 V. Its VCC pin (pin 28) is lifted from the 5 V feed and connected, together with its V3 pin (pin 9), to the 3.3 V regulator output, which is the WCH datasheet arrangement for 3.3 V operation. Board layouts differ between revisions, so trace your board before cutting anything.
  • Some newer boards add a voltage selector or already run the bridge at 3.3 V. Measure; do not trust the silkscreen.
  • A 1.8 V adapter with proper level shifting isolates the target from the programmer’s logic levels for 1.8 V chips.

Identify the chip

The BIOS chip is an 8-pin SOIC (150 or 208 mil) or WSON8 part, usually near the chipset or the EC. The schematic page is typically named SPI ROM, BIOS ROM or SPI FLASH. See how to read laptop schematics.

Read the full marking and look up the datasheet. Naming patterns help, but confirm the supply voltage in the datasheet every time:

  • Winbond: W25Q…JV and W25Q…FV are 3 V parts; W25Q…FW and W25Q…JW are 1.8 V parts.
  • Macronix: MX25L is 3 V; MX25U is 1.8 V.
  • GigaDevice: GD25Q and GD25B are 3 V; GD25LQ and GD25LB are 1.8 V.
  • ISSI: IS25LP is 3 V; IS25WP is 1.8 V.

The number in the part name is the density in megabits. Divide by 8 for megabytes. A dump must be exactly the chip size.

Example part Density Dump size Supply
W25Q32JV, MX25L3233F 32 Mbit 4 MB (4,194,304 bytes) 3.3 V
W25Q64JV, MX25L6433F 64 Mbit 8 MB (8,388,608 bytes) 3.3 V
W25Q128JV, MX25L12835F 128 Mbit 16 MB (16,777,216 bytes) 3.3 V
W25Q64FW, MX25U6435F 64 Mbit 8 MB 1.8 V
W25Q128FW, MX25U12835F 128 Mbit 16 MB 1.8 V
W25Q256JV 256 Mbit 32 MB 3.3 V, 4-byte addressing

Some boards use two SPI chips, for example 8 MB plus 4 MB. Dumps for those boards come either as two files or as one combined file that must be split at the first chip’s size. Check the dump description.

Vendor update files (.exe, .cap, .fd, or a .bin from the support site) are usually not full dumps. They often contain only the BIOS region, or carry a capsule header that must be removed (commonly 2 KB on ASUS .cap files). Do not write them directly to the chip.

Read and back up the original

  1. Locate pin 1 of the chip (dot or bevel). The SOIC8 pinout is: 1 /CS, 2 DO, 3 /WP, 4 GND, 5 DI, 6 CLK, 7 /HOLD or /RESET, 8 VCC.
  2. With the programmer unplugged, attach the clip so the red wire is on pin 1. Then plug in USB.
  3. Read the chip ID. It should match the marking. FF FF FF or 00 00 00 means a contact or power problem; reseat the clip before continuing.
  4. Select the exact chip in the software if it was not detected automatically.
  5. Read the chip and save it as original_1.bin.
  6. Read it again and save it as original_2.bin.
  7. Compare the two files. In PowerShell: Get-FileHash .\original_1.bin, .\original_2.bin. On Linux: sha256sum original_*.bin. The hashes must be identical. If they differ, the reads are unreliable; fix that before going further.
  8. Sanity-check the content in a hex viewer. It must not be all FF or all 00. A full Intel image has the flash descriptor signature 5A A5 F0 0F at offset 0x10.
  9. Store a copy away from the bench PC, named with the board number, serial number and date.

The original holds data that no downloaded dump has: serial number, UUID, MAC address, Windows key and, on Intel boards, the ME state. See clean ME region in BIOS dumps before writing someone else’s dump.

Reading in-circuit

In-circuit, the programmer’s VCC also powers the board’s SPI rail and whatever else sits on it, such as parts of the chipset or the EC. Some boards read perfectly; others return a wrong ID or different data on every read. If two reads still differ after reseating the clip, desolder the chip and read it in the adapter.

Erase, write and verify

  1. Prepare the file to write: correct size, from the same board number and revision, with board-specific data transferred where needed.
  2. Erase the chip.
  3. Blank check: the chip should read all FF.
  4. Write the prepared file.
  5. Verify: read back and compare with the file. Do not skip this step.
  6. Remove the clip, reconnect the battery and adapter.

With flashrom, writing includes erase and verify:

flashrom -p ch341a_spi -r original_1.bin
flashrom -p ch341a_spi -r original_2.bin
flashrom -p ch341a_spi -w prepared.bin

If flashrom finds several matching chip definitions, it asks you to choose one with -c.

The first boot after a write can take noticeably longer than normal, especially while memory training or ME initialization runs. Give it a few minutes before deciding it failed.

EC and KBC firmware

The embedded controller (EC, also called KBC) handles power-on, the keyboard, battery charging and fans. Common EC families include ITE, ENE, Nuvoton and Microchip (formerly SMSC). Where its firmware lives depends on the EC part and the board design:

  • In the shared BIOS chip. The EC fetches its firmware from the same SPI flash. A full dump includes it, and a corrupted EC area can cause a no-power board.
  • In a separate small SPI chip next to the EC. The BIOS dump alone will not fix EC problems on these boards.
  • In the EC’s internal flash. The ENE KB9012 is a well-known example. It needs a dedicated programming method, not the BIOS chip clip.

To find out which applies, open the EC page of the schematic and follow its SPI pins: to the BIOS ROM, to its own ROM, or nowhere. Dump descriptions often say “EC included” or “BIOS only”. A BIOS from a board with a different EC firmware can cause no power, dead keyboards, charging faults or fan problems.

Risks

  • Reversed clip: puts VCC on the GND pin. Check pin 1 twice.
  • Wrong dump: a different board number or revision can mean no boot or no power.
  • Boot Guard: on Intel boards with Boot Guard enabled, a modified BIOS or one from a different model will not boot.

Related guides