Go Down

Topic: Turn your Uno into a VGA output device! (Read 122802 times) previous topic - next topic


Is it really a CRT (i.e. is it quite deep behind the screen?) or is it a plasma display?
"Pete, it's a fool (who) looks for logic in the chambers of the human heart." Ulysses Everett McGill.
Do not send technical questions via personal messaging - they will be ignored.
I speak for myself, not Arduino.


Wow, a genuine "luggable".

Rob Gray aka the GRAYnomad www.robgray.com


I warn you that you won't get that resolution. All you can expect is what I showed on the first page of this thread, scaled into the screen. The processor just can't output discrete pulses fast enough.
Please post technical questions on the forum, not by personal message. Thanks!

More info: http://www.gammon.com.au/electronics


Hi Nick,

I have played with your color version, it works fine! But what about color text and communication part? Are you try to add all parts together?


what about using two arduino? one for rgb and other one for v sync and h sync? lol


Maybe I'm completely wrong but: It is not possible to use a screen with buffer???
Something like the latch on 75HC595 Shift register IC. So you put in the buffer what you want to write, then activate the latch pin, and there is no need for refresh unless you need to change what is shown on the screen.

A screen like this will be perfect, because you can use relative big screens/resolutions with the Atmega IC's without overloading.


This was mentioned in a post above, but I want to ask the same question again, regarding combining Nick's work on generating sync (which seems to consume _most_ of the cycles of an UNO and Sebastian Tomczak's work ( http://little-scale.blogspot.com/2008/02/hacking-vga-lines-with-arduino.html ) which results in a very rudimentary but very cool "video synth".

Sebastian was grabbing his sync from an external source (in his demo he is using the signal from a computer).

So if one used a second UNO (or similar) could one use that to generate the RGB signals (which are actually being generated from an audio input source in Sebastian's project) and combine that with the sync being generated with Nick's project (on the first UNO) and merely "splice" the signals together at the actual cable socket?

Or better yet, could it all happen on one Arduino? I doubt that given the timing tightness being described, but even if I had to run it on two boards... I have a few laying around, and it would make a cool little AV synth.

Any thoughts?


Hi nick...i'm trying to figure out how to overlay some text on a vga signal....if i understood well just need to detect the vertical sync, count horizontal sync pulses and out some text (video sygnal) over the actual signal on the right time...is this correct?...how can I do this? could you give me some ligth on it?...I don't understand the screenfont.h format...how can i distiguished a single letter from this code?...(sorry for my english)



Mar 05, 2013, 03:40 pm Last Edit: Mar 06, 2013, 09:48 am by McHa Reason: 1
Thank you Nick,
your site is awesome, explanatory kind of "makers" experience.
I have just made some experiments with your code, I'd will dig through to
modify it for my project's purposes.

Thank you so much for sharing it!

I spent some time with your code (and description) and I could not get gotoXY work properly.
I'm sending data from other arduino and I wanted following:
print some text

So I used several variation of
Code: [Select]
char xy[] = {5,5};

sendString (clearScreen);
sendString (gotoXY);sendString(xy);
// sendString (strcat(gotoXY,xy));
// sendString (gotoXY+xy);
//   etc...
sendString ("Hi!\n");

Could you please point me to some good and working solution to that? Thx.



Hey @Nick Gammon How can i increase the font size from 8X8 to 8X12 ?
Please reply....


I suppose you would change the font definition:

Code: [Select]

byte screen_font [8] [256] PROGMEM = {

Go from 8 rows to 12 rows. Then you need to re-make the fonts from scratch. And change the part where it copies the font data to the screen to allow for sending 12 rows rather than 8.
Please post technical questions on the forum, not by personal message. Thanks!

More info: http://www.gammon.com.au/electronics


VGA library - now with TV output



Gee thanks Nick!   

Now I have quit procrastinating and repair my spare 19" Flatscreen.

I really want to try you project.   I have a few interesting ideas and will soon have 4 Arduino UNO3 to work with.

I may end up offering a Shield on Ebay, supporting VGA and interfacing with 3 UNO3's.  If I do, I'll send you one free.

Keep up the good work.

Thanks for the challenge.


Hey , just came across this Papilio VGA shield.


Not bad, it's exactly the same, except on a nice little breakout board.

Go Up