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

@100PIER Try using windows with the 1.4 software as KedarWolf said.

@_haru , @KedarWolf , @Lost_N_BIOS

Thanks to all for your help about on how to ‘try’ to use CH341A SPI Programmer for a ASUS Z390M-Plus mboard.

I have tested under Live Unix USB interface: no success because “flashrom” database does ignore the BIOS 128Mbits chip from MXIC modèle MX25L12875F or MX25L12873F

I have tested all variants (W10 64bit v1809 interface) without success as reported herebelow:










Any suggestions to progress ?

@Lost_N_BIOS Do you have any idea? :confused:

Retried with v1.40: no success



@100PIER - Very sorry about not replying to PM’s this past week or two, I am very far behind and have not had a chance to get caught up on threads or PM’s
That error you see at 1.30 version second image, sometimes that is normal, click OK and carry on… But in this case it wont matter, read below.
Here is all versions, 1.31(Free) is “1.4” version. I have best luck with 1.30 and 1.34 for modern/new chips

I just tested MX25L12873FPI (DIP8 type, but this does not matter it’s same chip) for you, erase, blank check, write/verify with 1.30 and 1.34 and that chip, using black/gold programmer - no luck, detect, erase , blank check and write OK, but always fail at write/verify after write is done.
I almost didn’t test 1.31(Free)/1.4 - simply because I hate it I assumed it will fail too, but I checked and it works fine It’s included in above package - if this is failing for you it may be a Win10 issue like everything else is when using Win10, I’m using Win7

So use that with Win7, or ASProgrammer 1.40 also works, but I only tested on Win7 with it too. - https://github.com/nofeletru/UsbAsp-flash/releases/
Tested ASProgrammer erase, blank check write/verify = all pass OK But VERY long write - 20+ minutes to write!
I guess this is common with CH341A and this program, without programmer hardware mod described on it’s forum or site somewhere (Can’t remember where it’s at, but not same as the 5V mod everyone talks about)



What Windows do you use for the USB BIOS Programmer ? W7 ? W8 ? W10 ? which version and build ?


Thanks for your help
CH341A software v1.32(Free)/1.4 does seem to be W7 compatible only.
On my side, under W10, CH341A application v1.32(Free)/1.4 does not work as reported in a previous post.

I have tried AsProgrammer v1.4.0 Tool. Here are the tests results:



Why all the memory is "FF…" ?
Chip ID does seem "unknown"
I have done a Read memory operation and a Verify memory operation. Same duration.

I never tested or used, CH341A 1.32, only 1.31(free)/1.4, so I can’t comment on 1.32. I think they’re all compatible with Win10, but certain chip ID’s just don’t work on Win10, like many things don’t work on Win10 (Still!)
No one previously reported 1.32(Free)/1.4 worked either, that I noticed? KedarWolf I assume meant the version I mentioned, tested, and linked 1.31(Free)/1.4, but I don’t know if he meant on Win10 or not. Just install Win7 on a spare drive, or Use ASProgrammer.

I don’t know what those FF’s are about you highlighted at bottom? Read only will show non-FF if you are reading a BIOS chip that has contents (not erased, FF’d etc).
To me that looks like a blank chip, and that would be expected if you erased and blanked checked with previous CH341A software, or used Auto on that software ect (Since it’s first function is erase until you uncheck that box)
And verify only helps if you have already opened a BIOS file and written it to a chip, or are verifying it’s blank after an erase. All I see is FF in your images, so I’m not sure what you’ve done there or are trying to do?
Yes, erase, and blank check (verify blank) is fast, similar speeds, only write will take a long time.

Proper steps to do it >> Erase >> Verify/Blank check >> Open BIOS file >> Write >> Verify
Personally, since I do not like ASProgrammer (but it works here), I’d install Win7 on a spare drive and use more user friendly CH341A software 1.31(Free)/1.4

Sorry for the typo, I do referred to 1.31(free)/1.4. At my knowledge 1.32 does not exist.
ASProgrammer does detect a chip but the ID chip is FF.
No, the BIOS component is not a blank chip because I am typing on the booted W10 Z390M machine I tried the BIOS component tests !
So, for sure very strange these all "FF" for a BIOS chip that has contents !!!
May be it is related to the fact of chip ID is "FF" ?

So, at this day I have no valid solution to program the BIOS component of ASUS Z390M-Plus motherboard.
I will try to build a W7toGO USB environment for tests

@100PIER - It’s OK, I assumed maybe there was new 1.32 version

