Soundcard Radio Direction Finding (RDF)

Updated: 2010.07.13

For theory of operation See:
"A Doppler Radio-Direction Finder (Part 1)" by Mike Kossor, WA2EBY - QST, May 1999
"A Doppler Radio-Direction Finder (Part 2)" by Mike Kossor, WA2EBY - QST, June 1999
and/or the nearly equivilant article is Ramsey Electronics Model No. DDF1 manual:

Doppler RDF projects:

Commercial Gear:

Pseudo-doppler DF technique

The pseudo-doppler technique is a phase based DF method that produces a bearing estimate on the received signal by measuring the doppler shift induced on the signal by sampling around the elements of a circular array. The original method used a single antenna that physically moved in a circle but the modern approach uses a multi-antenna circular array with each antenna sampled in succession. - Wikipedia

My idea may not be new, and variations are certainly used by professionals. Anyway, the idea is to create a high precision low cost RDF unit. To accomplish I've decided to use WA2EBY's antenna switcher (with a few slight modifications) along with a sound card, and a computer to do the signal analysis. Assuming one has a computer with a sound card this should allow people to have access to a very cheap high quality radio direction finder.

+ Very low cost
+ ability to easily coordinate with other RDF units via internet or APRS to perform triangulation
+ ability to send data to google maps application, allowing mobile RDF station to perform triangulation
+ ability to implement high quality DSP to generate very accurate and precise measurements. A cheap $40 soundcard can provide very high precision measurements that should allow for sub 1 degree measurements.
+ possibly remote control radio and RDF to help locate stations causing interference be it harmful or not
+ emergency RDF applications
+ since RDF data is in computer already, it should be easy to map and coordinate with other RDF stations.
+ can run unattended and record clips of audio before and/or during RDF operations
+ ability to improve system performance and feature set without changing hardware (simple software upgrade...)
+ high level popular programming language should help make code more accessible and easily improved
+ ability to remove the effects of multipath
+ ability to adjust and store other settings affecting operation characteristics

needs computer, possibly a fast computer...

Design requirements:
+ Open source and free
+ Must easily run on windows platform (majority of users run windows...)
+ If possible it should also be implemented on linux
+ Would need NEMA GPS source of some sort for time stamping and RDF location information if RDF was mobile.
+ if possible make a command line version so that it may run on very small/low cost hardware and or unattended
+ be very well documented, support would be community driven
+ be able to control the frequency a radio is monitoring
+ log data for analysis at a later time
+ if possible should be able to run on older low cost hardware

Computer soundcard generates antenna rotation signal, this is fed into a amplifier/buffer which is fed into a rectifier then a Schmitt trigger, then a 4 bit counter and finally a demux with 4 outputs. The demux is connected to WA2EBY's antenna switching circuit. The above circuitry is a very preliminary... It may also be implemented with a cheap 8bit 8pin microcontroller... Another improvement might be to increase the antenna array from 4 antennas to 8, this shouldn't be too difficult, in this case the microcontroller may be the best option. I'm not sure how much the number of antennas in the array affects the accuracy/precision of the system. There may be some accuracy/precision limit in the system based on the number of antennas used. The signal driving the antenna rotation may need to be at 2 or 4 times the desired doppler shift frequency...

The soundcard's line-in or mic port will be used to capture signals. The antenna rotation signal may need to be looped back into the soundcard as the left channel. While the right channel would be the signal coming from the radio. This may not be advantageous on fast systems, or at all...

Assuming the above connections work, and both the doppler signal and the antenna rotation signal are present on the line-in port, the software can filter these initial signals, especially the doppler signal. It's filters could be dynamic and based on the antenna rotation signal's frequency. After filtering the input the phase angle should be measured, then calibration constants applied. The measurements should be made repeatedly and then averaged and or filtered, these settings should be user adjustable (but good defaults should be available). After measurements are nice and clean, these should be logged / presented...

Functional outline of hardware and software:
Computer soundcard's left speaker out channel is connected to the left line in jack, and the RDF hardware's antenna rotation drive. The right channel of the line in jack is connected to the radio's sound output, this is our doppler signal. The RDF hardware also connects to a power supply (battery?) and to the radio's antenna jack. The computer is also connected to a GPS unit, and may be connected to the radio's control port. (Note: Add diagram)

Mockup of windows user interface:

Mockup of mapping measurements:

Project Progress:
+ 2008.10.06 - Initial project writeup/description
+ 2008.11.26 - purchased parts to build antanna switcher, however local parts shop didn't have the correct size inductors so next closest available value was used.
+ 2008.11.29 - antenna switcher circuit and dipole antenna array build complete. had one shorted capacitor, and may have some problems with one of the other antenna channels. When it's enabled instead of getting a much stronger signal the signal strength increases slightly, but the received signal contains a lot more noise.

+ 2010.07.13 -
I've been working on this project on and off since the last update. I've decided to not use the diode switching circuit, and have instead gone with a SP4T RF switch which is normally used in cellphone equipment. Advantages: great bandwidth, low insertion loss, low cost, and can switch at relatively high frequencies, lower part count. The problem I've found so far with them is that they're very small, I have a few that are 3mm x 3mm 16pin QFN. Recently I found an similar part in a 5mm x 6mm SSOP-16. These parts have 5 antenna ports, 1 common port that is connected to one of the other 4 ports according to the output of a 2:4 binary decoder. Current part I'm looking at is Digikey PN 863-1008-1-ND, made by Skyworks whose PN is AS204-80LF, it costs ~$3.36 in small quantities and covers 300 kHz - 3.5 GHz with less than .6dB insertion loss for frequencies less than 1 GHz.

I did an initial board layout for the 3mm x 3mm switch using CadSoft's Eagle Layout Editor, this design will need to be updated/redone for the new RF switch.

I'm starting to lean towards using wxPython/wxWidgets, Python, C++ and PortAudio to write the application software. Advanced DSP may be implemented in FORTRAN. The above mockups were done in Visual Studio, but I don't feel that VS is going to make this project open enough, even though the primary users will likely be running windows. If anyone is experienced with writing software using any of the above tools, and would like to participate, please let me know.

My goals are to get some basic hardware built, capture a bunch of data (various conditions), write a basic DF program, add DSP to reduce error (noise, reflected signals, etc), add connectivity so multiple stations can coordinate their DF measurements automatically, add additional features and improvements.

Another idea I've had is to integrate GPS, DF, and simple modem into a single unit (GPS + FPGA or DSP microprocessor). This module is connected to a HT (handheld radio). The user tunes the HT to their frequency of choice and takes DF measurements. The unit then switches to a coordinated frequency and broadcasts the DF measurements. The broadcasts are then received by one or more PCs who plot out the the DF measurements. Since this version doesn't require a PC for each DF unit, the DF units become even cheaper, and more mobile. For amateur use, a typical case for use might be finding the cause of repeater interference in the 2 m band. DF units could either be pre-deployed and remotely programed over APRS or carried by individuals in the DF team. If any team member detects repeater interference they can quickly setup and start sending DF measurements over APRS. These measurements could then be plotted by any team member with a PC anywhere in the world.

I hope to be making much more frequent updates to this project in the near future.