Software Modems

(sometimes also called WinModems)

What is a Software Modem

Traditional analog modems are based around hardware modulators/demodulators, typically some kind of DSP or VLSI chipset including some kind of internal processor / software. They are basically an embedded system with two external interfaces:
  • the analog phone line interface
  • a RS-232 serial line towards a terminal or computer

As desktop computers and laptops became more powerful around the turn of the century, various manufacturers started to implement software modems. Those modems only contained the analog line interface and an ADC/DAC. All the actual signal processing (equalizer, modulation, demodulation, coding/decoding, etc.) happened in software running on the main processor of the desktop/laptop computer (typically an x86 CPU).

The related proprietary software for the main CPU was typically specific to a given vendor/chipset, and was offered in most cases only for Windows type operating systems, hence also the name WinModem. There were some exceptions where binary-only software was also offered for Linux or other OSs.

Models/Types of Software Modems


One of the early providres of softmodem chispsets; acquired by Conexant in 2003.

Lucent K56flex

The Lucent K56flex was a series of chipsets (Apollo, Mars, Venus) and associated line interface circuits supporting V.34 and/or V.90 standards

  • Venus datasheet with block diagrams for ISA/PCI/PCMCIA/USB attached versions

See also for Apollo/Mars, Venus, Scorpio and Wildwire chipsets.

Lucent AMR / Agere Systems

Lucent Technologies provided another softmodem implementation for Linux in the early 2000s, it was also distributed as binary object files for x86 CPUs.


Rockwell International (a major manufacturer of low-cost chipsets for hardware modems since the early 1990s) spun-off their semiconductor division into Rockwell Semiconductor Systems, Inc in 1996, which subsequently became Conexant Systems, Inc

The HCF family of chipsets did still include a DSP, for firmware updates see

The HSF family was a full-soft-modem, see for details.

They built a number of soft-modem chipsets, such as

Cirrus Logic / Ambient Technology / Intel

Cirrus Logic developed hardware and software modem chipsets. The modem division was later spun-off as Ambient Technologies and finally acquired by Intel.

The softmodem chipsets include the The MD563x (PCI), 537EP (PCI) and 537EA (AC97).

More information can be found at

Motorola HSP



There were three common variants/configurations of Smartlink softmodems:

  • AMR/CNR/ACR/MDC/MiniPCI: HAMR5600 or SL2000 + Si3012 or Si3014
  • PCI: PCI chip + HAMR5600 or SL2000 + Si3012 or Si3014
  • USB: ST7554 (controller) and STLC7550 (Modem AFE)

See for more information


smartlink is one of the few vendors who provided Linux drivers for their modems, slmodemd. The actual modem code was a binary-only library pre-compiled for 32-bit x86 CPUs, which got linked into an (open source) daemon.
There is an experimental (but well working) yate module which links against slmodem and makes it usable for answering modem calls dynamically called shadysoftmodem .



3Com / USRobotics


MC97 / AC97 Modems

At some point, the AC97 standard for mainboard-based sound card functionality was extended so that the audio software stack could not only drive the analog audio codec for multimedia purposes, but also drive a specific "telephone line interface codec IC" with associated analog line interface. This meant that the modem would basically show up as a second audio device on the PC.

The actual "telephone line interface codec IC" together with the analog interface circuitry was often not put on the mainboard of the PC or Laptop itself, but implemented via an add-on card. See AMR_Modem_Riser for more information.

Open Source Software for Software Modems

There were several different projects that implemented software modem functionality. The lack of a standard interface (software API or hardware interface) towards the analog line circuitry meant that the projects are usually only usable with very specific harware and not interchangeable.


spandsp (originally released on is a library of DSP functions for telephony created by Steve Underwood.

Its primary use case was to send/receive Fax over analog phone lines in the software VoIP/PBX systems (iaxmodem, Asterisk, CallWeaver and FreeSwitch)


linmodem is a softmodem implemented by Fabrice Bellard originally released at - some Osmocom mebers have done some small improvements to make it build on mordern Linux distributions and have plans to further extend it, see the issue tracker and git repository

Supported Standards: V.8, V.21, V.23
Incomplete Standards: V.34, V.90


This is not really a contemporary software modem, but a retrocomputing project by @supersat

ArduinoModem is a project implementing Bell 103 (300 bps) on an arduino microcontroller. It allegedly is loosely based on and

Supported Standards: Bell 103


btx_modem is a software implementation of the V.23 standard used in retrocomputing applications for the German BTX system.

Supported Standards: V.23


fisher-modem is a software modem implementation by Dr. Tony Fisher.

Supported Standards: V.21, V.32, V.29
Incomplete Standards: V.32 originate, V.34 originate


app_softmodem is a software modem for use with Asterisk

Supported Standards: V.23, V.21 and Bell 103, but also V.22 and V.22bis

Updated by manawyrm 5 months ago · 9 revisions

Add picture from clipboard (Maximum size: 48.8 MB)