No Next Item No Next Conference Can't Favor Can't Forget Item List Conference Home Entrance    Help
View Responses


Grex Hardware Item 107: Oddball question about teletypes.
Entered by arthurp on Mon Apr 8 06:54:39 UTC 1996:

My Ma just got a teletype (she has about a 90% hearing loss) that she
can use with this system to talk to other people over the phone.
It involves talking to a 'court reporter' type in the middle who has
a similar teletype to bridge from people without to my Ma.  The deal
is I wanted to talk to her directly with my modem.  Problem being
that I found out the specs on this teletype, and it is 45.5 buad.
I think you can all guess that my modem won't go that slow.  You
can hear the individual bits when this thing beeps.  Anyone know if
a 45.5 baud modem could be gotten for the end of an RS-232 cable?
Where?  How much?  Just curious.  I guess I could sit down with this
thing sometime and listen to it and just whistle into the phone...  

116 responses total.



#1 of 116 by rcurl on Mon Apr 8 07:04:19 1996:

Let me understand this....does the other person talk, and the "reporter"
retransmit the message by the teletype, which is printed out at your
Ma's? Does the other person *hear* your Ma, or is the message sent by
teletype to them, too? What is the modulation? Standard teletype FSK?
It comes to me vaguely that there are available chips for encoding and
decoding teletype, since (some) hams (have) use(d) rtty as a mode. 


#2 of 116 by srw on Mon Apr 8 07:37:24 1996:

75 baud was the slowest modem I could remember. That was a long time ago, too.


#3 of 116 by gregc on Mon Apr 8 07:48:50 1996:

My ghod, this thing sounds like an real *teletype* machine. And a really
ancient one to boot. I wonder if it uses baudot encoding?

Rane the way I've heard this works is as follows:
1.) Hearing impaired person calls up service center with teletype and
    gets connected to go-between person. He/she then tells this person who
    they want to talk to.
2.) Go-bewteen then calls other party on voice line.
3.) Hearing-impaired person and go-between carry on printed conversation
    while go-between and other party carry on voice conversation with
    the go-between acting as a relay. Not useful for really personal calls.:-)


#4 of 116 by scott on Mon Apr 8 11:05:38 1996:

Damn, if you'd caught me 5 years ago, I would have given you a teletype
somebody gave me.

If I remember when I'm at work, I'll look at a Black Box catalog to see what
they have.


#5 of 116 by n8nxf on Mon Apr 8 13:43:17 1996:

Welcome to the low-tech, high priced world of the hearing (etc.) impared!
 
What your mom has is indeed and modern version of the TTY.  Often refered
to TDD in the hearing impared world.  Yep, 5 bit, 45.5 baud, daudot code
still lives!  Ineed, they make TTY modem.  $450 a shot but they also do
standard 300 baud!  Imagine.  I've contacted various modem manufactures 
to see if any of them were considering adding TTY capabilities to any of
their modems but no luck.
 
The service your mom calls is cally a Relay.  Here in Michigan it's the 
Michigan Relay.

If your in luck, your mom's TDD can also do standard Bell 103, 300 baud.
None of our TTDs are 300 baud capable so I can't tell you how well that
works.
 
The one nice thing about TTY is that it will tolerate switching between
voice and TTY, other phones on either lines being off-hook, noisy lines,
etc.  Try THAT with your 300 to 28.8K baud modem!
 
I've always though it would be a neat software project to make a regular
old 8 bit sound card do TTY service.  I, however, lack the software back-
ground and the time to learn it.  I also get the feeling that those in
the TDD business keep a tight fence around their little low-tech egg.
Getting technical information out of some of them is like squeezing grape
juice out of a rock!  (Hummm.  I think I'll try surfin the web on the
subject ;)


#6 of 116 by rcurl on Mon Apr 8 14:50:44 1996:

Klaus, standard amateur radio multi-mode data controllers support rtty.
They cost a lot less than $450.The MFJ receive only RTTY/ASCII/CW
interface is only $70. I don't know what modulation it uses, though -
your're the expert 8^}.


