DC Connectors

Anderson PowerpoleI needed a few wire-to-wire DC connectors for a project. For high-current applications, I use Anderson Powerpole connectors, shown on the right. They many useful features: they can be soldered or crimped, they are genderless (meaning that there are no male and female connectors; any two can be mated), and they can form multi-conductor connectors. They are designed to carry 15A and higher, which is good if the application requires high currents. But for low-power applications, they are too bulky and too expensive (around $1 for a two-wire pair).

The major manufacturers like Samtec and Molex make a wide variety of appropriate connectors, of course, but the selection is almost confusing.

SAMSUNGI eventually settled on RCY connectors from JST. They are small, polarized (really mandatory), and inexpensive. I ordered 50 pairs of mating pigtails on eBay for less than $10. This is around 10% of the cost of Powerpoles. They do have a gender (socket and plug), which is a little less convenient for making various adapters, but I don’t think that there is a genderless alternative.

I think I will use them as standard DC connectors in my projects (at least until I exhaust the 50 pairs I bought :-)

JST RCY connectors

 

A small improvement to the DEMI LNA and a UHF J-Pole Antenna

IMG_0588I recently built two more UHF preamplifier kits made by Down East Microwave (DEMI) and a simple reference antenna to go with them.

The antenna and two preamplifiers feed a USRP radio with a WBX front end. The USRP uses a 6V power supply. This created a slight logistical problem for the preamplifiers. They contain a 78M05 linear voltage regulator that drops the input voltage down to 5V. The 78M05 requires an input voltage higher than 6V, which means that the power supply of the USRP cannot power the preamplifiers; I would need a separate power supply for them, one that provides 7V or higher.

This seemed a bit silly when so many low-dropout regulators are available. After searching a bit I found a 5V low-dropout regulator in the same package as the 78M05 that came with the kits (a TO-252 surface-mount package) and with the same pinout; a direct replacement. This regulator, TL720M05 by Texas Instruments, works down to an input voltage of 5.5V and can tolerate even higher input voltages than the 78M05. It does require a larger output capacitor of 22μF or higher; I used 47μF 10V SMD tantalum capacitors which fit on the printed circuit board without a problem. The parts were not expensive and I am happy with the improved functionality of the preamplifiers and the ability to use a single power supply for them and for the USRP.

IMG_0589Incidentally, I ordered these preamplifier kits with the optional enclosure and connectors; they fit together beautifully, as you can see below.

The antenna I built is a simple J-pole, which means it’s a dipole fed from one end by a quarter length matching stub. I computed the length of the stub and the radiating element using an on-line calculator. I left the radiating element a little long for tuning, soldered the coax to the matching stub at the point suggested by the calculator, and tested the antenna for low SWR with the FT-857D. The SWR was a little high. I tried the antenna up and down the 430MHz band trying to see in which direction to tune the antenna (hoping that tuning would require cutting the antenna rather than extending it). IMG_9795I eventually managed to tune it, but I discovered in the process that a J-pole is not an easy antenna to tune with an SWR meter alone. There are 3 tuning parameters: the length of the radiating element (which you can tune by chopping pieces off the top), the length of the matching stub (chopping pieces off its free end makes the stub shorter and the radiating element longer), and the connection point of the coax to the stub. The first two parameters should bring the antenna to resonance and the third should bring the resistive impedance to 50Ω. Eventually I got it close enough. In the picture on the right you can see the antenna with the coax connected. This short piece of coax is meant to connect the antenna to the preamplifier. Once it was tuned, I added a ferrite sleeve as a choke, put the antenna inside a PVC pipe with some foam to hold it in place (I also tested for resonance inside the PVC sleeve in case it affects the tuning a bit), and the antenna was ready. In the pictures below you can see the coax connection and the two halves of the ferrite sleeve, as well as the antenna mounted with a preamplifier on the roof.

IMG_9797  SAMSUNG

Transmitting (and Receiving) DVB-T on 1.2 GHz

What interesting stuff can you do with a wideband software-defined transceiver? This question started bugging me when I got access at work to an N200 USRP with a WBX daughter board. The N200 is a DAC/ADC motherboard that can stream up to 50M samples per second to/from a computer using a gigabit Ethernet cable, and the WBX is an up/down converter that covers 50 to 2200 MHz. Together, they can receive and transmit signals with bandwidth of up to about 25 MHz almost anywhere in the VHF and UHF bands.

The coolest thing I could think of is to transmit digital television in a standard format that could hopefully be received by normal televisions, set-top boxes, and USB TV dongles. I almost succeeded, and this post tells the story. (For the impatient, here is the summary: I managed to transmit digital TV to a standard dongle, but in order to do this both legally and ethically, I had to hack its driver a bit; the video is jumpy, but it’s there.)

Standard and Frequency Selection

Choosing a digital video standard to transmit was easy. The on-the-air TV stations here transmit DVB-T (a widely-used standard for terrestrial digital TV), and I already had a DVB-T USB donble (which I used as an SDR receiver up to now), so the obvious choice was DVB-T.

Selecting a frequency to transmit is more of a problem, because the easy choice is not a good choice. Terrestrial digital TV is transmitted in VHF and low-UHF channels, from 50 to 862 MHz. DVB-T channels are 6, 7, or 8 MHz wide. The only amateur band within this range that is wide enough is the 430-440 MHz band, and it’s only 10MHz wide here; in other parts of the world it covers 420-450 MHz. If I transmit DVB-T within these 10 MHz, I will transmit over many other signals, including satellites, repeaters, and simplex channels, so this band is really not an option. The next band up is 1240-1300 MHz, which is both wide enough and almost completely unused here, except for some EME usage near 1296 MHz. So the choice is easy; I have to transmit at 1.2 GHz. But DVB-T receivers won’t tune that high, given that all of the channels are at 862 MHz or below, so it’s a choice with a problem.

Still, I knew that my DVB-T dongle can physically tune up to 1700 MHz (this is also true for many other dongles, and I image also for many set-top boxes and built-in tuners in TVs). So I decided to transmit at 1.2 GHz and to try to force the dongle to tune.

I thought that it would be easier to convince the dongle to receive at 1.2 GHz on Linux than on Windows. I managed to do it on Linux and it was not hard; I still don’t know if this is possible at all on Windows, and if it’s possible how difficult it is. But the main thing for now is that it’s manageable on Linux.

Preparing for DVB-T Reception on Linux

My dongle is based on the Realtek RTL2832U demodulator chip (and on the Elonics E4000 tuner chip). I wanted to use it on a computer running Ubuntu 12.04; the Linux kernel in Ubuntu 12.04 does not support this dongle. This turned out to be a blessing in disguise, however.

Hubert Lin’s blog shows how to install the driver on Ubuntu 12.04 (and using a somewhat different procedure, on 12.10). I tried to follow the instructions but the processed failed at some point. Fortunately, Chris Merrett packaged the driver in an easier to install format called DKMS, and he explained how to install it in a comment in Hubert’s blog. I followed the instructions and everything worked just fine. A DKMS driver is installed in a source-code format and this source code is compiled for every version of the kernel that you use. This turned out to be very useful. Installing the driver is very easy:

$ sudo apt-add-repository ppa:chrisfu/rt2832u-dkms
$ sudo apt-get update
$ sudo apt-get install rtl2832u-dkms

With the driver installed, I installed an Ubuntu package called dvbt-apps, which contains a necessary channel-enumeration utility, and I was ready to try receiving the local on-the-air DVB-T transmissions.

The process starts with a utility called scan. It takes a file containing tuning information for local stations and tries to tune the dongle to them. The station information includes the center frequency, the modulation format, and a bunch of parameters that specify how the transmission is encoded. A DVB-T transmission (station) can transmit multiple channels (simultaneous programs), and scan lists all the channels that it finds within the transmission. I found a file listing the parameters for the local transmissions (at 514 and 538 MHz, transmitting the same channels), ran scan, and it found about 5 TV channels and more than 10 radio stations within the transmissions. Here is the input file to scan (for Israel):

# Initial scan config for Israel
# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
T  538000000 8MHz 2/3 NONE QAM16 8k 1/32 AUTO
T  514000000 8MHz 2/3 NONE QAM16 8k 1/32 AUTO

The output looks like this (chopped here for conciseness; the first two programs are TV and the other two are radio):

Ch 1:538000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_2_3:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:2561:2562:1
Ch 2:538000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_2_3:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:2593:2594:2
...
88FM:538000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_2_3:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:2897:26
MUSICA:538000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_2_3:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:2913:27
...

Next, I ran the vlc video viewer, providing it with the file that scan produced. I was able to view TV. I also recorded the video+audio stream of one of the channels using vlc in a format called a transport stream in order to try to transmit it later.

Tuning the Dongle to 1.2 GHz

At this point I created a copy of the scan input file and changed the center frequency to a frequency in the 1.2 GHz band. Scan failed; it could not tune the dongle to this frequency. I knew that the dongle can physically tune that high so I assumed that some piece of software was aware of the allocation of DVB-T frequencies and did not allow tuning any higher. I tried various frequencies until I realized that the dongle tunes up to 862 MHz. I searched for this number in the sources of the driver and found one C file that contained the number 3 or 4 times. It was the value for a field called frequency_max in structures that describe the capabilities of the dongle for several digital TV formats, including DVB-T.

I changed the value from 862000000 to 1700000000 and tried to get the driver to re-compile. It took me a while to figure out that the correct process is to remove the driver entirely and then to rebuild and install it.

$  sudo dkms remove -m rtl2832u/3.0.1 --all
$  sudo dkms add -m rtl2832u -v 3.0.1
$  sudo dkms build -m rtl2832u -v 3.0.1
$  sudo dkms install -m rtl2832u -v 3.0.1

Now the dongle tuned to 1.2 GHz. Scan obviously did not find any transmissions there, but I was now ready to receive my transmissions.

If somebody can figure out how to get these dongles to tune to 1.2 GHz under Windows, please let me know.

Producing the DVB-T Baseband Signal

There are several software packages on the web that produce a DVB-T baseband signal from an MPEG stream. I used a package called gbDVB written by Giuseppe Baruffa. It comes in binary format only for Windows and Linux, and it can produce (and decode) DVB-T in pretty much any format and modulation. It is fast: it works faster than real time on my desktop (with an i7 processor). I used version 3.3; the latest is 3.4, but it requires a somewhat complicated registration procedure. I did register it, but on Windows, not Linux; I plan to register on Linux and upgrade.

Another option I considered is OpenDVB by Gordon Cichon, which comes in source form and is written in Matlab. It is somewhat harder to use. I plan to try it out in the future.

Before you can use either of them, you need an MPEG (video or audio) file in a format called a transport stream. I generated several of these, always using vlc, a viewer that can also write the movie to a file in various formats. To save a transport stream, I used

vlc movie --sout=file/ts:movie.ts

I called dvbtenco (part of gbDVB) with options that told it to generate a DVB-T transmission using the same format and modulation as the local broadcasts, which I knew work with my dongle.

gbdvb/dvbtenco -i movie.ts -M 16 -m 2k -d t -l movie.log -o movie

This command generates a file called movie.bin with complex baseband samples at a sampling rate of 9.142857 M samples/s. The USRP cannot transmit at that rate (it needs a rate that divides 100 M samples/s), so I used a simple gnuradio-companion program to upsample the signal to by a 70/64 to 10 M samples/s, using a rational resampler.

Putting it all Together

That was basically it. I used a USRP utility to tx_samples_from_file to transmit the 10 M samples/s baseband file at 1.2GHz (actually near 1.3) and I called scan with an input file telling it to look for a DVB-T transmission there. Scan found my USRP transmission and produced an ouput that allowed vlc to tune and display the video I transmitted!

Actually, the video was very jumpy. I think this happened because tx_samples_from_file did not manage to read the baseband file and to send it to the USRP quickly enough. I managed to improve things a bit by converting the baseband file from a floating-point representation (8 bytes per sample) to short integers (4 bytes per sample), but it was still jumpy. Maybe the disk is not fast enough. I’ll try to transmit with a 6MHz bandwidth rather than 8 and hopefully the sampling rate can be reduced, which will shrink the rate at which the samples need to be read from the file and sent to the USRP. I need to investigate.

As I wrote above, dvbtenco runs faster than real time on my desktop, so in theory, I may be able to transmit live video with this setup. But the gnuradio resampler is very slow; maybe I can optimize it and run the whole thing live. But the first step should be to transmit a video from a file without jumps.

Another thing that is still missing is an identification of the program that is being transmitted. This information needs to be multiplexed into the transport stream. I am trying to learn how to do that.

A High-End UHF Preamp for the VHF/UHF Dongle

My experience with the DVB-T dongle has been somewhat mixed. It does receive all the signals that I’m interested in, including fairly weak satellites. However, interference often blocks reception. Most of the time the signals are blocked for short amounts of time, around a second. The blocking signals are not visible on the waterfall display, which I think means that they are not close in frequency to the signal I’m receiving. This is not surprising, given that the  bandpass filtering of the dongle is not particularly good and given that the 8-bit analog-to-digital conversion has a very limited dynamic range.

The best way to resolve this is to add a preamplifier between the antenna and the dongle. Most premaplifiers have bandpass filtering at their input, and some also have filtering at their output. A preamplifier also allows you to add a sharp bandpass filter at its output without reducing signal strength or adding significant noise.

I tried my old 145MHz preamplifier and it seemed to improve things a bit, but it’s huge. I decided to build a smaller preamplifier for UHF (430-440Mhz) and to add a sharp filter at its output, most likely an interdigital filter.

There are several good preamplifier kits available for UHF. The cheapest is made by Ramsey. It’s filtering is not very good, it uses leaded components (not ideal at UHF), and the transistor has a relatively high noise figure (they advertise it at 1dB, but the data sheet of the transistor they use, 2SC2498, specifies 2.5dB). Minikits’s preamp also uses mostly leaded components, but it has a better input filter and its 1.5dB noise figure is believable. Other kits use surface-mount devices. A kit by David Bowman has a noise figure of only 0.5dB but not much filtering (only high-pass). Gyula Nagy designed a preamp with an even lower noise figure and with sharp bandpass filtering, but he only sells the 144MHz version of it (and he only sells it with an enclosure and connectors, which makes it more expensive than other preamp kits).

I eventually decided to buy a preamp kit from Down East Microwave (DEMI). It has a low noise figure (better than 0.5dB if tuned for low noise and only 0.2dB higher if tuned for maximum gain), and filtering on both the input and output. The filtering is not very sharp (the preamp is designed to be followed by a separate bandpass filter), but there is filtering. It comes in various forms, including a PCB+components kits without an enclosure and without connectors. This form is relatively inexpensive at $25 plus shipping (for comparison, built in an enclosure with connectors, the preamp costs $75). The output filter is a diplexer, which improves stability when the preamp is followed by a sharp filter (it sends out-of-band signals to a dummy load rather than to the filter, which prevents them from being returned to the amplifier and possibly causing instability).

The kit contains a PCB, instructions, and a plastic tray with the components, almost all of which are surface-mount devices. The tray has 24 compartments for components, and a legend tells you which parts are stored in each compartment. This is essential, since many of the components have no markings at all (resistors do have markings, but capacitors and inductors do not). Surface mount components come in tapes, and the tapes are actually glued to the compartments; this helps keep the components inside the compartments until you actually need them. The glue’s bonding is weak so it’s easy to separate the tapes when you need to.

Before I started building, I needed to decide on an enclosure. I initially intended to create an enclosure from blank PCB material. But when the kit arrived, I realized that the PCB would almost fit inside the enclosure of a surplus 140MHz amplifier I have. I bought a few of them a while ago just for the enclosure and connectors. On the right you can see the enclosure (opened) and the amplifier that it contained, but with the connectors already removed. The connectors were BNC at the input and SMA at the output,and there are feedthrough capacitors for power (and for a control function that is not needed with the DEMI premap).

The DEMI preamp board was narrower than the 140MHz amplifier but about 2mm longer, so it did not fit in the enclosure. Fortunately, the 2mm at the edges did not contain any signals, just a bit of the ground plane and the input/output connections. I filed away about 1mm from each side until the board fit inside the enclosure. The input/output connections on the board are plated-through holes, so I had to remove some of the plating on the ground-plane side, so avoid shorting these connections to the enclosure. Finally, I drilled mounting holes using the original 140MHz amplifier as a template; they went just through the ground planes, not through signals on the PCB.  You can see the result below.

At this point, I was ready to solder the components. I knew I had to be very careful and not let any parts get lost or separated from its label for too long. I was as careful as I could, but I still managed to lose a 1μF tantalum capacitor. It’s actually one of the larger components, but it somehow jumped on my shirt and disappeared forever. I did search for it all over the place, but it was somehow gone. I didn’t have a replacement. It should have been on the output of a 78M05 regulator, so I checked the data sheet of the regulator and didn’t find any constraints on the capacitors that can be used, so I just replaced it with a 10μF 10v capacitor that was small enough to fit on the PCB. Afterwards I was even more careful afterwards (and didn’t lose any more components).

When I was done with the soldering, I screwed the amplifier into the enclosure, soldered the connectors, and started testing according to the instructions. You perform the initial tests with 50Ω dummy loads on the input and output. This went fine and the amplifier consumed an amount of current that the instruction says is reasonable and does not indicate oscillations, around 85mA. I then tuned it roughly with a receiver. At that point it was supposed to work with or without an antenna and load, but it did not work without an output connection (current consumption dropped to zero). I could not figure out why.

I decided to tune it more carefully at a lab. I did that at the Herzliya Science Center, with a calibrated signal generator and a spectrum analyzer. I was able to tune the amplifier, but it still behaved erratically. After a lot of troubleshooting I realized that I forgot to tighten the screws that hold the PCB to the enclosure. This pressure contact was also the ground return path for the power supply, so as long as the connection was loose, the power supply connections were unreliable. After I tightened the screws and re-tuned the amplifier for maximum gain, it started performing reliably. You can see it in the enclosure on the right.

Testing with the dongle show marked improvement in signal quality and a reduction in interference. I was able to receive all the satellites I tried, including some fairly weak ones like CO-55 and CO-57. I would like to test the dongle+preamp receiver in a full-duplex satellite contact, but I didn’t get around to this.

A High-Performance Sound-Card AX.25 Modem

My APRS RF-to-internet gateway (iGate) had been running  a sound-card modem called soundmodem by Thomas Sailer. The software modem caused various problems and I have not found a suitable replacement. Eventually, I decided to try to implement my own sound-card-based software modem. The results have been very good, in spite of the fact that I do not have much background in digital signal processing.

I’ve been using the modem for many months now in my iGate. The modem is run is a component of javAPRSsrvr, not as a separate program. It’s working reliable non-stop.

An article that I wrote for QEX explains how the modem works and how I designed and optimized it. It is also available on my university web site.

All-Mode VHF/UHF Reception with a Low-Cost TV Dongle

Balint Seeber’s new software supports not only the USRP, but also a range of low-cost USB dongles designed for receiving DVB-T television signals. When I read about this, I felt that I can’t not try one, so I ordered an ezcap dongle for $20 from a Chinese seller on eBay. It arrived a couple of days ago, and my experience so far is very positive.

The dongle I ordered was listed as an ezcap dongle, which is one of the models supported by Balint’s software. The dongle that arrived is exactly the one that was shown in the picture on eBay; inside, it was labeled as EzTV666. It came with a 15cm whip antenna, so I plugged in the antenna, plugged in the dongle, configured the driver using Zadig, and started up HDSDR. Balint’s library for the USRP and the TV dongles was already installed, so all I had to do is tell the software that I wanted to use a TV dongle and it worked without a problem. I didn’t have to install any new software.

I was immediately able to receive some local narrow-band FM traffic. I ran the dongle with a bandwidth of 1.6 MHz, so you can see a nice piece of spectrum on the screen at once. It goes up to 3.2 MHz, but Balint warns that high bandwidths cause some signal degradation. In the screenshot below you can see shorts bursts from a hand-held trancseiver at the input frequency of a local repeater and the repeater’s output 600 kHz higher. The repeater output bursts are longer because the repeater controller adds a “tail” to each transmission. It’s pretty neat to see both the input and the output of a repeater at the same time. The dongle’s frequency is a bit off, so the displayed frequency is incorrect (about 10 kHz too high), but this is easy to correct in HDSDR (Options -> ExtIO Frequency Options).

I installed the software that came with the dongle on another computer. Reception of local broadcast FM stations was good, but I was not able to receive DVB-T television signals, even with the bundled whip antenna outside the window.

Clearly, I needed better antennas if I was to receive more interesting stuff. To use better antennas, I needed some way of connecting them to the dongle. From the picture on eBay it was not easy to determine the type of RF connector used on the dongle; it did not seem to be the IEC 169-2 connector that is used in some of the other SDR-capable DVB-T dongles, but I didn’t know what it was. When the dongle arrived, I realized that the connector is an MCX connector. I didn’t have any cables with MCX connectors or any MCX adapters, so my initial thought was to cut the cable from the rather useless whip and terminate it with a BNC, but before I did that a friend gave me an MCX-to-N patch cable that he bought at a surplus store. That was good enough to connect any of my existing antennas, so I continued the experiments.

I first tried a 145 MHz dipole (1m end to end). It improved the reception of local UHF and VHF narrow-band FM dramatically, and it also worked very well for DVB-T (which is at 514 MHz here); I was able to watch TV on the computer. It also worked reasonably well for air-band signals. The next stage was to try to receive satellite signals. I experimented previously with a borrowed FUNcube dongle and I new that the FUNcube was very capable of receiving satellite signals. The FUNcube dongle uses the same tuner chip as the ezcap (an Elonics E4000, but its analog-to-digital converter is higher resolution than the ezcap’s; the FUNcube also has a low-noise preamplifier ahead of the tuner, and I am not sure if the ezcap uses one (if somebody knows, let me know).

A satellite called VO-52 was supposed to fly over last night, so I turned my cheap Yagi towards it and listened. Initially, I attached a preamplifier between the antenna and the dongle, but I later discovered that it did not make a huge difference. VO-52 has both a Morse beacon and a linear transponder. The beacon came through very clearly. In the screenshot on the right you can see the beacon’s signal move down in the audio passband due to Doppler shift. It it well above the noise and easy to hear. Next, I checked whether I can receive SSB signals in the transponder’s passband; I could. Here is a short recording of one Greek station (the Doppler shift causes the speaker’s voice to become lower over time).

While I was listening to VO-52, the local FM repeater sprang into activity. It is only about 100kHz away from the satellite’s signal; when the repeater was transmitting, it was causing pretty severe distortion of everything else the dongle was receiving. The satellite still came though, but not as well. You can see the effect in the screenshot on the right. I discovered that this was caused by too much gain in the preamplifier+dongle chain. There are two ways to solve this: to not use a preamplifier, or to drastically lower the gain of the dongle (you can set the gain with a slider).

The main benefit of the preamplifier in my setup is that it includes a good bandpass filter. Without the preamplifier, strong-out-of band signals sometimes overwhelm the dongle. With it, reception is much more consistent. But the dongle does work reasonably well even without anything between it and the antenna.

Another interesting thing that you can see in the last screenshot is the strong CTCSS tone coming out of the repeater, at 91.5 Hz. It is clearly visible in both the audio spectrum display and in the audio waterfall.

Using the USRP with HDSDR

Balint Seeber developed a software library that links HDSDR, a software-radio receiver program (and a few other related programs) with USRPs, a family of FPGA-based radios. I have a USRP1, the original USB-based motherboard, a BasicTX and a BasicRX daughter boards (which are basically just transformers linking the input coax connectors to the amplifiers that feed the ADCs), and an RFX400 transceiver (up/down converter to 400-500Mhz).

The USRP radios are best supported by GNU Radio, an open-source signal-processing toolkit. I have already used GNU Radio. The software is very capable, but it is somewhat difficult to install and it does not come with complete sophisticated radios. There are also drivers that interface USRPs to Matlab/Simulink; I was unable to get them to work. Therefore, I was delighted to learn that Seeber wrote the library that allows USRPs to be used with HDSDR and decided to give it a try.

HDSDR is a radio program that was derived from earlier programs (Winrad and WinradHD). It supports a wide range of RF frontends through the use of software libraries called ExtIOs. Seeber wrote an ExtIO library that can control the USRP and can transfer RF samples from it.

Downloading and installing Seeber’s ExtIO library and HDSDR was easy, thanks to an installer that Seeber wrote. Seeber’s software can also switch the USB-based USRP between two different drivers, which is a very useful (my experience in trying to switch these drivers manually has not been good).

After installation, I gave the software a quick try by tuning to a UHF and checking that the RFX400 can receive a signal from a handheld transceiver; it did.

I decided to try to USRP on HF next. I connected one of my amplified receiving loop antennas to a bias tee, then from there to a low-pass filter, and from it to the input of the BasicRX board. The low-pass filter is a high-quality 39 MHz surplus unit. It’s role is to eliminate aliasing of VHF signals into the HF spectrum. Ideally, the stopband should have started at 32 MHz (since the USRP samples at 64M samples/second), but a 39 MHz unit was all I had. I was not sure whether I would receive many signals, since between the BasicRX input and the input of the ADC there are only 20dB of amplification. In the picture you can see the USRP (in the background, in a cardboard box), the filter, the bias tee, and the 12V supply that feeds the bias tee. The USRP and the antenna are shown at the bottom of the post.

It turned out that this is sufficient to receive a great number of interesting signals all over MF and HF. Here are some screenshots. In the first screenshot I was listening to BBC World at 1323 kHz, an AM medium-frequency station. The USRP digitally down-converts the high-rate RF samples and decimates the RF samples, in this screenshot to 250k complex samples per second, so we see 250kHz of RF spectrum.

In the next screenshot, the radio is tuned to a station at the low end of the AM range, but the decimation is set to a lower value. We now see a full MHz of spectrum, all of the AM range plus a bit to spare. Very neat; all the AM stations on one waterfall display.

Next, we see the entire 14MHz amateur band. The band is densely populated at this early-evening hour. On the left we see a bunch of CW stations, PSK stations near 14070 kHz, and a large number of SSB stations starting at 14100 kHz.

I was able to receive distant stations all over the HF range, all the way up to 28 MHz. Here is the antenna I used; it is mounted fairly low in an urban area.

A few days later I tried UHF reception with the RFX400 daughter board. Local FM stations were received well. Satellites proved to be more of a challenge. I was not initially able to receive satellites with fairly weak signals like FO-29 and CO-58 (which I can hear reasonably well with the FT-857D), but I was able to receive the CW beacon of RS-22, as you can see in the following screenshot. The Doppler shift is clearly visible both in the RF waterfall display and in the audio waterfall. You can also see the very narrow signal in the audio spectrum display. The signal was received with my small VHF/UHF Yagi.

A second attempt to receive FO-29 was more successful. I was able to hear both SSB and CW signals clearly enough to understand them. Linking HDSDR to the satellite tracking program of Ham Radio Deluxe via DDE provided automatic Doppler correction, which worked out very nicely. Still, the RFX400 is probably not ideal for receiving UHF satellites. Its noise figure is not documented but I don’t think it’s particularly good, and its response rolls off below 440 MHz and above 460 MHz (as reported by Patrik Eliardsson and others). An external preamplifier would probably help.

Seeber’s library also supports a low-cost USB dongle that can sample RF signals between 64 and 1700 MHz. The dongle is sold as a digital-TV and radio receiver, but somebody discovered a way to cause it to send to the PC unprocessed RF samples, which can then be processed in programs like HDSDR and GNU Radio. I ordered a such dongle for about $20 from eBay and I’m looking forward to trying it out. Its analog-to-digital converter provides only 8 bits per sample, a lot less resolution than the much more expensive FUNcube dongle, but it supports much higher sampling rates than the FUNcube dongle.

Follow

Get every new post delivered to your Inbox.

Join 45 other followers