[GUIDE] The Beginners Guide to Using a CH341A SPI Programmer/Flasher (With Pictures!)

So, all sorted out now finally @100PIER ? Sorry I was gone for a lot of your recent hassles with this, I’m so far behind it’s not even funny! Some PM’s I’m behind a month, and new reply threads I need to get into on the forums I’m behind 6-7 pages or more

Blank check is used to ensure your previous erase command fully erased all the chips contents, erase fills with FF

Thanks, don’t worry. I understand.
So erase fills with FF and that does mean to “blank” the chip and the “Blank check” does seem only offered by CH341A Software v1.34 (not v1.4).
Morover AsProgrammer v1.4.0 does offer Erase but not the Blank Check function.

Erase means blank in a general sense yes, and then blank check checks and confirms that the entire chip was FF’d - I’ve not used it, but I can see blank check in 1.31/1.4 version, and all previous too.
ASProgrammer has blank check too, it’s to the right of the erase icon, in the verify drop out menu

1.4 works just fine in Windows 10. And my BIOS chip is 25L12873F M2I 10G in my Z390 Aorus XTreme and Master.

Source below.


Yes thanks, as does the normal CH341A 1.31Free/1.4 version too - Confirmed by 100PIER recently, some of the original issues were caused by failed connection problems.

Ho yes, I did not see the hidden "Blank check" option with AsProgrammer, and with CH341A v1.4 free the "Blank" option is greyed when the chip is not connected.

Yes, the SOIC Clip board contact is the source of problem. We have to adjust very precisely all the 8 pins of the clip on the 8 pins of the soldered chip.
The difficulty does come from the fact that ASUS Z390M_Plus BIOS chip is very close to another plastic chip connector (undocumented usage), too close to set properly the SOIC clip because the width size of the clip does hurt this other plastic chip connector.
To remedy, you have to manually cut (eliminate) a small plastic portion of the clip himself (on one side).
I don’t understand why ASUS does a so not easy access to the BIOS chip.
If you compare to BIOS chip emplacement on some others manufacturers mboard (ASROCK, MSI, etc…) they are more judicious!

I heard, that a lot of Bios chips with the TL866 II Plus programmer
are not correct identified, when you check "pindetect".
Check this box out and you will see,

Hello mate,

Can you please send me a schematic to connections of clamp with pins holder. My cable is broken and I ned to re-solder it but I don’t knov which is pinout for this.
Please look at picture and give me advice.

Thank you in advance and best regards,


@dradisic - you need to tag someone’s name like I did yours there, with @ directly in front of their name <<

@Lost_N_BIOS Sorry, but I do not understand what I need to do. I just asked the question and I need the answer.

I thought you were asking someone in particular that question, so I was telling you how to address them directly so they would get a PM and be notified that you asked something.

To solder stuff back, separate the wires into two groups of four and match one side with how you see on the PCB and other same, making red wire = pin1

Beginners guide… OK. Is ADVANCED guide also somewhere around here?

Curious how to switch between different programming modes 1/2/3/TXD/RXD/GND/5V/CLK/CS/MOSI/MIOS/GND/3.3V/5V




@klaxklax3 - Those are not programming modes, those are solder through holes/points. Usually you only need to use one mode anyway, with jumper in position 1-2 as it is in above image.
Here is another guide - [GUIDE] Flash BIOS with CH341A programmer
https://www.bios-mods.com/forum/Thread-G…341A-programmer << Same as one directly above, but with all images expanded/visible at once

OK. First, I really appreciate the Guide, even though I’m a bit out of my depth using it. I have temporarily bricked my z77extreme4 AsRock motherboard trying to update to an NVMe capable BIOS. Need to fix that, but, a) I’m a complete novice at this; and b) I’m a complete novice at Linux (though looking to learn when I have more time).

Here’s where I’ve been so far:

1. Read the instructions here.
2. Ordered a ch341a (the black one if it matters).
3. Successfully extracted socketed bios chip without bending anything (yes! that worried me)
4. Plugged BIOS into ch341a as instructed.
5. PLugged ch341a into Linux Mint 19 desktop
6. Successfully downloaded flashrom
7. Successfully ran the backup routine (which was mostly just a test because the current BIOS is corrupt, but it worked)
8. Attempted to flash using the BIOS image from a modded bios meant to be loaded using Asrock instant flash. File name Z77EXT43.00.

