Question
Asked June 24 2013

Community Question

Since it was mentioned a few days ago it has been at the forefront of my mind bugging me to play with it, so let's play :)

First I will cover the wiring of the TellyMate Tiny to the EZ-B and then I will cover how to use it.

So, when you get one it'll turn up and you have a bunch of bits;
1. Composite Video Cable
2. TellyMate Tiny board
3. Angled Pin Headers
4. Straight Pin Headers
5. 3x2 Pin Header for ISP

User-inserted image

First things first, ignore the pin headers. The simplest way to connect this to the EZ-B is with a accessory extension cable (or servo extension as they are sometimes called).

All the TellyMate Tiny needs is a Vcc, Ground and Serial data. Vcc can be 5V so direct from the EZ-B is fine, ground as usual can connect to any common ground and serial data is sent from the EZ-B signal pin, this needs to be received by the TellyMate so connects on to the RX pin not the TX.


First cut off the one end of the extension cable and strip back the wires (similar to the camera mod, Ultra Sonic sensor etc).
User-inserted image

Next you need to solder the wires like so;
Red to VCC
Black to GROUND
White to RX

User-inserted image

That's it, it's ready to plug into any of the digital ports on the EZ-B. It really is that simple :)

One slight oversight is there are no mounting holes on the TellyMate Tiny. A small piece of sticky foam tape would be ideal to mount the board. Provided you leave access to the jack for the AV cable this will cause no problems. Sticking it to the back of the LCD screen/TV/Display seems like an ideal location too.


Now, in order to use the TellyMate you simply need to connect the output to a TV via the composite video input, select the correct channel and send the serial data to the TellyMate using the SendSerial() command in EZ-Script.

Further details to follow on the scripting and operation plus a quick review of the product and it's capabilities to aid you in deciding if it's right for your project. Stay tuned for updates :)
June 24 2013
Below are some of the more important commands that will be needed. It is assumed you will use port D8 however you may change it to any Digital Port, just remember to change the port in the script.

These codes will work in all variants of the TellyMate

Note: Any ;) in the code sections should be replaced with a single )

Reset the TellyMate

Code:


SendSerial(D8, 57600, 0x1B, 0x7A)


This will reset the TellyMate device to the state when it is first powered on.

Line Feed

Code:


SendSerial(D8, 57600, 0x0A)


This will move the cursor to column 0 of the current line without deleting or removing anything on screen.

Form Feed

Code:


SendSerial(D8, 57600, 0x0C)


This will clear the screen and move the cursor to column 0 of the last line i.e. the lower left hand corner.

Carriage Return

Code:


SendSerial(D8, 57600, 0x0D)


This will move down one line but leave the cursor in the current column.

Enable Auto Carriage Return

Code:


SendSerial(D8, 57600, 0x1B, 0x78, 0x39)


Turns on Auto Carriage Return - Will automatically carriage return on line feed.

Enable Auto Line Feed

Code:


SendSerial(D8, 57600, 0x1B, 0x78, 0x38)


Turns on Auto Line Feed - Will automatically line feed on carriage return.

Disable Auto Carriage Return

Code:


SendSerial(D8, 57600, 0x1B, 0x79, 0x39)


Turns off Auto Carriage Return.

Disable Auto Line Feed

Code:


SendSerial(D8, 57600, 0x1B, 0x78, 0x38)


Turns off Auto Line Feed.

Clear the screen and return home

Code:


SendSerial(D8, 57600, 0x1B, 0x45)


This will return the cursor to the home position and clear the screen.

Return Home without clearing

Code:


SendSerial(D8, 57600, 0x1B, 0x48)


This will return the cursor to the home position without clearing the screen.

Show diagnostic info

Code:


SendSerial(D8, 57600, 0x1B, 0x51)


This will display the diagnostics information of the TellyMate on the screen.

Change font to single width single line

Code:


SendSerial(D8, 57600, 0x1B, 0x5F, 0x30)


This will set the font to single width single height.

Change font to double width single height

Code:


SendSerial(D8, 57600, 0x1B, 0x5F, 0x31)


This will set the font to double width single height.

Change to Single Width Double Height (top)

Code:


SendSerial(D8, 57600, 0x1B, 0x5F, 0x32)


This will set the font to single width double height for the top half of the text. A duplicate line of text will be required for the bottom half using the bottom half code prior to the text code.

Change to Single Width Double Height (bottom)

Code:


SendSerial(D8, 57600, 0x1B, 0x5F, 0x33)


As with Single Width Double Height (top) but will display the bottom half.

Change to Double Width Double Height (top)

Code:


SendSerial(D8, 57600, 0x1B, 0x5F, 0x34)


As with Single Width Double Height but will display at double width also.

Change to Double Width Double Height (bottom)

Code:


SendSerial(D8, 57600, 0x1B, 0x5F, 0x35)


As with Single Width Double Height but will display at double width also.

Turn the cursor on

Code:


SendSerial(D8, 57600, 0x1B, 0x65)


This will turn the cursor display on.

Turn the cursor off

Code:


