Software Defined Radio

A Software Defined Radio (SDR) system is a radio communication system where components that have typically been implemented in hardware (e.g. mixers, filters, amplifiers, modulators/demodulators, detectors. etc.) are instead implemented using software on a personal computer or other embedded computing devices. While the concept of SDR is not new, the rapidly evolving capabilities of digital electronics are making practical many processes that were once only theoretically possible.

The term "Software Defined Radio" was coined in 1991 by Joseph Mitola, who published the first paper on the topic in 1992. However software-defined radios have their origins in the defense sector since the late 1970s in both the U.S. and Europe.


A basic SDR may consist of a computer (PC) equipped with a sound card, or other analog-to-digital converter, preceded by some form of RF front end. Significant amounts of signal processing are handed over to the general purpose processor, rather than done using special-purpose hardware. Such a design produces a radio that can receive and transmit a different form of radio protocol (sometimes referred to as a waveform) just by running different software.

Software radios have significant utility for the military and cell phone services, both of which must serve a wide variety of changing radio protocols in real time.


In the long term, software-defined radio is expected by its proponents to become the dominant technology in radio communications. 

Software Defined Radio and Amateur (Ham) Radio

A typical amateur software-defined radio of home made design uses a direct conversion receiver and low power transmitter. Unlike direct conversion receivers of the more distant past, the mixer technology are now based on the quadrature sampling detector and the quadrature sampling exciter. The receiver performance is directly related to the dynamic range of the analog to digital converters (ADCs). First generation SDRs used a standard PC sound card to provide ADC functionality. The newer software defined radios use embedded ultra-high performance ADCs that provide higher dynamic range and are more immune to noise and RF interference.

A fast PC performs the digital signal processing (DSP) operations using software which is usually amateur-written, specific for the radio hardware. The SDR software performs all of the demodulation, filtering - both radio frequency and audio frequency- signal enhancement. Uses include every common amateur modulation: morse code, single sideband modulation, and a variety of digital modes.

Statement

Everything on this page is tested only with SDR transceiver Avala-01, developed by Tasic Sinisa, YU1LM. This is true especially for GKGSDR and MixW setup. I did not try other SDR transceivers setup, so, do not ask me. Simply, when you make or buy some of YU1LM creations you will never need anything else! More info about Avala-01 and other YU1LM radios at http://yu1lm.qrpradio.com/index.htm or if you prefer KIT assembly visit GenesisRadio at http://www.genesisradio.com.au/ and check Genesis G40, improved Avala-01 SDR mono band transceiver.

Windows settings

Before installing any of SDR software it is necessary to change some settings in Windows OS. As primmer I will use sound card integrated into mother board. First you need to set audio mixer output and input (recording) parameters. Fastest way to setup mixer properties is to double click at speaker symbol in system tray. 

After double click you will get mixer setting similar to this picture. Mute every signal source except Master Volume and Wave.

Next step is to set input (recording) mixer. In same window go to Options and then Properties. As a mixer device choose audio input. Mixer console will change into Recording Control. Mute every signal source except Recording and Line Volume.

This settings will be valid for all SDR software !

Utility Software Setup

Virtual Audio Cabel (VAC) Setup

Virtual Audio Cable (VAC) is a third-party software program that allows the rerouting and the emulation of a sound card in software rather than having to use a second sound card for audio analysis or use with digital mode programs such as MixW and Dream. There are some significant advantages to using VAC over a second sound card.


  • The entire audio stream is maintained in the digital domain - there is no multiple conversions of the signal from digital to analog and from analog to digital.

  • There are no external cables to degrade the sound quality or possibly pick up RFI.

  • A computer PCI, Firewire or USB slot is not used.

Configuring VAC 4.0x

There are several steps involved in getting VAC installed and working properly with SDR transceiver software. Below is a summary of the steps required.


  1. Obtain and install VAC 4.0x on the same computer that is running SDR transceiver software
  2. Configure VAC "cables"


Step 1. Install VAC 4.0x as per the installation directions. If VAC was previously loaded, you must first uninstall all versions before installing a new version of VAC 4.0x


Step 2. Once installed, set up a pair of VAC audio "cables" for use with SDR transceiver software by opening the VAC Control Panel. 

