• Welcome to TechPowerUp Forums, Guest! Please check out our forum guidelines for info related to our community.

Guide: Flashing with a hardware programmer

Solaris17

Super Dainty Moderator
Staff member
Joined
Aug 16, 2005
Messages
25,893 (3.79/day)
Location
Alabama
System Name Rocinante
Processor I9 14900KS
Motherboard EVGA z690 Dark KINGPIN (modded BIOS)
Cooling EK-AIO Elite 360 D-RGB
Memory 64GB Gskill Trident Z5 DDR5 6000 @6400
Video Card(s) MSI SUPRIM Liquid X 4090
Storage 1x 500GB 980 Pro | 1x 1TB 980 Pro | 1x 8TB Corsair MP400
Display(s) Odyssey OLED G9 G95SC
Case Lian Li o11 Evo Dynamic White
Audio Device(s) Moondrop S8's on Schiit Hel 2e
Power Supply Bequiet! Power Pro 12 1500w
Mouse Lamzu Atlantis mini (White)
Keyboard Monsgeek M3 Lavender, Akko Crystal Blues
VR HMD Quest 3
Software Windows 11
Benchmark Scores I dont have time for that.
Lets get physical
So; you tried flashing your GPU and you didn't backup. Now you have some dude on the forum linking you a BIOS but you have no way to apply it because you don't have a spare GPU either. Well no worries friend. In this guide we are going to cover the simple procedures of recovering a BIOS with an eeprom programmer. Lets get a few things out of the way first.

It's pretty easy to get nervous or carried away when thinking about flashing a physical chip. Fear not though, once you grasp the concepts its really no different then using a USB drive. Before we cover the basics lets put your mind at ease.

How Much?
The first barrier of entry most people run into is that they think even attempting this is expensive. Lets be clear. It's not. We are not talking about this:

1668224892311.png

No, programmers come in many shapes and sizes and the type of chips they can handle can add complexity which can affect cost, but lets get to the skinny. It's not expensive. For programmers that can handle the kind of chips we will normally deal with they start at around $10usd to around $100usd for fancy things.

That's right. To fix your mistake or ensure you don't have one you literally need to spend less than $20usd. So what kind of hardware are we looking at? Lets take a look.

Time to get hard-ware

For the most part there are only a few big players.

FlashcatUSB: Flashcat is generally what I use. I own both the pro and classic editions. I prefer it when I am doing more advanced chips or JTAG work. Realistically its on the expensive side, especially if you are adding accessories. The software is good though and the product is quality. Downsides are its not very open source friendly, which means their can be cases where your chip needs to be manually input or you need to run a boundary scan. ($60USD)

CH341A: The cheapest of the lot and of varying quality this is what most will use. For between $11 and $20 USD the CH341A is affordable and robust. Unlike flashcat the CH341A uses opensource eeprom software. These software suites can vary in quality and chip support, but allows the flexibility to use whichever suite fits you the best. As an added bonus most of the time it comes with various adapters and extension cables that can come in useful at no extra charge. ($16USD)

TL866: TL866 is an older style programmer that can natively do physically larger chips. This programmer is generally used by hobbyists that work with vintage or older chips from the early compute era. However; its perfectly capable of handling newer chips with the same standard adapters the other two use. Given that its on the expensive side I would generally go with one of the other two but there really isn't anything wrong with this tool. ($35USD)

You cant go wrong with any of these, but since this guide is about accessibility we will write it using a CH341A. This is the one I bought. It was $12. It came with:
  • 1 SOP8 test clip​
  • 1 8Pin to 8Pin converter​
  • 2 SOP8 SOP16 to 8Pin converters​
  • 2 2.54mm 4Pin connectors​
To make life easy I would also pick up some jumper wires for $7 though not generally needed, if you have circuit access holes they can be easier; and once you flash you just cant stop. Probably also grab yourself a 1.8v adapter which is so cheap just get the one that includes it in the bundle.

So now that we know what we are using, what about the software? How will we write to the chip?


Burnin' For You

