LOPORA QRSS BEACON RECEPTION PROGRAM
Reception of very low QRSS beacon transmitters
WRITTEN IN PYTHON
(2011 - 2018)
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 point lasts 3 or 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 are uploaded to a website, so that you can see if your MEPT beacon is received by this QRSS grabber.
Lopora Version 5!
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 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! All unnecessary, illogical and confusing functions and settings have been removed. There is no pause anymore at the end of the scan for the FTP upload. And no settings in the Lopora program anymore, all settings are done in the configuration file. A configurable hour scan and daily scan have been added. 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.
It does not wait till the start of the next 10 or 20 minute interval but starts writing immediately. And many settings are done automatically now so that any configured grab fits in the given picture size. And the storage and upload names of all the grabs can be set in the configuration file. New buttons 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 the old Lopora program did a lot of printing to the picture screen. However, there is a bug in a Python PIL library that has to be used to make the pictures. Every print to a picture causes Memory Leakage, so that Lopora had to be reset every 3 weeks. The new version prints even much more information to the Terminal screen. No noticeable Memory Leakage anymore!
And you can have a large picture on a small monitor screen, as there are scrollbars added in the new version of Lopora!
LOPORA QRSS beacon reception program written in Python
The new version 5 of Lopora! It runs without problems on a Raspberry Pi model 2b.
You can even run 3 instances of Lopora for 3 grabbers with one Raspberry Pi!
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 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. One line of text with what you will print, Run the module and then you can delete the line. Fast and easy!
Installation of Lopora
Information is printed to the Terminal screen.
Download the Python LOPORA QRSS beacon reception program by clicking this link to the zip file:
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 the instructions about how to install Python and Lopora for Windows, the Raspberry Pi and Linux Mint and also an example for a website. And instructions about how to use Lopora and the configuration file. All normal settings are done in the configuration file.
A part of the configuration file
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.
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).
Maximum compression (Compression=3).
The strong signal is not distorted anymore and the two weak signals are still visible.
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.
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 Han 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 much less selectivity (3.77x). Usable for signals made wider by fading or frequency instability.
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 bad selectivity. Zero Padding is default 2, doubling the number of FFT points by adding zeros.
No stacking, signals are very difficult to read
What is Stacking?
Stacking, signals are readable now!
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!
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 a very relaxing hobby!
BACK TO INDEX PA2OHH