By default only one audio cable is defined. You will need to create two cables by changing the driver parameters to 2 cables then click SET and Restart. Highlight the appropriate cable and change the values to match the figure above. In the "Ms per int" box enter a value between 1 and 20 ms. The lower the value, the smaller the VAC audio buffer. In the example above, 7 ms was selected. Depending on your computer setup you may have to adjust this value to prevent the audio from dropping out or "popping". 

NOTE: After completing all of the necessary changes, click on Set for each cable when completed.
NOTE: Repeat these changes for the second audio cable as well.
NOTE: Do NOT check the Volume Control box in the VAC control panel. This enables the Windows Mixer and can cause unpredictable results.

This settings will be valid for all SDR software !

N8VB vCOM Virtual Serial Ports Driver Setup

This driver creates a "Virtual Null Modem Cable" in Windows 2000 and XP by pairing virtual com ports.Dowload and install Phil Covington, N8VB driver from hes site.

Add two cables by connecting COM6 to COM16, COM7 to COM17. Picture is self explanatory.

This settings will be valid for all SDR software !

KGKSDR by M0KGK Setup

KGKSDR is capable to work as transceiver with only one sound card. But before installing you mast be sure that you have proper ASIO drivers. ASIO drivers come with some better (read expensive) card, but in most cases free ASIO4ALL drivers will be good solution for any sound card. It is possible to download ASIO4ALL drivers from http://www.asio4all.com/ for free. Actual is version 2.9.

Next step is to download KGKSDR Transceiver (current in version 1.1) from http://www.m0kgk.co.uk/sdr/download.php and install it. After start KGKSDR main screen should look like this:


First, we need to set sound card and enable ASIO4ALL driver. In options menu select Transceiver.

Enable ASIO drivers In Control Panel for sound cards that you plan to use in KGKSDR (Realtek High Definition Audio on picture). Set COM port and parameters for remote control of transceiver. In this case it is COM port 1. Other parameters set as on picture. Below COM port parameters is transmitter RF output power. In case of Avala-01 set power to 5W.


In Hardware Options (second screen) check single card.

In section General is very important to turn off receiver during transmit. CW monitor style set to "RX mute during TX". Avala-01 comes with built in CW monitor. In case "RX on during TX, received signal will be transmitted again and will be very distorted. Other parameters at this section sets CW filter and CW VOX system.

Set spectrum Y axis margins. Sets the relative dB amount for the top and bottom of the spectrum display. Relative dB amount depends on frequency (band) and hum level.

Alters the purpose of the mouse wheel. It is best to set this control as 100Hz tune.

The colours options dialog allows you alter the colours used for the display in KGKSDR:
Each item has an associated colour box next to it.  You can click on the colour box to change the colour of that item.
A series of buttons at the bottom of the dialog allow various preset colour schemes to be selected.

Receive screen should look like this. For SSB operation set spectrum console to 10kHz and for CW operation to 3-5kHz.

KGKSDR and MultiPSK setup

Most popular combination of SDR and digmode software is KGKSDR and MultiPSK by F6CTE. MultiPSK is not freeware but it can be used as free software without some fancy options. If you like it, contact F6CTE and make a dill!


All you need is loop.dll. First, download, unzip, loop.dll and copy in windows/system32 folder. To be sure, start KGKSDR and look for notice "HB9TLK.dll" at KGKSDR panel.  If it is there, everything is OK.


Download MultiPSK from http://f6cte.free.fr/MULTIPSK.ZIP, install or just unzip archive to prefer location. If you first start KGKSDR and then MultiPSK, you will get error message like this.

MultiPSK try to use same sound card that is already used by KGKSDR! You can solve this on two ways. First, click on OK and then choose  "SdR interface  (Loop.DLL)" from configuration menu, and then "RX/TX screen". Second, the better one, start MultiPSK first! I will continue assuming that you choose second solution.


So, start MultiPSK first. You will get MultiPSK configuration screen like on picture. Make sure that serial port is set to "none".

Set any other parameter as usual (call sign, grid, QTH, name...) and then click on "SdR interface  (Loop.DLL)" from configuration menu.


