[comp.unix.questions] Hayes modem for 3B2

sysop@stech.UUCP (Jan Harrington) (02/18/88)

Please help.  I've got a 2400 baud Hayes-compatible modem, an AT&T 3B2/400, and
Unix System V version 3.0.  I desperately need to get this modem working --
bidirectionally.  Upgrading to 3.1 isn't possible at this time (absolutely
_NO_ money available).  Is there any way to do this?

The person who knows the answer will have my undying gratitude!!!!


Jan Harrington, sysop
Scholastech Telecommunications
ihnp4!husc6!amcad!stech!sysop or allegra!stech!sysop

********************************************************************************
	Miscellaneous profundity:

		"No matter where you go, there you are."
				Buckaroo Banzai
********************************************************************************

pjh@mccc.UUCP (Peter J. Holsberg) (02/18/88)

In article <449@stech.UUCP> sysop@stech.UUCP (Jan Harrington) writes:
|Please help.  I've got a 2400 baud Hayes-compatible modem, an AT&T 3B2/400, and
|Unix System V version 3.0.  I desperately need to get this modem working --
|bidirectionally.  Upgrading to 3.1 isn't possible at this time (absolutely
|_NO_ money available).  Is there any way to do this?
|
|The person who knows the answer will have my undying gratitude!!!!

Well, I'm all for getting gratitude, undying or other, but what seems to
be the problem?  Set up the port with SYSADM, hook up the modem, send it
the AT string tha silences the bugger (ATE0Q1), and you should be in
business.  But perhaps you've done this and still have a problem?  
-- 
Peter Holsberg                  UUCP: {rutgers!}princeton!mccc!pjh
Technology Division             CompuServe: 70240,334
Mercer College                  GEnie: PJHOLSBERG
Trenton, NJ 08690               Voice: 1-609-586-4800

sysop@stech.UUCP (Jan Harrington) (02/20/88)

in article <220@mccc.UUCP>, pjh@mccc.UUCP (Peter J. Holsberg) says:
> 
> In article <449@stech.UUCP> sysop@stech.UUCP (Jan Harrington) writes:
> |Please help.  I've got a 2400 baud Hayes-compatible modem, an AT&T 3B2/400, and
> |Unix System V version 3.0.  I desperately need to get this modem working --
> |bidirectionally.  Upgrading to 3.1 isn't possible at this time (absolutely
> |_NO_ money available).  Is there any way to do this?
> |
> |The person who knows the answer will have my undying gratitude!!!!
> 
> Well, I'm all for getting gratitude, undying or other, but what seems to
> be the problem?  Set up the port with SYSADM, hook up the modem, send it
> the AT string tha silences the bugger (ATE0Q1), and you should be in
> business.  But perhaps you've done this and still have a problem?  

It's a MAJOR problem - as shipped, the Hayes dialer won't support
bidirectional transmissions.  This modem is for a machine that runs a
bulletin board, which means it must answer the phone unattended.  It also
polls another system for news, which means it must dial out unattended.
There is only one phone line in and out of this machine (no - I can't add
another one - no wiring in the house!)


Jan Harrington, sysop
Scholastech Telecommunications
ihnp4!husc6!amcad!stech!sysop or allegra!stech!sysop

********************************************************************************
	Miscellaneous profundity:

		"No matter where you go, there you are."
				Buckaroo Banzai
********************************************************************************

pjh@mccc.UUCP (Peter J. Holsberg) (02/22/88)

Symptoms, man!  Tell us symptoms!  :-)

Seriously, I've had a Hayes-compatible modem on each of my telephone
line, each operating bidirectionally, with no problems.  In fact, I'm
writing this on my home machine which is phone-linked via a pair of
Hayes-compats to my office system.

You must set up uugetty on your phone line (use System Administration
login for the easiest setup), and change the Dialers script so that the
modem doesn't echo commands.  Also, set S1 to a non-0 value.

-- 
Peter Holsberg                  UUCP: {rutgers!}princeton!mccc!pjh
Technology Division             CompuServe: 70240,334
Mercer College                  GEnie: PJHOLSBERG
Trenton, NJ 08690               Voice: 1-609-586-4800

randy@chinet.UUCP (Randy Suess) (02/23/88)

>Well, I'm all for getting gratitude, undying or other, but what seems to
>be the problem?  Set up the port with SYSADM, hook up the modem, send it
>the AT string tha silences the bugger (ATE0Q1), and you should be in
>business.  

This was discussed at length a while ago.  The problem is that the Hayes
compatible modems do not handle CD and DTR properly, so that you
cannot get a 3b2 to dial out AND have the hayes drop and raise CD
properly for dial-in.  There are modems that work with the 3b2, and
there is a hardware hack to make the hayes work.