#7 of 116 by n8nxf on Mon Apr 8 14:59:20 1996:

Yea, I'm not sure if it's the same thing.  Close though, I suspect.  I need
to find some good, solid technical specifications for TDD in the US.  I'm
sure its available somewhere...  Did find a source for high speed, TTD
compatable modems.  No price given on their web page.  Will call and find
out.  (BTW.  I was off on the price of the TTY / 300 baud modem I mentioned
above.  It's $498!!!)


#8 of 116 by srw on Mon Apr 8 17:44:51 1996:

Why don't we get your ma a vt-100 terminal a cheapo modem and an account on
Grex? She could keep her Teletype, too. Just a thought.


#9 of 116 by arthurp on Mon Apr 8 20:39:43 1996:

I am affraid gregc got the thing right.  45.5 baudot coding...  :(  I have
been trying for years to get her a terminal and modem to connect to
*anything*, but she is *very* reluctant to use new technology.  She has had
the tty for a while now and has only just started to use it.  Getting a
dumb-term would be hard to do now that she has the tty, and Grex is a LD call
unless they get a service, and the tty works for my three sisters, but the
term wouldn't.

I'll keep after this, but I am not very encouraged any more.  :(


#10 of 116 by n8nxf on Tue Apr 9 11:58:00 1996:

After looking around the web a bit, I found a Co. that sells a standard
19.2K baud / FAX / TTY modem.  Internal modems are $299 and external is
$398.  The Co. is NXi and those prices include windoze software that looks
pretty decent.  Wow.  A practical modem at a almost decent price!


#11 of 116 by ajax on Tue Apr 9 17:53:21 1996:

It beats $500 for a 300 baud modem, but I can't bring myself to agree 
that that's a decent price, considering some internal V.34 modems are
under $100!  Since many computerists want V.34 now, it would still
mean having two modems, so whether it tops out at 19.2k or 300 baud
would matter little.


#12 of 116 by scg on Wed Apr 10 07:22:23 1996:

You could get your mom a vt-100 terminal that would connect directly to your
computer, without Grex, and tell her to think of it as just a long distance
phone call, and the terminal as just another TTY.


#13 of 116 by arthurp on Wed Apr 10 11:36:30 1996:

My intent was to figure out some way to use hardware we both have already.
I do think it might be a neat project to build something to play the tunes
from my serial port, and write a little ditty to control it.  That's on a
burner way way in the back, though.


#14 of 116 by n8nxf on Thu Apr 11 11:24:21 1996:

Using a sound card would be the way to go.  Just add microphone and speaker
in some old ear-cups and write some software ;)  (I need to drag out the
specs for my sound card some time...)


#15 of 116 by arthurp on Thu Apr 11 12:23:27 1996:

I (gasp) don't have a sound card, but I have a CD-ROM now (couple days old)
so I wouldn't be too opposed to getting one.  That does seem like an easy way
to do it now that you metion it.  I was thinking of building two circuits that
play a steady tone and then gating one or the other (or neither) into the
output speaker based on the level of the serial data line.  I am not too sure
about how easy it would be to mix digital and analog circuits, though.  I've
only ever worked on digital circuits before.


#16 of 116 by n8nxf on Thu Apr 11 18:20:42 1996:

I'm not sure how many tones are used in a TDD.  Each tone may even be a
combination of tones as used in DTMF touch tones.  Your gating idea my work
OK but you might run into problems when you gate a tone somewhere other
than at a zero crosing.  It may be necessary to do some filtering or switch
on zero crossing to elimitate any distortion.
 
I have a TDD sitting here on my desk.  When I listen to the tones, it first
seems to put up a carrier and then put the tones on top of that.  When I type
a continious string of characters the carrier is continious, with the tones
on top.  When I stop typing the carrier drops after about half a second.  it's
hard to tell if there are one or two tones besides the carrier but the carrier
seems to be around 1000 Hz.
 
I'm not sure if one can do all that with a sound card, but it's worth looking
into when a used 8 bit card can be had for $15 or less!
 
If you do build your own hardware, you may want to consider using the parallel
port.  It has 8 bidirectional data bits, plus some handshaking, you can tweek.


#17 of 116 by arthurp on Fri Apr 12 23:51:32 1996:

Yeah, I started thinking about it and parallel came to mind as a possibility.
I am not sure how much trouble a half wave distortion will be when you can
hear the duration of a single bit, though.  I don't know.  I didn't realize
I could get sound at that price, either.  Hmm.


#18 of 116 by gull on Sun Apr 14 04:31:34 1996:

If it's the same as 45.45 baud RTTY, I think there are just two tones, 
'mark' and 'space.'  God knows what the frequency shift would be, 
though.  If it's standard, you might be able to pick up one of those old 
C64 RTTY interfaces cheap at a hamswap, and hook it up to an acoustic 
coupler or something. :)



