Tellymate Tiny

 
#1

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 Smile

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 Smile

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 Smile

#2

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.

#3

This post is reserved for any questions and answers posted by the community.

#4

Lol I really would like to take advantage of this feature , but I'll let you get bugs worked out first.

#5

@Rich ...nice to see you back albeit not 100 percent I am sure..........Thanks for the easy to follow pics Smile I too am thinking of the advantage of sending serial data to a TV, when 99.9 percent of users have an LCD screen......unless you want to create a cool effect something similar to the old program (the old timers will remember) Twighlight Zone, where Rod Serling took over "your regular broadcast". Shades of the government taking over the internet. This effect might be pretty cool on an old black and white!

#6

RICH i see you like my idea on the tellymate tiny,since i bought it up awhile back.
THE wiring was the same i did for mine ,and i did a simple script "hello EZB world " and worked great

Here is a simple serial script that DJ POSTED.
tellymate script.

ezB_Connect1.EZB.Uart.SendSerial(Digital.DigitalPortEnum.RD0, Uart.BAUD_RATE_ENUM.Baud_57600, "This is text!"Winky;

SAME script i used on my serial

EDIT sorry guys i put the wrong info up on the script i explain the script i used thats the same as RICH uses
where i got the info DJ has script help in setting and has many examples like this one
example : sendserial (DO ,9600 "THIS IS TEXT" )

#7

ONLY item i change was how it was mounted,i put it on a small board just a little bigger and added a tie wrap to hold the video cable since it may break and added a few holes to mount the board on your robot.

IF you dont need to may be use hot melt (ugh) or tape around the board so doesnt short out

#8

@robotmaker, great to know you tested and have it working! If I had a Telymate I would definately post a pic of an old fashioned BandW TV with some text that says "Hello EZ world, I am from the future and it is filled robots helping mankind" It would be tuff to find and old Black and white tv...might have to look in granma's basement Smile
Just my thoughts

#9

@irobot, thanks. I don't stay down for long Smile The tellymate is ideal if you want to go for an old fashioned, retro style robot with a TV in it. Something like an old 70s or 80s style robot.

@robotmaker that is for the SDK not EZ-Builder. All of DJs work with the TellyMate was prior to EZ-Builder existing. If you paste that into EZ-Script it will not work. Also the code you posted is only for adding text, the graphics commands, clearing the screen, positioning of text, turning on and off the cursor etc. are all in there too somewhere, it's all on the datasheet I just need to wrap my head around it Smile

Your post brought it to the forefront of my mind and since I'm not 100% and taking some time off work it was a good time to play Smile

I'm only bench testing it so mounting it is not an issue for me, it is an oversight since there are no mounting holes, so a bit of breadboard and the pin headers may be needed after all, depending on application etc.

#10

Great write up on the TellyMate Tiny, Rich. I'm looking to get the full-sized version so the information that you've provided here has been a great help. However, could you clear something up for me concerning positioning the cursor? I attempted to follow the examples you provided with the ASCII chart and I came up with different values for the x,y positions in your examples. I'm sure it's just my brain not grasping something.

x,y position 0,8 you said rc was a space and a left-parenthesis. But when I compare that to the ASCII chart the x,y position would be 1,7. 1 = space, 7 = left-parenthesis.

x,y position 12,0 you said rc was a plus-sign and a space. Compared to the ASCII chart the x,y position would be 10,1. 10 = plus-sign, 1 = space.

x,y position 17,19 you said rc was the number-zero and the number-two. Compared to the ASCII chart the x,y position would be 15,17. 15 = number-zero, 17 = number-two.

*confused* What am I doing wrong?