When I first held the HackRF One in my hand, I knew almost nothing about it, except that it is an SDR receiver and transmitter up to 6 GHz and that you can program it. I had already worked with SDR, but only in the shortwave range up to 30 MHz.

Reception with SDR Sharp

My main software for the Elektor SDR-Shield was SDR Sharp (a.k.a. SDR#), and this program also supports HackRF One. So, connect it with a USB cable and away we go.

I was able to start the SDR, but it kept crashing. It was clear to me that a huge amount of data must be transferred over the USB cable. Therefore, I suspected the cable. Another cable didn't work any better. Then I noticed that a relatively short cable was included in the kit. With this cable, everything worked fine. Only later did I find the corroborating documentation. It clearly states that a high-quality, shielded cable must be used. This confirms an old rule: Read first, then switch on!
FM broadcast reception
Figure 1: FM broadcast reception.

FM Reception with HackRF One

When launched, SDR Sharp immediately enters the FM band and sets the operating mode to wideband FM. With a short antenna, one should get along there, but the result was weak. Small signal levels, large distortions. I was doing something wrong here. Then I found a video on the internet of someone having more success. The trick was to turn up the gain. There is a window called HackRF Controller for this. Again, it took me some time to figure out that this lives inside SDR Sharp and that you can launch it with the gear icon.

Figure 2: The controller window

So, after increasing the gain, everything ran considerably better. Crystal clear FM reception even with a short antenna.

You can change the sample rate between 8 MBPS and 20 MBPS. If you set it to 20 MHz, you obtain a 20 MHz wide spectrum, which can sometimes be an advantage. But I usually use 10 MHz because then it is easier to tune exactly to one station.
Airband radio in AM.
Figure 3: Airband radio in AM.


I could also clearly hear airband communications in AM. Usually, these are short messages, most of the time this band is silent. Nevertheless, I saw many signals. Most of them, at regularly spaced intervals, are interferences from the USB cable. At 120 MHz, I found a strong carrier, even without the antenna. This must be a harmonic of one of the many internal oscillator signals.

Sometimes you can even find broadcast FM stations here, very strange. But I found out that they are, in fact, alias signals of the receiver. With a sampling rate of 10 MHz, I only have to move 10 MHz lower to find the original. A look at the block diagram shows how this can happen.
HackRF One block diagram
Figure 4: Inside HackRF One.

Inside HackRF One

The core of the device is a MAX2837 transmit/receive IQ mixer for the 2.4 GHz band, followed by a fast AD/DA converter with a sampling rate of up to 20 MHz. The AD converter needs the low-pass filter in the MAX2837 against alias signals. But such a low-pass filter is not infinitely steep, and signals at the edge can leak through.

Between the antenna and IQ mixer is another mixer, with which you can get to lower frequencies from 0 Hz or to the upper range, up to about 6 GHz. In addition, there are many switches and filters as well as switchable amplifiers.

Tag alert: Subscribe to the tag SDR and you will receive an e-mail as soon as a new item about it is published on our website!

Scanning Around

The 2 m band was relatively quiet, but on 70 cm I could see numerous digital signals. I had never been able to look around on the even higher frequencies. What are those strong and very wideband signals on 2680 MHz? Google says LTE, that makes sense. On these very high frequencies, HackRF One is quite happy. But what I like even more is shortwave.

Shortwave Reception

You can find different numbers for the lower frequency limit of the device. Some say it’s 1 MHz, others say 10 MHz, but actually, it should work from almost 0 Hz. If you set the receiver to 5 MHz with a sample rate of 10 MHz, you can see the problem. Towards zero, the noise gets stronger and stronger even without an antenna, just like towards 10 MHz. This is typical for most SDRs, and the HackRF One still works quite well here. At 7 MHz there is a noise minimum, so you can use the 40 m band.
Internal noise at low frequencies.
Figure 5: Internal noise at low frequencies.

When connecting a long shortwave antenna, you can expect the receiver to be overdriven by strong broadcast stations. Therefore, a pre-selector makes sense. I used the same coil as in the Elektor DRM pre-selector, but with a 500-pF variable capacitor. The antenna cable was connected to a small coupling coil. The tuning range is from about 3 MHz to 25 MHz. The receiver works very well with my long antenna and shows good results on the different bands, depending on the time of day.
Preselector for HackRF One
Figure 6: The pre-selector.
Amateur radio in the 20 m band.
Figure 7: Amateur radio in the 20 m band.

FT8 signals can be used over large distances at low-power levels. 10 W takes you across the Atlantic to the USA, which is possible thanks to the small bandwidths. On the other hand, huge amounts of data at very high frequencies can only be transmitted over quite short distances.
FT8 signals in the 10 m band.
Figure 8: FT8 signals in the 10 m band.

Transmitting with HackRF One

With HackRF One, you can not only receive, but also send. The easiest way to do this is to receive something and record it to a file. Then replay the recording, on the same frequency or a different one. This can be done very comfortably under Linux. In the console, you call hackrf_transfer with the appropriate parameters.
hackrf transfer in the console
Figure 9: hackrf_transfer in the console.

A little experiment that anyone can easily repeat uses the FM frequency range. The frequency here was set to 88.0 MHz, the baseband bandwidth was set to 1.75 MHz and the sampling rate to 10 MHz. This covers a band of 2 x 1.75 MHz, i.e. from 86.25 MHz up to 89.75 MHz. Everything that is received here is recorded to the file fm.wav. However, this is not a normal WAV file, but the IQ signal sampled at 10 MHz. It contains everything that happened in the band, so maybe several FM stations, noise, and possible interfering signals.

The internal gain was set in two stages in the receiver, the RX-LNA to +32 dB and the baseband amplifier to 28 dB.
hackrf_transfer -r fm.wav -f 880000 -l 32 -g 28 -b 1750000 -s 10000000

A total of 30 seconds were recorded, so the file contained about 600 MB. This file was then broadcasted, but on a slightly different frequency, so that one could listen to it with a simple FM radio. I knew the recording contained a station on 88.8 MHz. So, if I move everything up by 1 MHz, the station must be heard on 89.8 MHz.

To do so, I specified the -t parameter for transmitting and the center frequency of 89 MHz. Furthermore, the gain must be set for the transmitter using the –x parameter. I chose +30 dB. This way, the range was limited to approx. 2 m and therefore still legal, avoiding trouble with neighbors and authorities.
hackrf_transfer -t fm.wav -f 890000 -x 30 -b 1750000 -s 10000000

I could now receive the 30 seconds of recorded signals on the new frequency of 89.8 MHz. The quality was very good, the sound was indistinguishable from the original. Looking for any other signals, I could only notice that in the empty range, apart from the noise, a low buzzing could be heard.

SSB Transmitter

My dream project for the HackRF One is an SSB transmitter in the shortwave or VHF range. While searching for suitable software, I came across SDRangel. This free software is a receiver and transmitter for all sorts of operating modes. There are numerous plugins for the different hardware platforms and receivers and transmitters for numerous operating modes, including an SSB modulator.

A First Attempt

For the first attempt I used a stand-alone, still quite analog amateur radio receiver in the 15 m band. Here the upper side band (USB) is used. In the SSB modulator, the desired bandwidth and the microphone must be configured. The transmit frequency is set in the HackRF One module. Additionally, you can select the VGA gain. 22 dB is sufficient if you hold the antenna cable of the receiver close to the transmitter. The maximum output power can be set to 47 dB. Then you get approx. 1 V at 50 Ω, i.e., 20 mW. The only thing missing here for a complete shortwave transmitter is a linear RF amplifier.
SSB transmitter with USB on 21,200 kHz.
Figure 10: SSB transmitter with USB on 21,200 kHz.


But the SSB modulator can do more, like sending Morse signals. It is possible to transmit a continuous carrier, dot or dash sequences and even text. Furthermore, the PC keyboard can be used as a Morse key, and you can switch on the loudspeaker. However, there is a latency of about one second in processing the signals. If a telegrapher hears his own signal with such a delay, he will surely get confused. But there are solutions for that, too. One can, for instance, generate a continuous carrier and switch the signal with the Morse key, as it was done in the old days.

Output of a CQ call in CW.
Figure 11: Output of a CQ call in CW.