SendSerial(D8, 57600, 0x1B, 0x66)


This will turn the cursor display off.

Enable Line Overflow

Code:


SendSerial(D8, 57600, 0x1B, 0x76)


This will enable line overflow. When text extends beyond the final column of a row it automatically moves the cursor to the first column of the next row and continues to output the text.

Disable Line Overflow

Code:


SendSerial(D8, 57600, 0x1B, 0x77)


This will disable line overflow. When text extends beyond the final column of a row it will display characters on the final column with the final character of the text string being displayed.

Turn On PAL mode

Code:


SendSerial(D8, 57600, 0x1B, 0x78, 0x3D)


This will set the TellyMate to PAL mode for the output.

Turn on NTSC mode

Code:


SendSerial(D8, 57600, 0x1B, 0x79, 0x3D)


This will set the TellyMate to NTSC mode for the output.

Invert the Output

Code:


SendSerial(D8, 57600, 0x1B, 0x78, 0x3E)


This will inverse the output i.e. will display black text on a white background.

Revert to normal output

Code:


SendSerial(D8, 57600, 0x1B, 0x79, 0x3E)


This will revert the output to normal i.e. white text on a black background.

Positioning the cursor

Code:


SendSerial(D8, 57600, 0x1B, 0x59, 0x20, 0x20)


This will position the cursor in the upper left corner (position 0,0). By altering 0x20, 0x20 it will specify a different position. Positions are hex beginning at 0x20 (32 in decimal) for 0. For example, position 10,15 would require SendSerial(D8,57600, 0x1B, 0x59, 0x2a, 0x2f)

Moving the cursor
Up

Code:


SendSerial(D8, 57600, 0x1B, 0x41)


This will move the cursor up. If the cursor is already on the top line it has no effect.

Down

Code:


SendSerial(D8, 57600, 0x1B, 0x42)


This will move the cursor down. If the cursor is already on the bottom line it has no effect.

Right

Code:


SendSerial(D8, 57600, 0x1B, 0x43)


This will move the cursor right. If the cursor is already on the right hand side it has no effect.

Left

Code:


SendSerial(D8, 57600, 0x1B, 0x44)


This will move the cursor left. If the cursor is already on the left hand side it has no effect.

Display text

Code:


SendSerial(D8, 57600, 0x00, "EZ-Robot.com Rocks My Socks")


This will output the text (within the quotation marks) to the screen at the current cursor position in whichever display mode is currently set.



Further descriptions and examples of the above codes will follow along with demo videos and photos.


This is the result of just using the display text command. Notice how the next text follows from the old, no overflow, no picture mode and requires a lot more work.
User-inserted image

This is set to return to home and clear prior to outputting however no picture mode has been set and therefore the display is incorrect. Also, cursor is set to on (note the _ after the text).
User-inserted image

This is with the script correctly set up to output in the correct format and picture mode, with double height double width text for the "EZ-ROBOT.COM", single height double width for the "TellyMate Demo" and single height single width for the remainder of the text.
User-inserted image

A short video which shows different sections of the text in the last image being displayed.



Another video which shows some of the various functions mentioned above, so you can see what they do.


Further videos displaying the above control sequences will also follow shortly.
June 24 2013
This post is reserved for any questions and answers posted by the community.
July 3 2013
@Rich - Thanks for all the great work on the TellyMate examples/write-up! Glad that batsocks had an easy "fix" for the cursor positioning. I get how to position the cursor now with your updated info in post #2. Kudos! :)
July 4 2013
The code should work on all variants of the TellyMate. There are functions I have not yet covered, such as redefining characters for example as these are not supported by the tiny. I hope to receive the other variant from Batsocks when they next make a batch up - if he remembers. If/when I do I will add those functions too along with connection tutorials for the boards.

I still have a few examples left to do, I want to show how to display sensor readings and update them within a fixed display. How to display bar graphs (if possible with the Tiny, I am unsure at the moment). Etc. More will come when I get the chance to play - it's just awkward since I mainly use my HTPC as a test rig which is connected to the TV that the TellyMate is also connected to.

Anyway, glad that the new hex method makes sense.
July 11 2013
With a huge thank you to Batsocks.co.uk I now have two other variants of the TellyMate board which I will write up tutorials on for assembly (TellyMate TTL) and connection (TellyMate TTL and TellyMate).

I will also provide the updated code samples for using the functions which the TellyMate Tiny doesn't support. This will come in over the next few days.
April 7 2014
Hi rich as you all know I am still a big inner in robotics and I do not know many definition so I hope I am not troubling you but what is a Telly mate
April 8 2014
It's no trouble, this actually reminded me I still have the other Tellmate variants to cover too.

The Tellymate is a serial device which can output text and graphics to a TV through the composite connection. Similar to the LCD displays used in some robots but uses any display with a composite connection (the yellow plug, along the lines of scart). This means old TVs can be used as can small in car monitors.

They are a little out of date to be honest since you can pick up a small tablet which could be programmed to do a better job but if on a budget or want a retro feel these things are great.

If you have a look at the videos in this topic you should get an idea of what they do.