Cloning EDID To DVI Debug Tool

From eLinux.org
Jump to: navigation, search

Cloning an EDID using the BeagleBone Black and the Tin Can Tools DVI Debug Tool

The following procedure will allow you to capture an EDID from a given monitor, and program the Tin Can Tools DVI Debug Tool with that EDID for testing purposes.

Writing EDID to DVI Debug Tool EEPROM

Materials

  • 1 HDMI monitor
  • 1 Bealge Bone Black w/ latest Angstrom image loaded (This procedure was tested with the 09/04/13 image)
  • 1 TinCanTools DVI Debug Tool
  • write_edid.py script (listed below)

Steps

  1. Boot the BeagleBone Black
  2. Copy the write_edid.py file (listed below) to the BBB
  3. Connect an HDMI monitor
  4. The contents of /sys/class/drm/card0/card0-HDMI-A-1/edid are the 256 bytes read from the EDID EEPROM of the connected monitor, copy this to a file (edid.bin in this example)
  5. Disconnect HDMI monitor
  6. Activate I2C1 on the BBB with 'echo BB-I2C1 > /sys/devices/bone_capemgr.8/slots'
  7. Connect pin 17 on P9 of the BBB to SDA on the DVI Debug tool
  8. Connect pin 18 on P9 of the BBB to SCL on the DVI Debug tool
  9. Connect ground from BBB to DVI Debug Tool
  10. Put a jumper on Write Enable on the DVI Debug Tool
  11. Connect HDMI cable from BBB to DVI Debug Tool
  12. Run 'i2cdetect -y -r 2', you should see a device at 0x50
  13. Run './write_edid.py edid.bin' to write the captured EDID to the DVI Debug Tool
  14. run 'i2cdump -y 2 0x50' to compare with the captured EDID to verify the write was successful

write_edid.py

You can download the write_edid.py script File:Write edid.zip

Example dump from /sys/class/drm/card0/card0-HDMI-A-1/edid

0000000 ff00 ffff ffff 00ff 2104 0042 000f 0000
0000010 151f 0301 5980 7832 010a a0c1 4757 2798
0000020 4c12 a14c 0008 4031 4045 4061 8081 0101
0000030 0101 0101 0101 2198 b050 0051 301b 7040
0000040 0036 8440 0063 1e00 1d4c 7200 d051 201e
0000050 286e 0055 8440 0063 1e00 0000 fc00 4c00
0000060 4443 5654 200a 2020 2020 2020 0000 fd00
0000070 3000 0e3e 0f44 0a00 2020 2020 2020 3501
0000080 0302 7025 0150 0302 0504 1190 1312 1f14
0000090 0706 1615 2320 0709 8307 0001 6700 0c03
00000a0 2000 b800 012d 801d 72d0 161c 1020 252c
00000b0 4080 6384 0000 019f 801d 7118 161c 5820
00000c0 252c 4000 6384 0000 0199 001d 52bc 1ed0
00000d0 b820 5528 4040 6384 0000 021e 803a 72d0
00000e0 2d38 1040 452c 4080 6384 0000 021e 803a
00000f0 7118 2d38 5840 452c 4000 6384 0000 ed1e