Wednesday, April 01, 2009

Dual Monitor VGA Hacking




I've been experimenting with some dual-monitor VGA hacking and synchronisation visuals. The results have been very promising, and will be useful for future chip gigs.

So, what's going on here?
The horizontal and vertical sync signals are coming from a laptop. Then instead of the RGB signals coming through from the laptop, these lines are controlled by a microcontroller that simply does an analog to digital conversion of an audio signal and sets the RGB lines to bits 4, 5 and 6 of the 10 bit analog to digital integer.

This process is then repeated without delay. Thus, the RGB lines are being continuously twiddled in response to a changing analog signal on the input of the microcontroller (in this case an Arduino, but it could be a Picaxe or anything else, or even just a standalone ADC IC).

As a result, louder sounds will tend to generate more colours while lower frequency sounds will tend to generate taller bars on the screen. So that's the basic idea. The second monitor has the same information going to it as the first but the RGB bits are routed differently, hence they are in sync with each other but with different colours.

7 comments:

Simon Knight said...

What's driving the VGA displays?

Sebastian Tomczak said...

h and v sync signals are coming from a laptop. then instead of the RGB signals coming through from the laptop, these lines are controlled by a microcontroller that simply does an analog to digital conversion of an audio signal and sets the RGB lines to bits 4, 5 and 6. This is then repeated without delay. As a result, louder sounds will tend to generate more colours while lower frequency sounds will tend to generate taller bars on the screen. So that's the basic idea, and for the second monitor, it has the same information going to it as the first but the RGB bits are routed differently, hence they are in sync with each other but with different colours.

steven said...

i'd love to see a video!

Sebastian Tomczak said...

hi steven, please check: http://www.youtube.com/watch?v=NfwH35fCY8k

David said...

Hi, first really nice stuff! thanx for posting that! But one question: isn´t it possible to craete an vga signals with an arduino itself? than it could become an awsome standalone audiovisualizer. Means, just an I-pod a little box wich would be conactable quick everywhere!

greetz, David

Anonymous said...

Wait, I'm a bit confused. How do the audio and monitors sync like that? Is there an audio input on the Arduino or something?

Captain Credible said...

Is there any limit to how many screens you can control from one arduino ? or how many you can keep in synq with one laptop ?