#19 of 116 by arthurp on Sun Apr 14 21:39:51 1996:

As in Commodore?  So there are a couple sources out there to get these things
other than the company that sold one to my Ma.  Cool...


#20 of 116 by scott on Sun Apr 14 22:53:20 1996:

The tech is certainly old enough.  Heck, if you dig into those project books
for electronics, you might find one.  I've got a CMOS design for a 300 baud
modem some where...

(I wouldn't be at all surpised, now that I'm thinking about it, to find a
single chip somewhere that does it...)


#21 of 116 by n8nxf on Mon Apr 15 13:38:43 1996:

I looked through the manual that came with my sound card but it did not
touch on writing software for the things, other than IRQs and register
addresses.  There was a lot of TTY stuff written for the Commodore but
I don't have one of those and I don't intend to ;)
 
I recall seeing a book on programing and sound cards at work.  I'll have
to see if I can find it again.  After playing with my sound card and some
canned software, it seems that an 8 bit card sould be capable of doing the
job.  I'll try recording some TTY tones and playing them back to the TTY
(TDD) to see if it can recognize them.


#22 of 116 by arthurp on Tue Apr 16 00:28:56 1996:

Can you get input from a sound card and convert it into a spectrograph output
so I could tell what tones the TDD on the other end is playing?  I didn't
know you could do that kind of input with a sound card.  There seem to be a
few references to SoundBlaster in my Ralf Brown Interrupt list.  I am sure
some of those are about port addresses and driver functions.  Maybe I'll be
able to find out something useful in there.  


#23 of 116 by n8nxf on Tue Apr 16 13:45:17 1996:

Now there's an idea!  I'll bet there is software out there that can use
a sound card as a crude audio spectrum analyzer.  I'll have to browse some
of the local BBSs.
 
Sound cards have a microphone input (Standary 600 ohm dynamic) and speaker
output jacks.  You don't even need to amplify the audio output if you don't
require room-filling sound.  Interfacing the sound card to phone could be as
simple as gutting an old 300 baud modem with ear-cups.


#24 of 116 by arthurp on Tue Apr 16 22:52:29 1996:

Yeah, I think the sound card certainly has lots of the circuits needed, but
I would have to have some way to distinguish between no bits, low bits, and
high bits coming out of my phone as well as being able to generate bits into
the phone.  If a SB can't do that, requiring me to build, I might be just as
far ahead to build all.  If I can avoid learning to program the SB...  ;)


#25 of 116 by n8nxf on Wed Apr 17 17:18:36 1996:

I dug into my files last night and came up with the following
information on TDDs.
 
In the US, the new TDD standard is Bell 103, ASCII, 300 BPS, 8N1.
The old standard is Weitbrecht, Baudot, half-duplex, 45.5 BPS.
 
A standard modem should be able to handle the Bell 103, 300 baud.
The (Robert) Weitbrecht code was not that easy for me to figure
out.  However, with the help of some really cool FFT software that
works with my sound card, my wife's TDD and the ARRL Handbooks 
definition of 5 bit Baudot, I came up with the following: 
 
Baudot code uses two tones.  One for mark and another for space.
1,800 Hz = Logic 0.  The Baudot code is also preceeded by and
followed by a 150 ms long mark tone.
 
To prove my theory, I wrote a simple little Qbasic program that
would produce the Weitbrecht Baudot tones for the letter "R" over
a PCs internal speaker.
 
