WSPR setup - RPi - 40m LPF

As you can read in WSPR setup - RPi - no filter the WSPR Tx output of GPIO4 is more or less a square wave signal which can't keep up the speed. So a filter is needed.


The WsprryPi program is able to transmit on all Ham bands up to 2m. So it would be nice to develop a Raspberry Pi shield which is able to transmit on more than one band.

For the moment a combination of 80m, 40m and 20m would be nice...
This will eventually lead to a low-pass/band filter for each band.

But for now lets start with a low-pass filter for 40m. This will suppress the 20m signal and a leaves the 80m signal relatively dirty.

Lets give it a try...

WSPR - RPi shield

In this experiment I started with a simple shield design:

  • buffer for GPIO4 (emitter follower)
  • low-pass filter (pi filter)

The cut-off frequency will be 7 MHz. Resulting in this schema:

WSPR RPi shield 40m low-pass filter
WSPR RPi shield 40m low-pass filter
WSPR RPi shield LPF 40m coil
WSPR RPi shield LPF 40m components header side


The output signal should be measured with a spectrum analyser. I will do that later at the club.

WSPR Raspberry Pi 40m LPF shield
WSPR Raspberry Pi 40m LPF shield

For now a 40 MHz scope will give a visual impression. Compared to the measurements without filters (WSPR setup - RPi - no filter).

Output power

Upper scope signal is the input of the filter.
Lower scope signal is the output of the filter.

Scope scale 1V/div. 50Ω dummy-load:

80m: 30mW (3.5V top-top)


The output signals is far from clean... as expected.

40m: 15mW (2.5V top-top)


Visually nice looking signal.
The output signal is -3dB relative to the 80m signal. This indicates the cut-off frequency is indeed around 7MHz.

30m: 2.5mW (1V top-top)


The filter input signal is -3dB relative to the 40m/80m input signal. The output signal about -8dB.

20m: 0.25mW (0.3V top-top)


The filter input signal is about -6dB relative to the 40m/80m signal. The output signal -21dB.
This means the filter has a -15dB/octave slope.

Spectrum analyser

A spectrum analyser has to make a final verdict. There's a spectrum analyser available at the VERON club.

Vertical scale 10dB/div.


WSPR 80m terminal

WSPR 80m 40m LPF spectrum

Signal not usable... To many harmonics and only 20dB suppressed.
The Pi also produces random rubbish / noise over a wide frequency range.


WSPR 40m terminal

WSPR 40m 40m LPF spectrum

The LPF filter does it's work, but first harmonic is only -30dB suppressed.


WSPR 20m terminal

WSPR 20m 40m LPF spectrum

No measurable harmonics. The 20m signals is -20dB relative to a 40m signal. To weak for WSPR use.


Only the 40m WSPR signal is more or less usable.
Still the Raspberry Pi noise may be a problem, although it's suppressed -35dB or more relative to 10mW. That's less than 3µW...

Better solution:

  • dedicated band pass filter for each band

A band pass filter not only suppresses the harmonic frequencies, but also eliminates the Raspberry Pi random rubbish below (and above) the signal frequency

Raspi-R Android app for Raspberry Pi (Google Play Store)

Theme by Danetsoft and Danang Probo Sayekti inspired by Maksimer