This BT Textphone has trained up V.21 and can be used.
Here it has trained up using BAUDOT
It factory resets to ITU V.18 Annex G which sends CI as specified in ITU V.8 and V.18 and waits for ANS 2100Hz
Read ITU V.25 for the Modem setup sequence. Short burst are sent so that the V.21 Carrier Detect is not turned on.
However it can be configured to each of the ITU V.18 Annex
It can be used to do VCO with a second phone and the VCO button or Shift-VCO
This is an early version of the Ultratec Supercom.
This defaults to BAUDOT when you turn it on.
It seems to support the same codes listed in the Ultratec Superprint 200 manual
The later versions that have the SK and GA keys use a different set of modulations.
It uses the acoustic coupler. You dial on a PSTN landline and place the hanset on the acoustic coupler. Later versions have a telephone lead as well.
To AutoDetect, you may need to dial the call on the PSTN phone, and place the handset on the Ultratec textphone and turn it on.
If the Ultratec Minicom is unplugged, it whistles ITU V.21 mark 1650Hz just after turn on.
The Ultratec Compact has a blue adendum leaflet. It sends 1650Hz on the first key press after turn on.
You use the signal indicator to tell if you have voice or modem at the other end.
Ultratec manuals include this:
I tried to use earbuds and microphone and milk bottle tops.
Here I use the earbuds mounted in washing up foam pads to make a proof of concept acoustic coupler.
Webaudio is used to send and receive BAUDOT squarks.
The landline PSTN phone is used to dial, and the Webpage, webaudio and "proof of concept" Acoustic coupler used to send and receive BAUDOT.
https://homepages.plus.net/dougrice./dev/UART/micBaudotDecode.html - proof of concept webpage
This link tried to document the names of the signals on the RS-232 cables. The names date back to the early 1960's when computers and modems were in seperate boxes.
http://ccgi.dougrice.plus.com/cgi-bin/wiki.pl?Modems
This link has some interesting early history, which explains the confusing names used for signals and abreviations.
https://www.auvik.com/franklyit/blog/history-of-the-modem/
Early modems for V.21 had a RS232 interface and loads of signals defines in the RS232 and V.24 specs. ITU V.25 and ITU V.8 describe calling and answering tones used to establish connections.
ITU V.25 is worth a read as it specifies how a modem sends calling tone and answer tone. Modems work over a variety of telephone circuits and private wires with many ways of signalling. A modem needs a simple calling and answering tone signalling.
More modern modems may have a USB plug and use the AT commands.
WebAPI allows a webpage to be used to interface to the modems
http://ccgi.dougrice.plus.com/cgi-bin/wiki.pl?AT_Commands_-_Serial_Using_Web_Browser
ITU V.24 "List of definitions for interchange circuits between data terminal equipment (DTE) and data circuit-terminating equipment (DCE)"
The C in DCE is "Circuit-terminating" not "computer" - easy to be confused. -
https://www.analog.com/en/resources/technical-articles/fundamentals-of-rs232-serial-communications.html is well worth a read.
https://pinoutdiagrams.com/cable/rs232-null-modem-cable-pinout
When I had my first PC about the the time of the IBM XT PC, we used serial ports and RS232 leads. I did not have a dial-up modem. The RS232 leads could be tricky to get to work. I had a Ball Point Pen test, short pin 2 and pin 3 and see if you got an echo when using Putty or HyperTerm.
At the time, I never really understood DTR , DSR, DTR, RTS, CTS in the modem context and without the modem, it is easy to get confused. DCE does not mean "Data Computer equipment", it is short for "data circuit-terminating equipment" (DCE).
[ computer running Terminal software ]--[ RS232 lead ]---[ modem ]--[ Telephone line ]--[ modem ]--[ computer ]
DTE ->|-> DCE
We used:-
[ computer running Terminal software ]--[ RS232 lead wired as null modem ]---[ computer ]
DTE ->|-> DCE
People used to have a box to fake the signals to get RS-232 leads to work, and there are various null-modem wiring diagrams.
I suppose the computer program had to wait until these signals indicated the computer at the other end was connected.
RS232 is very much alive, but more at the API interface than the DB25 cable.
ITU V.24 defines the circuits. The diagrams below are useful summaries.
This document has a very useful summary.
See the Cable and Adapters diagrams. The Minimum Straigt Cable diagram explains how the signals are grouped.
Normal timing sequences during establishment of communications are shown below.
On half duplex circuits, RTS is dropped as soon as the data is sent. This is to signal a turn around of the circuit.
DTR > _ _ - - - - - - - - - - - - - - DSR < _ _ _ - - - - - - - - - - - - - RTS > _ _ _ _ - - - - - - - - _ _ _ _ CTS < _ _ _ _ _ - - - - - - - - _ _ _ TD > _ _ _ _ _ _ - - - - _ _ _ _ _ _
CD < from modem indicating Carrier is being received.
So this should be used to hold back buffered user typing.
If characters are received before CD is asserted, It could be the V.18 CI.
Check if there is a frame error or parity error. Check if they are spaced correctly.
Microchip 16F877 stop bits can be used for 9th bit Address.
Some UARTS lock if there is an overrun error and need to be reset. e.g. Microchip 16F877
See the Cable and Adapters diagrams.
The API used still hang onto the RS232 signals.
Some API documents for windows and Linux.
Using Web_serial to do RS232 to a Modem.
https://developer.mozilla.org/en-US/docs/Web/API/Web_Serial_API
http://ccgi.dougrice.plus.com/cgi-bin/wiki.pl?AT_Commands_-_Serial_Using_Web_Browser
Typically the Modem takes a serial signal, using voltages encoding the "1"'s and "0" using MARK and SPACE and uses FSK frequency Shift keying.
[computer program]--[UART]--[modem]--[telephone system]--[modem]--[UART]--[computer c program]
The UART interface to the computer program is summarised as a TX and RX register and two flags TxEmpty and RxFull.
CPU - UART:-
A write to TX resets TxEmpty. A read from RX resets RxFull.
UART - Host:-
A read from TX sets TxEmpty. A write to RX sets RxFull.
If you have a FIFO then there need to be changes.
TxEmpty may need to be TxSpaceAvailable RxFull becomes RxAvailable
I have a JavaScript page that explores this: http://www.dougrice.plus.com/dev/DigiSpark/text0.html
Between the UART and the C program is a lot of API.
https://developer.mozilla.org/en-US/docs/Web/API/Web_Serial_API
http://www.dougrice.plus.com/dev/serial/rpi_ser_tcc.c
And these dabbles to try driving an old modem over a serial port. The Webpage does not always see the USB modems, so I have to use a serial lead plugged into a Modem.
Not all modems recognise the same AT commands and these do not work.
The web pages automate driving the modem just enough and can always be copied and extended.
https://homepages.plus.net/dougrice./dev/DigiSpark/simpleterm/simpletermModem.html
https://homepages.plus.net/dougrice./dev/DigiSpark/simpleterm/simpletermModemOne.html
V.21 modems are FULL DUPLEX and uses these frequencies
ITU-T v.21
Originate
1080 = Carrier
1180 = Space (Carrier + 100Hz)
980 = Mark (Carrier - 100Hz)
Answer
1750 = Carrier
1850 = Space (Carrier + 100Hz)
1650 = Mark (Carrier - 100Hz)
By using four frequencies , it is possible to use the 2-wire Telephony. so both diagrams (a) and (c) can be used.
In the diagram (c) ( two wire - FULL DUPLEX ) , It would be more difficult to detect the CARRIER if the TX and RX used the same carrier.
In the diagram (a) ( four wire - FULL DUPLEX ) , consider only transmitting if the carrier from the other end is present.
BAUDOT only sends when a key is pressed and the modem listens and RX is disabled when it is sending.
This is 2 wire - Half Duplex
BAUDOT: - 5 bit * carrier (for 150ms) + 0 + 11000 + 1 (for 40ms) * * 0 - 1800Hz - SPACE * 1 - 1400Hz - MARK * START 0 * STOP 1 *
It has an added complication of needing to shift between letters and numbers which must be tracked for both directions.
https://learn.adafruit.com/clue-teletype-transmitter/tty-fundamentals
There is a EDT mode that is also 2 wire - Half Duplex and uses the V.21 frequencies , but 110 BAUD.
In the diagram (b) ( two wire - HALF DUPLEX ) , consider only transmitting using BAUDOT or EDT based on the method used from the other end.
The CD output should ensure that the carrier has been present for long enough and at a strong enough level.
It is okay to transmit a "ping" test character sequence if the CD has not been detected a carrier from the other end.
See ITU V.8 for examples.
A TDM telephone system can be sumarised by this diagram, where the codecs are clocked at multiples of 8kHz sample rate. Jitter buffers were used as well.
The microphone voltage is sampled at 8000 times per seconds. TDM expects the clk to be sychronised to a common point.
You could do this:
If you have TX and RX, TDM got it right.
If the blocks are not clocked from a central source, you get slips. It is possible to slip less than a sample period if you use a DSP to upsample to a higher sample rate and down sample. This is a bit like converting to analogue and mixing and resampling.
Below is a reference telephone circuit from DL Richard's book "Telecommunications by Speech" from 1970's. A Phone line is two wires of equal length and equal impedance. The voltage across the phone is midway between the power supply voltage. There were different guages of coper wire used. BPO630 has a table.
https://dfrtelecoms.org.uk/dialtele.htm has a simple introduction to how a phone works.
https://www.robkalmeijer.nl/techniek/telecom/telefonie/index.html has some useful summaries and has this really simple diagram of a telephone.
http://www.dougrice.plus.com/dougnapTheory/index.htm and http://www.dougrice.plus.com/dougnapTheory/indexFurtherNotes.htm has some more theory about the two wire telephony. Rice simplified Webb's equations for a telephone exchange in PO630 , which is available from the BT Heritage site. PK Webb also wrote PO603. These were written in the 1970's and are about 50 years old.
https://www.digitalarchives.bt.com/Calmview/Record.aspx?src=CalmView.Catalog&id=BTA%2f3+BT1%2f11+RES%2fRES10%2f15%2f630&pos=7 PO630 Computation of the Characteristics of Telephone Connections
and
https://www.digitalarchives.bt.com/Calmview/Record.aspx?src=CalmView.Catalog&id=BTA%2f3+BT1%2f11+RES%2fRES10%2f15%2f603 PO603 - The Definition and Measurement of the Characteristics of Telephone Sets
Computation of the Characteristics of Telephone Connections
So it is possible to write down a list of 2x2 matrices and for each frequency use a computer to work out the the Microphone to earphone sensitivities. In about 1984, I was using a NASCOM 2 , Z80 based computer using BLS pascal. At some stage I purchased Turbo Pascal 3.0 for CP/M on an Amstrad 664, and also for the IBM PC. In 2009, the code was converted to JavaScript to run on the web browser.
The model for the four wire exchange model becomes:
and matrices for each element:
Hybrid using a transformer, similar to that used in GPO dialphone:-
This simplified circuit from a real phone schematic. It drives the line using a voltage controlled current source, and is line powered.
( The Bell and Hookswitch have been omitted to keep things simple. )
https://www.phonepages.org.uk/portfolio-item/statesman/
Using Thevenin / Norton Theory to redraw the equivalent circuit:-
http://www.dougrice.plus.com/dougnapTheory/indexFurtherNotes.htm
The textphones were different and ITU V.18 lists six modems. From:- https://www.discapnet.es/innovacion/productos-de-apoyo/terminales-de-texto-para-personas-con-discapacidad-auditiva
The most commonly used text terminals for deaf people are:
Not all text phones use and or support all of them. Some support a selection.
| Modem | mode | Mark | Space | Baud Rates | notes |
| BAUDOT | SIMPLEX | 1400Hz | 1800Hz | 50 / 45.45 | |
| DTMF | SIMPLEX | N/A | N/A | N/A | sends letters using * # ending with a digit |
| EDT | SIMPLEX | 980 | 1180 | 110 | |
| V.21(orig) | Duplex | 980 | 1180 | 300 | |
| V.21(ans ) | Duplex | 1650 | 1850 | 300 | |
| Bell 103 (orig) | Duplex | 1270 | 1070 | 300 | |
| Bell 103 (Answ) | Duplex | 2225 | 2025 | 300 | |
| V.23 (orig) | Duplex | 390Hz | 450Hz | 75 | |
| V.23 (Answ) | Duplex | 1300Hz | 2100Hz | 1200 | |
| VOICE conversation | SIMPLEX | 300Hz | 3400Hz | N/A | |
| VOICE conversation | HALF-DUPLEX | 300Hz | 3400Hz | N/A | |
| VOICE 2-wire | DUPLEX | 300Hz | 3400Hz | N/A |
| ULTRATEC TURBO | SIMPLEX | 1400Hz | 1800Hz | bit length not constant |
Hopefully a common mode can be found.
Duplex have a carrier that would annoy a Hearing person
SIMPLEX is harder to define.
Above the SIMPLEX modes only transmit when needed, using the same MARK and SPACE frequencies for TX and RX.
MARK and SPACE comed from Teegraphy. Some Telegraph machines put a mark on a paper tape and some decoded the character and printed it.
http://www.computer-timeline.com/timeline/emile-baudot/ mentions "The printing telegraph of British-American inventor David Edward Hughes"
I am not too sure what the definition of DUPLEX, HALF-DUPLEX, SIMPLEX
DUPLEX - channels can be used at the same time. SIMPLEX - channel can ony be used in one direction - source to sink. HALF-DUPLEX - channels can be used one at a time.
If you pair multiple channels, each could be SIMPLEX, to allow DUPLEX communication.
For SPEAK, TYPE, HEAR, READ, we have a rich combination of DUPLEX , HALF-DUPLEX SIMPLEX.
We say TCP/IP which is TCP over IP. We can use similar notation to list our options.
So we could say ( as in TCP/IP or TCP over IP )
VOICE / phone handset / PSTN VOICE / Headphone / PSTN VOICE / Earbuds / MOBILE VOICE / Hands free / MOBILE
TEXT / modem TEXT / IP
TYPE / PC keyboard / PC TYPE / smartphone soft keyboard / Mobile TYPE / plug keyboard / Mobile TYPE / bluetooth keyboard / Mobile
READ / laptop screen / PC READ / smartphone screen / smartphone
http://ccgi.dougrice.plus.com/cgi-bin/wiki.pl?My_Unknown_Theorem_Examples
If the channel supports DUPLEX the users may still need to use HALF-DUPLEX.
List the path end to end and write down when the path needs to go to HALF-DUPLEX.
The HALF-DUPLEX points are like the narrow bridge or speed chicane on roads.
The call has been set up and both ends can TALK or TYPE.
These are HALF-DUPLEX points.
Textphone, used keyboards and UARTS and modems to send the typing over the 2-wire Telephony using audio instead of voice:-
and Textphone, used modems UARTS and displays to display the typing over the 2-wire Telephony :-
Summary of a 2-wire Phone:-
- X - Switch controlled by microcontroller in phone.
phone line -- [ Hookswitch ] - X - [ bell / alerter ]
X - Caller ID -- [ display ]
X - To Hybrid
[ dtmf keypad ] - [ dtmf IC ] - X --|
[ microphone ] - [ audio ] - X --|
[ keyboard ] - [ modem ] - X --|
|-- to Hybrid
from Hybrid --|
| -- [ audio ] - X - [ loudspeaker / handset ]
| -- [ modem ] - X - [ display ]
http://www.dougrice.plus.com/dougnapTheory/index.htm has notes about 2-wire phones and Hybrids
https://www.britishtelephones.com/diagrams/n846.pdf has the circuit for phone and explains the hookswitch.
The hook switch used to connect the Bell circuit across the line until the User picked up the handset.
The bell was AC coupled to the phone line. When the user picks up the handset, The phone draws current.
With the handset off hook the hybrid circuit was connected to the phone line.
The line current powered the phone and signalled that the phone was off hook.
Modems that plug into a phone line have a similar functional block diagram.
simplified Hybrid used in Post office 706 and 746 from the 1960's
Consider the coil, assume the windings are the same, so the voltage across each winding are the same.
If ZL == the Balance Z components, and the Earphone is high impedance, then when the voltage V3+V2 == V1+V across Zl, the Voltage across The ear phone will be minimal when the person speaks.
When the person does not speak, the AC Voltage across the MIC will be zero so V Earphone will be -V across ZL.
Circuit for Post Office 706 Telephone
Loop Dis dialling for Post Office 706 Telephone
Telephones use DTMF to speed up the signalling.
http://ccgi.dougrice.plus.com/cgi-bin/wiki.pl?DTMF_Dabbles
Once established , a phone call is between KNOWN and KNOWN end points and allow either end to talk next.
The Client Server model, only allows the Client talk to the Server, which can respond. A PEER to PEER protocol needs to be engineered on top, with keep alives
Client Server is from an UNKNOWN to a KNOWN, but
IP4 addresses makes the endpoints UNKNOWN
Audacity has been a really useful tool to record Telephone Audio.
The Web Browser is a useful tool!