-randy
-- 
that's the biz, sweetheart.....
Randy Suess
..!ihnp4!chinet!randy

crash@tsc3b21.UUCP (Frank "crash" Edwards) (02/23/88)

From article <450@stech.UUCP>, by sysop@stech.UUCP (Jan Harrington):
> in article <220@mccc.UUCP>, pjh@mccc.UUCP (Peter J. Holsberg) says:
>> 
>> In article <449@stech.UUCP> sysop@stech.UUCP (Jan Harrington) writes:
>> |Please help.  I've got a 2400 baud Hayes-compatible modem, an AT&T 3B2/400, and
>> |Unix System V version 3.0.  I desperately need to get this modem working --
>> |bidirectionally.  Upgrading to 3.1 isn't possible at this time (absolutely
>> |_NO_ money available).  Is there any way to do this?
>> 
>> Well, I'm all for getting gratitude, undying or other, but what seems to
>> be the problem?  Set up the port with SYSADM, hook up the modem, send it
>> the AT string tha silences the bugger (ATE0Q1), and you should be in
>> business.  But perhaps you've done this and still have a problem?  
> 
> It's a MAJOR problem - as shipped, the Hayes dialer won't support
> bidirectional transmissions.  This modem is for a machine that runs a
> bulletin board, which means it must answer the phone unattended.  It also
> polls another system for news, which means it must dial out unattended.
> There is only one phone line in and out of this machine (no - I can't add
> another one - no wiring in the house!)
> 
> Jan Harrington, sysop
> Scholastech Telecommunications
> ihnp4!husc6!amcad!stech!sysop or allegra!stech!sysop

Following is a couple of lines out of my Dialers file on a 3B2/310:
------------------------------------------------------------------------------
hayes	=,-,	"" \dATZ\p\r\c "" \dAT\pS0=4\pQ0\r\c OK\r \dATDT\T\r\c CONNECT-ATQ1\r\c \d+++\d OK\r \pATQ1\pO\r\c
reset	=-,-	"" \dATZ\p\r\c "" \dAT\pS0=4\pQ1\r\c
------------------------------------------------------------------------------
The first entry, "hayes", first resets the modem ("ATZ"), then sets the auto-
answer to 4 rings ("ATS0=4") [you may want a different value -- anything but
zero!], then dials the number ("ATDT\T").

The reset sequence turns off the no-echo/no-response modes of the modem.
This allows the script to check for OK and CONNECT.  It also makes sure
that the modem is configured as per the dip switches (more on that later).

When the CONNECT is received by the dialer, it proceeds to send the escape
characters ("+++") preceded and followed by a short delay ("\d").  This
puts the modem in command mode.  Command mode is required to change the
modem BACK to the no-response status.  Setting the no-echo mode is optional,
BUT IT IS MUCH EASIER AND LESS HEADACHES TO TURN OFF ECHO.

I've included the "reset" dialer -- it's use is for those times when the
line gets dropped unexpectedly while inside "cu" and "cu" doesn't clean_up
properly (BTW, does anyone else have this problem?).  I use "cu reset" 'cuz
I also have a line in my Systems file for a machine called "reset".

Now if I could only find some *EASY* way to fix the DCD/DTR brain-damage ;-).


"Use the Source, Luke.  Feel it flow through your fingertips..."
-----
Frank (crash) Edwards		...!codas!usfvax2!{pdn,jc3b21}!tsc3b21!crash
TSC in Palm Harbor, FL		Phone:  (813) 785-0583  (voice)
The Sweat Shop
/-------------------------------------------------------------------------\
|  These opinions are not those of my employer, his wife, either of their |
|  children, or their parakeet.  In fact, he probably doesn't even know   |
|  that I've said this!  And I prefer it that way!			  |
\-------------------------------------------------------------------------/

randy@chinet.UUCP (Randy Suess) (02/26/88)

In article <248@tsc3b21.UUCP> crash@tsc3b21.UUCP (Frank "crash" Edwards) writes:
>
>Now if I could only find some *EASY* way to fix the DCD/DTR brain-damage ;-).
>

	Don't know if you would call it easy, but I solved this
	problem years ago by putting 2 555 one shots in series
	triggered off the CD lead of the modem and feeding into
	the CD input on the port.  Basically, you wire it up so
	that the tail end one shot is sitting hi normally so that
	the 3b2 can dial out ok.  The front end-one shot is set to
	trigger on CD going away (negative edge triggered) when a 
	login hangs up.  This then makes the tail end one shot 
	drop CD to the 3b2 for a couple of seconds, terminating the 
	call.  When it comes back up, the 3b2 can dial out, or a 
	remote login can trigger the uugetty with a c/r.

