FROM FidoNews, Volume 2, Number 11, 29 April 1985 Tom Jennings Fido #1 27 Apr 85 HAYES SMARTMODEM 2400 REVIEW This is sort of a review of the Hayes Smartmodem 2400. I say sort of because it's more or less documentation on what I went through to make it work with Fido/FidoNet and other things. The Hayes 2400 supports 300, 600, 1200 and 2400 baud, and Bell 103A, 212A, and CCITT modes. I won't even bother to mention all the permutations. It has a much extended command set, and is supposed to be compatible with the "old" 1200 baud Hayes. It almost is. This modem has many problems. Most are plain old "bugs" that will probably get fixed, others are just design problems. I don't think Hayes is going to be prepared for the flak they will get on the changes they made. They might have thought them inconsequential. They did a good job with the extended command set. Old commands haven't been changed, they added new ones or expanded existing ones. So far, so good. Most of the problems are caused by optionitis. There are just too many useless commands. Luckily, most can be ignored. Two that cannot be are &D and &C. These are "one time" initialization commands the control how CD (Carrier Detect) and DTR (Data Terminal Ready) work. There are many non-obvious subtlies in getting the damn thing to answer the phone at 2400 baud. It won't just do it, you have to initialize it in a very special way. The problem is this non volatile RAM used instead of the DIP switches. You will soon wish you had DIP switches again. The NVRAM saves just about everything, including the last used baud rate. Hayes went crazy saving things in this RAM, and to show how much they like it they keep reading things back from it even after you have changed things. For instance, to get the modem to autoanswer at 2400 baud, you have to send AT commands to it at 2400 baud. Not 1200. Then, save the state of things with &W, so it will remember that you used 2400. Whenever DTR is dropped and raised, it will "remember" these settings, even if you don't want to. Fido 10H does this automatically, but for other programs you will probably have to go in with Minitel or something at 2400 baud and do it yourself. An annoyance, though I see why they did it, is that the numeric result code for "CONNECT 2400" is "10". The old Hayes had single digit result codes, like "1" meant "CONNECT" (300), "5" means "CONNECT 1200", etc. Programs that look for a single digit will think the "10" is "1". The &D3 command looks useful, but is not. It causes the modem to go onhook and disable when DTR is dropped, and reload all settings from NVRAM. This is fine, except that in this modem, when DTR is held low, CD is set true even if there is no carrier. Not very useful on a Fido or other BBS environment. There is no way to support DTR properly, and NOT have the modem autoanswer. In my application, I run a Fido only for outgoing mail on my home phone; I do not want the modem to autoanswer! As soon as DTR is lowered and raised, it goes into autoanswer, even if I set ATS0=0 and save it with &W. It insists on always setting ATS0=1. Since the 2400 supports 1200 in either CCITT or Bell modes, there has to be some way to tell the modem which to use. Enter the B command. However, it doesn't seem to work, and certainly doesnt work like they say, though the "bug" is actually an improvement. Calling another 2400 Smartmodem always connects, so I cannot tell which mode it's using. ATB0 is supposed to be CCITT mode. The manual says you will get an ERROR if you try to dial, etc at 300 baud in CCITT mode. This is not true, it will connect as Bell 103A. This is an improvement over what is in the manual. Same is true in Bell mode, ABT1. Supposedly, it won't let you dial in Bell mode at 2400; not true, it switches to CCITT and works fine. net result: ATBx is a no-op. 600 baud is a total failure in the model I have. It connects OK, but it drops characters and bits. Presumably this is just a bug that will get fixed. Two of us had a similar, non-repeatable problem at 2400 baud; the modem "locked up" and went into one of its Test Modes, with the MR light blinking. Disconnecting seemed to cure it. It only happened once to each of us. The manual, while about as clear as the old one, is many revisions behind the software actually in the modem. (The product code from my modem, returned by ATI, is 242) It does not even mention the side effects and interactions of DTR, NVRAM, and baud rate. Some things, like ATBx, are just plain wrong. Be prepared to experiment. SUMMARY: Overall, once you figure out how to operate the damn thing, it works quite well, the 2400 baud problem notwithstanding. In autoanswer mode, once properly set up, it will receive calls at 2400 CCITT, 1200 CCITT, 1200 Bell 212A, 600 CCITT (maybe) and 300 Bell 103A. Not too shabby. You just have to be very careful as to how you issue commands, and remember to do it at the right baud rates. For a more or less unattended operation such as Fido and FidoNet, there is no problem, since Fido will do the work for you. Assuming they fix the small bugs, this should be an excellent modem. The only drawback is the complexity coupled with the strange side effects such as not answering at 2400 as mentioned above. Most users won't want to pay for all the unneccessary goodies such as synchronuous mode, and there may be other modems out that have less features but cost a lot less. Time will tell. It works quite well. OTHER STUFF: There may be a special deal from Hayes for FidoNet sysops. Don't ask yet, it will get announced if true. There are also U.S. Robotics 2400 baud jobs coming too, supposedly for $350.00. It supports 2400 CCITT, 1200 Bell 212A, and 300 Bell 103A. Basically, a Hayes 1200 with 2400 added. This may end up being the hot modem, if it works as advertised. In any case, don't expect all these things to be compatible with each other; I already know of differences between the Hayes and USR 2400 models, though the differences shouldn't be fatal. FIDO SPECIFIC ISSUES: Fido 10H supports 300, 600, 1200 and 2400 baud. You have to hit CR twice for all baud rates. There is a problem at 2400 though. Sometimes the first CR doesnt get noticed; its not a modem problem, it's just a side effect of how UARTs work, and there is such a pressing need to release 10H that it will have to go out as is for now. To connect to a Fido with a 2400 baud modem, try the usual CRs. If no results, try hitting the space bar, then a CR. HOW TO MAKE IT WORK: To make CD and DTR work as in the older Hayes, do the following: Use a terminal program, at 2400 baud. AT&D2 DTR control AT&C1 CD control Other commands as needed; V0, E0, etc AT&W Save changes in NVRAM You have to set &D and &C before you use the modem with Fido. The problem is that the modem defaults to "fake" CD, and Fido will think there is an incoming call, and not initialize the modem. Chicken and egg type problem. Just do: AT&C1&D3&W At any baud rate, then Fido will do the rest if you select the right modem type. Note that if you connect once at, say, 300 baud, in order for the modem to later connect at 2400 baud you MUST drop DTR to make the modem reset itself from NVRAM. +++ ATH0 won't do it. This is most annoying. This is only an issue for other autoanswer situations, not Fido.