How to fix corrupted monitor EDID information.
You may have heard the term EDID used by laptop screen suppliers, you may have purchased a screen that appears to physically fit, or may even look identical to the original but fails to function correctly.
Believe it or not, the same model of laptop screen can come in different hardware and software versions. Hardware versions may denote subtle differences like Matte or Gloss or the position of a connector for the LVDS LCD cable; The software or firmware version is known in the industry as EDID or Extended Display Identification Data. The screen has it's own mini operating system that runs on the panel and communicates attributes and settings to the laptop's BIOS and Operating System.
The LCD term EDID in detail
What it means
EDID is a VESA display standard format that contains basic information about the screen and it's capabilities including information about the manufacturer, resolution, orientation, colour characteristics and factory timings such as response rates and refresh frequencies. The display's name is included and serial number and also other custom settings that may be specific to it's type of usage. Some manufacturers may request LCD screens from the LCD manufacturers with modified EDID and then program the laptop's BIOS to only recognize the modified screens and no other versions.
Examples
For example, DELL may take a model of screen that is used in HP laptops, and modify the EDID for a specific purpose, so the screen functions in a different manner in their laptops. This then makes the 2 identical screens incompatible with each other, you need one for DELL and one for HP. So screen FW (firmware) numbers then become important to the LCD suppliers when supplying screens for different brands.
Communication between the LCD screen and the laptop is made via the LVDS (LCD data DDC cable) cable, and usually one of the connector pins (2nd from last is normal) is used for EDID signalling. The laptop's BIOS will request EDID information and the screen will supply it, via a handshake type data transfer, who are you? I'm LP156WH2 TLA1 EDID version 1.3, 1366x768, 65hz, etc. Then the laptop's BIOS configures the screen and begins video transfer. The boot up process starts.
Incorrect EDID information or missing EDID information can result in screens staying blank, lighting up white, or displaying odd or inverted colours. The image can be chopped into 4 copies or split or scrambled or not fit on the screen as though the resolution is wrong.
The Windows display drivers and monitor INF files can also override the EDID settings and cause problems.
Transferring EDID between screens or updating laptop screen EDID
EDID can be transferred between screens of the same make via an LCD burner connected to a PC's USB connection.
The latest version of EDID is 1.3 that can be used in LCD laptop screens, future EDID versions promise more parameters and configuration options.
You can download an EDID writer here. You will need to copy the files in the included ZIP onto a USB DOS Boot stick.
Once you have a bootable USB stick with the EDID write files unzipped onto the stick as well, follow these instructions.
Instructions:
To fix corrupted monitor EDIDs:
- create an DOS boot floppy (e.g. using WinXP format command)
- unzip the contents of the zip file to that boot floppy
- reboot the machine with the corrupted monitor attached and the boot floppy in the floppy drive
- wait for commands to complete, remove floppy, and reboot
Other Instructions:
- attach the monitor to be checked or updated to the desired output of the video card, if this is a laptop or tablet you do not need to do anything as your monitor (LCD screen) is already connected via the EDP or LVDS cable. (note the use of the -m switch below may be required, depending on which port you select)
- unzip the attached files to a MS-DOS boot floppy (like the one created by WinXP format...), delete the autoexec.bat file
- boot the system with this floppy
- then:
1. run the following command:
ddcw
this will simply read the EDID from the attached monitor. There are some switches like -q, -m, -f which are explained in the output from the ddcw command. The ddcw command will also read and dump out the EDID from the attached monitor. Check this EDID to see that it appears to be valid (i.e. if it is a monitor with a "bad" EDID, then make sure the output displays the "bad" EDID).
2. if the EDID dump looks OK, you can run the following command:
ddcw -f edid.txt
this will read (and dump out) the EDID from the monitor, compare it byte-by-byte to the edid read in from the file, and if there is a mismatch, it will attempt to write the edid from the file out to the monitor. After the write, it will wait and then read the EDID again from the monitor. If the correct EDID is read back, then it will display the message "update successful" otherwise it will display "update FAILURE". If the update is a FAILURE, you can try the ddcw command by itself again to dump out the EDID to see if any changes were made.
Other notes:
you can use the switch -q on the command line like this:
ddcw -f edid.txt -q
in order to suppress most of the output. The program will still read and update the edid, but the only display message you will get is "update successful" or "update FAILURE"
you can use the switch -m on the command line like this:
ddcw -m 1 (or ddcw -m 1 -f lge_edid.txt -q)
this will cause the program to use the DDC channel on the second vga card port instead of the first output. This usually means it will use the DVI port instead of the VGA port, but it may depend on the video card you use. If no device is attached to the port you are trying to use, you will see an error message.
if you want to check the EDID only against an EDID file and report an error if mismatch (but no update) use:
ddcw -c edid.txt
The -p command will automatically (if a device is attached to the specified port) write the first 8 bytes of the device A0 EDID to 00 FF FF FF FF FF FF 00, use:
ddcw -p
(or ddcw -m 1 -p)