Homebrew Flash ROM Programmer

 

How to flash a 512K rom chip (or possibly other) using the controller board from a scrap dvd player, scrap motherboard,  and a DVD firmware 'upgrade' utility.
   

1)

Find a DVD drive that has a Mediatek chipset in it, this one was from a Dell dvd rom. Applying Mtkflash to a wrong drive might kill it, so I advise you dont use a drive you want to put back togethor later.

2)

Remove the control board from it. you dont have to put it back in, this process works with it out.

3)

Remove the flash chip on it and add a socket, you can find a socket on an old motherboard. They can be removed by gradually heating the back of the board with a heatgun (be patient or you will burn the board) and lifting the chip off as soon as the solder melts. Be aware that if yo bump the baord, all the other solder parts might flipoff, which in this case is a bad thing.

Here is a board with the socket installed.


  

What you will need is a hex file or binary image of what you want to burn, and a copy of Mtkflash (download link below).
MtkFlash is a dos utility for flashing bin / hex firmware to Mediatek chipset based drives.
In this case Mtkflash 1.83c was used, be aware not all flash chips are supported, your mileage may vary.
If you want to know more, check the relevant forums for MTKFLASH threads, here are two good ones:

OC-Freak's mtk tutorial cdfreaks forum
Using Mtkflash  at the Firmware forum

4)

Create a DOS boot diskette

5)

Download Mtkflash unzip and copy to the diskette. This page has more Mtkflash versions and more instructions.

6)

Boot your machine from the diskette.
If the system refuses to boot because drive is unrecognizable, try pressing F4 to continue. 
If that's no good go to the Bios, disable the drive by setting the IDE channel where the drive is to "None" this utility will find the drive anyhow.
Or, if its really pickey, you can shut down, disconnect the power lead from the drive and then boot. Reconnect just before running the flash program

7)
At the dos prompt enter the command:

MTKFLASH # W /M filename.hex  if you are flashing an intel hex file
MTKFLASH # W /B /M filename.bin  if you have flashing a binary image

Where # is:

1 - if the drive is master on primary IDE
2 - for slave on primary
3 - master on secondary
4 - slave on secondary

Here is a link with help knowing which ide channel your drive is on.

Where  filename.hex  is the name of an intel hex file. (or binary image if whatever, you get the idea)




Backing up the flash chips contents:

Do up to step 6 as per above.

7)

Use this command line to make a single file binary backup of the flash contents:

MTKFLASH # R /B /M anyname.bin

Where # is the port number as above.
Where anyname.bin is any file name up to 8 characters.
This file will be written to the same location Mtkflash is, make sure the floppy has enough free space. An image will require 1/8 the space of the rom on the floppy, so if you have a 512K rom, it requires 65536 KBytes of disk space.

 



Disclaimer:

Use at your own risk. If you select the wrong drive you can muff up your computer, if you muff up your electronics, anything can go wrong, I recommend if your unsure, to use a scrap computer.

Enjoy!


 
Brought to you by Tom_L and Rue_Mohr of #robotics on irc.freenode.net