================= QBASIC Program Start =========================
 
PRINT " This sample program will produce a TTD letter ' R '"
PRINT "  whenever a key is pressed.  Use ^BREAK to exit"
 
Snd:
    DO
    LOOP UNTIL INKEY$ <> ""
 
        SOUND 1400, 2.77  'lead (150ms)
        SOUND 1800, .407  'start bit (22ms)
        SOUND 1800, .407  'bit 1 (22ms)
        SOUND 1400, .407  'bit 2 (22ms)
        SOUND 1800, .407  'bit 3 (22ms)
        SOUND 1400, .407  'bit 4 (22ms)
        SOUND 1800, .407  'bit 5 (22ms)
        SOUND 1400, .611  'stop 1.5 bit  (31ms)
        SOUND 1400, 2.77  'trail (150ms)
        PRINT "R"
 
GOTO Snd
 
======================= Program End ========================
 
When I ran this program and held the TDD up to the speaker on the PC, 
the TDD displayed the letter "R"!
 
By modifying this program so that it will produce the correct tones
for all the Baudot characters, it can become quite usefull.  If the
party you are communicating with can speak but needs a TDD to "hear",
then you can listen to the party via their voice and you "talk" to them
via a TDD program running on your PC!  It may be helpfull to put an
external speaker on your PC to hold up to the phone, or whatever.

Have a ball!  ;)


#26 of 116 by n8nxf on Wed Apr 17 21:03:11 1996:

My text got a bit beat up there...  For TDD Baudot code, mark = 1 = 1,400Hz.
Space = 0 = 1,800Hz.  Some text that danr sent me a few years back claimed
that space was 1,800Hz and mark was 1,070Hz.  I tried 1,070Hz but it even
sounds wrong!  A mark freq. of 1,400Hz works fine and sounds right.
 
Also, the 300 baud ASCII standard mentioned above is half-duplex.


#27 of 116 by arthurp on Thu Apr 18 06:33:37 1996:

Well, my Ma's system is the 45.5 baudot.  That is great to hear, though.  I
am a long way along on this project now, and I haven't even done anything.
Thank you!  :)


#28 of 116 by arthurp on Thu Apr 18 12:20:41 1996:

OK, I just finished writing a little ditty in C that takes keystrokes and
makes them into the pretty little beeps at the PC speaker.  Trouble is I don't
know what the mapping is for the bits.  The docs for Ma's TDD say it plays
these chars...     A-Z   0-9  ^H  [CR] [sp] + - = ! $ ' ( ) " / : ; ? , .
Say, that's 54 characters.  How do you encode 54 things with 5 bits?
Last I checked that was 32 combinations.  Is this thing using some kind of
escape sequence for some things?  Anyone have a 'map' of the bit patterns?
I think it would be neat to get at least enough stuff working to send
characters to Ma's display.  I can work on reading characters from her end
later.


#29 of 116 by n8nxf on Thu Apr 18 17:34:35 1996:

Those 5 bits are used twice.  Once in letters mode and again in figures
mode.  With the infomation below, you should be able to write a TDD 
emulator:

5 Bit Baudot    Letters Case    Figures Case
 
00011               A                -
11001               B                ?
01110               C                :
01001               D                $
00001               E                3
01101               F                !
11010               G                +
10100               H                =
00110               I                8
01011               J                '
01111               K                (
10010               L                )
11100               M                .
01100               N                ,
11000               O                9
10110               P                0
10111               Q                1
01010               R                4
00101               S              (BELL)
10000               T                5
00111               U                7
11110               V                ;
10011               W                2
11101               X                /
10101               Y                6
10001               Z                "
01000               CR (Carriage Return)
00010               LF (Line Feed)
11111               LTRS (Letter Shift)
11011               FIGS (Figure Shift)
00100               SP (Space)
00000               BLK (Blank)
 
 
On power-up the TDD is in the letter case mode.  If the FIGS key is pressed,
the TDD stays in the figure case until the LTRS key is pressed.
 