-randy

-- 
that's the biz, sweetheart.....
Randy Suess
..!ihnp4!chinet!randy

friedl@vsi.UUCP (Stephen J. Friedl) (02/26/88)

In article <2765@chinet.UUCP>, randy@chinet.UUCP (Randy Suess) writes:
> This was discussed at length a while ago.  The problem is that the Hayes
> compatible modems do not handle CD and DTR properly, so that you
> cannot get a 3b2 to dial out AND have the hayes drop and raise CD
> properly for dial-in.  There are modems that work with the 3b2, and
> there is a hardware hack to make the hayes work.

     Those of you with 3B2s running System V Release 3.1 should
look in your 3.1 Release notes on page 2-67 under "Basic Networking
Utilities: Intelligent Modems".  AT&T has made Hayes go in+out
on the same line with carrier detect working the right way.
What the heck, I'll include a copy of the text:

[------------------begin Software Notes--------------------]

*Basic Networking Utilities: Intelligent Modems*

     Features have been added to the /usr/lib/uucp/Dialers and
/usr/lib/uucp/Devices files to prevent problems that occur when
using System 75s, System 85s, Hayes-compatible modems, and other
intelligent modems that do not keep Carrier Detect high all the
time [guess which of the above actually kicked off the fix :-) ].

Devices     Adding a ,M to the second field of an entry in the
            Devices file will cause the O_NDELAY flag to be set
            when the device is opened.  This prevents BNU soft-
            ware from blocking on the device while waiting for
            a CD.  The example below shows how to add the ,M to
            a Devices file entry for a devices connected to an
            automatic call unit for a Hayes modem.

            ACU tty11,M - 1200 hayes \T

Dialers     Adding \M before the chat script in a Dialers file
            entry will set CLOCAL, preventing any change in the
            CD lead from resetting the the state of the device
            [prevents SIGHUP - SJF].  Once the conversation has
            been established, \m will clear CLOCAL.  This will
            allow BNU to again monitor changes in CD (for exam-
            ple, to notice if the line drops).

            The example below shows how tyo add \M and \m to an
            entry made for a Hayes modem in the Dialers file

	hayes "=,-," "" \M\dAT\r\c OK\r \EATDT\T\r\c CONNECT \m\c

	+----+
	|NOTE|   For some devices, adding a \p after the \M may
	+-+--+   be necessary.
	  |
	  |

[end of Software Notes]

     For a long time we had troubles with this: the outgoing call
would not work unless cu or uucico debug mode was on.  "cu -d
911" worked fine but "cu 911" did not.  Tonight while writing a
previous note on this topic I rediscovered the |NOTE| above, ad-
ded \p to my scripts and it works great.

     This information only appears (to my knowledge) in this one
place in the Release Notes, and it was not there in Release 3.0.

     Good luck,
     Steve
-- 
Life : Stephen J. Friedl @ V-Systems, Inc/Santa Ana, CA    *Hi Mom*
CSNet: friedl%vsi.uucp@kent.edu  ARPA: friedl%vsi.uucp@uunet.uu.net
uucp : {kentvax, uunet, attmail, ihnp4!amdcad!uport}!vsi!friedl

walt@cooksys.UUCP (Walt Cooksey) (02/26/88)

In article <2765@chinet.UUCP> randy@chinet.UUCP (Randy Suess) writes:
..Well, I'm all for getting gratitude, undying or other, but what seems to
..be the problem?  Set up the port with SYSADM, hook up the modem, send it
..the AT string tha silences the bugger (ATE0Q1), and you should be in
..business.  
.
.This was discussed at length a while ago.  The problem is that the Hayes
.compatible modems do not handle CD and DTR properly, so that you
.cannot get a 3b2 to dial out AND have the hayes drop and raise CD
.properly for dial-in.  There are modems that work with the 3b2, and
.there is a hardware hack to make the hayes work.
.
.-randy
.-- 
.that's the biz, sweetheart.....
.Randy Suess
...!ihnp4!chinet!randy

Hayes does handle CD and DTR properly, if it is programmed correctly.
The following strign is the correct setup for SCO Xenix V.  I assume
that it will work with most others as well.

ATS0=1D2E0Q1S1=1&W

Leave off the S1=1 and S0=1 if you don't want it to answer.

I have found that if you can not communicate with the modem, you can not
program it.  You may have to program it elsewhere and install it.  But it
will/does work correctly on 3B2s.