Yes, chip ID being detected as FF means it’s not detecting, some driver or OS issue. Setup a Win7 install and be done with this messing around
I do not know what W7toGO means, but it may not work either, don’t waste your time, setup a full proper Win7 install (and you may need to install all win updates, unsure, probably/possibly the .NET’s at least)
I would install them all if any issue arises, that way you know it’s nothing to do with this.

On ASProgrammer there is no detect that I noticed, you directly select the chip from the IC >> SPI menu (Macronix >> MX25L12873F) - are you doing that? If yes, then sounds like more Win10 crap again
Maybe do this on some other older system you have, with USB 2.0 ports too (I used Z87 era USB 3.0) - don’t you have some other old PC around the house, that way you wouldn’t have to reinstall Win7? XP setup may work too if you have some old XP system around the house

WinToGo USB key concept is to have the OS up and running on the USB key (USB 3.0, 64GB recommended) and using all the PC hardware except the current system disK.
By experience in fact this a pure ‘marketing feature’ because after several tries of WinToGo (W10 x64 v1809) I see the BIOS settings are automatically modded and get some problems after WinToGo usage and USB key removed to get the original System up and running as before a ‘WinToGo’ session.

So, I do prefer as you said to realive a old PC DELL Vostro400 legacy BIOS running a W7 64bit Home License I have. Unfortunatly I am in a ‘egg and chicken’ situation because the BIOS of the DELL PC is fully dead !
So, I have to find another solution.

It is very strange that no CH341A Programmer Software Version validate for W10 does exist !!

Yes, with ASProgrammer application I directly select the chip from IC>>SPI menu (Macronix>> MX25L12873F) then click on ‘Read ID’ button and got FFFF…
Do you think ASUS does block the chipID of the installed BIOS component ?
What is strange is that FPT tool v12.0.22.1310 does report a 'BIOS Flash Device" MX25L12875F and the BIOS Component label is MX25L12873F.

See, I assumed something like that, and just like you mentioned with Win10 USBToGo, I assume some bad things will mess with you on Win7 USBToGo too, I’d not use it and setup a real Win7 install unless you have other options.

You can’t revive the Dell Or is it some physical issue. Win10 sucks, no good BIOS toy developer is going to validate anything for Win10 until they absolutely have to.

Do you think ASUS does block the chipID of the installed BIOS component << I don’t understand what you mean there? But in general, no Asus isn’t blocking any Chip ID’s, they don’t have anything to do with this.

And on the FPT discrepancy, it’s probably just FPT detection issue/thing, from the fparts.txt only having 5F instead of both 3F and 5F or just bugged detection in general. You looked at the chip yourself correct, and it’s 3F?

Try this, if still no luck then it’s a Win10 issue for sure. First, double check you have the chip in he correct slot, and installed in the correct direction, plug it in the USB and wait 10 seconds, then feel the chip itself, if it’s not burning your finger hot then it’s in correctly
Then with ASProgrammer application select the chip from IC>>SPI menu (Macronix>> MX25L12873F) >> Then click read ID (two over from stop sign, right left of the icon with lock on it) - I guess it does have detect
YOu should get this
ID(9F): C22018
ID(90): C217
ID(AB): 17
ID(15): 0707

If so, or not, click the lock icon drop out menu, right left of stop sign. Then choose edit SReg, and in the box that comes up click Read SReg and show me image.
Then, on the lock icon right next to stop sign, click the main lock button (Unprotect). Then try to erase, blank check, open BIOS file, then write/verify.

@Lost_N_BIOS ,

The “fparts.txt” file does contain the both 5F and 3F model ! So, FPT detection is suspect or ‘buggy’.
Yes, I have looked myself the chip with a loupe for zooming the inscription , it is well a 3F model .
FPT tool does report ID:0xC22018
The BIOS chip is soldered on the mb, so I can’t manipulate it. I can only access to it via the SOIC8 clip and I have double check the green adaptater is well positionned on the CH2341A Pro USB key on the proper 25xx side in respect of the correct pinouts.

I’ll do the ASProgrammer procedure test and let you know the results.

Here are ASProgrammer v1.40 procedure test results.
They do confirm the chip ID problem:



I have tried also with 5F chip model: same "FF…" result.

I have no tried your last proposed test Erase, Blank check, open BIOS file, Write/Verify to be sure to not brick the BIOS component contents.

So, at the moment no progress under W10 interface to get a Programmer Application compatible with this BIOS chip.

