back to table of contents

Chapter 7. Modem Troubleshooting

What is an adequate level of documentation for my Modem?

I can’t stress this point enough: Most modems come with documentation that describes that particular modems features. You need all that documentation, and you may need more. Included in this documentation is the AT command list. Although many modems contain similar command sets, there are variations from manufacturer to manufacturer, and from model to model, and even from one product revision level to another. That means you need to be extremely aware of what you’re dealing with, and keep all the information for every modem you will every have to support in an easily accessible place.

Sometimes even the printed information that comes with a modem is not really enough for you to really understand that modem and support it. In that case, the company web site and the included CD-ROMS may contain additional information.

It’s not all that bad, though. Some modems, like the US Robotics Sportster and Courier support the AT$ command that lists the supported AT commands and what they do. AT&$ lists the commands starting in "&" and what they do. Some other modems have similar "help" features, but for most modems you will need external documentation to help you when configuring a modem.

What If I Don’t Know What Kind of Modem it Is?

Most modems support the ATI command to return information about the modem. Try typing in ATI0, then ATI1, ATI2, etc, until the modem returns error. Each of these strings is configuration information about the modem, hopefully including details of the model, and it’s configuration.

Checking Flash and SRAM Configuration Storage

A modem’s configuration settings are usually stored inside the modem in flash memory, or in battery backed SRAM memory, and are kept when the modem is turned off. In most modems you write the current Setup to the flash with the AT&W command. If the settings in the flash are not working, you can return to factory defaults with the AT&F command.

It’s a good idea to have a printout of a working configuration from the modem by gathering the current configuration, and printing it out. Your modem may have a different method of gathering this

information, but on many modems you use the ATI commands:

ATI1

ATI2

ATI3

Etc.

On some modems the command is AT\S. You need your manuals to find this information.

Checking S Registers

One of the most arcane parts of a modem configuration is the S Registers. S Registers are a catch-all area for various parameters of modem configuration. There are usually 255 of these registers, or less, and they usually hold a value from 0 to 255. By standard agreement S0, the first S Register, holds the system’s auto answer setup. If it is set to zero the modem will not automatically answer. If it is set to a number other than zero, the modem will answer after that many rings. For example ATS0=1 means auto-answer after the first ring, and ATS0=3 means auto-answer after three rings.

Some of these registers are actually not supposed to be modified directly. Hopefully your modem manual will explain this. Other registers might be very difficult to change, for example, a register with 8 bit mapped options requiring you to convert from decimal to binary in your head to change the value.

Checking DIP Switches and Jumpers

DIP Switches are the little toggle switches on your modem. Often on the back or side of a device, and sometimes inside a device, and requiring you to open them up to change them. Sometimes you need the manual just to know what a dip switch or jumper even does.

Troubleshooting External Versus Internal Modems

Internal modems are really the same as external modems, but with a few different parts. Rather than connecting using a more open standard such as an RS-232 port, internal modems plug right into your computer.

Most IBM PC Compatible machines use ISA card slots, although the PCI bus standard is slowly replacing ISA for most purposes. PCI modem cards are not widely available, yet.

What’s a UART?

Onboard the internal modem card there is a complete modem, and an interface circuit called a UART. A UART is the hardware that does RS-232. You probably would refer to it as a COM Port. There are two UART chips, or else a single UART chip containing two com ports in most PCs. These are usually referred to as COM1 and COM2. When you are installing an internal modem, you need to set up the UART hardware as well as the modem. This means a few additional dip switches have to be set on the modem card. Getting into IO addresses and IRQ Conflicts is beyond the scope of this manual, but remember when troubleshooting to think about this sort of thing.

What kind of UART do you have?

Your modem probably has a 16550A UART. Any recent model PC also probably has this upgraded model of serial chip. The older chips including the original 16550 which was defective, and the 16450 and 8250 UART chip do not have the very important buffers. Without these buffers there are a variety of conditions which can occur, usually resulting in lost data and corrupted communications.

To check what kind of UART chip you have, you can check in your Ports section of the Control Panel in Windows, or use the MSD utility included in DOS 6 or Windows 3.1.

Hint: Don’t Use Plug & Play