Mark = 1,400 Hz = 1 * Space = 1,800 Hz = 0 * Start = 1 bit long space
Stop = 1.5 bit long mark * 1 bit is 22 ms. long
 
Each of the 5 bits in the Baudot code is 1 bit long.  There is a 150 ms.
mark tone before and after each character when typed singly.
When characters come one after the other, the mark tone is about 200 ms.
between Baudot codes.  See the examples below:
 
SINGLE CHARACTER EXAMPLE: THE LETTER "Y":
 
            1  0  1  0  1 = Baudot "Y"
________    __    __    __ ___ ________
150 ms. |__|  |__|  |__|  |   | 150 ms.
     stop^, ^1,^2,^3,^4,^5, ^stop
 
 
TWO CHARACTER EXAMPLE: THE LETTERS "YR"
 
            1  0  1  0  1 = Baudot "Y"        0  1  0  1  0 = Baudot "R"
________    __    __    __ ___ ___________       __    __    ___ ________
150 ms. |__|  |__|  |__|  |   |  200 ms.  |__|__|  |__|  |__|   | 150 ms.
    start^, ^1,^2,^3,^4,^5, ^stop     start^, ^1,^2,^3,^4,^5, ^stop
 
Let it be know that much of the above comes from analysis of an existing,
old, but working TDD.  I may be off on frequencies and timing a little,
but it's close.


#30 of 116 by arthurp on Thu Apr 18 21:49:28 1996:

Great, *now* things are much clearer.  Thanks!  I've got it sounding right
so far.  I was leaving out the lead and trail tone altogether, though.  I'll
have to get ready to make the change quick when I call home to test it. 
Thanks again for the character mapping.  Now back to work...  :)


#31 of 116 by arthurp on Fri Apr 19 09:04:49 1996:

Well, I entered the character mapping into the lookup table and called home
to get Pa to help with it.  What I typed came out garbled.  It was garbled
the same way each time, but it was a mess.  So we made a mapping of 'what I
typed' to 'what came out' and I rewrote the table.  On calling back we got
furthur junk.  Then Marla came home and we ate and went to GNO.  Then while
I was lying awake after the thunderstorm it hit me.  I checked the stuff I
got from y'all and sure enough.  I have a) assumed that logic 1 was the higher
pitch since I thought my ears had told me so, and b) seeing the lower
frequency for the lead and trail had flipped the logic levels of the start
and stop bits.  So as soon as time permits I can try again with by logic
inverted so to speak.  Doh!
<smile>  This *always* happens to me in the middle of the night.


#32 of 116 by n8nxf on Fri Apr 19 13:56:39 1996:

Yea, the high tone being a 0 and the low tone being a 1 is illogical.  I
had to think about it every time too!  Let me know if it works.  It should.
 
I was also thinking that it might be interesting to write it as a TSR so
that it does a translation from TDD Baudot to 8 bit ASCII.  That way it 
can run under a term program, etc.
 
One way to handle the FIGS and LTRS shifts would be to map the FIGS 
characters such that they procuce a Baudot FIGS, followed by the Baudot
character, followed by a Baudot LTRS.  That way the keyboard works the
way most people are use to.  Shifting between FIGS and LTRS always confuses
me!
 
I wonder how easy ths would be to implement on a Mac.  We have three Macs
in the house.  One has sound input and output jacks.  The other two are just
capable of sound output.


#33 of 116 by scott on Fri Apr 19 16:08:01 1996:

The "assert low" approach is likely a result of original design contraints,
such as "how do you use a single transistor (vacuum tube?) to modulate or
demodulate the signal?".  Probably easier to implement a low-pass filter?


#34 of 116 by arthurp on Sat Apr 20 19:38:25 1996:

OK, it sends LTRS just fine now.  The logic in my program that keeps track
of LTRS/FIGS must be hosed, though.  Currently when you type a figs, it sends
a FIGS byte, and ungets the key you typed, sending it on the next iteration.
I think I don't understand their method of switching LTRS/FIGS mode, but I
have stopped thinking about that since LTRS works.  Now it is recieve circuit
time.  The TSR idea under a terminal program is neat, I'll have to think about
htat.  Right now it looks exatly like ntalk.  You currently have to have
ANSI.SYS or equivalent loaded.  It is in C, so it shouldn't be hard to port
to a MAC, especially with hardware support.