As W10 interface does not work, I’ll plan to build a dedicated W7 SP1 system for programming via USB CH341A Programmer.

You wrote somewhere that for the “Software Programmer” the modded BIOS file to be programmed (Part 3 of the Guide) should not be a BIOS Region.
So your “hand made” modded BIOS which a derivate of the original BIOS Region dump should not be usable “as is” for the “Software Programmer” ?
Of course, if I get a bricked BIOS after FPT flashing your “hand made” BIOS (but, this will not the case !) I have not to use it and I have to re-program the chip we a fully working BIOS.

So, in case of a bricked BIOS, what exact “BIOS file input” to use for the Software Programmer to realive a bricked BIOS chip ?

Do we have to use a part of the ‘backed’ Bios file ? or a part of the last Stock BIOS .cap file ?
Thanks for the details to clarify me.

@100PIER Win7 would be my next move as well, many many many things have issue with Win10 (Still, after all this time)

I tested this exact chip, with ASProgrammer, and it’s fine on Win7. If you plan to (Or have to due to brick) write a mod BIOS region I sent you, let me know and either link me to the BIOS I made, or upload it for me, and I will put it back into a full BIOS for you to program in with programmer.

Aside from BIOS region is FD, ME, and GbE (Which contains LAN MAC ID). All this in the stock BIOS and is fine to use, I would unlock the FD for you and put back in the BIOS region, and insert your LAN MAC ID (make a note of this now, so you have a copy, if you don’t get full programmer backup)
You can get LAN MAC ID from your router logs, or attached devices in router, or from CMD Prompt run the following and take a screenshot >> IPConfig /all
If you give me your MAC Address, I can make you a "Full"pProgrammer ready BIOS from the mod BIOS I made you yesterday if you want (BIOS region source = biosRSTGOPLAN-ModUcode.bin)

@Lost_N_BIOS ,
Thanks, I understand that to get a "Full" Programmer ready BIOS from the "hand made" modded BIOS region does require also some "hand made" additional expert manipulations.
Thanks again for your help.

Finally I do regret my choice of a ASUS mboard without the "Flashback" button !!

But, on one other side I learn lot with your help about FPT flashing and CH341A Programmer tools.
A good news I have found this morning a recent CH341A Software v1.34 on "LINK-4SHARE" site.
May be you already have v1.34 ? This the about information:


I have to test v1.34 and let you know if I do progress under W10 interface…

Yes, you need to extract the main BIOS body from the stock capsule via hex or UEFITool, then re-open that BIOS body in UEFITool and replace the stock BIOS region with the BIOS region I modified for you.
It’s easy to do, but not easy to explain if you are not familiar with all these BIOS regions and editing tools etc

Yes, I have CH341A 1.34 software, it’s in this package I always link - http://s000.tinyupload.com/index.php?fil…257455007472602
What are you testing it for, did you have some issue with 1.29 or others? If yes, what is your chip ID, maybe I know the version you need to use or if you need to use another software instead, or need to use different BIOS ID etc.

As for Win10, I only know that everything has issues in Win10, even windows has issues in Win10 So I doubt that works there, I think I’ve seen reports it does not, so if you need to use CH341A and software I suggest you use Win7
Or, you can use ASProgrammer software, it does work properly in Win10 but it’s not as user friendly - https://github.com/nofeletru/UsbAsp-flash/releases/

Thanks for the ‘how to do’ procedure to get a full Programmer ready BIOS file.

I have tested (under W10) v1.34 and chip detection does fail:



A strange question:
If you are looking at the blue chip logo under the Red Detection failure message you can observe the black chip position on the USB Programmer.
On the black chip schema you can observe the tag which usually does indicate the Pin 1 of the component.
If you compare the tag position (Pin 1 emplacement) it is different of what your pictures does provide into the Guide.
Is the schema logo wrong ?
Please, can you clarify ?

Nota: v1.34 does offer W7 drivers only. 2 variants are offered: SERIAL and PARALLEL.
What variant to use ?

Did you see my Post #34 ?
I have tested ASProgrammer which does seem more recent than any CH341A software version.
The chip is in the Database. The chip connection is OK, but the Chip detection (ID) does fail.
So the both tools (ASProgrammer v4.0 and CH341A Software v1.34) does detect the chip connection (I used PARALLEL USB variant) but does provide "FF" when trying to get the Chip ID !!
Does the only remaining try test to do is to run these tools under W7 instead of W10 ?