Walt


-- 
Walt Cooksey		COOKSEY SYSTEMS, INC		(404) 469-2321
			uunet!cooksys!walt		CIS 76010,522
			gatech!dscatl!cooksys!walt

heiby@mcdchg.UUCP (Ron Heiby) (02/27/88)

Here's what works for me, as well as an old message on how another
intrepid soul conquered the problem.  Ron.
-----
Here's the part of the output from the &V command on my Hayes 2400
external modem.  You don't need the phone numbers portion, and this
method doesn't make use of stored profile 1.

I use this modem for bi-directional communication on my Motorola VME
Delta computer system, running System V/68 Release 3.  Here's what I
changed from factory defaults.

	L1 - low volume on speaker (not important to operation)
	M0 - speaker turned off (not important to operation)
	Q1 - don't send result codes (important)
	&D3 - reset on on-to-off transition of DTR (important)
	S0=1 - auto answer on first ring (important)

After making these settings, save them in stored profile 0, using the
&W0 command.  Now, when you want to dial out, one of the first things
you do in your dialer script is to send the Q0 command to tell the
modem to give you result indications (like OK and CONNECT).  You can
then place your call and converse normally.  When your uucp or cu is
finished, it will close the port, causing DTR to drop for a brief time.
When this happens, the modem will reset.  Since &Y0 is set, stored
profile 0 will be restored, resetting Q1 so the modem will keep quiet
when an incoming call happens.

The only really unfortunate part of this whole thing is that Hayes
managed to decide that if you were doing this nifty resetting on the
DTR transition, you shouldn't be able to disable the modem by keeping
DTR turned off.  So, if you take your system down to single user or
even turn it off, the modem will still answer the phone.

at&v
ACTIVE PROFILE:
B1 E1 L1 M0 Q1 V1 X4 Y0 &C0 &D3 &G0 &J0 &L0 &P0 &Q0 &R0 &S0 &X0 &Y0 
S00:001 S01:000 S02:043 S03:013 S04:010 S05:008 S06:002 S07:030 
S08:002 S09:006 S10:014 S12:050 S14:2EH S16:00H S18:000 S21:18H 
S22:71H S23:17H S25:005 S26:001 S27:40H 

STORED PROFILE 0:
B1 E1 L1 M0 Q1 V1 X4 Y0 &C0 &D3 &G0 &J0 &L0 &P0 &Q0 &R0 &S0 &X0 
S00:001 S14:2EH S18:000 S21:18H S22:71H S23:17H S25:005 S26:001 
S27:40H 

Following is an article posted on Usenet concerning the use of the
Hayes 2400 on an AT&T UNIX PC.  This may provide further insight
into the proper configuration of UUCP with this modem, although
some of what is needed on the AT&T machine is not required on the
VME Delta system.
----------

From: gary@ethos.UUCP (Gary J. Smith)
Newsgroups: unix-pc.uucp
Subject: External Modems on the Unix-pc
Message-ID: <1280@ethos.UUCP>
Date: 3 May 87 14:35:44 GMT
Organization: Humanities Forum at ethos, Durham, NC
Lines: 95


If you are interested in adding an external modem to your
unix-pc, then you might be interested in my experiences with the
Hayes 2400 Smartmodem and the U.S. Robotics Courier 2400.

As you are probably aware, it is difficult to have an external
modem function for both incoming and outgoing calls.  At the very
least, you must be running the HoneyDanber uucp package (with
uugetty) or some other similar getty.  In order to use a
smartmodem, you have to have some means to keep the result codes
of the modem from initiating a login sequence.  The HDB uugetty
can be invoked with a -r flag which means that a carriage return
is required before the login process begins.

Even so, the smartmodem still seems to wreak havoc with the
system if result codes are enabled.  While using the USR Courier
2400 modem, I found it necessary to use 2 modems connected to the
same phone line, but connected to 2 different tty ports.  This
allowed me to set up one modem as an outgoing one (result codes
enabled for auto-dialing via a chat script in
/usr/lib/uucp/Dialers) and the other as incoming (result 
codes disabled).  Although this worked, it was a little
inefficient.

The Hayes 2400 Smartmodem works much better and can be used as
one modem for both incoming and outgoing calls.  The theory
behind this is very nice: the Hayes has a nonvolatile memory
where one can store default settings.  You can change these
settings from the command state (various AT commands), but you
can arrange for the modem to revert back to its default state
when DTR drops after the call is complete.  The trick is to have
the modem set in quiet mode (no result codes) in its default,
auto-answer state.  In the Dialers chat script, turn the result
codes back on.  When the outgoing call is complete, DTR drops and
the default state (no result codes) is resumed.