For software the CH341A has three primary contenders. They all serve the same basic functionality. In some cases one project may get updates before another and thus the supported chip lists can differ. Though that shouldn't be a real turn off as we will go over chip substitution later. Feel free to pick whatever tickles your fancy UI wise.

AsProgrammer: This software is what most people will start with. For no other reason then it has a lot of references and has been around awhile. That doesn't make it inherently better given that software such as NeoProgrammer generally has a more upto date chip database. With that said its simple and clean and easy to understand. So this guide will also include it.

NeoProgrammer: Relatively new compared to AsProgrammer, NeoProgrammer takes a similar GUI and makes the buttons a little 2002. The chip DB at the time of writing has a few more manufacturers. Love it? Hate it? salt to taste.

SiberiaProg: The newest in the family of CH341A programming is SiberiaProg. This software is fugly. The end.

For the purpose of this guide we are actually going to go against the grain and use "AsProgrammer" the reason being our test flashes will be on chips that it does NOT have in its DB. This will be used to illustrate a worst case scenario where you need to substitute a chip model to get the job done.


Lets get the party started

Without further adieu lets get started. So basically, we will be working with eeprom. Not to be confused with ROM or EPROM most chips on motherboards and GPUs use EEPROM. This spelling is deliberate. Now between mobos and GPUs two primary types of chips are used.

SOIC8: Used on most GPUs. 8 legs soldered to PCB.

DIP8: Used on a lot of motherboards. 8 legs socketed.

There are of course other types of chips. 16+ pins socketed and unsocketed but the two above and their applications are the most common. Lastly are the voltages. As alluded to earlier there are two primary voltages that these chips operate on. Like the chip type (package) this can vary, but for the most part you will be touching either 3.3v or 1.8v chips. For now we wont worry about it. After all you might be reading this losing your mind because your GPU is dead.

Lets start with the reader itself. We will want to use the alligator clips. So lets get the clips and the adapter mounted on the machine.

B99DDD94-80AE-458A-8141-EBE4BB9C631C.jpeg

For the most part we are going to want the clips in the 25xx position. You can see the position written on the PCB, or just like the picture. Closest to the USB slot. :)

5360A6AB-5091-4F5B-9ACC-0D7FBADD24D9.jpeg

As you may notice the clips have a single red wire. This is what we will be using as "Pin 1" on our BIOS chips.

All connected? Good lets get the driver installed. Now, like most programming software, its meant for different devices and tools. There is no one stop shop. So we will install the driver via device manager.

1668238253041.png


There it is! Isn't he cute?

1668238289893.png


Now right click and select "Update Driver" then navigate to the directory you have "AsProgrammer" in. Remember to unzip it first!

1668238343074.png



1668238358296.png


Now select the parent folder. (It will search sub folders for you.)

1668238410124.png


Now go ahead and hit "Next".

1668238435351.png


Nice! Now we can break things!

1668238454432.png


1668238465815.png



Down the rabbit hole

Now that we have the driver installed for our reader. Its time to connect our device. In my case we will be using an Intel A380 GPU. First we need to examine it to find the BIOS chip. This can be tricky; as mentioned they can some in different shapes and sizes. For the most part though they should look a little something like this.

1668239050685.png

If it helps the general manufacturers and the coding they use on the chip are:

Winbond (Winbond/W25)

Integrated Silicon Solution Inc (IS25)
Chingis Technology (Pm25)
PUYA (PUYA/P25)
ISSI (IS25)

In most cases you will come across a Winbond chip. Once you find it we want to connect to it. You know how USB A only fits one way? Same thing. We want to make sure pin 1, or in our case the red wire on our clip connects to pin 1 on the chip. How do we do that? Simple. They are marked. There will be a dot, physical or paint next to what "Pin 1" should be. In some cases like the picture above as one such example. You can also make out the arrow painted on the PCB pointing to PIN 1. Below is an example of a painted dot.

1668239543699.png


Neat.



Once you have it all connected it should look something like this. Notice how my red wire is visible? Make sure that it corresponds to the Pin 1 markings I explained above.

141E2009-B2AC-4887-ABA0-9E99408A24A5.jpeg