And there, right when things looked so good, failure with the message "no such file or directory"

Now, the successful backup means all else is working, so I think the failure options are:

1. Flashrom can’t find the BIOS file on my linux desktop. Tried other locations. Tried telling it where the file was. Nope. [The backup.bin wrote to the users home folder. I used that and it worked]

2. Was I supposed to actually put the <> symbols around the filename? Tried it. Nope. [No, you don’t do that. Just type the name. I assumed it would be case sensitive - not sure it is though]

3. Is this thing in a capsule that I have to dismantle before I can flash it? Don’t know. Tired renaming to .bin. Nope. [Not in the case of my asrock instant-flash style bios file - once I got the syntax correct – no problems]

4. Do I need to have the file in “my” folder on Linux? [Home folder works, and that’s where backup.bin ends up]

5. Is the file name case sensitive? [Don’t know. Assumed it was]

So, thanks to the directions here, I feel like I"m SOoooo close – but not there yet. Probably because of something folks who use Linux regularly or flash BIOS chips on occasion would be expected to know.

But since I’m not sure what the problem is, I’m not sure which direction to head in. Can you help?

Thanks in advance for a fix I’m sure will make me feel like a total newb – becasue that’s what were dealing with here.

Still, this is a great learning experience – much as I’m ashamed of having bricked the machine in the first place. The ch341a looks like a useful little tool. Just need that one additional piece of info.

UPDATE: So naturally, after posting this, I thought I’d try once more. With the file on my desktop and in the home folder, I typed

sudo flashrom --programmer ch341a_spi -w Z77EXT43.00

And we’re good! System ran flash, reported Erase/Write done, and reported verification success.

Would love advice on the cause of my problems, so that I don’t repeat them, and so that other beginners might benefit. But right now . . . looking good.

Thanks very, very much for helping save the old ext4 board!

UPDATE 2: Well, the Mdclab BIOS for the Z77ext4 couldn’t see the NVMe drive, so I had to pull the chip again and try the Carbon BIOS – which happily can (even if Windows is currently refusing to install – looks like there are ways to do that though).

Just so I don’ t create undue confusion, I need to report that falshrom worked exactly as advertised this morning. First time, with no fuss – so I must have been mistyping the name consistently or something yesterday. I’m annotating answers to my questions in brackets just to be sure I don’t mislead anyone. See above.


@Rowebo - Usually, as practice you should start, never program stock BIOS, maybe only as a last resort or as a quick test or quick get up and running so you can gather info etc.
Many stock BIOS are only partial BIOS upgrades, and many are inside capsules, or have capsules inside them you don’t want to program in.

I can’t help you with flashrom or Linux, this can easily be done on windows though, if you are a windows user? Hopefully your dump is OK, please upload it for me to look at.

Do you want a link to the windows guide and windows software, it’s much easier? For next time I mean

If you want NVME Mod BIOS, let me know I can make you one with latest BIOS, then you can instant flash it in

* Side question, since I am helping someone else recover this exact same board. After you programmed in that stock BIOS, does your LAN (Ethernet) still function, correct MAC ID and can connect to internet?

Hello guys,
I have the CH341A programmer because I want to edit my GPU PCI ID. I tried to copy the Vbios of my former GPU with the correct CPI ID into the new one, it seemed to have work, but the PCI ID didn’t change. what should I do? thank you

@SirPanda - maybe you didn’t change it all the correct places, or maybe what you are looking at this ID in to check, isn’t pulling the info from the vBIOS itself but the BIOS SMI or other NVRAM data etc.

Okay, so how can I be sure if I flashed it correctly ? All i did was earase and then copy the Vbios I had from the previous card, expecting that all would be working well.
Here is the pdf o the chip : https://www.winbond.com/resource-files/w…2018%20sfdp.pdf

Starting at page 19-20 there are instructions to enter manufacturer and device ID, and I really think this is what I’m looking for here.

But I’m no expert AT ALL on that matter, so I’m wondering if I need a special software with specific command to access and edit these data in the chip.

Hello and thanks for this guide.
I’m a bit stuck reprogramming a spi from a haier tv. It is a GigaDevice flash chip “GD25Q64(B)” but I don’t know which <new bios name> I have to add. The code :
sudo flashrom --programmer ch341a_spi -w <new bios name>
Please look the picture fir more information.