At last, click at "RX/TX screen" to open standard RX/TX console. You will notice that receiving screen and waterfall is blank. This is because KGKSDR is not started yet!

Minimize MultiPSK and start KGKSDR. After returning to MultiPSK screen you will see something like this.


All you need to do is to set  your prefer mode and make some QSOs.

KGKSDR  and WinPSK setup

It is very easy to exchange date between KGKSDR and WinPSK. All you need is loop.dll and the modified pskcore.dll
from HB9TLK. First, download, unzip, loop.dll and copy in windows/system32 folder. When you start KGKSDR you will notice HB9TLK.dll sign at faceplate.

HB9TLK.dll notice in KGKSDR

Download WinPSK v2.13 from http://www.moetronix.com/ae4jy/files/winpsk213.zip or WinPSKse (special edition) v2.23 from http://www.hamsource.com/winpskse/winpskse223.exe. Install WinPSK and open program folder (this is the folder, where you find
WinPSK.exe). Find PSKCore.dll and rename it to something else. I prefer PSKCore_original.dll (see picture).

WinPSK folder - rename PSKCore.dll

Then, download, unzip and copy modified pskcore.dll to WinPSK program folder.

WinPSK folder - new PSKCore.dll


Start KGKSDR and set mode to USB and frequency to PSK portion of any band. At last, start WinPSK, set your info and try to make some QSOs!

WinPSKse - two channel receive window

KGKSDR and PropNetPSK Client

Settings for PropNetPSK client and KGKSDR is not much different from WinPSK settings. Download, unzip, loop.dll and copy in windows/system32 folder. This procedure is just  same as we did before. When you start KGKSDR you will notice HB9TLK.dll sign at faceplate.
Download PropNetPSK client from PropNET.org and install it. At the end of installation do not start program. You need to open /windows/system32 folder and find pskcore121.dll. Delete or better rename this file to something else (I prefer pskcore121_original.dll).  Then, download, unzip and copy modified pskcore.dll to PropNetPSK program folder (should be C:\Program Files\PropNetPSK\). Rename just copied modified pskcore.dll to pskcore121.dll.

Original pskcore was in version 1.21 and new one is in version 1.19 but i did not notice any difference during testing. Start PropNetPSK client, open configure dialog and set your personal data as usual. Keep sound card configuration as is and set com port to "none" (see picture).

Save configuratin and exit program. Start KGKSDR and after that PrtopNetSPK client.  Final settings of PropNetPSK I leave to you. Very good starting point is PDF User Guide located in PropNetPSK program folder.

KGKSDR  and MixW setup

This setup is not good for Genesis G40 because of different levels at PC connection port. In case that you need G40 solution, email me and I will try make new cable arrangement.

I spent many days trying to make KGKSDR working alongside with MixW. MultiPSK is good but for contests MixW is without competition. Main disadvantage of KGKSDR is lack of second serial port dedicated for CAT system (unlike PowerSDR). I will try to explain as simple as it is possible (only try :-)) how to attain a goal.

First of all, I must assume that you install and set Virtual Audio Cable like I did. It is very important to set VAC exactly as I explain before. Start KGKSDR and go to Options / Transceiver Menu. At first tab set sound card parameters like on picture. Notice that you need to change "Speaker out" to "Virtual Cable 1" and "Mic input" to "Virtual Cable 2". Confirm changes, set KGSDR frequency to PSK31 subband and start MixW.    


 

At MixW Sound device Settings menu (see picture) set "Device" to "Sound card", "Input" to "Virtual Cable 2" and "Output" to "Virtual cable 1". Confirm changes and leave this menu. 

 

At this point you will notice that MixW scope or waterfall start to show signals from KGKSDR

If you like to hear sound of digital signals you will need to start "Audio Repeater" from VAC package with parameters like on picture.

This was easy part. And now, something completely different! Worm up your soldering tools! It is possible to setup KGKSDR to work fully alongside with MixW digital multimode program. But, in this case, it is necessary to have PC computer with two serial RS232 ports. In most new desktop configurations there is only one serial port, but you can obtain one of cheap USB to RS232 adapters and set it to act as second serial port. Second serial port is dedicated only for RX/TX switching of Avala-01. Also, it is necessary to build one galvanic isolated adapter for connection between this Mixw dedicated serial port and Avala-01 back panel 3,5mm female jack.

