MRETV - Video, Stereo Sound and much more from a standard Arduino !

FeaturedContest Winner
Picture of MRETV - Video, Stereo Sound and much more from a standard Arduino !
MRETV - Video, Stereo Sound and much more from a standard Arduino !

  Use only two resistors and two diodes to generate full screen video. Text 47 x 29 of 8x8 characters, double the vertical resolution (47x57) in experimental interlace modes. Use pixel level graphics with a virtual graphics coprocessor controlling font, screen resolution, vertical and horizontal centering, raster index and pixel size with single scan line resolution. ASCII read and write access of screen characters, screen print strings, decimal, hex or binary. Built in simple scrolling terminal service. Video generation has been done before, but not like this. FULL DUPLEX serial still available while generating video.
  Two more resistors and two capacitors will add Stereo playback of Audio samples. One shot or continuous operation. Sound samples are used in real time from progmem and a sound sequencing example is provided. Both Audio and Video are generated automatically in the background with no intervention once started.
  Two more resistors and you can now connect a PS/2 keyboard or mouse (the kind before USB). Read raw key input or ASCII chars, let keys merge into the serial stream automatically. Set the keyboard LEDs and send commands to control mouse reporting.
  Code examples include Ponguino, a simple terminal, a player piano, a ShootEmUp, use your Arduino as an external video card and some technical examples. Too good to be true? Watch the video then grab your soldering iron!
1-40 of 52Next »
diy_bloke1 year ago
I am not sure if I cmpletely follow you. Are you saying you can connect to the Video in RCA plug OR to S-video?
Mr. E (author)  diy_bloke1 year ago
Yes, you can do both (but only one at a time.) First build the RCA plug video circuit, and then build the RCA to S-Video adapter for use with TV's and other equipment that allow an S-Video connection.
thank you
This is amazing. I really can't believe you can make Arduino do all that at the same time. You've managed to cram almost all the features of Raspberry Pi into arduino(maybe only ethernet left?)!
Your intro page text could be made a bit more easy to understand, because it's hard to imagine that all this can be done and the intro page text is a bit vague about where we get the video and audio out. At first I thought this is an instructable for making arduino compatible hardware called MRETV using LCD screens, speakers etc. You can make it clearer that it works for standard TV sets. And a picture of the circuit with live display on TV will be awesome! I'll try it out soon. Thanks for sharing this :-)
Mr. E (author)  Antzy Carmasaic2 years ago
Thanks for your patience, I have finally added the video of the hardware being connected and used as you suggested. It's at the end of the 'Bugs and Bouquets' section, the MKV version is best.
Mr. E (author)  Antzy Carmasaic2 years ago
Thank you for your enthusiasm ! Build it and you will believe. I almost called the Instructable 'Rusty Nail Pi' , you know the folk tale about soup?

Excellent advice on the intro. I'll try to address it.
jlp6k2 years ago
This seems amazing. I hope to have time to play a bit with.
I'd like to know if it's dedicated to some TV standard like NTSC or PAL?
Mr. E (author)  jlp6k2 years ago
Thanks! if you build it you won't be disappointed. The polarity of the sync makes it NTSC like, but its a stretch to say its 'dedicated to a standard'. I worried at first but it turns out TV's are very forgiving about what they will display.
jjplano2 years ago
hi! nice work man! I've sent you a personal message, please answer it when you have the time. thanks in advance!
Mr. E (author)  jjplano2 years ago
Thanks, I enjoy doing it. Your reply is done, sorry for the delay (a few bad memory locations in the wetware these days).
Outstanding job!
Mr. E (author)  teodoropires2 years ago
Thank you! That's high praise coming from the Spork man.
Ugifer2 years ago

I think I've just found my next kid's project! A pretty basic PCB & we have a pongduino console for about a fiver!

Would love to hear some of the theory on how you generate the video signal. It wouldn't even occur to me to try!

Fabulous project!
Mr. E (author)  Ugifer2 years ago
Do you ever feel like the Ponguino paddles keep getting smaller ? I've played my son, some day I'm going to make a game I can win...
Ugifer Mr. E2 years ago
One extra thought - would it be better (for a TV that has it) to drive the luminance line of an S-video input rather than using a composite input? That would avoid any of the signal being interpreted as unintended colour information.

Once again though: great project.
Mr. E (author)  Ugifer2 years ago
Ugifer... look what you made me do to my S-Video cable. I mean it, the new picture and note in the video section of this Instructable. Talk about crowd sourcing, what a great idea! You can just call me E
Ugifer Mr. E2 years ago
Great! Glad to be of service (however minor).

That's the great thing about Instructables - there are so many people with good ideas and sometimes they see something that can be done in a different way. Sometimes they will even take a project you though was exhausted and put a completely new slant on it & come up with something great.

I meant it when I said I might base my next project on making a simple games console around this project - obviously I'll let you know & post an 'ible if I do.