You can use "Plug And Play" configuration if you have Windows 95 or 98, and if it works, but if you are using Windows 3.x or Windows NT, you shouldn’t use Plug & Play.

Internal modems are usually a little cheaper. This is because they don’t include a power supply, a plastic case, or status LEDs. They are a little cheaper to build. One advantage of external modems is that you have the status LEDs to help you if you have a problem. If you are having problems with an internal modem, it’s a good idea to try an external one and see if you can duplicate the problem. If not, then assume your internal modem is having a problem. If you are still having the problem, see if you can learn anything from the lights on the outside of the external modem.

You also have an additional debugging tool with external modems: The RS-232 LED Tester. This can be plugged into any standard DB-25 port and it gives you even more insight into what’s going on than the lights on the outside of a modem will give you.

 

Phone Line Simulators

These devices can be lifesavers if you are trying to troubleshoot a problem with a landline phone call and determine if there is a problem with your hardware or with the phone company’s hardware. These boxes are like a "phone-company-in-a-box." You can plug two devices into it, dial a phone number on the one extension and the other extension rings. You can get them in two and four line varieties. See the appendixes for a list of manufacturers.

Loop Current Checkers and Limiters

You should have a loop-current tester to tell you what the loop-current of the phone line is. Some modem equipment will not operate with loop currents higher than 25 mA, and some phone lines run their loop current as high as 70 mA. FCC limits are 80 or 90 mA, however the technical specification for modems is 22 to 25 mA. See the equipment sources appendix for a source for current limiting boxes used to cure this problem once detected.

Adaptors and Patch Wiring Boxes

When working in the field, you don’t need to run into problems with cables, connectors, and wiring of serial cables. For this reason it is a good idea to be prepared for anything with a set of adapters and other accessories designed to get you connected properly and quickly. 9 to 25 pin adapters, and Gender changers (also referred to as gender-benders) get you plugged in where you otherwise couldn’t, and patch wiring boxes let you set up custom wiring arrangements required to get some devices communicating.

What if I can’t get two modems to connect?

There are a lot of reasons why modems won’t connect. The negotiation procedure described at the beginning of this chapter is the method that all modern modems use to decide if a connection is possible, and if so, what set of communication standards and what baud rate will be used for communications.

