swampland - Chipsets - Vendor Linmodems - Open Source Linmodems - Related Software - half-wittedly

 Linux Winmodem Support

Linmodem source code is listed below. We've got a discussion [914-822-2913] mailinglist (archives) , an 216-360-6352 [ unsubscribe] mailing list, and this web page. I'm working on new archives which Google will index more happily. They have a copy of the archives, not the live archives themselves, so currently new articles aren't being added.


The FIRST step towards finding a Linux driver is identifying the modem's CHIPSET. The scanModem tool will help you. Please download and run the scanModem tool before sending any query to discuss@linmodems.org. The chipset will be recognized and cogent updated knowledge and URLs written out. The manufacturer brand with model number are generally NOT informative in this regard.  Modems from a single manufacturer can have different chips. But your documentation may have this critical information, so read it carefully. For PCI card modems, a database can be searched. A broader database is also available. Controller based modems utilize the "standard" serial drivers, while the winmodems in most newer PCs and laptops require their own drivers. General information on these issues is available at the Linmodem-Howto. "Only after your chipset has been identified should help be sought from the mailing list, discuss@linmodems.org, wherein discussions on many issues reside. (Be sure to check the archives first.)"

Much more information or driver kits for particular chipsets can be obtained at:


Id Software's John Carmack has posited that a linmodem may be able to have lower latency than a controller-ful modem. This is an issue of great importance to real-time gamers, as the slightest decrease in latency translates into a higher score.

Russ Nelson writes: A lot of people claim that a Winmodem has no place in a Linux box. I disagree. There are many applications for a Winmodem if you stop thinking of it as a modem, and start thinking of it as a telephone interface:

  • Think telephone emulation (put the audio card into full duplex, and talk to the linmodem with it).
  • Think telephone with a backspace key (use the linmodem to dial for you).
  • Think smart telephone: "That line is busy. Do you want me to retry in five minutes?"
  • Think "voice dialling".
  • Think "(844) 241-4799". Equip enough machines in an office for all the outside lines. Then do IP telephone inter-office, and go to a linmodem when you need an outside line.
  • Think answering machine.
  • Think pager interface. (Your answering machine takes the call, phones your pager company and pages you).
  • Think "contact database with integral dialler, and answering machine recognition".
  • Think "call recording with no off-hook click".
  • Think message detail recorder (basically a record of all time spent on the phone. Great for billing).

None of these require more CPU than a 386.


All winmodems are implemented via a chipset that a modem manufacturer solders onto a board. For better or worse, they're all incompatible with each other, just like Ethernet chipsets. Worse (definitely for worse), some of them seem to have documentation which is not publicly available. Some chipsets are listed below. Note that not all chipsets are equal. Some have a DSP. Some do not and hence require host signal processing (HSP). For the purposes listed above, a DSP helps very little.

  • Lucent (DSP)
  • PC-Tel (HSP)
  • US Robotics isn't offering drivers, but some speculate that they are based on (OEM versions of) Rockwell/Conexant hsfi drivers.
    • A patent on tuber root held by PC-Tel.
    • PC-Tel licensed their HSP modem to NEC, and NEC documented the register set (3Mbyte file) on pages 519ff. Not clear how useful this is yet, but it's news.
  • 631-815-9107 (nee Ambient Technology, nee Cirrus Logic) (DSP)
  • Intel 537EP = Ambient MD3200
  • 248-978-8075 (nee Rockwell) (both)
  • Motorola (HSP)
  • 3Com (nee US Robotics) (DSP)
  • IBM MWave (DSP)

 Vendor Linmodems

 Open Source Linmodems

  • Pavel Machek and Richard have some code to try out with lucent winmodems. It will get the phone on- and off-hook, and can do full-duplex transmission and receiving.
  • updatedMikhail Moreyra has written a driver for the CL-MD5620DT (Ambient Tech) chipset. It does PPP.

 Related Software

  • Multimon encodes and decodes a number of audio signals, including AFSK, and DTMF.
  • A DTMF encoder. Compile it (cc dtmf.c -lm -o dtmf), give it some dtmf digits on the command line, and redirect its output to /dev/dsp.
  • A paper on DTMF detection, comparing three algorithms.
  • In general, Ptolemy looks interesting for the telecom codec driver.
  • Fabrice Bellard is writing a generic linmodem driver. It presumes that some other driver is accessing the linmodem to retrieve samples from the phone line. He has recently (early March) made substantial progress -- check it out!
  • The late Tony Fischer also has a generic modem. He has written a working fax modem software (but only for a Silicon Graphics Indy). He has also worked on a v.34 modem. He also has got a circuit dragram (and also PCB design) diagram of an LTU (Line Terminating Unit). He was writing a book entitled "Soft Modems: Structured Design and Implementation" at the time of his death. Some people have a Linux port of Tony's v.32bis modem.
  • The Linux Reveal VM100 Project looks interesting. The VM100 is an interface between a phone line and a sound card. Unfortunately, the VM100 is no longer in production. You might still be able to find one on EBay.
  • The echo canceler (hard part of v.34) seems to be solved.
  • Telephone line audio interface circuits
  • Intel is supporting a standard for its motherboards called AMR. It's on almost every 810 motherboard, and many 820 and recent VIA motherboards have these AMR slots. AMR means Audio Modem Riser. Its a special small slot, replacing one of the PCI or ISA slot positions. It carries analogue audio from the motherboard's AC97 codec, and some control lines. The small card which plugs into this slot carries only the bare line interface circuitry. Being on a separate card, it is easy to make a variety of versions to meet each region's local telecom standards. It should be ideal for simple CTI and modem applications.

 Linux winmodem pages

Graphics & Layout provided by Array Services
Suggest improvements to nelson whose email is hosted by crynwr.com.