Writing

Software, technology, sysadmin war stories, and more. Feed
Monday, April 16, 2012

External modems and little blinky lights

I always preferred external modems when I was doing things which relied on them. I never really thought too much about why until recently. It got me thinking about my methods of troubleshooting and understand what's really going on in a complicated system.

USR Courier modem

Remember these? They started off quite large and shrank during the '90s, but the same basic indicators persisted. There was a certain pattern which indicated everything was alive and well. HS, CD and OH would be steady, and TR/MR/RS/RS would also be steady if nothing big was happening. ARQ would also stay on solid if the line was clean.

RD and SD would flicker a bit to show data transfer, and that was about it. The biggest change from this is when you started transmitting lots of data. Since we tended to drive these things faster than the phone lines would allow, it would stream for a second or so and then the modem's buffer would fill up. It would drop CTS (clear to send), and the CS light would go out. The computer would notice this and stop transmitting.

During a big data transfer, this meant you could look over and watch it go between 5 lights on (SD solid, plus TR/MR/RS/CS) to 3 lights on (SD out, TR/MR/RS on, CS out) over and over until it was done. Once in a great while, something bad would happen while receiving on my end, and my software would drop RTS (ready to send, RS on the modem) to say "hey, stop sending me stuff for a little bit". This was an unusual pattern on the front panel and definitely stood out.

On impaired lines, ARQ would flash. This meant it was dealing with some corruption in the data somehow. Ideally, it shouldn't flicker at all, but there were times when you could tell that your connection just wasn't going to hold.

This would also be confirmed by watching MR drop out. If the modem dropped this (modem ready) indicator, it usually meant it was doing a full-on retraining sequence with the other end. This stopped all transfers for at least 5-10 seconds while they figured things out.

Of course, with particularly bad modems on the other end, it would sometimes start retraining and never recover. There were certain types of modems which really could not handle anything but a pristine line and would choke if you even looked at them funny. I used to verify this with what I called a "pen test" back then -- no, it had nothing to do with security. I'd just use a metal pen cap to bridge the terminals on a breakout box connected to my phone line and then see if the connection stayed up. More often than not, the cheap modems would fail.

Anyway, none of this was possible with an internal modem. You simply had no LEDs to rely on to get a sense for what was going wrong. Some terminal programs apparently tried to display the RS-232 signals on-screen as a troubleshooting tool, but that was also of limited use. There were things happening in the modem which did not translate into those control lines, and thus you could not see it on the other end of a serial port.

I'm not even going to get into the "Winmodem" software modems which came later and created a whole new batch of problems in the name of being cheap. Sometimes, you really do want a little self-contained box to handle certain problems.