Date : Wed, 02 Oct 1985 05:03:34 GMT
From : "Ian D. Allen" <ihnp4!cbosgd!clyde!watmath!idallen@SEISMO.ARPA>
Subject: Description and Review of USR Courier 2400 bps modem
Product description, evaluation, and bug report:
US Robotics Modem Courier 2400 (FCC CJE794) Ser. #30-05816 ROM set #242
Bell 103/113 Bell 212-A CCITT V.22bis compatible (300/1200/2400 bps)
Approved by DOC Communications Canada 550 1169 A
Ringer Equivalence: 0.4 Canadian Modem Load Number 36B
Warranty: Two years.
Description:
- plastic case; help summary printed on the bottom; connections via rear
- on-line help screens for everything (AT$ ATS$ ATD$)
- all current modem settings displayable in an on-line table
- internal speaker; slide volume-control on right side of unit
- records duration of call, or use timer as real-time clock
- detailed call progress result codes (e.g. BUSY, RINGING, VOICE)
- automatically repeat-dial a busy line up to 10 times
- ability to dial alphabetic phone numbers, e.g. 1-800-DIAL USR
- outgoing baud rate set automatically according to terminal baud rate
- automatic switch from 2400 to 1200 if called modem is 1200
- optional adaptive DTMF (Touch Tone) dialling - optionally uses DTMF
if line can handle it, otherwise uses pulse
- two RJ11C jacks; one for wall and one for phone
- can dial-out with Answer instead of Originate tones
- can toggle switch hook, e.g. to transfer a call
- can wait for second dial tone
- can wait for "answer" - silence after a ring
- optional fast dial-tone detect
- Morse Code capability - 1270Hz tone 62ms dot 186ms dash
Result Codes:
OK
CONNECT
CONNECT 1200
CONNECT 2400
RING
RINGING
BUSY
VOICE
ERROR
NO CARRIER
NO ANSWER
NO DIAL TONE
'AT' Command set:
$ HELP Command Reference Screen (this list)
S$ HELP S-register Reference Screen
D$ HELP Dial Reference Screen
A Force answer mode
A/ Repeat last command
AT Prefix
Cn n=0 Transmitter OFF (modem becomes receive-only)
n=1 Transmitter ON (normal operation)
Ds Dial telephone number
s=0..9#* @WTPR,;"!
En n=0 No echo of commands
n=1 Echo commands to screen
Fn n=0 Half Duplex-local echo
n=1 Full Duplex-no local echo
Hn n=0 Hang up
n=1 Go off-hook
In n=0 Show product code
n=1 Do checksum
n=2 RAM test
n=3 Call duration/Clock
I3=s Set Clock
s=Hours:Min:Sec
n=4 Show current modem settings
Kn n=0 Call Duration mode
n=1 Real Time Clock mode
Mn n=0 Speaker OFF
n=1 Speaker ON until Carrier
n=2 Speaker always ON
n=3 Speaker OFF during Dial
O Return on-line after command
Qn n=0 Show result codes
n=1 Suppress result codes
Sr=n Set register "r" to "n"
Sr? Query register "r" (see also I4)
Vn n=0 Numeric result codes
n=1 Verbal result codes
Xn n=0 Standard result codes set (Hayes X0)
n=1 Extended (1200) result code set (Hayes X1)
n=2..6 Advanced result code sets
Z Software reset and reading of DIP switches
> Repeat command until cancelled; repeat Dial at most 10 times
S-Register Functions (can be set to 1..255):
S0 Number of rings before answering
S1 Counts number of rings
S2 Set Escape-Code character
S3 Set Carriage-Return character
S4 Set Line-Feed character
S5 Set Backspace character
S6 Set Dial Tone wait time (seconds)
S7 Set Carrier wait time (seconds)
S8 Set Comma and Repeat pause time (seconds)
S9 Set Carrier Detect recognition time (1/10 seconds)
S10 Set Carrier Loss/Hang-up time (1/10 seconds)
S11 Set Touch-Tone spacing (milliseconds)
S12 Set Escape-Code guard time (1/50 seconds)
S14 Smartcom 2.0 kludge to pretend modem is 1200 bps
S16 0 = Data Mode
1 = Analog Loopback
2 = Dial Test
4 = Test Pattern
4 = Analog Loopback and Test Pattern
Dip Switches:
- DTR (pin 20) normal / DTR always on
- Verbal result codes / Numeric result codes
- Suppress result codes / Display result codes
- Echo off-line commands / Don't echo off-line commands
- Auto-answer on Ring / Suppress auto-answer
- Normal Carrier-Detect (pin 8) / Carrier-Detect always ON
- Single phone connection RJ11 / Multiple phone connection RJ12/RJ13
- Disable AT command set / Enable AT command set
- Disconnect with +++ / Can go back on-line after +++
- Reserved
- Pins 2 and 3 standard / Reverse pins 2 and 3
LED front-panel:
- High Speed (2400 bps communication)
- Auto Answer; Answer mode
- Carrier Detect
- Off Hook
- Receive Data
- Send Data
- Terminal Ready (DTR from terminal or with DTR over-ride ON)
- Modem Ready; Power
- Analog Loopback (self-test mode)
Initial Performance:
No errors during 10 hours at 2400 bps from home (1 crow mile from UofW)
into some 2400 bps modem (make unknown) attached to Sytek network at
UofW. No errors when using the Courier to dial out from MATH into the
Sytek at 2400bps and then logging back into MATH again. Many errors on
MATH end during two of several 1200 bps calls into WATMATH ttyd0
(Gandalf/Cermetek SAM 212A modem). The errors were always BREAK
followed by a "{". Unlike the Hayes 1200 modem I normally use, taking
an extension phone off the hook at 1200bps made the MATH errors much
worse rather than better. (The Hayes 1200 is virtually error-free with
the phone off the hook at 1200bps.) Calling in to MATH and ROSE modems
(Gandalf/Cermetek SAM 212A modems) produced lots and lots of noise when
I tried calling out and back in using the Courier at 1200bps. Using
the Courier to call in to WATCGL, WATDAISY, and WATMUM (Vadic 3451
modems) showed no noise. As I said, at 2400bps, calling out from MATH
into the unknown 2400 bps modem using the Courier showed no noise at
all.
UUCP
Our byte rate to ihnp4 in Chigago is usually about 70-90 bytes/sec at
1200 bps; using the 2400 bps Courier changed that up to about 145
bytes/sec. Looking at the amount of illumination of the send/receive
data LEDs, I get the feeling that the limiting factor is still the load
on ihnp4, not the speed or quality of the line or modem. ihnp4 would
not respond for long periods of time; this would often cause our end to
time out. I babysat the modem and kept calling back whenever this
happened. ihnp4 has an ARK 2400 bps modem inbound, and uses a Concord
outbound.
In town here, we do a maximum of 110 bytes/sec at 1200 bps; using the
Courier upped that to about 215 bytes/sec. If they ever start charging
for local calls, the higher speed will be useful.
Calling utzoo in Toronto, our 1200 bps byte rate is about 109
bytes/sec. I tried to use the Courier into their 2400 bps modems (they
have a Racal-Vadic 2400PA), but the noise on the line usually prevented
the login from succeeding. In the rare cases where it did succeed, the
error rate was so high that the byte rate was only 24 bytes/sec, with
so many timeouts that the overall rate was less than half that. 1200
bps on the same line, a UofW FX Toronto line, worked just fine. I
tried avoiding the FX line and just dialling long distance and got
about the same error rate, so I don't think it's the FX line that's
awful. (After all, we call ihnp4 at 1200 and 2400 bps using the same
set-up with much better results.)
I put the Courier onto its own dedicated phone line, getting it off the
UofW SL-1 extension altogether, and called utzoo again. Byte rate went
up to 150 bytes/sec, provided I could get logged in. Still lots of
noise on the line.
I called linus (Boston), who have Concord Data 2400 bps modems, and
noticed no noise on the line during the brief call there. I sent them
/etc/termcap (74355 bytes) and got a byte rate of 210 bytes/sec. (Very
Nice!) I called utai (Toronto) briefly, and noticed no noise there
either. (No uucp account, so I couldn't send anything.)
To sum up: it seems the University's SL-1 switch might be damaging
communications a bit. Regardless of that, the Courier just doesn't
like talking to the Vadic at utzoo at 2400 bps no matter what line I
use. The Courier calls all four other 2400 bps modems I know of okay.
henry@utzoo says their 2400 bps calls to linus average over 200
bytes/sec both ways; we seem to do the same to linus, but can't talk to
utzoo. Just shows that things that can talk to the same thing can't
necessarily talk to each other!
Observed Quirks with this modem:
If you are connected to something at 2400bps, you use +++ to get back
to the command mode, you display and *interrupt* a HELP menu, then go
back on line, you get lots of repeating junk on your screen. You have
to use +++ to go off-line again, display a HELP menu *without
interruption*, then go back on line. If you try the same thing at
1200bps, you get *no* junk if you interrupt the HELP menu and go back
on line, and you get the repeating junk if you let it finish and go
back on line! At 1200 bps, I had the modem hang three times when this
junk started appearing. When the junk is printing, the Receive Data
light is flashing madly and pulling out the phone cord gives an
immediate NO CARRIER. When the modem hung, the RD light went out, the
SD light would flash when characters were typed, but nothing appeared
on the screen and +++ and AT had no effect. Pulling out the phone cord
did not affect the hung modem; it just did not respond to anything and
I had to power down every time. Looks like you'd better not need any
on-line help screens in the middle of a session.
We took the modem to a country exchange, long distance to UofW, and saw
the same sort of junk appear when we tried calling the unknown 2400 bps
modem at UofW. The 2400 would answer, signal 2400 bps, and the Courier
would respond with CONNECT 1200 (!?) and then lots of incessant junk.
We usually had to power off the modem to get it back. The incessant
junk looked the same as the junk that kept spewing out in the above-
mentioned help-menu bug. It's almost as if the answering modem were
sending a 2400 bps carrier that the Courier was mis-interpreting at
1200 bps, resulting in a continuous stream of junk. Actually using the
Courier to call out at 1200 bps on the same country line worked just
fine.
Nothing I tried could get the modem to recognize my VOICE in the
extended result code set. I set parameter X6 and phoned from my home
line to my data line and answered the phone myself - the Courier said
RINGING and then eventually NO CARRIER, no matter what I said into the
phone. A friend tried the same thing and yelled a few times into the
phone, and it recognized his voice as VOICE.
I picked up my extension phone, dialed a '5' to get rid of the dial
tone, and then told the Courier to dial a number on the same line. If
I said nothing, it would correctly detect NO DIAL TONE. If I talked
while it came off-hook, it would usually mistake my voice for a dial
tone, dial the number into my voice, and then say either BUSY or
RINGING followed eventually by NO CARRIER.
Register S10 (timer for loss of carrier) claims to be scaled in tenth-
seconds, but setting it to 254 and unplugging the telephone cable
causes carrier loss after only a second or two, not 25 seconds. Setting
S10 to 255 and unplugging the cable hangs the modem. It gets stuck
off-hook with the CD light on, and refuses to respond to anything
except power-off, even with the cable plugged in again.
The manual says you can type the command set in upper or lower case.
What it doesn't say is that both letters of the AT prefix must be the
*same* case -- "AT" and "at" work; "aT" and "At" do not.
"A/" repeats the last command, and the last command is cleared the
instant the letters AT appear, so if you intended to repeat the last
command but type AT followed by backspace followed by /, it's too late.
Backspace only deletes command chars, not the prefix itself. This is a
"feature" of Hayes modems, too.
The "guard band" register (S12) behaves a bit non-intuitively when set
to small values. Not only does the guard band decrease, but the length
of time in which you have to type all three "+"s goes down too! At
small settings, you have to use the repeat key to get it fast enough.
At the smallest settings, I think you're required to type the "+"s
faster than the baud rate will allow...
Summary:
I could have put up with the help-menu problem if I hadn't also tripped
over similar junk when using the modem in the country. Looks like the
modem's state transition diagram has a loophole. UofW needs a modem
that can talk 2400 bps to utzoo in Toronto, ideally using the cheap FX
line through the UofW SL-1 exchange, and this one can't do that very
well. (In fact the ratio of line costs, FX versus using DDD on a
private line, is almost exactly the ratio of byte rates, meaning we
save no money going to 2400 bps on the DDD line instead of using 1200
bps on the FX line.)
-IAN