Some hang-up issues
#1
I've been poking around some more with the WiModem232 and I have a few questions regarding disconnection.

The first issue is how it is handling remote hangups.  That is, when the WiModem232 is set to answer calls and a call is established from a remote source (in this case it was from a telnet client) it will answer the call successfully returning the code 2 for "RING" and 1 for "CONNECT" and a connection is established.
However, there are issues when the remote client disconnects.
The WiModem232 doesn't always know that the remote client has disconnected and happily sits there with its green LED lit.
Is there a way to firm up this behaviour?

I am also looking for a way to inform the DTE (the computer) that the DCE (the WiModem232) that it has disconnected the call.  Normally this is the CD signal, but the Apple IIc lacks a CD pin (as does ADMIN's Laser-128) so in those cases the modem ought to drop the DSR signal to let BBS software know that the connection has been lost.

The Hayes reference manual's command would be AT&S0, but this does not appear in the WiModem manual.
Is the jumpered version of the bottom connections on page 20 the way to accomplish this?
Reply
#2
Update:
With the DSR / DTR changes made on page 20 of the manual I can get the WiModem232 to hang up now if a remote connection is terminated.
Reply
#3
(01-31-2018, 12:59 PM)Baldrick Wrote: I've been poking around some more with the WiModem232 and I have a few questions regarding disconnection.

The first issue is how it is handling remote hangups.  That is, when the WiModem232 is set to answer calls and a call is established from a remote source (in this case it was from a telnet client) it will answer the call successfully returning the code 2 for "RING" and 1 for "CONNECT" and a connection is established.
However, there are issues when the remote client disconnects.
The WiModem232 doesn't always know that the remote client has disconnected and happily sits there with its green LED lit.
Is there a way to firm up this behaviour?

I am also looking for a way to inform the DTE (the computer) that the DCE (the WiModem232) that it has disconnected the call.  Normally this is the CD signal, but the Apple IIc lacks a CD pin (as does ADMIN's Laser-128) so in those cases the modem ought to drop the DSR signal to let BBS software know that the connection has been lost.

The Hayes reference manual's command would be AT&S0, but this does not appear in the WiModem manual.
Is the jumpered version of the bottom connections on page 20 the way to accomplish this?

If the LED is green, then the remote did NOT disconnect.  That connection/disconnection is all part of the client service handled by the ESP8266 libraries.  I have no control over this.  If the client thinks it's connected, then the LED stays green until it *really* disconnects.  Whatever you are testing is not actually disconnecting from the WiModem232.

You can connect the DCD pin to the DSR pin on your cable.  There is no way to set jumpers for this to occur.  The jumpers are meant for DTR/DSR handshaking for printers, and we are coming to find out that most of the printer cables have DTR/DSR from the printer connected to RTS/CTS on the DB25 (WiModem232) end of the cable so you don't actually have to change the jumpers.  Terminal programs (like ProTERM) and other BBS's look for NO CARRIER to appear on disconnection.  So, if you want DCD, tie it to the DSR pin at the connector that plugs into your computer.
Reply
#4
I'd like to ask about some more behaviours, specifically the handling of DTR and DSR in order to get the WiModem232 to work properly with GBBS during hangup or lost call (remote disconnect) situations.

If the host computer drops its DTR signal, I'd like the WiModem232 hang up the call.
This is usually controlled by AT&Q0D2

Likewise, the remote connection closes or disconnects I'd like the WiModem232 to drop its DSR signal until
This, is (as far as I understand it)controlled by AT&S1 while Q0 is in effect.

Sadly, neither of these features are supported. And using the ATI1 command doesn't ever show the status of the DSR or DTR signal.
:-(
Reply
#5
The DTR hang up feature is already supported.  You will need to cut the jumper between IN and RTS and bridge the connection between IN and DTR.  Optionally, you could just jumper RTS to DTR on your cable.  You will lose RTS/CTS flow control because the WiModem232 can only support RTS/CTS or DTR/DSR, not both at the same time.  I don't have DSR supported in the hang up mode because I can't find any information about DSR being used in this way.  Use AT&D2&K0 to enable the hang up mode.
Reply
#6
I'll give the DTR hangup mode a try. I did cut and re-solder the jumpers to use DTR/DSR as described in the instructions. And I cut the jumper at the red arrow to remove the DTR-DSR bridge. AT&D[#] is not described in the manual so I never bothered to test that feature. Thanks for the update.

I'm not concerned about RTS/CTS because I (and most others in the retro-computing world) operate at relatively slow speeds of 9600 baud and less so software flow control is the most we'd use.

If you look on page 1-21 of the Hayes reference it describes the DSR features and various behaviours. The DSR options are logic-tied to AT&Q options which are also logic-tied to AT&D DTR options on page 1-18.

The problem with tying CD to the DSR pin is that CD is always low without a remote connection so the computer thinks the modem isn't ready and won't communicate while offline.
DSR on the other hand goes high in local mode when DTR is sent by the host computer, stays high during the remote connection, goes low on a remote disconnect, and then comes back high when the host computer cycles DTR off and back on.
At least this is my understanding of DSR use with respect to BBS operation.
Reply
#7
From my understanding of the specification, DTR is set low when the computer is ready and DSR is set low when the modem is ready. These were never intended to act as modem hang up requests or status. DCD is used for modem's online state. DSR is to let the computer know the modem is ready to use. Some printers (and the Apple IIc) use DTR/DSR in place of RTS/CTS. in fact, you can just connect DTR/DSR to RTS/CTS at the DB25 connector in the cable instead of cutting traces and bridging connections on the WiModem232. Most all systems have DTR connected to DSR, so when the computer says it's ready, the modem is also said to be ready.

What are you using that actually wants the DTR/DSR working as you describe?
Reply
#8
To ensure a hangup without using "+++ ATH" you need to lower DTR. BBS software routinely set S2 to 128 to prevent any remote tampering of the escape sequence. Thus many BBS softwares will hang up the modem by temporarily lowering DTR.

I am using V2.70 of the firmware.

I have tried to set &D2 to cause the WiModem232 to hang up when the computer lowers DTR, but it won't sustain a connection.
As soon as a connection is made, the WiModem232 hangs itself up immediately. (The voltage signal from the computer is +12 volts with DTR is high.)
When I set &D0 the modem can sustain a connection, but won't hang up when the computer lowers DTR.
When I set &D1 the modem can sustain a connection, but also won't hang up when the computer lowers DTR.

Also, the WiModem232 does not seem to do anything with DSR.
My BBS software (and many others) look at DSR to see if there has been a remote hangup. I can set &S0, &S1, and &S2 and in all cases the WiModem232 does nothing on connect or disconnect. It just doesn't change state at all.
Reply
#9
Starting with v2.70 firmware DSR is controlled by &S. If you use &S1 or &S2, DSR follows the state of the connection (goes high when connected, and goes low when the connection is dropped). You MUST have the DTR/DSR trace cut and jumper IN to DTR and OUT to DSR for &D and &S features to work.

As soon as my Apple //e arrives, I will have a way to test all of these (besides on my Amiga, which works perfectly).
Reply
#10
I hate to be the bearer of bad news but v2.7.0 does not appear to work as intended. (Either that or my WiModem232 has some sort of defect)

Instead of screwing around with lake vintage computers I decided to hook up the WiModem232 to my Windows PC using HyperTerm and to my Mac via a USB-serial converter using Zterm. On the Mac, it's doubly convenient because I can put together a circular connection: I can run Zterm through the USB-serial converter, set ATS0=1 and then "dial" the WiModem232 via telnet on the same machine so that I can see what it's doing.

&Q2 doesn't seem to do anything.

Every terminal program that I've tried: Ascii Express, ProTerm, and HyperTerm on Windowsm, and now Zterm on modern hardware all drop DTR to hang up. My BBS software drops DTR to force a hangup. Even the null-modem drivers on ProTerm specifically say that a hangup command lowers DTR to cease communications with the remote host. The only way I have successfully hung up the modem is by using the +++ and ATH commands.

I have cut the traces between DSR and DTR, cut the traces between "out" and CTS, between "in" and RTS, and bridged "in" to DTR and "out" to DSR.
Reply




Users browsing this thread: 1 Guest(s)