piHPSDR running on MacOS

Part 1: Using a HAMlab/STEMlab RedPitaya based SDR
which uses the "old protocol"

PURESIGNAL is a mechanism by which you can improve your transmitted signal considerably. To do so, the SDR "looks" at the signal which actually goes to the antenna and compares it with the generated signal. From the observed differences (distortions), the SDR program then calculates how the generated signal must be changed ("pre-distorted") such that at the end of the PA, a clean signal results.

There are two prerequisites to use PURESIGNAL on a HAMlab

a) you must be able to feed back the transmitted signal (that one that goes to the antenna) to the RX2 input of the second receiver. Of course, you need much attenuation (I use a 60dB attenuator as decribed on this page.) See the note on the bottom of this page on the required attenuation.

b) the SDR app that comes with a HAMlab (hamlab_sdr_transceiver_hpsdr) does not work (for me) . You have to use the version stemlab_sdr_transceiver_hpsdr which you can download from various places, e.g.



In this link I describe how to install this software on your HAMlab.

DIVERSITY is a mechanism where the RX1 signal (IQ samples) are mixed with the RX2 samples. In the user interface, one specifies a gain/attenuation and a phase shift, and these are applied to the RX2 samples before they are added onto the RX1 samples ("diversity mixer"). With this mechanism, a signal that is present on both RX channels can be canceled while a signal that is only present on RX1 remains unaffected. In the standard setup, one uses a small active receiving antenna connected to RX2. Ideally, the phase and/or gain difference between the main and the auxiliary antenna is different for the DX signal and local noise, the the local noise can be canceled while the DX signal is at least not completely notched.


To test diversity, I connected a T-adapter to a signal generator and fed its signal both to the RX1 and RX2 inputs. Then I adjusted the gain and phase of the DIVERSITY mixer such that the signal in the main receiver (top panel) went down as much as possible. On the lower panel you see the (unmodified) RX2 signal. The following two pictures show screen shots with DIVERSITY active (first picture) and after DIVERSITY has been deactivated (second picture). The signal from the signal generator (about 3630 kHz, -40 dBm) is notched out to less than -100 dBm in RX1. If both cables had exactly the same length and damping, and if both RX frontends were equivalent, the theoretical values for the necessary gain would be 0 dB and for the phase 180 degrees. The values needed to obtain the notch in reality (0.84 dB and 179.8 degrees) are fairly similar.

On the second picture, you see what happens after un-checking the "Diversity Enable" box, now both RX show the -40 dBm signal.

TESTING PURESIGNAL part 1: HAMlab bare-foot

Then I tested PURESIGNAL in a two-tone experiment. I present screen-shots here (piHPSDR can display the feedback signal that comes from the antenna), but the results have been reproduced using a spectrum analyzer. The first picture shows the feedback signal with PURESIGNAL active, while the second picture shows it after PURESIGNAL has been switched off by hitting the "OFF" button. With PURESIGNAL, the IM3 satellites more than 50 dBc below the signal peaks (that is, 56 dB IM3 according to the ARRL convention). Note that the feedback signal is slightly (2.7 dB) too weak (the feedbk level is only 111 while the optimum value is around 152). For 10 Watts output (+40 dBm), a 60 dB attenuator is somewhat too strong.

After switching off PURESIGNAL, I getslightly more than 30 dBc which is still a good value (the HAMlab has a class-A amplifier with a single MOSFET).

TESTING PURESIGNAL part 2: HAMlab and FL2100 tube amplifier

Normally one wants to connect an external PA to the HAMlab (in my case, a 50-year old Yaesu FL2100 amplifier with two 572b tubes). The 10 Watts that come out of the HAMlab are a little bit low to drive the PA, but I get up 100 Watts out with this drive (see my report on FL2100 restoration and modification). Again I present screen shots with and without PURESIGNAL. Again I get something about 50dBc with PURESIGNAL, which is in my view a very good value. Switching off PURESIGNAL jumps to about 30 dBc which is still a very good value (the FL2100 with such a low drive is *very* linear).

NOTE on the required attenuation

In the HAMlab, the second RX has no attenuator in the front-end. Therefore you must choose the attenuation such that the feedback signal at the RX2 jacket is about -10 dBm (actually slightly below, it should not significantly exceed -10 dBm). With a -50dB feedback, PURESIGNAL works very well for the bare-foot HAMlab (10 Watts output), but it when you want to use an external PA, you should go for a 60 dB attenuator (see my report on adding such a thing to my DummyLoad/WattMeter). As one can see from the screen shots for "bare foot" PURESIGNAL, 60 dB attenuation is a little bit on the large side. From the screen shots with PA, you see that there was a TX attenuation of 2 dB to get the signal strength right. This is a "software attenuator" that I have built into the STEMlab HPSDR simulator. As long as the feedback signal does not lead to ADC clipping, it can be "computationally reduced" by the "TX attenuator" value that is part of the HPSDR protocol and that is used by piHPSDR.

DL1YCF, July 2019