There is two option for this cable. If you use my galvanic isolated interface, this cable will be easy to build.

Audio cables from and to sound  card will be omitted .

Second. and better option is to build simple optoisolated cable using this schematics:

Using this cable we will connect second, Mixw dedicated serial port and Avala-01 back panel 3,5mm female jack. Do not make mistake. This is Mixw dedicated serial port and will be set and use only by Mixw, so, all settings of this port will be done in Mixw not in KGKSDR. 

Install and start Mixw. In Mixw "PTT&CAT" menu set CAT to None (see picture).  Be sure that you remove check sign in front of "PTT via CAT command" and "Disabled"! Click to "Details" switch and set Mixw dedicated serial port. In this case on picture it is COM5. If you not sure in number of your second serial port, you can check this in Windows "Device manager".

 

Now we can check this cable connection and response of Avala-01. At this moment, leave KGKSDR as we did before during initial settings. Connect Avala-01 and PC as usual over RS232 cable (first PC RS232 port). Start KGKSDR and make sure that everything works. Set KGKSDR to USB or LSB modulation. Connect second, Mixw dedicated serial port, over new galvanic isolated cable to Avala-01 back panel 3,5 mm stereo connector. It is very important to not change KGKSDR serial port parameters that we set before (see picture). Via this parameters we can set Avala-01 serial adapter and also set behave of back panel 3,5mm connector that we will use for RX/TX switching!

Turn on Avala-01. Start KGKSDR and MixW. Go to KGKSDR screen and try to switch Avala-01 to TX using "Tune" switch". If everything is OK, proceed to MixW and try to switch to TX position (from MixW). If everything is good, MixW will switch Avala-01 to transmit over new cable!

Maybe, you will need to play little with input and output levels in KGKSDR and MixW to "squeeze" all RF power from Avala and set best receive in MixW, but, it is up to you. Do not forget, make some QSOs (if you still have a nerves after this "simple" setup)!

PowerSDR SR40 Setup

There is many branches of Flexradio's open source PowerSDR. One of most suitable for xtal controlled simple SDR radio  (like Avala-01) is PowerSDR-SR40 by PE1NNZ that can be download from http://powersdr-sr40.sourceforge.net/. After standard installation it will be necessary to setup some parameters. In setup menu choose audio settings and choose your sound card. If it is not on supported audio card list (as my Sound Blaster Audigy SE) set it as "Unsupported Card" and set other audio parameters per  audio card technical specifications (see picture). In general setup choose Soft Rock and if you use fixed LO frequency, set central VFO to this frequency.



General/Options menu should look lie this:


If you plan to use PowerSDR for digital modes it is necessary to set Virtual Audio Cable support. In Audio/VAC menu enable VAC and set a pair of Virtual cables that you created as shown before. You can play with Sample rate to choose best audio. In my case it was 48000 but 22050 or 44100 should be good to. If you need VAC only for digital modes you can auto enable VAC for this modes and disable for others by setting this option. In my case, I use USB for digital modes so I leave this option unchecked. BTW, If I set DIGU or DIGL (at a main screen) for digital modes, I got a one or two seconds "delayed" RX/TX switching ?! Maybe someone know what I need to change to get non delayed RX/TX switching ?

In DSP/Keyer menu set "real"  (NOT VIRTUAL!!) COM port for remote control of Avala-01 TRX and disable monitor operation. Set "Semi Break In" option for CW key and "Delay" according your CW skill and speed.

This part is essential for paring PowerSDR with other HAM radio software. If you install and set Virtal Com ports as I explain before, choose COM7 for CAT control and COM6 and RTS line for PTT control. Set CAT ID according your CAT software. I use Hamradio Deluxe/DM780  with native support for CAT control SDR-1000, so I just choose SDR-1000 from this menu.

Full working PowerSDR-SR40 should look like this:

PowerSDR SR40  and Ham Radio Deluxe (DM780)  setup

Ham Radio Deluxe (HRD) is a suite of free Windows programs providing computer control for commonly used transceivers and receivers. HRD also includes mapping, logging, satellite tracking and the digital mode program Digital Master 780 (DM780). You can obtain a fresh instalation from http://www.ham-radio-deluxe.com/. It is a great suite. I use it for everyday operation. It is very handy to have all necessary software in one package. Many thanks to Simon Brown, HB9DRV and all other guys involved in HRD coding.

After standard installation procedure, start HRD main module and choose parameters for CAT controlled radio.
PowerSDR-SR40 MUST be started before HRD main module!!! In this case that would be SDR-1000 (PowerSDR)  and virtual com port 17 (paired with virtual com port 7).

After connecting HRD to PowerSDR-SR40 via virtual CAT link (COM17, COM7) you will see window like this: 

In HRD "Tools" menu click at "IP Server". Enable "Start server when HRD starts". Do not change port! Leave it as is! At a right side you will see your local IP address. This option will make possible remote control of HRD from other computers in local network or from other programs that run on local computer or at local network. Very useful for connecting DM780 to HRD and PowerSDR! You must have installed TCP/IP on your computer to use this option, but, this should not be problem. Almost every Windows installation has this by default.

From HRD main menu choose DM780 icon. It will open DM780 digital multimode software. Press F8 or from tools menu choose "Program Options". Click at a "Soundcard" and you will get screen like this. For input set Virtual Cable 2/Source: Line and for output set Virtal Cable 1/Source: Wave

Then, click at "PTT" sub menu and set option "via Ham Radio Deluxe". Using this option DM780 will switch transceiver PTT using internal connection to HRD main module via TCP/IP and CAT control. To enable IP connection to HRD click at "Configure HRD connection" and set "Allways connect to HRD" and then "Connect". If it is OK, you will be able to control PowerSDR from DM780 over IP connection to HRD!! Great! I can imagine many nice ideas for remote controll of Avala-01 from different places in my local network!! 





At last, after all these settings you will get full working Ham Radio Deluxe, DM780 and PowerSDR-SR40 setup. Take deep breath, sit, set all bunch of "common" HRD settings and make first qso with your Avala-01! 

PowerSDR SR40 and WSPNet setup


One of the things that makes communicating with amateur radio more fun than using the Internet or the phone is that you never know where your signals will be received. Short wave radio propagation is never completely predictable, and can often surprise you. If this is an aspect of radio that fascinates you, then you'll enjoy using WSPR.

WSPR is a piece of software that enables you to participate in a world-wide network of low power propagation beacons. It enables your radio transceiver to transmit beacon signals, and to receive beacon signals from similarly-equipped stations in the same amateur band. Because participating stations usually upload spots that they receive in real time to a web server, you can find out within seconds of the end of each transmission exactly where and how strongly it was received, and even view the propagation paths on a map.

It is vitally important that your computer clock is accurate, as this governs when WSPR starts each transmit or receive period, and nothing will be decoded if your clock is more than a couple of seconds out.

If you are using Windows XP, open the Date and Time window in Control Panel and select the Internet Time tab. There, you should see an option to synchronize the clock using an Internet time server, time.windows.com. Select this option, and do an immediate sync to see if it works.

Once you have your computer clock set it's time to install WSPR. You can download WSPR from here. It installs in the usual way for a Windows application. StartPpowerSDR SR40 as we set before and set frequency to 7.0386Mhz USB (valid for G40 and Avala-01). If you need some other band choose one of the frequency from table below.

Band Dial freq (MHz) Tx freq (MHz)
160m 1.836600 1.838000 - 1.838200
80m
3.592600 3.594000 - 3.594200
60m
5.287200 5.288600 - 5.288800
40m
7.038600 7.040000 - 7.040200
30m
10.138700 10.140100 - 10.140300
20m
14.095600 14.097000 - 14.097200
17m
18.104600 18.106000 - 18.106200
15m
21.094600 21.096000 - 21.096200
12m
24.924600
24.926000 - 24.926200
10m
28.124600
28.126000 - 28.126200
6m
50.293000
50.294400 - 50.294600
2m
144.488500
144.489900 - 144.490100


Once WSPR is installed, start it. Note that a console window will appear just before the user interface window shows. This is normal. Don't close it! However, console will display some vital information about installed audio devices at your PC. Among other, notice our previously created Virtual Cable 1 and 2. One pair (audio device 4 and 5 in my case) for input, and second pair (audio device 9 and 10 in my case) for output.  Take a paper and make notice with  Audio device number for each cable. Now, you can minimize console window.



In main window open Setup, Options. Enter your callsign and full six-character locator. Enter the number of the serial port that will be used to control PTT (for COM16, enter 16.) Enter 0 to disable PTT control.


According your notice with Audio device numbers set Audio in and Audio out. For Audio in set Virtual cable 2 with inputs (in my case no.5), and for Audio out set Virtual cable 1 with outputs (in my case no.9).

Select the power you will be using, in dBm. The dBm values are encoded in the software, so you can only use the values listed, e.g. 30dBm (1W), 33dBm (2W), 37dBm (5W), 40dBm (10W). In case of G40 or Avala-01 use 37dBm. From Band menu choose 40m band.


Receiving

Now click the Rx radio button in the T/R cycle control, and wait. When the next even numbered minute starts, WSPR will display Receiving in the bottom right of the status bar. It will continue receiving for one minute and 54 seconds, during which nothing will appear in the waterfall display. After that, it will display Waiting to start, and a couple of seconds after that a chunk of waterfall will appear in the display. If you see any faint (or not-so-faint) horizontal traces, these are probably signals from other WSPR users, and if you are lucky, WSPR will have decoded them and will have displayed the details in the Band Map and in the log list in the lower half of the window. As the clock ticks over to 00 seconds, WSPR will start receiving again.

If nothing is received then look hard at the waterfall segment that was displayed. If it shows faint "noise" then it is probable that no stations were transmitting. If it is completely blank then there may be a problem with the VAC connection from your radio, or your mixer settings. Since using a waterfall that only updates once every two minutes to check the result of changes can test your patience. Important! Check "RX Noise" at bottom, status line of WSPRNet window. If it is red, and showing high dB numbers (20 - 30dB) , then audio level of incoming signal from PowerSDR is to high. You should reduce AF gain in PowerSDR to 10 or 15. That will solve a problem. Remeber, be patient, waterfall updates once every two minutes!

If you have more than one sound card you will probably need to specify the soundcard number in the setup options as well. The console window mentioned earlier will help you decide what number to put.

When you have verified that your receiver is working correctly, tick the checkbox marked Upload spots. This will cause details of the spots you receive to be uploaded to the WSPR Spots Database at WSPRnet.org. This is what makes WSPR fun, interesting and useful. It enables transmitters to know where their signals have been received, and at what strength. It also helps you get a picture of what propagation is like.

Transmitting

Now you are almost ready to send your first MEPT transmission. Before you do, you must enter your transmit frequency in the Tx freq box of WSPR. The easiest way to do this is to double-click in the waterfall. Pick a spot that is not being used by any of the stations you have already received. This should result in a frequency somewhere between 7.040000 to 7.040200.

Now click the 20% button in the T/R cycle control and wait. Eventually, when a new 2 minute segment starts, WSPR will display something like Txing: YT1DL KN04 37. This means that it is sending the information specified - your call, locator and transmitter power, as you entered in the Setup window when you started.

After one minute and 54 seconds it will display Waiting to start again, and then go back to receiving. At each new 2 minute segment your station will transmit with a probability of 20%. If activity is low, you can increase the frequency of transmissions by selecting 25% or 33%.

After your transmission has finished, wait a few seconds and then open (or refresh, if it is already open) the WSPR Spots Map. With luck, your signal will have been received and decoded by other WSPR users, and will appear as spots in the database and map. Congratulations! You are now a fully fledged member of the WSPR Network!


PowerSDR SR40 and MultiPSK setup

To set MultiPSK to work with PowerSDR is very easy. In configuration menu choose "Serial port" and then set "COM16" and then from "Options for serial ports" choose "Activation of the RQS(RTS) pin, only, with DTR always Low". As output sound card set "Virtual Cable 1" and for input sound card set "Virtual cable 2". As before, click at "RX/TX screen" and make some QSO.