While replacing the screen on a T61, I learned a bit about EDIDs. Apologies if this information is already known, but I was not able to find it anywhere else:
It seems like Lenovo always uses the same sequence of descriptor blocks in their custom EDIDs: The first two are regular detailed timing descriptors, and the third one is the dreaded manufacturer-specific descriptor that must be present for a T6x machine to recognize the screen as a genuine part. This custom descriptor is not completely bogus, however. It does contain useful information, albeit in a proprietary format. This is an example from a LTN141P4-L02:
Code: Select all
90 43 32 90 43 28 0F 01 00 4C A3 50 34
Note that the first six bytes can be split into two (almost identical) groups of three. Of these groups, the first byte seems to indicate the horizontal resolution in the same format used in the standard timing information block, which means: Add 31 to the byte value and multiply by 8. In this case: 0x90 = 144 decimal, which results in (144 + 31) * 8 = 1400. This seems correct, since the LTN141P4-L02 is an SXGA+ screen.
Browsing through the EDID database thread resulted in the following collection:
Code: Select all
16:10
-----
D1 0A ... --> 1920x1200 0xD1 = 209 --> (209 + 31) * 8 = 1920
B3 0A ... --> 1680x1050 0xB3 = 179 --> (179 + 31) * 8 = 1680
90 0A ... --> 1440x900 0x90 = 144 --> (144 + 31) * 8 = 1400 (Odd one out. The byte should have been a 0x95.)
81 0A ... --> 1280x800 0x81 = 129 --> (129 + 31) * 8 = 1280
4:3
---
A9 43 ... --> 1600x1200 0xA9 = 169 --> (169 + 31) * 8 = 1600
90 43 ... --> 1400x1050 0x90 = 144 --> (144 + 31) * 8 = 1400
61 43 ... --> 1024x768 0x61 = 97 --> (97 + 31) * 8 = 1024
And for good measure, here's the equivalent EDID excerpt from the screen in my T450s:
Code: Select all
16:9
----
D1 09 ... --> 1920x1080 0xD1 = 209 --> (209 + 31) * 8 = 1920
This leads to the second observation: The second byte seems to be an indicator for the aspect ratio: 0x
43 for
4:
3, 0x0a =
10 for 16:
10, 0x09 =
9 for 16:
9.
Beyond this, I can still only speculate. The third bytes are almost always 0x32 and 0x28, which translate to 50 and 40, respectively. Since the two regular detailed timing descriptors usually indicate a 60 Hz and a 50 Hz timing, I would guess that these bytes might be indicative of the refresh rate. On the screen of the T450s, this value is 0x3B = 59 in both groups.
As for the remaining bytes, I don't really have a clue yet. Some of them seem like a collection of flags. The fifth to last one is always zero. The last four bytes look convoluted (at first I thought it might be a checksum of some kind), but they too seem to follow a pattern, and different screens share parts of these bytes. Here's a collection of some of them:
Code: Select all
09 E5 00 00
0D AF 07 14
0D AF 12 15
30 64 00 55
30 64 90 55
32 0C 00 00
4C A3 50 34
4C A3 55 32
4C A3 57 31
4C A3 57 44
4C A3 58 33
4C A3 58 47
0D AF 51 15
Does anybody have more information on the structure of these blocks? It might make building EDIDs for replacement screens a lot easier ...