I have decided to hack eMac's CRT (To work with any standard motherboard)

Discussion in 'iMac Mods' started by patriciooholegu, Jul 6, 2014.

  1. patriciooholegu

    patriciooholegu

    Joined:
    Aug 7, 2013
    Messages:
    43
    Mobo:
    Asrock H81m-vg4 r2.0
    CPU:
    Intel Celeron 1820
    Graphics:
    Ati HD5570
    Mac:
    iMac
    Classic Mac:
    eMac
    Jan 12, 2017 at 9:13 PM #31
    patriciooholegu

    patriciooholegu

    Joined:
    Aug 7, 2013
    Messages:
    43
    Mobo:
    Asrock H81m-vg4 r2.0
    CPU:
    Intel Celeron 1820
    Graphics:
    Ati HD5570
    Mac:
    iMac
    Classic Mac:
    eMac
    Here i found the printed paper with the data: eMac edid.JPG
     
  2. Rockyill

    Rockyill

    Joined:
    Dec 26, 2016
    Messages:
    27
    Jan 12, 2017 at 11:45 PM #32
    Rockyill

    Rockyill

    Joined:
    Dec 26, 2016
    Messages:
    27
    I'll try and program that into an arduino.
    I'll let you know how it goes.
     
  3. Rockyill

    Rockyill

    Joined:
    Dec 26, 2016
    Messages:
    27
    Jan 13, 2017 at 3:47 AM #33
    Rockyill

    Rockyill

    Joined:
    Dec 26, 2016
    Messages:
    27
    I manually typed all of the hex numbers in the image into a hex editor and saved it to a file called 1280x960.bin
    I then used edid-decode and it passed the test.
    here's an image

    I think this can be easily coded into an arduino sketch.

    edidTest.png
     
  4. patriciooholegu

    patriciooholegu

    Joined:
    Aug 7, 2013
    Messages:
    43
    Mobo:
    Asrock H81m-vg4 r2.0
    CPU:
    Intel Celeron 1820
    Graphics:
    Ati HD5570
    Mac:
    iMac
    Classic Mac:
    eMac
    Jan 13, 2017 at 3:04 PM #34
    patriciooholegu

    patriciooholegu

    Joined:
    Aug 7, 2013
    Messages:
    43
    Mobo:
    Asrock H81m-vg4 r2.0
    CPU:
    Intel Celeron 1820
    Graphics:
    Ati HD5570
    Mac:
    iMac
    Classic Mac:
    eMac
    I was thinking that if the arduino could be present on the i2c rail betwen the host pc and eMac CRT it will be terrific that it can provide the desired protocol to the CRT (7 seconds after powering up seems to be a good idea) and stay put, present as address 50 with the edid protocol to answer on the PC request.

    ------eMac CRT
    l
    l
    l---- Arduino sends proper protocol to eMac CRT and stay put on adress 50 with EDID info to answer any one who request it.
    l
    l
    l
    -----Vga PC (Will look for address 50 on i2c rail and read edid).
     
  5. Rockyill

    Rockyill

    Joined:
    Dec 26, 2016
    Messages:
    27
    Jan 13, 2017 at 3:08 PM #35
    Rockyill

    Rockyill

    Joined:
    Dec 26, 2016
    Messages:
    27
    I actually started coding it last night but I still need to test it. I have a day off today so I might work on it some more later on.







    #include <Wire.h>

    const int i2c_port = 0x50;
    byte edid[] =
    { 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x06, 0x10, 0x07, 0x9d, 0x01, 0x01, 0x01, 0x01,
    0x00, 0x1a, 0x01, 0x03, 0x68, 0x21, 0x18, 0x6f, 0x08, 0xf6, 0x29, 0xa2, 0x53, 0x47, 0x99, 0x25,
    0x10, 0x48, 0x4c, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
    0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0xc0, 0x2f, 0x00, 0xa0, 0x51, 0xc0, 0x2a, 0x30, 0x30, 0x60,
    0x13, 0x00, 0x40, 0xf0, 0x10, 0x00, 0x00, 0x1e, 0xbf, 0x26, 0x00, 0x60, 0x41, 0x00, 0x2a, 0x30,
    0x30, 0x60, 0x13, 0x00, 0x40, 0xf0, 0x10, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x46,
    0x8c, 0x47, 0x49, 0x0d, 0x00, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, 0x00, 0x00, 0xfc,
    0x00, 0x65, 0x4d, 0x61, 0x63, 0x20, 0x43, 0x52, 0x54, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x00, 0x2e
    };







    void setup() {
    pinMode(2, OUTPUT);
    pinMode(4, OUTPUT);
    digitalWrite(2, LOW);
    digitalWrite(4, LOW);
    digitalWrite(2, HIGH);
    digitalWrite(4, HIGH);

    Serial.begin(9600);
    Serial.write("initiating\n");
    Wire.begin(i2c_port); // join i2c bus (address optional for master)
    Wire.onRequest(requestEvent);

    }


    void loop() {

    delay(100);






    }


    void writeToIvad(int address, int message) {
    Wire.beginTransmission(address);
    Wire.write(message);
    Wire.endTransmission();

    }//end method



    void readFromIvad(int address, int bytes) {
    char buf[bytes + 1];
    int bytesRead = 0;
    Wire.requestFrom(address, bytes);
    while (Wire.available())
    {
    char c = Wire.read();
    buf[bytesRead++] = c;
    }
    buf[bytesRead] = '\0';
    //return buf;


    }//end method






    void sendEdid() {

    for (int i = 0 ; i < 128 ; i++) {

    Wire.write(edid);



    //readFromIvad(i2c_port,1);

    }//end for

    }//end

    // function that executes whenever data is requested by master
    // this function is registered as an event, see setup()
    void requestEvent() {

    Serial.write("request received\n");
    sendEdid();

    }
     
  6. Rockyill

    Rockyill

    Joined:
    Dec 26, 2016
    Messages:
    27
    Jan 13, 2017 at 3:09 PM #36
    Rockyill

    Rockyill

    Joined:
    Dec 26, 2016
    Messages:
    27
    rather edid;
     
  7. patriciooholegu

    patriciooholegu

    Joined:
    Aug 7, 2013
    Messages:
    43
    Mobo:
    Asrock H81m-vg4 r2.0
    CPU:
    Intel Celeron 1820
    Graphics:
    Ati HD5570
    Mac:
    iMac
    Classic Mac:
    eMac
    Jan 13, 2017 at 11:37 PM #37
    patriciooholegu

    patriciooholegu

    Joined:
    Aug 7, 2013
    Messages:
    43
    Mobo:
    Asrock H81m-vg4 r2.0
    CPU:
    Intel Celeron 1820
    Graphics:
    Ati HD5570
    Mac:
    iMac
    Classic Mac:
    eMac
    You are a genius (And so am i).
    Like the movie said: "If you build it, they will come"
     
  8. Rockyill

    Rockyill

    Joined:
    Dec 26, 2016
    Messages:
    27
    Jan 14, 2017 at 5:20 AM #38
    Rockyill

    Rockyill

    Joined:
    Dec 26, 2016
    Messages:
    27
    only if it works!

    thanks!
     
  9. Rockyill

    Rockyill

    Joined:
    Dec 26, 2016
    Messages:
    27
    Jan 14, 2017 at 5:20 AM #39
    Rockyill

    Rockyill

    Joined:
    Dec 26, 2016
    Messages:
    27
    I think this is a good starting point. well have to iron out the details
     
  10. Rockyill

    Rockyill

    Joined:
    Dec 26, 2016
    Messages:
    27
    Jan 14, 2017 at 6:51 AM #40
    Rockyill

    Rockyill

    Joined:
    Dec 26, 2016
    Messages:
    27
    you are the genius that started this!
     

Share This Page