I found a diagram for a 741 opamp circuit that is supposed to work with
HAMCOM.  It was designed to work with the serial port, but with a 555 timer,
I think I can make it work in the parallel port, and I think that would be
a lot easier to program for.  (Plus I can add another parallel port and not
have to set up the chip where BIOS will ignore another serial port and I would
have to set it up myself.)

Back to the method of sending FIGS, I think listening to the thing do it's
work would help a lot.  I have been doing this all on theory so far.  I've
called home with it twice now.  I should call again and listen to how this
thing sends FIGS.  It is a pretty simple thing.  The Spec. for Baudot seemed
to say that when a FIG was typed, the reciever would remember it was in FIGS
mode until a LTRS was recieved, so my program works that way.  Maybe this just
sends a FIGS/5bit/LTRS sequence for every FIGS instead.  That would make sense
in light of the silly stuff Ma's machine heard when I tried to send '123'.
We'll find out soon enough.


#35 of 116 by scott on Sat Apr 20 20:12:58 1996:

Wow, I'm impressed.  Yell if you have any questions about analog filtering
the incoming signal; I used to know how to do that stuff.

This could be dynamite shareware!  I think srw has some experience authoring
shareware.


#36 of 116 by srw on Sun Apr 21 03:03:19 1996:

I do -- don't expect too many people to pay.

I am pretty sure it send the figs byte only once for each time it is pressed.
Both the sender and receiver remember they are in figs mode until LTRS is
pressed and sent.


#37 of 116 by arthurp on Sun Apr 21 13:56:34 1996:

OK, I found the problem with sending FIGS.  In my lookup table accessed by
ASCII code, the Baudot stored there is negative if it is in the FIGS case.
This makes keeping track of when to switch states in my send logic real easy.
Well, Duh, I forget to negate the looked-up value after looking it up, so 14
after 2's compliment becomes 18 since the sign bit (top 3 bits) gets chopped
off at send time.  5 becomes 27.  It looks rather like random junk when it
comes out the other end.  Until you (read silly me) remember to change the
sign back.

I finished the LTRS/FIGS logic and the display interrupt for the recieve, and
it does loopback jsut fine. (reading from a pretend port and working on
interrupts generated by me)  Now I just have to make the circuit.  :)


#38 of 116 by n8nxf on Mon Apr 22 16:42:51 1996:

After talking to a friend, perhaps a TSR would not be such a good idea.  It
seems that many of the programs that run under DOS do direct calls so the
implementation of a TSR may be a bit dicy.
 
A couple of chips that might be of use are the LM566 VCO and the LM567 tone
decoders.  These are pretty old technology so I wouldn't be surprised if 
there isn't something better out there for low speed FSK modulation / de-
modulation.
 
Another way to couple the signals in and out of the phone line would be to
put the electronics between the phone base and its headset.  That way one
doesn't have to submit for the expensive testing required for phone-line
connected devices.  Voice Carry Over (VCO) is also retained because now the
headset can be plugged into the box and the TDD can operate in parallel to
the headset.
 
If the hardware and software to do all of this can be sold for $100 or less,
I think you would find a market.  If it could be done for around $50 I'm 
sure of it!  I for one would do it for as close to free as possible since
I don't believe that someone unfortunate to suffer from such a disability
sould also be raked over the coals in order to be able to do something most
of us do day in and day out without incurring an additional expense.  Opps.
Time to get off my soap box ;)


#39 of 116 by n8nxf on Mon Apr 22 16:51:58 1996:

Count me in if you need any further help with this project Charles.  I'm
pretty good with electronic design and my soldering iron.  It's time I 
don't have much of.  


Next 40 Responses.
Last 40 Responses and Response Form.
No Next Item No Next Conference Can't Favor Can't Forget Item List Conference Home Entrance    Help

- Backtalk version 1.3.30 - Copyright 1996-2006, Jan Wolter and Steve Weiss