Cheers - and thanks for the mention!

Mr. E (author)  Ugifer2 years ago
The best thing about Instructables, for me, is learning. If I had understood how much I would learn while making this Instructable I would have done it much sooner.

pdrg2 years ago
Wow, excellent work, really inspiring!
Mr. E (author)  pdrg2 years ago
Thank you ! Inspiration, its an honor to pay it forward here where its most deserved.
meenzal2 years ago
This is so spectacularly simple I'm amazed. I've been building with Arduinos for years now and nothing like this ever dawned on me as possible. Great job on an excellent Instructable --one of the very best I've ever seen. Thanks so much!
Mr. E (author)  meenzal2 years ago
Thank you, your words are too kind.
PS/2 sockets are had by taking a heat gun to an old motherboard.
Mr. E (author)  The Lightning Stalker2 years ago
Indeed they are there, and sometimes difficult to get off. Thanks for the tip about the heat gun.
kayakdiver2 years ago
This is awesome. My mind is buzzing with ideas on how to incorporate this into simple test fixtures that offer much more than LEDs as a user interface. Thanks for such a great job in presenting this!
Mr. E (author)  kayakdiver2 years ago
Thanks, it will be what others do with MRETV that will make my effort worth while. The presentation keeps getting better, thanks again to all my editors out there !
MrChay2 years ago
This is a game changer, like a 4th SID channel, like fragment shaders, like dHTML. This is the dawn of a new age.
Mr. E (author)  MrChay2 years ago
Thanks ! I was trying to think outside the bag. It became a game changer for me in a trivial way. Even when my project does not use MRETV, being able to temporarily debug/test with a dedicated screen full of data and keyboard helps a lot. I seem to do a lot of 'testing' some days.
cepolobero2 years ago
Amazing project! It is by far the coolest project I have found on the Arduino scene! I'm willing to give it a try! Great job Mr. E! ;-)
Mr. E (author)  cepolobero2 years ago
Thank you, for your very kind words, it does represent a lot of work. Its been my development skeleton for a couple of years so is even fairly stable.

I need some help. I understanfd the principle, but the coding is beyond me. I am trying to write the code so that when there is a keypress, it does something. so basically :"if a is pressed, do this" If anyone would be willing to give me an easy tu understrand example of this, that would be great. thanks!

lew741 year ago

Hi Mr. E, i am trying to use your code to send the keyboard characters over Serial and i only sometimes receive the character, it is the right one but i need to hit like 10 characters before it works and then another 10 hit, and only 1 or 2 characters appear on the serial terminal. I don't want it to send the serial information that it received i.e. the command: Video.writeS(Video.read()); instead of Video.writeS(chin);

This is my code:

#include <MrETV.h>

#ifndef default_extensions

#error Please define 'default_extensions' in arduino\libraries\MRETV\MRETV.extensions , See comments at start of sketch


#include "textfont.h" // readable font

#ifdef __AVR_ATmega168__

#define asciibufsize 22*40


#define asciibufsize 25*46


#define mergstreams on

uchar asciibuf[asciibufsize];

void setup(){

#ifdef __AVR_ATmega168__

Screen.begin(textfont,asciibuf, 22*8,40,34,52,1);


Screen.begin(textfont,asciibuf, 25*8,46,22,20,1);




void loop() {

uchar chin;






I am very impressed on your work to, great work. Nice and compact to.

I have gone into the code and changed a small amount just to add a cursor.

1a5p1 year ago

I use Arduino Uno, is it still possible for me to make this. (I am still a little new to Arduino.)

Mr. E (author)  1a5p1 year ago

Yes, the Uno works well with MRETV. Enjoy.

Ugifer1 year ago
Hello Mr E

I have just stumbled upon these guys: http://nootropicdesign.com/hackvision/
Seems like they do a similar thing but without using the UART, which I suspect means that your version will be much less processor-hungry.

Have you encountered their projects? I was just wondering whether they could be run on the MrETV "platform".

Mr. E (author)  Ugifer1 year ago
The site says resolution of 136x96 pixels and Mono audio, it uses TVOUT. MRETV resolution goes beyond 376 X 324 and the audio is stereo or mono, so you should be able to port the games but it will not be real easy, the interfaces are different. Yes MRETV is less processor-hungry, but their system is game only so it makes sense if they use 100% processor time. MRETV gives you different abilities and expendability for pennies using your standard Arduino, (although my PAL version in not released publicly yet).

Hi! Can I use it to the serial output of my arduino in it? like on a computer with the IDE, this would be useful for on-the-field testing
Mr. E (author)  JorgeTristan1 year ago
Yes, MRETV can be used as a terminal (with sound) on a serial port. Note that serial TX moves to a different pin while RX stays the same as normal.
Teachable2 years ago
I require the highest of fives.
Mr. E (author)  Teachable2 years ago
Thanks !, I think ? 5^5 of spades ...?
1-40 of 52Next »