LOPORA QRSS BEACON RECEPTION PROGRAM
WRITTEN IN PYTHON

(2011 - 2022)

Reception of very low QRSS beacon transmitters
A group of enthusiastic radio amateurs is doing experiments with very low powers. That is possible by using a low CW speed. QRS mean reduce your CW speed. With that extra S of QRSS, they want to indicate that it is really a very low CW speed. A dot lasts 6 seconds. Most of the activities can be found in a band of only 200 Hz, namely 10,140.000 kHz +/- 100 Hz in the 30 meters amateur band. This band is only just as wide as a very narrow CW filter! Of course our ear is entirely unsuitable to separate all those signals in that 100 Hz band from each other and from the noise. But we can do that with our eyes on a PC screen with use of special QRSS grabber software such as the here described Lopora, QrssPiG, ARGO, SPECTRAN or SPECTRUM LAB! With these software programs, you can make bandwidths of 0.3 Hz or even less. And so our Little Toe Power signals become visible over distances where others need Barefoot Power of even Boots (High Power amplifier). The results can be uploaded to a website, so that you can see if your MEPT beacon is received by this QRSS grabber.


QRSS beacons in the 200 Hz wide band in the 30 meter amateurband. Some signals are wider
due to the fading. That kind of effects are very good visible due to the narrow bandwidths!

Lopora Version 5!
LOPORA is the abbreviation of LOw POwer RAdio. And with the previous version, many nice signals have been received as you can see here above.
However, Lopora was very user-unfriendly! So it was time for a completely renewed version 5 of Lopora! It has average and peak stacking. Even with a 20 minute or 30 minute scan the stacking can be done with 10 minte scans. And there is a 24 hour archive for all the normal and stacking grabs.
The storage and upload file names of all the grabs can be set in the configuration file. New buttons are added to calibrate the tuning frequency with a reference signal from a GPS module or accurate RF generator. Calibration is much easier now without the need to edit the configuration file and to restart Lopora!
And you can have a large picture on a small monitor screen, as there are scrollbars added in the new version of Lopora!


The new version 5 of Lopora! It runs without problems on a Raspberry Pi model 2b.
You can even run 4 instances of Lopora for 4 grabbers with one Raspberry Pi model 3!

LOPORA QRSS beacon reception program written in Python
Why should you write your own QRSS beacon reception program if there are already ones made by others? The answer is of course: HOBBY! Actually, the reason was that I wanted to have a Noise Blanker function in such a program, due to an electric fence near the house. But it is also curiosity and the challenge how to make such a program. When you do make your own program, you have to look into detail to all kinds of items like for example how FFT analysis works. And you can make it exactly as you want it. Think for example about colors, screen sizes, place of the buttons and which functions you want to built in. It is nice to experiment with a home brew program! In the past, it was only possible to home brew hardware, now we can also home brew software! Our radio hobby is getting more and more exciting!


The Integrated Developement Environment "IDLE" of Python

Python
Python is a very nice programming language, much simpler than C. The code is written in readable text and you do not have to compile this text into an executable. In the Integrated Developement Environment "IDLE", you can select "Run module" and the program is executed. So the developement goes much faster than when you have to compile the program. And test messages can be easily printed to the Terminal Screen.


Information is printed to the Terminal screen.


SOFTWARE

Before you can use this program, you have to install Python. That is very simple. But read first something about Python by clicking the following link
Here you will also find the information about the installation of Python and the external modules pyaudio; PIL library; NUMPY:

WHAT IS PYTHON AND HOW DO YOU INSTALL PYTHON

As the source code of Python is written in ASCII, it is very simple to modify the program to you own requirements. Think for example about the size of the screen, the colors etc.

Required Python version:

Required external modules (site-packages for the correct Python version!):
Download here the Python program by clicking the link here below:
Make a directory, for example with the name "qrssgrabber" and save and unzip the file "11lopsource.zip" in this directory. In the documentation part, you can find instructions about how to use Lopora and its configuration file. All normal settings are done in the configuration file. You can edit this file with any ASCII editor like "Notepad" or my favorite "Geany".


A part of the configuration file


Buttons
At the left side of the screen, you will find various buttons to change the brightness, contrast and compression of the display. See the picture here below for what the compression does. Strong signals are more or less compressed and weak signals just the opposite, more or less enhanced.


No compression (Compression=0).
Very good for the two weak signals, but the strong signal is quite distorted.


Maximum compression (Compression=3).
The strong signal is not distorted anymore and the two weak signals are still visible.

Very handy are the new Calibration buttons. Make a GPS controlled calibration signal with a simple and cheap GPS device (see the index of this website for the description of such a device).
Press "Calibrate+ or Calibrate-" till the line is displayed at the correct position. At the end of the scan, the new settings of the calibration, brightness and contast are stored in the default configuration. This configuration is loaded when you start lopora. See for more information the instructions in the documentation part of the zip file.


Frequency calibration.

FFT window
In the program you can find some settings that can be edited with IDLE. But what is the reason for an FFT window and Zero Padding?
What an FFT window does, is visible on the picture here below. In Lopora, a default Hann FFT window is chosen. It combines a good selectivity with a high side band suppression.


What an FFT window does, is visible here. On top a strong signal, at the bottom a 40 dB weaker dot-dot signal.
From left to right you can see the following FFT windows:
1. No window (also called rectangular window). Much noise around a strong signal (bad side band suppression), a good selectivity (1x) for the weak signal.
2. Cosine window. Much less noise around the strong signal (much better side band suppression), so a better dynamic range, somewhat less selectivity (1.24x).
3. Triangular window. comparable with the Cosine window, almost the same selectivity (1.33x).
4. Nuttall window. Very good side band suppression, but less selectivity (2.02x) resulting in less sensitivity for the weak dot-dot signal.
5. Flattop window. Good side band suppression, filter with flat top, but less selectivity (3.77x).

Zero Padding
When a signal is between two FFT frequency points, it is attenuated. So there is much ripple in the frequency spectrum, it is not flat, has dips of more than 3 dB for frequencies between two FFT points. By means of Zero Padding, extra FFT frequency points will be added between the original points during the calculation, reducing the attenuation (also called Scalloping loss) so that it becomes negligible. An alternative is not to use Zero Padding, but a Flattop Window. This has a flat top across a few FFT frequency points. But this window has a very large bandwidth and not such a good selectivity. Zero Padding is default 2, doubling the number of FFT points by adding zeros.


No stacking, signals are very difficult to read


Stacking, signals are readable now!

What is Stacking?
Most stations do transmit in time synchronized intervals of 10 minutes nowadays. Stacking means that you do stack a few of the received pictures to improve the readability of the signals. The stacking can be done in the average or the peak values of the pixels of the pictures. This function is implemented in Lopora. Even with grabs of 20 or 30 minutes, it is possible to do stacks with 10 minute grabs. If parts of signals are lost due to fading these gaps are filled in by the other pictures. Or the signal to noise ratio is improved for very weak, stable signals.


With 10 mW from Holland to Spain (1500 km!). This is a stack of 9 pictures.
Even the lower shift of only 1 mW is clearly visible!

The result!
Here the link to the website where you can see all the pictures made by this program running on a Raspberry Pi.

Grabber with Lopora version 5

You do not have to use all these pictures, only the one you want. It can be configured in the configuration file.


QRSS reception is not possible with such an old radio!


Index PA2OHH