User Tools

Site Tools



QtSoundModem (QtSM) is a multi-platform port of UZ7HO's Sound Modem - a software modem that uses a computer's sound interface to send and receive AX.25 data, known as packet radio. It supports various baud rates from 300 to 4800 baud and modern extensions like FX.25 and IL2P, and if you already have a suitable sound interface and method to trigger a PTT its a quick and easy way of getting started with packet radio without having to invest in a dedicated TNC.

Note that QtSoundModem only handles the modulation and demodulation of the data. To interact with another packet station you'll need a packet terminal like QtTermTCP

QtSM showing the waterfall and some transmitted packets:



The instructions were tested on Windows 11 but presumably work on other versions.

First off if it doesn't already exist, create a directory in your Documents directory and call it something like “Packet Radio Software” or similar.


Extract it, and copy the “release” directory to the newly created directory, then rename it to something useful like QtSoundModem.

To access if from the Start Menu, Find QtSoundModem.exe, Right Click it, and select Pin To Start.

Optionally if you want to create a desktop shortcut, you can also Right click the exe again, select Show more options > Send to > Desktop (Create Shortcut)

This completes the installation. The first time you run it you may get a message that Microsoft Defender SmartScreen prevented an unrecognised app from starting. Click “Run anyway”


Setup Devices

First of all you will need to configure some basics, like which sound interface to use and how to trigger the PTT.

Go to Settings > Setup Devices

Configure the output and input devices - these should be set to the soundcard thats connected to your radio.

Configure the other options as per the screenshot below. We'll just use a single modem for now to keep things simple

To setup the PTT see the PTT Section



The CM108 is a cheap USB sound card that can be modified to handle the PTT.

To get the PTT working you'll first need to grab its ID. To grab the ID, open the Windows Device Manager, expand the Sound, video and game controllers section section and find the correct sound interface. Right Click on it, then select properties, then navigate to the Events tab. You should see an event for “Device Configured” and clicking on it will show additional information with a long string that looks something like Device USB\VID_0D8C&PID_0012&MI_00\8&821c4f1&0&0000 was configured.

The ID of the interface is made up of the VID and PID sections so in my case its VID_00D8C&PID_0012 which abbreviates to the ID ''0xD8C:0X12'.

You can then fill in the relevant settings in “Setup Devices” section in QtSM:

Select PTT Port: CM108 CM108 Device: The ID you obtained from Device Manager. It should look something like 0xD8C:0x12

Setup Modems

Go to Settings > Setup Modems

The Modem settings can largely be left as-is, but you may wish to enable FX.25 or IL2P if the other stations you're connecting to support them.

You may also wish to set Bits Recovery to “single” to try and fix corrupted AX.25 frames.


You can perform a couple of tests to ensure things are setup correctly. Ideally you'll need a second radio on the same frequency to listen to the transmission.

First off, check the waterfall is displaying something plausible.

Next, go to the Calibrate menu in the toolbar at the top. Press “Low Tone” for Channel A and you should be able to hear the tone transmitting. If not, check your connections and configuration, especially regarding the PTT settings. Press “Stop Tx” when done.

Setting Baud Rate and Tones

1200 Baud AFSK

1200 Baud AFSK is commonly used to access packet radio on 2 metre links.

In the main QTSM window, set the drop down to “AFSK AX.25 1200bd” and enter “1700” in the box to the right. Each tone will be +/- 500Hz giving you 1200 and 2200 tones commonly used on 1200 baud


For usage, see the instructions on configuring and using the AGW interface in QtTermTCP

packet/qtsoundmodem.txt · Last modified: 2023/06/10 16:00 by 2e0sip