There are many factors to be considered. Following is a reasonable order of things to check. You should be in a terminal program ready to type in commands to the modem. You can do this in Windows 3.1 using the Terminal program provided, in MSDOS using any terminal program such as Telix or ProComm, or in Windows 95 or NT in Hyper-Terminal, by choosing "DIRECT TO COMn" instead of choosing the modem when prompted to choose what to connect to. If you can’t get a connection using a terminal programs, you should not be trying to get connecting using dial up networking, or any other application program. Note that these steps assume you are using a regular modem. See the special chapter for cellular communications.

  1. First ensure that you can send AT commands and receive back responses. If you can’t receive AT commands, it is possible that responses to those AT commands have been disabled. If you are typing AT commands and you can’t see what you are typing it is possible that modem echo has been turned off as well. Type ATE1 to turn on echo so you can see what you’re typing, and ATQ0 to enable command responses. If after these two commands you can’t see the OK response to AT commands, you should proceed further. With external modems you should be able to see the CS/CTS light and the TR/DTR light on if the modem is correctly connected to the computer.
  2. If you don’t think the serial port is working, switch your terminal to 300 baud. On an external modem you should be able to see a clear blink on the RD/RX light when you type an AT command, and the OK response should be clearly visible on the SD/TX light. On an internal modem, if it is working, the ATE1 and ATQ0 commands mentioned before are your main test: you should be able to see at OK command. If you are using an Internal modem and it is not operating, you should assume an incorrectly set or conflicting IRQs or base addresses, and debug the problem as a hardware installation problem. If you are using Plug & Play consult your documentation for ways to disable the feature. Instead, you should manually select the COM3 or COM4 Address, and an unused IRQ, or else put the internal modem on COM2 and disable the built in COM2 device in your computer’s BIOS.
  3. If you can receive AT commands, but you receive back a NO DIALTONE message when you attempt to dial, you should first check that the phone jack you are using is active and that you have a working RJ-11 phone cord, and that the cord is plugged into the correct jack. If you suspect a dead phone line, you should have a regular home telephone (not a digital PBX office phone) handy to plug into the line to test that a dial tone is present. You may also be able to hear a dial tone through the modem’s built in speaker. Type ATM1 then ATH1 to turn on the modem speaker and then put the modem off-hook, and see if you can hear a dial-tone. If you could not hear a dial tone with the telephone, assume that you don’t have a working phone line. If you can hear a dial tone with the telephone but not the modem, assume you have an incorrectly connected modem or a non-working modem.
  4. If you can dial, but you get back the NO CARRIER message, then negotiation problems are the most likely culprit. Bad phone line quality, noise, and 60-cycle hum often cause these kinds of problems. You have to look around for trouble spots. In one case I have seen problems because someone was using another extension, picking it up and hanging it up again. You should make a voice phone call to someone else who you know is on a clean line, and spend at least five minutes on the phone. Listen for pops, crackles, hisses, hums or other noise on the line. Some phone systems have problems with cross-talk that are so bad that you can actually hear someone else’s conversation. The only cure for these problems is to ensure that your line is rated for data transmission, something which phone companies charge extra for, and the complain to the phone company that your line is too noisy to make a connection. If you can’t hear the noise, don’t assume bad line quality immediately; check your other options first.
  5. Connection problems can be caused by problems with the modem’s internal code. Some modems have problems connecting to other modems. Particularly difficult are internal modems and PC-Card (PCMCIA) modems. Also, if you are trying to get a 14,400 bps modem connected to a 28,800 bps modem, or a 56K X2 Modem connected to a K56 Flex Modem, check that you have the latest versions of firmware if you suspect these two modems have a problem connecting. Most modems connect well to other modems from the same manufacturer, but many have problems connecting to different manufacturers. Most modems now use a flash-upgradeable ROM for their internal code, known as firmware. If you suspect a problem with the modem’s firmware, use the ATI commands to copy down all information about the modem’s features, including the DSP Revision and any other code version numbers or dates. A workaround that will sometimes get modems connected is to experiment with gradually restricting each modem’s available set of features until you find a set of common features that will connect. For example, try disabling the V.34 modulation, and see if the modems will connect at V.32 modulation.
  6. Another source of general modem connection trouble is the phone company’s equipment. Use a loop current checker to ensure proper 25 mA loop current. Other than Loop Current, particular quirks of the phone companies switches have been found to be a source of trouble. Particularly troublesome are AT&T System 75 switches. We have found problems with US-Robotics and Megahertz modems using these switches, which are very commonly found in residential and corporate single lines, and even in corporate office environments where the AT&T System 75 is used as a company PBX Switch. Usually an upgrade to
  7. Physical problems with the modems themselves. It is possible for a modem to appear to be fine when powered on, but to be unable to connect to anything due to some internal failure. If you suspect this, replace the modem with another modem, preferably of the same type, and see if the problem you are experiencing persists.
  8. Break it down and test one thing at a time. If you continue to have problems, use the Sherlock Holmes rule: Rule out what is impossible, and whatever is left, however improbable, must be true. You must successively rule out each potential source of trouble. This is a little more systematic than blind stabbing at a problem. Rather than swapping out several things at once, swap one thing at a time, and note carefully what happens differently each time. Keep track on paper while you work of what worked and what did not work. Don’t do anything randomly. Narrow down your sources of difficulty. When you start to get frustrated, change what you’re doing entirely, even stop working on the problem. Come back later, and do something you haven’t done yet. Change locations and phone jacks. Change modems, change modem settings, and change computers. Once you have the serial communications working with a terminal program, apply the same systematic approach to the software you are trying to get working. If the software is installed correctly and configured correctly on your computer, try it on someone else’s computer. You can safely assume that a program that used to work can work again, if hardware and configuration was identical to what it was before, and if nothing external to the system has changed. If not, it is your job to find out what changed.
  9. Be proactive. Keep enough spare equipment and test equipment around you so you don’t have to go get everything you need each time you have a problem. Get a serial communications toolbox set up, and keep adding items to it. You should have everything listed in the toolbox appendix, plus whatever you can think of that might help. Add your own list of problems to the general principles and share what you have learned with your colleagues. Document what you have learned in the form of a single growing document, rather than in a series of short memos, and keep all of your information organized together.

 

back to table of contents