TellyMate Shield - TV output for Arduino

I think that it might be possible to turn an Arduino into a TellyMate with a few components and uploading an M168 version of the TellyMate firmware (as yet untested) onto the Arduino using its bootloader - I'm not sure of the command line options required to get avrdude to upload a generic .hex file to an Arduino though, but I believe it can be done. This 'TellyMate Arduino' wouldn't be able to do anything else except be a TellyMate though.

You'd therefore need a second Arduino to tell the first 'TellyMate arduino' what to display (unless a blinking cursor is all you want to show!) - Oh, and because the 'TellyMate Arduino' would still have a bootloader, you'd need to disconnect the 'TellyMate Arduino' before uploading any sketches to the second Arduino, otherwise they'll both attempt to receive the new sketch and things would get messy.

I'd try making a 'TellyMate Arduino' myself, except that my Arduino is a lowly M8, so the TellyMate firmware won't fit on it whilst there's a bootloader there.

[I hope that was understandable - on reading through again, it might be easier for The_Bongmaster to just buy/make a normal TellyMate!]

In the hope of keeping this thread 'News' like, here's a picture of the new version of the TellyMate Shield:

It's now got a 'professional' PCB, proper straight-through headers and can send back data to the Arduino.

new version of the TellyMate Shield ... can send back data to the Arduino.

Interesting, what kind of data and how can it be used?

Interesting, what kind of data and how can it be used?

The 'transmit' functionality is very simple. | 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.

Sounds good to me. congrats on the new board.

well i dont have an arduino board as such.. i have a bunch of m168 chips with bootloaders on. i can breadboard a telemate layout easy enough, its just programming the 168. my crappy old loptop wont burn anything via the icsp cable i have so the only way i can upload to it on that thing is via com1 and my rs232-ttl converter. hence why i ask about a pde sketch.
i have a dual core 168 board that can probably be used later but for now i will make something bready. it would be kool to get the output of my gps device (ttl) thru it.

im referring to the telemate and not the shield btw :wink:

I love the idea of the TellyMate Shield. I may need to buy one, but I've got one question... What about adding an LM1881 or LMH1980 sync separator to allow the TellyMate to overlay on top of pre-existing video? I'm honestly not sure how hard that would be to do, but it would add a whole new world of useful applications to the TellyMate. For example, live GPS overlay over a video signal.

Technically, with the right software changes, a sync separator and a simple analog switch (that's got a low resistance and suitable bandwidth) would allow the TellyMate to overlay on top of existing composite video. The software would need a reasonable amount of change, but shouldn't be too hard (e.g. wake on an external interrupt rather than an internal timer, don't output syncs etc.).

My main reasons for not doing this (so far) so are threefold:
a) To keep everything simple. The TellyMate design is very, very simple. One chip and a few sundry components.
b) Lack of sensibly priced parts at low volumes (it would grate that the LM1881 would cost more than the M8).
c) I've never had a personal need for it in any of my projects (!)

The_Bongmaster, if you've found out a way of getting a .hex file onto your M168's, then I'd be more than happy to supply you with a .hex compiled for a M168 - It would be untested though.

i do have a prog that should burn a hex onto the 168 via the icsp parallel cable. if not cant u do that via the command line with the tools arduino IDE comes with?

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.

--Phil.

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.

Lefty

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 [?!]).

awesome thats great news :slight_smile:

They cost alot wah. :cry:

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 :wink:

Lefty

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.

Lefty

How about the pocket TVs, like this one?
http://www.amazon.com/Casio-TV-880-Portable-Handheld-Color/dp/B00005EBGN/ref=sr_1_6?ie=UTF8&s=electronics&qid=1245776085&sr=8-6
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)

http://www.micro-examples.com/public/microex-navig/doc/081-pic-osd-superimposer.html

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

http://www.viennawireless.org/balloon/hardware/overlay/index.php

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)
http://elec.tkjweb.dk/blog/pic-projects/serial-tv/

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!

Dan