Reading VGA signal with Arduino DUE

Hello (new here :slight_smile: )

I would like to know if it's possible to read VGA signals (640x480 resolution) with a DUE.
The DUE has a clock speed of 84MHz, so it should be possible i think (but i want to be 100% shure :wink: )
I know how the signals will be send, but not how to connect and read them correctly.
I suppose i have to add some resistors between the connector and the DUE?!
Also can I just attach it to some analog-in ports or do I need to add new ADC's?
I will probably make a shield for it when i know al the correct componnents..

The purpose is to send the VGA data to a 20x20 RGB LED array.
So only the 400 pixels in the top left corner (20x20) will be read and send to the LEDs.
I also want to use four TLC5940 PWM expander chips to control the intensity of each color for each led.
(PWM Expander (RGB LEDs/Servos))
If all of this works, I will write a pc program to send some simple image movements
to the 20x20 pixels in the upper left corner.

Let me know what you think about it.

Thanks in advance,


I don't think you are going to be able to get anywhere close to 640x480 reading the VGA analog outputs. The ADC is 1 mhz on the due.

If you are able to intercept the digital signals the pixel clock is 25mhz at 640x480 60hz which is still going to be very tough to do and will likely require using the dma to store a line and processing it during the dead times either between lines or screens. I haven't used the dma for port input so it may not be possible -- another idea might be to use the external memory interface.

If you are only going to read one scan line it would be easier but I don't think directly reading the ports is going to allow you enough time since you basically have only 3 clocks per pixels.

Not to throw a wet blanket on your project.....

That’s what I was already afraid of…

Another option i was thinking of is sending video over ethernet
and receive it with the Ethernet Shield on the DUE.
Maybe this will be the best solution because there is also less data send (only 20x20 pixels).
(Also the framerate is easy to adjust for example with a selfwritten program, etc.)

Now my other concerns:
Receiving, reading and analysing videodata with the Arduino DUE, easy or not?
Also which protocol is ideal for sending video?

If it's a local connection and you have a choice I would send the data by a serial protocol and use the Usart, SPI or even TWI all of which are going to be much easier to implement than ethernet and potentially much faster as well. There is a lot of overhead with Ethernet.

I have no idea about receiving video but I would expect that anything simple is going to be far too slow and you are going to be more in the DSP realm than arduino.

Good luck...