This bricked Eee PC came to [Janzo] for about $50. Everything was fine with it, except for the failed bios update that rendered it useless to the last owner. [Janzo] set to work with an Arduino on a quest to repair the bios. He looked up the datasheet for the EEPROM that stores the bios and did some delicate soldering to gain access to the power and data pins on the device. A bit of trial and error and he was able to read the registers. Some comparisons between the output file and the official Eee PC bios file in a HEX editor confirmed that the first 80 bytes were fine but after that something went wrong. After coding a quick Python script [Janzo] reflashed the chip and had the computer up and running again.
We’ve seen Eee PC bios recovery before. This is a very simple method because it makes use of the simplicity we find in the Arduino. Nice job.
34 thoughts on “Unbricking With The Help Of Arduino”
That arduino is totally overkill. He really ought to have whipped up a board in eagle, sent it to china to be etched, placed smt parts, done a second board rev and then flashed the chip.
Instead he did something clever. Nice hack!
I love buying peoples broken laptops from them for $50.
yea nature last one I got (for 60) I ended up getting 180 out of it
I wish fixing my EEE was on my skill level…
Hey all you bus pirateers, could this be done with a BusPirate?
Most modern BIOSes including the Eee PC can be recovered from a bad update with a bootable USB drive and the appropriate BIOS file. It’s usually something like Win + B at boot to start it but in the case of Eee PC just having it inserted with the appropriate files works.
Is there some reason this procedure could not be done?
Very cool, way to save some mondo big bucks!
@Pete are you sure? Booting from a USB drive is usually something that you would NEED a bios to be able to do.
@BigBubbaX if it’s not, you could always sell it for $50-$60 to someone here. :-P
I guess the Eee PC doesn’t have fail safe bios? Most modern computers have backup bios for when you mess something up or at least a way of re-flashing a bad bios flash.
It could also be that because of it’s size and it’s design to be an affordable way of computing, that the price and form factor didn’t allow such a luxury.
Brilliant! I admire Janzo’s patience and persistence. I even like the make-shift wire tensioner thing. :)
Great job on recovering someone else’s “junk”!
I love it! Reminds me of the Xbox days in a remote way :)
Pete: Interesting idea! I wish I had broken hardware to try it out. I am just wondering if the floopy or usb controllers are available to even write to the BIOS/ROM? That would be my guess why it may not work for his. Lemme know if anyone gets it to work as this would be great for future ebay purchases :)
Now this is how I like seeing arduinos being used, a multi-purpose programmable problem solver.
@Mikey Yes certain, it’s some sort of additional part of modern BIOSes that is not overwritten during a BIOS flash. I have used it on a bricked phoenix BIOS before but it’s also seems to be on most now in slightly different ways.
For mine it was Win + B with USB drive plugged in it then beeps (and flashes if your drive has a light which is handy) leave it a while to be sure switch off, Fixed.
You need to be sure your USB drive is setup to be bootable (with HP USB Disk Format Tool or similar) formatted FAT16 and the BIOS ROM is named correctly.
Probably best to look for instructions on the internet for each BIOS. If you search for BIOS Recovery you should find details.
I confirmed my USB stick by first making it an MS-DOS boot disk and using it on another computer then adding the required ROM.
@blue carbuncle There is still the possibility that part of the BIOS could be corrupt hence this approach not working but I think it’s unlikely. From my previous experience working in a computer shop most people brick there machines BIOS when a flash fails.
lol, I have an old IBM Thinkpad that needs a bios flash to run Ubuntu correctly. I haven’t been able to do it, due to the fact that the software requires a full battery charge and outlet power before it will flash, but my battery is beyond toast. :p
Guess the HAD-befriended buspirate would do the same job, maybe even much more easy.
The CPU blades that we develop at work have a USB/serial recovery method that accepts a USB stick with a BIOS.ROM file on it, or if that fails, you have XMODEM serial BIOS recovery.
This is assuming the recovery portion of your SPI device isn’t corrupt as well.
I can attest that Pete is telling the truth. On my eee 1000h, it’s alt-F2.
It finds any usb device that has a 1000h.rom in root and installs it.
I’ve also seen motherboards that can boot from a bios file stored on media.
I have an old panasonic toughbook cf-27 that I updated the bios in and ever since it won’t charge up the batteries. But I would need to find the old rom first. Perfect for exercising the buspirate.
all that work why not just use flashrom
and one of the many compatable devices
Wow do it the hard way….
“bricked” bios is easy as pie.
Get a motherboard or PC that is identical just to use for a couple of minutes.
Boot with bios update software.
chip puller to yank good bios live… yes live.
install bad bios
In fact I found that you dont even need the same board, just a compatable one that has the same bios chip. Works great.
fartface, that is the most retarded thing I have read today
1) yes cause everyone is going to have a dupe motherboard for some random ebay scrap
2) when was the last time you have looked at a pc motherboard, I havent seen a socketed bios since DOS was still in wide use
hell, if you even bothered to look at the picture its plainly a smt soldered direct to the board
He could have done it with a PIC, but nice one! ;-)
@ osgeld – i have loads of mobos just lying around. But true, not everybody has a hot air gun for those soldered BIOSes. However if you do it’s a whole lot easier than rigging a micro up.
But props for some clever use of an Arduino. All those clocks were kinda getting on my nerves.
thats it, im making a arduino binary clock out if IR leds
When the bios is properly fried it won’t address the keyboard and or the usb ports. Either that or it is listening in the wrong place. I know, because I have a 900a that fried itself on a bootable USB with Lucid upgrade. So the bootable USB and Alt F2 doesn’t work. The device is not quite as dead as a parrot – three lights come on – but it is unreachable. I was dreading the unsolder option so I shall try this very soon.
Wow overkill much? This can be done with a standard parallel port. Surely any hacker worth his or her salt still has access to one of those?
@xf: especially the fabbers…
This is pretty awesome. I would liked to have seen some perhaps custom BIOS work :P Such as possibly adding a different logo at the POST.
Wow thanks guys for all those reactions !
I’m glad i could show a useful manner of setting the arduino up! (among million others)
For some of you i gotta apologize as I’m not so rigorous, thus I didn’t design a “reusable” nor user-friendly tool to share… But still I kept my Python & Arduino scripts ^^
BTW, the Eee still works, as new !
I know this is an old post but would love to have a look at this, link is dead though? :(
Sorry for the late answer ; you can try the Internet Archive, it leads to the forum posts at least :
I’m not sure to remember all of the procedure but I can try to find files, source codes and pics about this BIOS recovery,
Please be kind and respectful to help make the comments section excellent. (Comment Policy)