This Instructable is for those who would like to use your Arduino to output to a TV. Granted the Arduino is only powerful enough to produce a black and white picture it can still be fun to play with and useful for some projects.

Step 1: Item list

Things you will need:
- Arduino
- A TV
- A Protoboard or PCB
- 2 Resistors
1x 470 ohm ( Yellow, Violet, Brown )
1x 1k ohm ( Brown, Black, Red )
- 2x 2-Pin headers ( Only 3 are used but the 4th helps with stability )
- Spare RCA cord you don't mind cutting up
- Arduino Software ( http://arduino.cc/en/Main/Software )
- The TVout library ( http://code.google.com/p/arduino-tvout/ )
<p>It worked perfectly, the code gives the mensioned error but it uploads to arduino.</p>
<p>where is the code i cant find which code to use</p>
<p>It is in the .ino file which will automatically be opened by arduino.</p>
<p>it isnt working it shows</p><p>Arduino: 1.6.8 (Windows 7), Board: &quot;Arduino/Genuino Uno&quot;</p><p>C:\Users\Mohit\Documents\Arduino\sketch_mar29d\sketch_mar29d.ino:1:19: fatal error: TVout.h: No such file or directory</p><p> #include &lt;TVout.h&gt;</p><p> ^</p><p>compilation terminated.</p><p>exit status 1</p><p>Error compiling for board Arduino/Genuino Uno.</p><p>This report would have more information with</p><p>&quot;Show verbose output during compilation&quot;</p><p>option enabled in File -&gt; Preferences.</p>
<p>I had that same problem to begin with. The way they constructed the code for the examples seems to be a bit wanky, I ended up locating that file as well as the FONT files and copying them to the first subdirectory under Libary. Worked after that.</p>
<p>Built this one tonight, I had tried earlier using a scrap of PC board but it got a bit too small. This time I just used the whole board, soldered on pins all the way down the side with plans to add on other items such as a compas and gyroscope so I can use it to monitor our routes in the RV and display on this screen.</p>
<p>works well! after a bit of playing i was able to understand how it all worked and how to position text on the screen..<br>so i did what any Fallout fan would do and made a quick Robco terminal :D</p>
<p>I've been wanting to do that with and older tv set - like yours - but using an astec modulator from a zx spectrum (I swear I didn't killed it for parts); I tried a prototype today but with no success... do you have any idea or suggestion on how I could (or even if it is at all possible) do this with this modulator? Maybe I'm missing something...</p>
i cant say with one from a ZX, but the Sony Playstation one takes a 5v input. however to make it so only a play station can use it, they swapped the connectors around. so the centre pin on the right only works with the outer ring on the left.<br>strange i know...
<p>Thanks for the reply; I'll try to find a similar modulator and wire it up :)</p>
<p>That.. Is.... AMAZING! I'm gonna have to dig around and find the adapter again so I can try this. Do you plan on going any further in depth with this?</p>
yes! i want to make it do different screens. maybe even have a simulated fallout based &quot;terminal hack&quot;<br><br>i just wish its resolution was better so i could have more letters on the screen per row.
<p>yeah i would love to.. it would be nice to give it a full keybored support and make it so you can go through the stages of &quot;hacking&quot; a RobCo terminal.</p><p><br>i would like it so i could change the resolution a bit though as the text is quite large and does not look that good if you use a small font. i am not sure how to do it though. i am very new to arduino.<br><br>that TV looks a little bit like a pipboy.. i am actually in the progress of making it look like it is from Fallout. i have plans of using it in a fallout themed car that i am also working on.. google &quot;Fiat Panda 4x4 Project: Fallout&quot; and check out the facebook page :D</p>
<p>Too cool man... Definitely can't wait to see your Instructable of a RobCo Terminal Dashboard or somethin lol... As far as the Resolution I'm not too sure, it's been a while since I played around with Arduino and I'm a bit hazy on it.. I'm just gettin back into it and if I have any luck I'll shoot you a message :)</p>
<p>is it powered? Is that it? I noticed some extra wires on your modulator coming from 3.3V (?).</p><p>sorry to bother </p>
<p>Thank you so much for sharing the good experience for me. I am just step into beginner stage. Hope many of us are happy with your support on Arduino work.</p>
<p>Thanks for this it was easy and fun to make and play with.</p>
<p>It would be nice to use it for Arduino Oscilloscope on that screen. </p>
I first tried about 3 or 4 months ago but tonight I managed to crack it, having broken the small PCB I got right 2nd time. 10 out of ten but better photos are needed if confidence initially is desired.
<p>Yeah sorry about the picture quality.. It was a while back and I really didn't have access to a decent camera(Just an old Galaxy Prevail). Thanks for sharing some better pics, I'll post some better ones soon.</p>
<p>Works great! is there any way to use this as a serial monitor though?</p>
<p>I have a mac and I don't know how to download the library? Can some one please help</p>
<p>Took about 10 minutes to set everything up and worked fine. Then went to play with thte code and got this in 30 minutes. Didn't have a 470ohm resistor, so used 2x 1k in parallel (=500ohm) and worked fine.</p><p>Only problem I had was: i tried to declare &quot;int a&quot; and put it in a for(a=0;a&lt;50;a++) set_pixel(a,100,2); to make a loading-like progressbar, but it compiled and no image was displayed. broke the FOR into 50 commands of set pixel and worked fine. put it into FOR again and no image. then changed &quot;INT a&quot; to &quot;CONST INT a&quot; and worked fine again. Don't know what happened, but if someone suddenly loses image for no reason, try commenting newly added commands that would make no difference in the display to pinpoint the error.</p>
Does the 470ohm resistor have to be exactly that? because I am having a hard time finding that and I don't really want to buy one because radio shack is really far away. If it doesn't then what's the best repacement.
<p>No it doesn't need to be exact, I put two 330ohm in parallel with one 330ohm in series with them. and it works just fine. ( although i think with 470 the image would be better!)</p>
<p><strong>I get the following error:</strong></p><blockquote>Arduino: 1.6.4 (Windows 8.1), Board: &quot;Arduino Uno&quot;</blockquote><blockquote>Build options changed, rebuilding all</blockquote><blockquote>C:\Users\Neel\Downloads\arduino-1.6.4-windows (1)\arduino-1.6.4\hardware\tools\avr/bin/avr-g++ -c -g -Os -Wall -Wextra -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10604 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR -IC:\Users\Neel\Downloads\arduino-1.6.4-windows (1)\arduino-1.6.4\hardware\arduino\avr\cores\arduino -IC:\Users\Neel\Downloads\arduino-1.6.4-windows (1)\arduino-1.6.4\hardware\arduino\avr\variants\standard C:\Users\Neel\AppData\Local\Temp\build7370315261520868212.tmp\TVInterface.cpp -o C:\Users\Neel\AppData\Local\Temp\build7370315261520868212.tmp\TVInterface.cpp.o </blockquote><blockquote>TVInterface.ino:1:19: fatal error: TVout.h: No such file or directory<br>compilation terminated.<br>Error compiling.</blockquote>
<p>Did you downloat the TVout library from:</p><p>(<a href="http://code.google.com/p/arduino-tvout/downloads/detail?name=TVout_R5.91.zip&can=2&q=" rel="nofollow">http://code.google.com/p/arduino-tvout/downloads/detail?name=TVout_R5.91.zip&amp;can=2&amp;q=</a> )</p><p>??</p>
<p>I did this with a Parallax QuickStart board. I tried with an Uno but got an error which I haven't surmounted as of yet.</p>
<p>It changed from 8 to 7</p><p><a href="https://code.google.com/p/arduino-tvout/wiki/Useage" rel="nofollow">https://code.google.com/p/arduino-tvout/wiki/Useag...</a></p><ul> <br><li>pin8 must be connected to video<ul> <br><li>Will change to pin 7!!! already has in pre-release svn</ul></ul>
<p>got it working. On <a href="https://code.google.com/p/arduino-tvout/" rel="nofollow">https://code.google.com/p/arduino-tvout/</a>, they say </p><p>Arduino UNO:</p><p>video = pin 7<br>sync = pin 9</p><p>well that is not true. The video is on pin 8. I did that and everything works! Thanks</p><p>Let's start coding!!</p>
<p>i am new to this area and tries to compile and run the program .</p><p>there are many error i need help with if its possible :</p><p>TVoutTestR1.pde: In function 'void setup()':</p><p>TVoutTestR1.pde:8:20: error: '_NTSC' was not declared in this scope</p><p>TVoutTestR1.pde: In function 'void loop()':</p><p>TVoutTestR1.pde:15:6: error: 'class TVout' has no member named 'delay'</p><p>Error compiling.</p><p>any help !</p>
<p>Please-anyone help keep this updated... I'm trying to help my boy with his science fair project and this is it!!! We really want to get Arduino Pong working!</p>
<p>Have you installed the TVout library?</p>
Thanks for this tutorial! ;)
<p>Will this work on a regular flat screen TV with composite in?</p>
<p>I have been working with TVout for almost a month now and its been rather frustrating.</p><p>In the code you provide when I try compiling it, apparently start_render and print_str are not members in the TVout class. </p><p>I have the same version of libaries as the one you have linked. Any ideas as to what's up?</p>
<p>which operating system you are using ?</p>
<p>Windows 7 64-bit</p>
Docs say to use 9 and 7,, but you seen to be using 9 and 8. Could you clarify please: <br> <br> <br> NG,Decimila,UNO 9 7
<p>The beta uses 9 and 7</p>
<p>thank you.</p>
<p>good post , I like this. Actually an analog clock on a small CRT screen would look nice....Did you post anything new on this ? something like ping pong or tennis game??</p>
I runned the code and it shows some errors in the following: <br>analogReference {INTERNAL1V1}; <br>class TVout has no member named printbitmap2 <br>void Refreshstatus(); <br>
I had the same problem with the compiler , with errors in the library files , the problem for me was theat I play`d around with my Hackduino with atmega8 and when I swicht the 0022 to my Duemilanueve board with the atmega328 it compiled fine , so i gues it dose not like atmega8 :)
It is definitely possible to get it going on an atmega8, I've done so myself.
on the tv-out page it says it only works with, atmega 168, 328, 1280, 2560, but no it doesnt work on a dated chip such as the atmega8, i cant wait to try iti just dont have the resistors
Hi, <br>I have just downloaded the TVout library and installed it sucessfully. However, when I try to upload the sketch to my Arduino Mega 2560, it gives me this message: <br> <br>C:\Program Files\Arduino\Arduino ERW 1.0.4\libraries\TVout\TVout.cpp:733: error: '_SYNC_PORT' was not declared in this scope <br> <br>But whenever I change my board selection to the Arduino Uno or Mega 1280, it can compile the sketch... <br> <br>Please help me :(
How did you get it on a monitor?
Here I share how to use the updated Beta 1.0 version of the TVOut Library from time frame December 2010. http://code.google.com/p/arduino-tvout/<br> With the Arduino-1.0.3 JAVA ide http://arduino.cc/en/Main/Software<br> Java7 downloaded from &nbsp;www.java.com<br> <br> I added some images that you can see my sketch, and then paste the whole sketch file TVOut_Beta1_Test at the end. To make a presentation post simple, one leaves out missing steps. Conversely adding all the steps and the assumptions makes this post long. I do hope I covered everything, but do comment and add corrections please.<br> <br> I downloaded the file TVOutBeta1.zip, unzipped it, and then added/moved 3 directories pollserial, TVOut, TVOutFonts to the Arduino LIbraries directory &quot;~/arduino-1.0.3/libraries&quot;, where from Arduino IDE I could just issue &quot;Sketch --&gt; Import Library&quot; command to load the &quot;#include TVout.h&quot; &nbsp;&amp; &quot;#include FontALL.h&quot; headers to my current sketch. Or you could just add these 3 libraries to &quot;~sketchbook/libraries&quot; directory. like in the YouTube video Arduino TVout Library Setup http://www.youtube.com/watch?v=LMu7EASMfUY<br> <br> The Tilde character '~' is a short hand for &quot;users home directory&quot; in linux/unix. In Windows it might be like <strong>$HOME</strong> in a batch file?? I use Puppy Linux version<strong> Lucid Puppy 5.2.8 </strong>from <strong>http://puppylinux.org </strong>as my base operating system for the <strong>Arduino Java IDE version 1.0.3 &nbsp; </strong>I believe newer version <strong>Precise Puppy 5.4.3 </strong>would work also.<br> <br> Search the puppylinux forums for Arduino with the URL <strong>http://www.wellminded.com/puppy/pupsearch.html </strong>http://puppylinux.org/wikka/Arduino<br> http://murga-linux.com/puppy/viewtopic.php?t=83862<br> <br> <br> &lt;pre&gt;<br> // February 7, 2013<br> // This code works with file TVoutBeta1.zip dated December 2010 from http://code.google.com/p/arduino-tvout/&nbsp;<br> // and instructions here http://playground.arduino.cc/Main/TVout<br> // I tested with OSEPP UNO R3 Plus board http://osepp.com/products/arduino-compatible-boards/uno-r3-plus/&nbsp; I purchased at Fry's Electronics<br> // Sync on Pin 9, Video on Pin 7, Ground Black Wire to ground post.&nbsp; Audio out on Pin 11.<br> // Code from here http://code.google.com/p/arduino-tvout/<br> //&nbsp; I used http://PuppyLinux.org for my Operating system Version 5.2.8 Lucid Puppy.&nbsp; Newer Precise Puppy should work too.<br> //&nbsp; I downloaded and installed Java 7 from http://www.java.com<br> //&nbsp; specifically the non-RPM version here&nbsp; http://www.java.com/en/download/manual.jsp?locale=en#lin<br> //&nbsp; Then I installed the Arduino Software from here http://arduino.cc/en/Main/Software&nbsp; Version 1.0.3&nbsp; a newer version&nbsp; is 1.5.x for the new Duo Arduino board.<br> <br> //&nbsp; http://www.youtube.com/watch?v=LMu7EASMfUY&nbsp; TVout Library setup with Arduino Sketch software.<br> // Added TV.tone software call but no hardware to test.&nbsp; http://www.youtube.com/watch?v=ntzrp868cKY<br> // Arduino pin 11 drives a resistor divider (1k top, 470 bottom) that feeds a 0.1uF decoupling capacitor (removes DC component of signal) into the audio output jack.<br> // More info and source code here: http://www.wayneandlayne.com/projects...<br> //&nbsp;&nbsp; http://www.wayneandlayne.com/projects/video-game-shield/&nbsp;<br> //&nbsp;&nbsp; http://www.wayneandlayne.com/files/vgs/downloads/video_game_shield-schematic-v1.15.svg&nbsp; see for Audio out Pin 11 schematic<br> <br> <br> #include &lt;TVout.h&gt;<br> #include &lt;video_gen.h&gt;<br> #include &lt;fontALL.h&gt;<br> <br> TVout TV;<br> <br> // Pin 13 has an LED connected on most Arduino boards.<br> // give it a name:<br> int led = 13;<br> <br> // the setup routine runs once when you press reset:<br> <br> void setup()&nbsp; {<br> &nbsp; TV.begin(_NTSC);<br> &nbsp; TV.select_font(font6x8);<br> &nbsp;&nbsp;&nbsp; // initialize the digital pin as an output for blinking the LED.<br> &nbsp; pinMode(led, OUTPUT);<br> }<br> <br> // the loop routine runs over and over again forever:<br> void loop ()<br> {<br> &nbsp; digitalWrite(led, HIGH);&nbsp;&nbsp; // turn the LED on (HIGH is the voltage level)<br> <br> &nbsp; TV.clear_screen ();<br> &nbsp; TV.print( 30, 40, &quot;TVout FTW!!!&quot; );&nbsp; //TVout software for the World!<br> &nbsp; TV.delay (60);<br> &nbsp; TV.tone(480,500);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Play a 480 tone for half second<br> &nbsp; delay(500);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // wait for a half second<br> &nbsp; TV.print (30, 60, &quot;Wait one Second&quot; );<br> &nbsp; digitalWrite(led, LOW);&nbsp;&nbsp;&nbsp; // turn the LED off by making the voltage LOW<br> &nbsp; TV.tone(440,500);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Play a 480 tone for half second<br> &nbsp; delay(500);<br> &nbsp; TV.draw_rect(20,20,105,56,WHITE); //draw a white rectangle<br> &nbsp; delay(1500);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // wait for two seconds<br> }<br> <br> &lt;/pre&gt;<br> <br> I thought that this was a very inexpensive project to test out Arduino IDE with a OSEPP UNO R3 Plus &nbsp; PuppyLinux is Free, too..<br> 2 resistors 470 and 1000 ohm, 3 jumper wires, and one composite video cable.<br> Radio Shack 470 ohm 271-1115 &nbsp;1000 Ohm 271-1118<br> I tested with out cutting the composite video cable by touching the center pin to the junction end of the 1K and 470 ohm resistor and the outer shield to the black ground wire from the Arduino. &nbsp;This gave me a crisp display on the composite video input to the TV/Monitor. &nbsp; I tried with out success a 12 foot long zip cord (2 wire molded next to each other) audio cable. &nbsp;Then tested a 75 ohm coax composite cable. &nbsp;Success!! &nbsp;Display showed right up. &nbsp; High frequency, megahertz range, video needs coax, &nbsp;while &nbsp;20 -20000 hertz audio works with zip cord.<br> Fred Finster &nbsp;WB7ODY

About This Instructable




More by AdmRainbowBeard:
Add instructable to: