EDID/DisplayID Writer is a tool for writing a new EDID or DisplayID to the display.
Download:
EDWriter-beta2.zip - Source:
EDWriter-beta2-src.zip
Warning: This program modifies the EEPROM data in the display. If something goes wrong, it can make the display unusable until the data is corrected. NVIDIA in particular will not recognize a display with invalid data, so you would need to use an AMD GPU or some other method to fix the data. Use at your own risk.
A message from ToastyX:
Over the years, I have created various monitor-related software and provided support for free. I would like to continue providing updates and work on new ideas, but I need your support. If you find my software useful, please consider supporting me through Patreon:
Requirements:
- Windows Vista or later
- AMD/ATI or NVIDIA GPU with appropriate driver installed (Intel is currently not supported)
EDID usage:
- To save the current EDID to a file, click the "Read EDID" button, and then click the "Save File..." button.
- To write a new EDID to the display, click the "Load File..." button to choose a file, and then click the "Write EDID" button.
If the EDID has a corrupted header, invalid extension block, or invalid checksum, it will offer to fix the data. No changes are made to the display until clicking the "Write EDID" button.
DisplayID usage:
- To save the current DisplayID to a file, click the "Read DisplayID" button, and then click the "Save File..." button.
- To write a new DisplayID to the display, click the "Load File..." button to choose a file, and then click the "Write DisplayID" button.
Notes:
Many monitors have the EEPROM write-protected. Some monitors allow writing by accessing the service menu and enabling burn-in mode or some other setting. The service menu can often be accessed by holding one or two buttons down while powering on the monitor. Another method is to physically disconnect the write-protect pin on the EEPROM chip as described in this guide:
https://blurbusters.com/zero-motion-blur/hardware-mod/
Due to driver limitations, this program can only read and write up to 256 bytes. That is enough for an EDID with one extension block or one DisplayID block. Any data beyond 256 bytes will be preserved.
Changes in Beta 2:
- Fixed failure to start on older versions of Windows 10
Thank you! Your tool allowed me to fix my old Dell 1704FPV with corrupted DVI EDID (apparently wrong checksum, I know no reason). Of course, the EEPROM was write-protected, but having it dumped made things a lot easier. I crafted an EEPROM writer using NodeMCU and modified the checksum to calculated one using a simple pieces of LUA software (I can provide more details if anyone interested).
https://photos.app.goo.gl/W5GERTXfE64rXBP97
One note regarding the guide linked: it seems (and probably is) dangerous to desolder WP pin of EEPROM as a first approach. I would recommend first measure Vcc-WP resistance - that's because some vendors don't tie WP to Vcc directly, but via some pull-up resistance (to enable, for example, pulldown controlled via some GPIO). In that case it's perfectly sufficient to temporarily bridge WP to Vdd (GND), without any serious soldering/cutting.
I used W10 x64, DVI-HDMI cable and MSI RX5700XT (I have two of these in MGPU conf.) for reading, unfortunately, didn't test the writing. Also perfectly read EDID from Dell U2718Q and U2720Q.
(04-23-2022 12:07 PM)bderleta Wrote: [ -> ]One note regarding the guide linked: it seems (and probably is) dangerous to desolder WP pin of EEPROM as a first approach. I would recommend first measure Vcc-WP resistance - that's because some vendors don't tie WP to Vcc directly, but via some pull-up resistance (to enable, for example, pulldown controlled via some GPIO). In that case it's perfectly sufficient to temporarily bridge WP to Vdd (GND), without any serious soldering/cutting.
I haven't done any hardware mods, so if you have a better guide, I can link to it. I saw someone mention connecting the write-protect pin to ground, but I don't know if that's safe. I saw another site mention soldering a resistor:
https://www.imsolidstate.com/archives/879
In the case of the ASUS VG248QE, it's possible to disable write protection for DVI by enabling "BURNIN" mode in the service menu (press and hold the menu button down while powering on the monitor, and then press the menu button to open the service menu). On many monitors, the service menu can be enabled by holding down one or two buttons while powering on the monitor.
I've also been looking for ways to bypass the GPU because NVIDIA GPUs will not recognize a monitor with a bad EDID. AMD GPUs are fine as you've noticed. Do you know of any USB to I2C devices that can be programmed with C or C++?
Thanks for this tool. I was able to correct a checksum error on one of my DisplayPort monitor simulator dongles that I use for testing hubs and docking stations.
The Synaptics VMM6210 MST chipset inside one of my docking stations did NOT like the checksum error and refused to sync up to the dongle. Once the EDID was corrected, it worked fine.
Now I'll try to edit the EDID to have some more resolutions
Can you explain the 256 byte driver limitation? It is because of one of the Microsoft APIS not allowing a larger payload? Is it plausible to write more than 256 in Linux?
And any chance of releasing this tool open source?
(05-12-2022 06:28 PM)surfacedockguy Wrote: [ -> ]Can you explain the 256 byte driver limitation? It is because of one of the Microsoft APIS not allowing a larger payload? Is it plausible to write more than 256 in Linux?
And any chance of releasing this tool open source?
Microsoft doesn't have any APIs for EDID reading/writing. I'm using NVIDIA's NVAPI and AMD's ADL SDK to communicate with the display. Setting the segment pointer and reading/writing must happen in the same transaction with a repeated start, but NVIDIA and AMD don't provide a way to do a repeated start, so it can only access the first 256-byte segment. The segment pointer resets after every stop, so I can't split the transactions. It might be possible to do this in Linux, but I don't know if there are any tools that can.
I was planning to release the source code with the final version, but I've uploaded the beta source code for you here:
https://www.monitortests.com/download/ED...ta-src.zip
Scary stuff.. Anybody brick their monitor yet?
HI ToastyX,
Can this software be used to write the LCD panel EDID integrated in the laptop?
I have tried, and It can read, but when I try to write, the software displays write protection.
If I find the EDID EEPROM on the LCD panel PCB and cut the write protection pin, will it work?
(02-28-2023 08:44 AM)kevin.xm.bear Wrote: [ -> ]HI ToastyX,
Can this software be used to write the LCD panel EDID integrated in the laptop?
I have tried, and It can read, but when I try to write, the software displays write protection.
If I find the EDID EEPROM on the LCD panel PCB and cut the write protection pin, will it work?
Yes, if the laptop has an AMD or NVIDIA GPU without switchable graphics and the write protection is disabled. I was able to change the EDID on a laptop with an AMD GPU that didn't have write protection.
Hi,
good work toasty.
I am trying this tool for MSI GT72VR 7RE. There is MSI mxm GTX1070 card and edp (display port 1.4) panel = > Replaced faulty lcd panel and after this change no GSYNC support and backlight problems with some nvidia drivers. Display is different model. So I tried replace EDID from original one. There is problem with write protected error. So I disassembled this panel and there is winbond spi flash instead of eeprom with pull down resistor for disable writing. After modification (switch to pull up resistor) still write protected error. So then I soldered wires to flash and connected it to external programmer. There were fuses for software data protection. After disabling fuses still error in application. Winbond reflashed via external programmmer but GSYNC is missing. I made some differences in original EDID new panel is 144hz instead of 120hz so I will try flash original EDID now.
Hi Toasty - Thanks for this tool. Do you know of any tools or apps that provide similar functionality for Android?
I used this + CRU to mod the EDID for my dummy plug for Moonlight streaming. I'm hitting a roadblock though as I just got a new projector that doesn't natively have a 1920x1080 @ 120Hz resolution (which is stupid because it's a 4k projector but anyways). If directly connected by HDMI I can use CRU to get that resolution and refresh to work fine, but I'm trying to stream games from my PC via Sunshine and Moonlight to a NVIDIA Shield TV.
If I set 1080p120 on the Shield the projector wigs out and picks the closest resolution it has natively which is 2560x1080@100Hz. Not good.1