Go Down

Topic: TellyMate Shield - TV output for Arduino (Read 57181 times) previous topic - next topic


if not cant u do that via the command line with the tools arduino IDE comes with?

You can. The IDE uses avrdude to upload a hex file itself. You can look at the verbose build output to see how it does it.



Jun 20, 2009, 01:49 am Last Edit: Jun 20, 2009, 01:52 am by retrolefty Reason: 1
Code: [Select]
The 'transmit' functionality is very simple. <ESC>| causes the TellyMate to send back the ascii value of the character at the cursor.

It doesn't sound like much, but it means that the contents of the TellyMate screen can be 'read'. This could be a simple way for games to detect walls, other players etc. without having the overhead of storing a copy of the game-screen data on the Arduino.

Having bought my TellyMate shield prior to this latest upgrade, I went ahead to see if I could 'upgrade' to this latest feature. I down loaded the latest firmware zip file and using my USBtiny programmer was able to burn the new hex file as well as fuse settings into a blank mega8 AVR chip.

The board worked as before but didn't seem to be able to utilize the send character feature that the example programs used in the zip file.

The latest user manual mentioned that there was a need for a 'hardware enabled' board to utilize this feature but there is no schematic available yet showing what has changed to enable it.

So I ran one of the example programs and verified with a scope that the new firmware was sending data via the mega8's pin 3 and that pin had no trace going anywhere. So I soldered a short jumper between that pin and pin D0 on the shield's Arduino connector.

Now the example programs work as stated in their comment lines and so that seems like a pretty easy to implement upgrade. If anyone knows if there is more involved with the 'hardware enabled' feature please let us know.



Yup! You've got it spot on.

I can confirm that the only schematic difference between the original TellyMate and the TellyMate 1.1 is a trace between pin 3 of the TellyMate's Mega8 and Arduino pin D0.

Soldering this wire in place gives an original TellyMate the abiilty to transmit (obviously subject to the later firmware).

I'll put this information into the TellyMate User Guide's FAQ later today.
There'll also be a new firmware release this weekend. (Nothing too exciting - I'm squeezing in a couple more 'read' functions to transmit things like firmware revision, output format, cursor position etc. back. The release will also include .hex files for M168 and M328p's, should anyone be building their own and only have those chips available [?!]).




You call that a lot? I say it's a bargain!


They cost alot *wah*.

Not sure I understand your statement without more context. However the developer of this product has published the hardware and firmware and all the documentation required so that one is free to build their own or buy at a very fair price.

Now if only I could find a small video LCD display at a comparable hobbyist price  ;)



You know what I was thinking yesterday? You can get these LCD Photo Frames dirt cheap nowadays. I wonder if the screens inside them could be hacked for use as a display, either using the TellyMate or some other kind of interface? I am sure they could be.


I wonder if the screens inside them could be hacked for use as a display,

Yea, I looked at quite a few listings on E-bay awhile back but couldn't find any that said they included an A/V (composite video) input, just memory cards or usb interfaces.



Jun 23, 2009, 06:55 pm Last Edit: Jun 23, 2009, 07:04 pm by florinc Reason: 1
How about the pocket TVs, like this one?
US$25 on ebay.

Also, some video cameras (my old Sony, for example) have A/V inputs.


You have just reminded me that at the bottom of a cupboard drawer I have an old Casio 970D Pocket TV with an AV input!! Cool.


For one I would like to have an overlay board.

I searched the 'net a found some others that have simple designs. They don't use the LM1881 or LMH1980 sync separator.

This one uses a microchip PIC.

(Scroll down to the bottom to see the You tube video for a quick demo)


PAL version with no inputs (demo code only)

Quote from the article
To superimpose text to a PAL video signal, we need to control timing with precision to get a stable picture.
We have to deal with vertical synchronization, which tell us when a new frame starts, and with horizontal synchronization, which tell us when a new line starts.

