Author Topic: trouble faking monitor EDID through VGA with arduino uno  (Read 3300 times)

0 Members and 1 Guest are viewing this topic.

Offline memeMagicianTopic starter

  • Newbie
  • Posts: 2
  • Country: us
trouble faking monitor EDID through VGA with arduino uno
« on: July 10, 2017, 07:11:07 pm »
I'm trying to make a device to get my computer to output signal through VGA as if there were a monitor connected, but I haven't been able to get it working. I've never used I2C before and I'm new to electronics in general so I'm assuming I've overlooked something simple. Currently I've got an arduino uno wired directly to a VGA cable (ground to ground, SDA to ADC4, SCL to ADC5) and plugged into the USB port of the computer. I'm using the following program, the values were generated by an EDID editor I found online.
Code: [Select]
#include <Wire.h>
byte output[128] = {
  0, 255, 255, 255, 255, 255, 255,   0, 50, 242, //0  checked
  0,   0,   0,   0,   0,   0,   0,  19,  1,   3, //1  checked
 10,  52,  32, 120,  34, 236,  24, 163, 84,  70, //2  checked
152,  37,  15,  72,  76,   0,   0,   0,  1,   1, //3  checked
  1,   1,   1,   1,   1,   1,   1,   1,  1,   1, //4  checked
  1,   1,   1,   1,  46,   9, 128, 160, 32, 224, //5  checked
 14,  16,  48,  32,  52,   0, 128, 224, 33,   0, //6  checked
  0,  26, 119,   1,   0, 160,  16, 144, 14,   0, //7  checked
 48,  32,  53,   0,   0, 144,  16,   0,  0,  26, //8  checked
  0,   0,   0, 252,   0, 116, 111, 112, 32, 107, //9  checked
101, 107,  32,  32,  32,  32,  32,  32,  0,   0, //10 checked
  0, 253,   0,  56,  60,  22,  48,   3,  4,  10, //11 checked
 32,  32,  32,  32,  32,  32,   0, 151 };        //12 checked


void setup() {
  Wire.begin(50);                // join i2c bus with address #50
  Wire.onRequest(requestEvent); // register event
}

void loop() {
  delay(1);
}

void requestEvent() {
  Wire.write(output, 128); // respond with message
}
From what I've read here http://read.pudn.com/downloads110/ebook/456020/E-EDID%20Standard.pdf it appears that the output data should be valid so I'm guessing it's a problem in the wiring or elsewhere in the code. If anybody knows what I'm doing wrong that'd be great.

Also I noticed that the "on" light in the arduino turns on when I connect the wires before i connect power. Does this mean it's getting power from the I2C lines?
 

Offline wraper

  • Supporter
  • ****
  • Posts: 18274
  • Country: lv
Re: trouble faking monitor EDID through VGA with arduino uno
« Reply #1 on: July 10, 2017, 07:18:43 pm »
Why are you trying to invent a bicycle? All you need is either just 3 resistors or programmed EEPROM IC, like 24C02. Did you use pull-up resistors as I2C cannot work without them? EDIT: I think it will work without them too. I recall there also should be resistors in graphics cards.


« Last Edit: July 10, 2017, 07:24:19 pm by wraper »
 

Offline memeMagicianTopic starter

  • Newbie
  • Posts: 2
  • Country: us
Re: trouble faking monitor EDID through VGA with arduino uno
« Reply #2 on: July 10, 2017, 07:38:01 pm »
I'll look into getting a few 24C02s to try. I would use 3 resistors but my VGA cable doesn't have wires going to those pins (it only has R, G, B, ground, SDA, SCL and two others which I haven't identified) and I need this to work through a VGA cable. I don't have pull up resistors though as you mentioned it likely doesn't matter (perhaps I should try anyways though)
« Last Edit: July 10, 2017, 07:40:34 pm by memeMagician »
 

Offline wraper

  • Supporter
  • ****
  • Posts: 18274
  • Country: lv
Re: trouble faking monitor EDID through VGA with arduino uno
« Reply #3 on: July 10, 2017, 08:51:59 pm »
I would use 3 resistors but my VGA cable doesn't have wires going to those pins (it only has R, G, B, ground...
You actually connect resistors between RGB outputs and ground.

« Last Edit: July 10, 2017, 08:54:19 pm by wraper »
 
The following users thanked this post: memeMagician


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf