First Experiences with the HackRF Pro (Review)
on
Since the announcement of the HackRF Pro as the successor to the HackRF One, I have been curious about the innovations. Both are software-defined radios for receiving and transmitting up to 6 GHz with an IQ sampling rate of 20 MHz, allowing a range of 20 MHz to be transmitted continuously.
Improvements
Compared to the HackRF One, the HackRF Pro offers an additional frequency range, improved RF characteristics such as a flatter transmission curve, and fewer phantom signals due to internal shielding plates. The frequency accuracy has also been improved with a TCXO. In addition, there is the possibility to sample signals with 40 MHz at half resolution or with a higher resolution of 16 bits and less bandwidth.There is currently no dedicated software support for the HackRF Pro. You have to initialize it as a HackRF One. Both devices are compatible, and everything you have already developed for the One also runs on the Pro.
For the first comparisons of the two devices, I operated them with the same settings using SDR Sharp, initially without an antenna. The One shows several phantom signals in a 10 MHz wide range and the so-called DC spike exactly in the middle, a carrier corresponding to the mixing product at 0 Hz. At both edges, the noise increases significantly.
In this test, the Pro performs significantly better, and the promises were not exaggerated. The DC spike has completely disappeared. The noise at the edges is less pronounced, so you can now work quite well from 100 kHz or even below. And there are almost no phantom carriers anymore. Only at 10 MHz do you see a strong carrier. In all higher ranges, there is heavenly quiet and a flat curve.
This was followed by a test with a 20 m-long outdoor antenna. To avoid overdriving, the gain was kept at 24 dB. With both devices, you can see the broadcast bands and a strong CW signal in the 40 m amateur radio band.
The phantom carriers and the DC spike are clearly visible in the middle of the useful signals on the One, but not on the Pro. It is noticeable that the Pro shows the useful signals on average about 5 dB weaker with the same settings. This could be a result of the improved protection circuit against voltage pulses at the input. If necessary, you can increase the gain to compensate for this. A slightly different gain is optimal in each case, and a too high gain can be recognized by a significant increase in mixing products. Overall, however, both devices are surprisingly resistant to overdriving, considering that a long antenna without preselection was connected here.
Signals in the GHz Range
Although my preference is mainly for the shortwave, I have, of course, also looked at other areas. It is exciting to see which devices are active where. I searched in vain for a baby monitor on the previously known frequencies, only to find out that it operates at 1.8 GHz according to the DECT standard. And a walkie-talkie for children appeared at 2.4 GHz, more precisely at 2475 MHz. The transmission in data blocks at intervals of about 1 ms was also interesting. The spectrum suggested that a simple FSK was used here, as with teleprinters since great-grandfather's time, but with a significantly higher transmission rate.
GNU Radio
With just the use of SDR Sharp, you can surf through the waves for as long and intensively as you want and see what there is to discover. It becomes even more exciting when you develop your own software and, in particular, explore the possibilities of your own transmissions.
The free GNU Radio software package is suitable for this. For a long time, I did not dare to approach it because I thought it was only for Linux-experienced software specialists. But then I realized that it also works with Windows. The magic word is RadioConda, and this package is available for Windows, Linux, and macOS.
The package is very comprehensive and requires some installation time. With the RadioConda Prompt, you can then send direct commands to the HackRF. Gqrx is receiver software, while GNU Radio Companion is the graphical interface of GNU Radio.
Generating SSB Signals
The HackRF Pro has already proven itself as a receiver, with SDR Sharp being used in the simplest case. However, the device can also transmit, and SSB is at the top of the list. In GNU Radio, you use ready-made blocks, connect them appropriately, and set parameters. The design is then compiled into a Python program and executed. For the introduction, I looked at this course.
After many other exercises, I dared to try a preliminary experiment on the subject of SSB. I use two blocks of the Signal Source type, both are sine wave generators. The upper one generates the carrier frequency of 10 kHz as a complex signal (signal color blue) consisting of two signals (I and Q) with a phase difference of 90 degrees. The lower one provides the modulation frequency of 1 kHz and represents the later microphone signal. This signal is of the float type and consists of real numbers up to 1.
The modulation signal passes through a Hilbert transform. This is how the complex IQ signals are generated, with each frequency shifted exactly 90 degrees in phase. Here, what I once tried with an RC phase shifter network for SSB generation happens, but it happens much more precisely because it is based on pure mathematics.
Both complex signals are then multiplied, sample by sample, with the common clock rate of 32 kHz. This is how a mixer is formed, or more precisely, two mixers for I and Q. The finished IQ-SSB signal should be created in the process. To see it, I use the QT GUI Frequency Sink, which is practically an FFT with graphical output.
And indeed, at 11 kHz, I see the signal in the upper sideband, the carrier at 10 kHz has completely disappeared, and the lower sideband is suppressed by almost 100 dB. I would never have been able to achieve this precision with hardware. The next step is therefore with a real microphone and a transmitter in the 20 m band.
For the output, I use the Osmocom Sink block, a data sink that sends my intermediate frequency data with a bandwidth of 4 MHz via USB to the HackRF Pro. The signal is mixed at 12 MHz. My IF is at 2.15 MHz, so my USB signal should appear at 14150 kHz.
The matter becomes a little more complicated because I now have to work with two different sampling rates. I query the sound card at 8 kHz. This is followed by a filter block for the range from 300 Hz to 3 kHz. Then, the Hilbert transform and the FFT output for verification.
With the Rational Resampler block, I convert the sampling rate from 8 kHz to 4 MHz by interpolating 500 values each time. This is the only way the mixer (multiplication) can work with the IF carrier signal of 2.15 MHz. At the output of the Multiply block is the finished SSB signal at 2150 kHz, which can be passed to the HackRF Pro. The FFT display confirms that a good SSB signal in the upper sideband has been generated. However, this does not mean that I have already found the best settings. With more experience, some things will still be changed.
The antenna signal was received with the Elektor SDR shield and SDR#. I can hear myself well because the signal appears delayed by about one second through all the buffers and processing steps. I don't know yet if this can be improved. But I know the phenomenon from real amateur radio. Anyone who works digitally always has an extended reaction time when switching from reception to transmission.
Other than that, the signal looks very good and sounds perfect. Maybe something should be built to optimize the microphone level with an ALC.
AM Transmitter with GNU Radio
It's about this old tube radio. I wanted to program an AM transmitter with the HackRF Pro and use it to transmit my own programs on medium and short wave. I use the microphone input on the PC as the modulation source. You can connect either a microphone or another source here. For testing, I first used the headphone output of a portable FM radio.
The Audio Source block retrieves the data from the sound card. This time I use a sampling rate of 20 kHz, which is set in the variable samp_rate_AF. The program uses a second sampling rate of samp_rate = 4 MHz for passing data to the HackRF Pro. In Osmocom Sink, the output frequency is set. It works from 500 kHz, but the ISM frequency of 6.78 MHz, which is approved for scientific experiments of this kind, was set here. In this frequency range, you sometimes hear dedicated pirate broadcasters, but here we are working without a final amplifier.
The experiments have shown that the limited bandwidth of the tube radio leads to a dull sound if you transmit all the bass fully. Therefore, the input spectrum was limited to the range from 200 Hz to 4.5 kHz. A steepness of 200 Hz was set for the band pass filter. This gives the modulation a balanced sound.
A DC component of 0.5 must now be added to the AF signal, which forms the carrier. When the modulation signal reaches 0.5 at its peaks, the transmitter is fully modulated. I set the appropriate level using the volume control of the audio source. Finally, the VB Virtual Audio Cable was used so that audio files could be transmitted directly from the PC. For further processing, the signal must go through the type conversion Float to Complex. This is followed by the Rational Resampler, which creates 200 new samples from each AF sample by interpolation in order to reach the HF sampling rate of 4 MHz.
When handing over to the HackRF Pro, the transmission frequency and gain are set. IF Gain goes up to 47 dB. 20 dB were set here, which is appropriate for a connection with the antenna input of the tube radio. RF Gain refers to the switchable TX amplifier, which can only deliver a constant gain. It is switched off at 0 dB.
With the old tube radio, you could always hear distant stations on shortwave. The more interesting stations can now be found on FM or on the Internet. I like to listen to stations from Africa over the Internet. Now this is also possible with the nostalgic tube radio and its wonderful sound.
So far, only a small part of the infinitely many applications with the HackRF Pro has been tested. There are still many exciting experiments and developments waiting. But one thing is already clear: The HackRF Pro brings a significant improvement over the previous model in many applications. The wait was worth it: HackRF Pro is a successful further development.

Discussion (0 comments)