Usually, and external circuit is used to extract both vertical and horizontal synchronization pulses from the PAL video signal, the LM1881 integrated circuit does it very well for example.

Since I wanted to have a very simple circuit, I had to find a way to make the PIC do this job.

First, we must be able to know when a video line starts : we will use the PIC internal comparator module to do it. The internal voltage reference module will be programmed with a voltage clip level, the comparator will then trigger an interrupt each time the input voltage will become lower or higher than the clip level. This will be our horizontal sync separator.

Second, we must be able to know when a frame starts do get vertical sync : PAL signal uses special sync pulses to announce a new frame. We have to detect a 28 µs low level pulse, there are five of them in the vertical sync and none elsewhere. The internal timer module of the PIC will be used to count time of low level pulses.

This done, we must be able to know what to superimpose to the video signal. A bitmap representation of the text to be displayed is built in RAM from a 5x7 fonts table. On each new line interrupt, we check if we are in display time window for adding pixels or not.

To add a pixel to the video signal, we change output pin from high Z state to output, the output then imposes +Vcc or 0V to display either a white or a black pixel. The result is a superimposed text on transparent background .

NTSC version using the Mega8 and a couple of parts


Note: NMEA is just a serial standard used on boats for communication between GPS, Radar, Chartplotter etc.


Non overlay PAL PIC library:

Guy who used this library and added a serial input with non overlay (aka tele mate)

So I have given you
1) PAL design
2) NTSC design on a Mega8
3) PAL library with serial input option.

Note these use the same connector for video in and out. So the existing board could be used with the cable split in two for two leads. (Of couse the extra components would need to be fitted, but this could be done with stripboard or breadband to start)

So I challenge someone to use this to make an arduino version of a text overlay unit.
If you do let me know.

I'll be expecting the next version of telemate to have a jumper J7 for text overlay on/off!



Has anyone had a problem with the output from the Tellymate doing a continual vertical roll?  

I've got this with one particular miniature LCD display with an AV input.
It's one of the "2 AV Input 3.5" Reversing Color LCD Car Backup DVR VCR" that are all over eBay for around $30-35.

However, when used with the Tellymate, the display "rolls" vertically.

I tested the LCD with the composite-video output from my Popcorn Hour network media player - and it works fine with no rolling.

I tested the Tellymate with the 32" LCD TV in my living room.  It works fine as expected.

I tried both a Duemilanove w/mega328, and a Seeduino w/mega168.  Same result on both (using the "Hello World" and random-characters examples).

Am I out of luck, or is there any way to adjust/tweak the NTSC video timing that's being output?


Thanks alot for the work on this! I wouldn't have had any idea where to start... even after reading about the shield on your website.. still wasn't really sure where to start! :D

I got it working on a bread board.. took 15 minutes of setup.. and a day of debugging.. (turns out, I uploaded the wrong .hex.. and I had the diode 1 pin space off on the breadboard) But now it works great! I've got an old CRT TV, was going to use it for a "debug station" if you will, but good lord! Even sitting about 8 feet away, the TV is still giving me a headache.

How did we ever stand sitting near this... old contraption we used to call a "television"?  ;D

But yeah, I just used one of my old Atmega8 chips, with crystal, diodes and the resistors (I was extremely lucky.. I've never purchased those diodes in particular, but they came with a Electronics Startup Kit, woot!:))

Gee-whiz, now I'll be able to plug my Arduino into random TV's and pretend like I'm taking over the world! Muahaha.

Okay, I might have over exaggerated, but this is awesome regardless! It's almost like the Matrix with the Random Characters. Would be a nice "screen-saver" if I could leave my TV on for more than 5 minutes.

Again, thanks for all the hard work, very thankful! I have a few too many Atmega8's that need a home.. I feel like a board-less shelter over here!


Code: [Select]
I have a few too many Atmega8's that need a home

You should really consider running 168 or better chip. There are now alternate character sets that can be uploaded to give more capabilities.


Go Up