Here are the specifics.  Your nonvolatile memory should be set
as follows:

   	AT E Q1 L1 &C &D3 S0=1     # E:     inhibit command echo.
				   # Q1:    no result codes.
				   # L1:    low speaker volume :-)
				   # &C1:   DCD forced on (this is NECESSARY!)
				   # &D3:   modem assumes initialization.
					    state with ON to OFF state
					    of DTR.
				   # S0=1:  Auto-answer on first ring.

Be sure that your tty port is mentioned in your Devices file:

    ACU tty000 - 1200 hayes24 \T
    ACU tty000 - 2400 hayes24 \T


Then add this entry to your /usr/lib/uucp/Dialers file:

   hayes24	=W-,	"" \dATQ0V1X4S0=0\r\c "" \eATDT\T\r\c CONNECT

This chat script enables result codes (long form) and disables
the aut-answer mode.  Once the call is complete and DTR dropped,
the modem reverts to the initialization state.

In order to make the modem cycle to the correct speed for
incoming calls, I added new entries to the /etc/gettydefs file
(let the old gettydefs entries remain, just add these at the end
of the file):

-------------
U300# B300 CLOCAL BRKINT HUPCL IGNPAR ISTRIP IXON IXOFF ECHO OPOST ONLCR # BRKINT ISTRIP ICRNL IXON HUPCL OPOST ONLCR B300 CS8 CREAD ISIG ICANON ECHO ECHOE ECHOK TAB3 #\nlogin: #U2400

U1200# B1200 CLOCAL BRKINT HUPCL IGNPAR ISTRIP IXON IXOFF ECHO OPOST ONLCR # BRKINT ISTRIP ICRNL IXON HUPCL OPOST ONLCR B1200 CS8 CREAD ISIG ICANON ECHO ECHOE ECHOK TAB3 #\nlogin: #U300

U2400# B2400 CLOCAL BRKINT HUPCL IGNPAR ISTRIP IXON IXOFF ECHO OPOST ONLCR # BRKINT ISTRIP ICRNL IXON HUPCL OPOST ONLCR B2400 CS8 CREAD ISIG ICANON ECHO ECHOE ECHOK TAB3 #\nlogin: #U1200
--------------

My added line in /etc/inittab looks like this:

    000:2:respawn:/usr/lib/uucp/uugetty -r -t60 tty000 U2400


So, what happens is that the modem answers at 2400 baud (U2400),
and if that speed is incorrect, it cycles down to 1200 baud
(U1200), and so on. 

The moral to this story is that if you are looking to buy an
external 2400 baud modem, spend the extra money for the Hayes [or
operate a bulletin board system and get the modem directly from
Hayes for $325!].



-- 
	  	 
Gary J. Smith		{ihnp4,mcnc,duke}!ethos!gary  919/493-9575
			5802 Garrett, Durham, North Carolina 27707 
-- 
Ron Heiby, heiby@mcdchg.UUCP	Moderator: comp.newprod & comp.unix
"Intel architectures build character."

randy@chinet.UUCP (Randy Suess) (02/27/88)

In article <77@cooksys.UUCP> walt@cooksys.UUCP (Walt Cooksey) writes:
>
>Hayes does handle CD and DTR properly, if it is programmed correctly.
>The following strign is the correct setup for SCO Xenix V.  I assume
>that it will work with most others as well.

	Could you tell me how you get the Hayes modem to work
	properly on a 3b2 with r2 software in bidirectional mode
	when the 3b2 requires CD to be hi all the time to dial
	out, but the 3b2 wants CD to follow carrier for proper
	termination when a login goes away.  Don't see how any
	amount of modem setup will fix this.

-- 
that's the biz, sweetheart.....
Randy Suess
..!ihnp4!chinet!randy

randy@chinet.UUCP (Randy Suess) (02/27/88)

In article <2930@chinet.UUCP> randy@chinet.UUCP (me) writes:
>	Could you tell me how you get the Hayes modem to work
>	properly on a 3b2 with r2 software in bidirectional mode
>	when the 3b2 requires CD to be hi all the time to dial
>	out, but the 3b2 wants CD to follow carrier for proper
>	termination when a login goes away.  Don't see how any
>	amount of modem setup will fix this.

	In a following article, Stephen Friedl explains how
	r 3.1 fixes this problem for a 3b2.  Guess it is time
	to upgrade...
	Thanks, Stephen!
-- 
that's the biz, sweetheart.....
Randy Suess
..!ihnp4!chinet!randy