Now that we are all connected and plugged in. Lets open our programming software. We are going to want to read the chip to make sure we can talk to it, and to see if any info is on it.

1668240285213.png


Nice now go ahead and press the button. Oh man, nothing is happening and the logs at the bottom say this.

1668240334656.png


Looks like the chip isnt auto detected. Sad times. We need to write down or look at the photo that we took of the chip to get the name. You remembered to do that right? Perfect.

In my case the Asrock A380 uses a Winbond 25Q64JVSIQ. So lets see if we can go look for that in AsProgrammer.

1668240486029.png


Oh no! Our chip isn't listed! BUT thats ok! Welcome to the world of SPI programming. What we CAN do is look up the data sheet. Sometimes these include "Family" names. With these we can identify another chip on the list to use. Now in my case part of the name is "25Q64JV" Well we dont have a "JV" but we DO have "BV", "CV" and "FV". Lets just try one to see what we get. Select the chip from the list and attempt to read it again.


I got a bunch of gibberish :(

1668240821482.png


Sick! That's your BIOS my dude! Anything readable? Sometimes they sign it. Lets try "Intel"

1668240895397.png


Nice! Now lets do the responsible thing and back this up. I mean since your already here, its not a stretch to think you will save it in your recycle bin, but lets try to keep it somewhere safe. To do this we will just hit the "Save" button, since we already read the chip.

1668240983672.png


Look at you; you did it!

1668241079015.png


Alright, so now we have to fix your bad flash or otherwise put on your new BIOS right? Well slow your roll kid. We need to do some prelim stuff. Now when data is written sometimes the BIOS are smaller than the chip being written to. Get it? So if we have a bad flash or we are using a totally different BIOS we have no guarantee that everything will be over written, or even that there wont be extra bits left over. So what do we do?

We wipe the chip first.

1668241262497.png


Oh yeah bud, your gonna want to do that.

1668241284821.png


Now that its done, do me a solid and read the chip again.

1668241353110.png


Well how we do?

1668241462667.png


Oh yeah, this is hella broken now. Perfect. I like my chips squeaky clean. Now lets bring your stuff back to life. I am assuming you have a backup (lol you dont) or someone gave you one (thank them) so we are now going to hit the "Open" button and select our file.

1668241551655.png


Your programmers hex view should now fill with gibberish again.

1668241599469.png


Sick. Now we want to write all this data to the chip.

1668241642496.png


Oh yeah bud.

1668241659325.png


Now just sit back and be anxious for a bit. It should be noted, if you haven't noticed already your programmer probably has an LED like a hard drive light that blinks anytime you read, wipe, write to the chip. Go look at that if you need a distraction.

1668241690390.png


Oh snap our progress bar says done! Look at the log window!



Sickkkk, now go plug your GPU in and enjoy playing PUBG badly.

It can all seem pretty complex but what did you really do? Lets break it down.

  • You bought a tool for $11
  • You installed a driver
  • You attached a clip
  • You pressed read
  • You pressed erase
  • You pressed write
Thats it. Dont sweat it, its just computer parts. Your mad and frustrated because you bricked your stuff. Its not rocket science though. I pulled this GPU out of the closet and iv had 3 beers since I began writing it. Not to mention Its 12:37am I should have been to sleep hours ago.

At the end of the day invest in this now. Just backup your stuff in GPU-Z or spend $11 before you ruin hundreds worth of equipment. Might even be good just to have it on hand.

Q/A

Q: Can I apply this same technique to mobo BIOS?
A: Yup sure can! Any writable chip honestly. Flash your router firmware if you want. PS3 NAND, Stereo. Go nuts.

Q: Did you know you missed "save" in the bullet list at the end?
A: I didn't miss it. You and I both know your only here because you flashed from windows on your barely stable overclock and now your GPU is trashed.


Random Errors & Troubleshooting

I'll write the rest later, I'm tired and want to sleep.
 
Last edited:
Joined
Jan 3, 2021
Messages
2,678 (2.22/day)
Location
Slovenia
Processor i5-6600K
Motherboard Asus Z170A
Cooling some cheap Cooler Master Hyper 103 or similar
Memory 16GB DDR4-2400
Video Card(s) IGP
Storage Samsung 850 EVO 250GB
Display(s) 2x Oldell 24" 1920x1200
Case Bitfenix Nova white windowless non-mesh
Audio Device(s) E-mu 1212m PCI
Power Supply Seasonic G-360
Mouse Logitech Marble trackball, never had a mouse
Keyboard Key Tronic KT2000, no Win key because 1994
Software Oldwin
That's a great guide. I have a (not even) beginner question - can a similar procedure be performed to program a motherboard BIOS chip?

(Also, Winbound is Winbond.)
 
Joined
Mar 20, 2008
Messages
1,368 (0.23/day)
System Name Ryzen5900X
Processor AMD Ryzen 5900X
Motherboard Gigabyte B550 AORUS PRO AC
Cooling NZXT Kraken X62
Memory 4x G.Skill F4-3600C17D-8GTZ
Video Card(s) AMD Radeon RX 6800XT Midnight Black
That's a great guide. I have a (not even) beginner question - can a similar procedure be performed to program a motherboard BIOS chip?

(Also, Winbound is Winbond.)
It also works for Motherboards, just make sure to use a 1.8v adapter on the programmer if the bios chip is rated 1.8v volt.

I had a bad bios flash on a B350 motherboard and did the recovery with a CH314A programmer. The only thing you will not automatically recover is the UIID and serial number since it is for every motherboard different.
There are utilities like DmiEdit where you can edit those values after the bios is flashed with the CH314A programmer.
 

Solaris17

Super Dainty Moderator
Staff member
Joined
Aug 16, 2005
Messages
25,893 (3.79/day)
Location
Alabama
System Name Rocinante
Processor I9 14900KS
Motherboard EVGA z690 Dark KINGPIN (modded BIOS)
Cooling EK-AIO Elite 360 D-RGB
Memory 64GB Gskill Trident Z5 DDR5 6000 @6400
Video Card(s) MSI SUPRIM Liquid X 4090
Storage 1x 500GB 980 Pro | 1x 1TB 980 Pro | 1x 8TB Corsair MP400
Display(s) Odyssey OLED G9 G95SC
Case Lian Li o11 Evo Dynamic White
Audio Device(s) Moondrop S8's on Schiit Hel 2e
Power Supply Bequiet! Power Pro 12 1500w
Mouse Lamzu Atlantis mini (White)
Keyboard Monsgeek M3 Lavender, Akko Crystal Blues
VR HMD Quest 3
Software Windows 11
Benchmark Scores I dont have time for that.
That's a great guide. I have a (not even) beginner question - can a similar procedure be performed to program a motherboard BIOS chip?

(Also, Winbound is Winbond.)

yup! I did answer that in the Q/A and alluded to it in the text itself, but yes. Like VuurVOS said its the same thing. the 1.8 and 3.3v difference I will include in the errors section when I have time to sit and write. Fixed the spelling thanks!
 
Joined
Jun 19, 2021
Messages
164 (0.16/day)
System Name HAL
Processor AMD Ryzen 3700x
Motherboard ASRock B450 Pro4
Cooling AORUS Liquid 240
Memory 32GB Teamgroup 3200mhz
Video Card(s) EVGA 2060 GTX
That's a great guide. I have a (not even) beginner question - can a similar procedure be performed to program a motherboard BIOS chip?

(Also, Winbound is Winbond.)
Excellent guide!

And yes, it works on a motheboard chip. A lot of motherboard bios chips are not even soldered to the board, so you can actually remove them from their socket and clamp them in with the zif socket handle rather than using the clips.
 

eidairaman1

The Exiled Airman
Joined
Jul 2, 2007
Messages
40,435 (6.58/day)
Location
Republic of Texas (True Patriot)
System Name PCGOD
Processor AMD FX 8350@ 5.0GHz
Motherboard Asus TUF 990FX Sabertooth R2 2901 Bios
Cooling Scythe Ashura, 2Ă—BitFenix 230mm Spectre Pro LED (Blue,Green), 2x BitFenix 140mm Spectre Pro LED
Memory 16 GB Gskill Ripjaws X 2133 (2400 OC, 10-10-12-20-20, 1T, 1.65V)
Video Card(s) AMD Radeon 290 Sapphire Vapor-X
Storage Samsung 840 Pro 256GB, WD Velociraptor 1TB
Display(s) NEC Multisync LCD 1700V (Display Port Adapter)
Case AeroCool Xpredator Evil Blue Edition
Audio Device(s) Creative Labs Sound Blaster ZxR
Power Supply Seasonic 1250 XM2 Series (XP3)
Mouse Roccat Kone XTD
Keyboard Roccat Ryos MK Pro
Software Windows 7 Pro 64
Excellent guide!

And yes, it works on a motheboard chip. A lot of motherboard bios chips are not even soldered to the board, so you can actually remove them from their socket and clamp them in with the zif socket handle rather than using the clips.
Many dual bios boards are not like that unfortunately
 
Joined
Aug 20, 2007
Messages
20,787 (3.41/day)
System Name Pioneer
Processor Ryzen R9 7950X
Motherboard GIGABYTE Aorus Elite X670 AX
Cooling Noctua NH-D15 + A whole lotta Sunon and Corsair Maglev blower fans...
Memory 64GB (4x 16GB) G.Skill Flare X5 @ DDR5-6000 CL30
Video Card(s) XFX RX 7900 XTX Speedster Merc 310
Storage 2x Crucial P5 Plus 2TB PCIe 4.0 NVMe SSDs
Display(s) 55" LG 55" B9 OLED 4K Display
Case Thermaltake Core X31
Audio Device(s) TOSLINK->Schiit Modi MB->Asgard 2 DAC Amp->AKG Pro K712 Headphones or HDMI->B9 OLED
Power Supply FSP Hydro Ti Pro 850W
Mouse Logitech G305 Lightspeed Wireless
Keyboard WASD Code v3 with Cherry Green keyswitches + PBT DS keycaps
Software Gentoo Linux x64
Excellent guide, brings me back to my bios hacking days on old 9th gen boards, when signatures were only enforced by the bios flash app.
 

Solaris17

Super Dainty Moderator
Staff member
Joined
Aug 16, 2005
Messages
25,893 (3.79/day)
Location
Alabama
System Name Rocinante
Processor I9 14900KS
Motherboard EVGA z690 Dark KINGPIN (modded BIOS)
Cooling EK-AIO Elite 360 D-RGB
Memory 64GB Gskill Trident Z5 DDR5 6000 @6400
Video Card(s) MSI SUPRIM Liquid X 4090
Storage 1x 500GB 980 Pro | 1x 1TB 980 Pro | 1x 8TB Corsair MP400
Display(s) Odyssey OLED G9 G95SC
Case Lian Li o11 Evo Dynamic White
Audio Device(s) Moondrop S8's on Schiit Hel 2e
Power Supply Bequiet! Power Pro 12 1500w
Mouse Lamzu Atlantis mini (White)
Keyboard Monsgeek M3 Lavender, Akko Crystal Blues
VR HMD Quest 3
Software Windows 11
Benchmark Scores I dont have time for that.
Excellent guide, brings me back to my bios hacking days on old 9th gen boards, when signatures were only enforced by the bios flash app.

Thanks! Yeah I actually remember one time dumping the raw image off a prebuilt Acer. A customer of mine had some hardware token for like a CnC machine and it the key was bonded to the board SN. He had had the board replaced because of a spill. So the SN was diff and he couldn't use the software.

Enter you shouldnt really do this mode:

To be clear the machine was out dated when I did this. It just needed to function until the machine it ran was replaced.

I dumped the chip contents. Coincidentally when you would run the software it would say something like "Key is bound to SN: XXXXXXX" where XXX was the SN of the board. Since we knew the SN it should be, and the SN it WAS (sticker) I just searched for the string in a hex editor. Then replaced the SN with what the hardware key wanted.

Then I reflashed the chip. Booted right to BIOS because it was mad about the checksum. I hit F10 to save it never complained about it again, the BIOS showed the right SN and the token worked. So happy ever after.

TBH I got the idea from years ago, on this very forum doing nvidia bios mods for people. I would tattoo them with my name when I would built peoples overclocks in. probably a few 8800GTS and older floating around with a "Solaris17" in the string during boot sequence lol.
 
Last edited:

badunca

New Member
Joined
May 15, 2023
Messages
1 (0.00/day)
Bro you just saved my life, thanks a lot it really helped me, it took me like 10 minutes to do it, and at an pc repair shop they said it's unrepairable...
 

MikTeX

New Member
Joined
Nov 5, 2022
Messages
4 (0.01/day)
@Solaris17
the ch341a has a 3.3v regulator (step down from usb5v) onboard. can we reduce that voltage to 1.8v and still have operational device that now can support winbond 1.8v eeprom ic's ubiquitous in most gpus nowadays?

I dont want to buy a 1.8v adapter I think I can make my own, hence my question
 
Last edited:

Solaris17

Super Dainty Moderator
Staff member
Joined
Aug 16, 2005
Messages
25,893 (3.79/day)
Location
Alabama
System Name Rocinante
Processor I9 14900KS
Motherboard EVGA z690 Dark KINGPIN (modded BIOS)
Cooling EK-AIO Elite 360 D-RGB
Memory 64GB Gskill Trident Z5 DDR5 6000 @6400
Video Card(s) MSI SUPRIM Liquid X 4090
Storage 1x 500GB 980 Pro | 1x 1TB 980 Pro | 1x 8TB Corsair MP400
Display(s) Odyssey OLED G9 G95SC
Case Lian Li o11 Evo Dynamic White
Audio Device(s) Moondrop S8's on Schiit Hel 2e
Power Supply Bequiet! Power Pro 12 1500w
Mouse Lamzu Atlantis mini (White)
Keyboard Monsgeek M3 Lavender, Akko Crystal Blues
VR HMD Quest 3
Software Windows 11
Benchmark Scores I dont have time for that.
@Solaris17
the ch341a has a 3.3v regulator (step down from usb5v) onboard. can we reduce that voltage to 1.8v and still have operational device that now can support winbond 1.8v eeprom ic's ubiquitous in most gpus nowadays?

I dont want to buy a 1.8v adapter I think I can make my own, hence my question

I havent done the stepdown myself. I also have a version 1.7 (Green PCB) ch341 that supports all 3 voltage planes.


Apparently it was designed in house by the user "liyf" on http://www.diybcq.com/thread-144983-1-1.html

You might be able to find schematics but I havent. I would honestly just buy the AIO version if you dont want the separate step down board.
 

g17

New Member
Joined
Nov 5, 2023
Messages
1 (0.01/day)
will this work on all gpus ? or are the newer ones protected? i have a bricked rtx 3060
 
Joined
Mar 20, 2008
Messages
1,368 (0.23/day)
System Name Ryzen5900X
Processor AMD Ryzen 5900X
Motherboard Gigabyte B550 AORUS PRO AC
Cooling NZXT Kraken X62
Memory 4x G.Skill F4-3600C17D-8GTZ
Video Card(s) AMD Radeon RX 6800XT Midnight Black
will this work on all gpus ? or are the newer ones protected? i have a bricked rtx 3060
If it has a bios chip, a firmware can be written on it.
 
  • Like
Reactions: g17
Joined
Sep 7, 2010
Messages
818 (0.16/day)
Location
Nairobi, Kenya
Processor Intel Core i7-14700K
Motherboard ASUS ROG STRIX Z790-H
Cooling DeepCool AK500 WH
Memory Crucial Pro 32GB Kit (2x16GB) DDR5-5600 (CP2K16G56C46U5)
Video Card(s) Intel ARC A770 Limited Edition
Storage Solidigm P44 Pro 2TB / Solidigm P44 Pro 2TB / PNY CS3140 2TB
Display(s) Philips 32M1N5800A
Case Lian Li O11 Air Mini (White)
Power Supply Seasonic Prime Fanless Titanium 600W
Keyboard Dell KM714 Wireless
Software Windows 11 Pro x64
Nice, I like this.
 
Top