Network Security Internet Technology Development Database Servers Mobile Phone Android Software Apple Software Computer Software News IT Information

In addition to Weibo, there is also WeChat

Please pay attention

WeChat public account

Shulou

How to use raspberry pie 3 and RTL-SDR V3 to build a low-cost QRP low-power monitoring site

2025-01-19 Update From: SLTechnology News&Howtos shulou NAV: SLTechnology News&Howtos > Network Security >

Share

Shulou(Shulou.com)06/01 Report--

Editor to share with you how to use raspberry pie 3 and RTL-SDR V3 to build a low-cost QRP low-power monitoring site. I hope you will get something after reading this article. Let's discuss it together.

QRP is a pronoun for low-power communication in radio communication abbreviations, and digital modes such as FT8,JT9,JT65 and WSPR are designed to transmit and receive at low power around the world (although not everyone uses low power only). These specially designed patterns enable even weak signals to be decoded by receiving software. FT8, released in 2017, beat JT9 and JT65 to become by far the most popular digital model. Although WSRP's beacon mode is stronger than the connection mode, WSRP is also not as powerful as FT8.

These weak signal modes are not only used to establish connections, but also important indicators of the current high-frequency propagation conditions. Each packet contains information about the location of the sender, so you can see where and how far the packet you receive comes from. You don't need to set up a monitoring station like a ham (radio amateur). As a SWL (shortwave listener), it's interesting just to see how far you can pick up a signal and how many countries in the world you can "pick up" it.

With this setting, you will be able to continuously monitor multiple modes in the same band (for example, 20 FT8, JT65+JT9 and WSPR testers at the same time). The method of creating multichannels in Linux may also be useful for other applications. If you happen to have a upconverter (upconverter) or a better SDR for monitoring, such as SDRplay or Airspy HF+, it can also replace RTL-SDR V3. The parts we need are as follows:

RTL-SDR V3 (or upconverter, or other HF & Linux capable SDR)

Raspberry Pi 3 (or other similar SBC platform)

Have a net

Bandpass filter (optional, but recommended)

High frequency antenna (this is simple, long wire will do)

Example of a QRP receiver using RTL-SDR

Use the @ rtlsdrblog V3 cipher for # FT8 monitoring for a week and sample 30m directly using a 90-foot-long wire. 3151 unique responses, 2836 grids and 86 countries. ADIF from # pskreporter and mapped to @ GridTracker. Pic.twitter.com/1c826gDoce

-- Johnny (@ cuoops) June 15, 2018

Set up Raspberry Pi 3

We use Raspberry Pi 3 in this article, but if you want to use other SBC platforms similar to this one or better than this one, that's fine. First we will set up Raspberry Pi 3 for the remote Desktop connection through RealVNC.

First of all, install our Raspberry Pi 3 system, burn the Raspbian system on an SD card, insert the SD card into the Pi, plug in the mouse and keyboard, HDMI monitor and power supply.

After booting up, go to the desktop of Raspberry Pi 3 system, open a terminal and enter sudo raspi-config. In the localization settings. Change the time zone to UTC (localisation options-> time zones-> none of the above-> UTC), set the keyboard for your locale, and enable VNC.

In raspi-config, also enable VNC under the interface option.

Use the Raspberry Pi RealVNC setup instruction to set up an RealVNC viewer account, or use "ifconfig" to record the ip of Pi at the terminal through a local network connection. Note that after enabling VNC in the previous step, you can set up the server through RealVNC to log in in the upper-right corner of the Raspberry Pi taskbar.

At this point, if you prefer, you can delete the HDMI monitor and connect to Pi / VNC.

Install softwar

Then install the software for your Raspberry Pi 3

RTL-SDR driver

Let's install the RTL-SDR driver first. We need Keenerd drivers for V3 because they are the only drivers that allow us to run the rtl_sdr software in direct sampling Q-branch mode. This is required for HF reception in RTL-SDR V3.

Sudo apt-get updatesudo apt-get install libusb-1.0-0-dev git cmake-ygit clone https://github.com/keenerd/rtl-sdrcd rtl-sdr/mkdir buildcd buildcmake.. /-DINSTALL_UDEV_RULES=ONmakesudo make installsudo cp.. / rtl-sdr.rules / etc/udev/rules.d/sudo ldconfigecho 'blacklist dvb_usb_rtl28xxu' | sudo tee-- append / etc/modprobe.d/blacklist-dvb_usb_rtl28xxu.conf

Now restart to apply the blacklist and insert your RTL-SDR.

PulseAudio & MPlayer

We need to use PulseAudio to create a virtual sound card driver, and we need to install mplayer to play audio.

Sudo apt-get install pulseaudio pavucontrol mplayer-y

CSDR

CSDR is a library of DSP functions that we will use to set up multichannel receivers.

Sudo apt-get install libfftw3-dev-y > cd ~ git clone https://github.com/simonyiszk/csdrcd csdr

Before going any further, for Raspberry Pi 33, we recommend editing the Makefile and changing the PARAMS_NEON tag to the following. Makefile can be opened with the "sudo leafpad Makefile" command

-march=armv8-a-mtune=coretx-a53-mfpu=neon-fp-armv8.

Also in the PARAMS_RASPI setting:

-mcpu=cortex-a53-mfpu=neon-fp-armv8.

We're not sure what this thing really did at this time, but it looks like this code should be used to optimize Raspberry Pi 33 CPU. If you are using another board, you need to see what these settings do on your board.

Save and close the file, and then run

Makesudo make installncat

Ncat is a TCP server that we will use to help us build a multi-channel receiver.

Sudo apt-get install nmap-y

Chrony

We will use Chrony to adjust the time offset required for the QRP mode. We will discuss how to configure it later.

Sudo apt-get install chrony-y

WSJT-X

WSJT-X is a software that we will use to decode FT8,JT9,JT65 and / or WSRP. Open the WSIT-X website page on the browser, download the file with the .deb suffix for Raspberry Pi 33, and then double-click the downloaded file to begin the installation.

JTDX (optional)

JTDX is another decoder derived from WSJT-X, and some say it decodes better and has more features than WSJT-X. However, we find that JTDX takes up more CPU resources, so it is difficult to use it for multi-channel decoding on Pi 3. In this tutorial article, there is no .deb installation file ready for JTDX, so you must compile JTDX manually.

The following compilation illustrates N0KEG-based tutorials, which now look a little out of date.

Installation

Sudo apt-get install build-essential subversion git automake libtool libusb-dev gfortran gfortran-5 libusb-1.0 + glossy libusb-1.0-0-dev texinfo cmake asciidoc asciidoctor libqt5serialport5 libqt5serialport5-dev libfftw3-dev libqt5multimedia5 libqt5multimedia5-plugins libqt5multimediawidgets5 qtmultimedia5-dev libudev-dev pavucontrol wget

Multithreaded compilation

Export MAKEFLAGS='-j 4'

Need to compile a large file with swapfile

Sudo fallocate-l 2G / swapfile & & sudo chmod 600 / swapfile & & sudo mkswap / swapfile & & sudo swapon / swapfile

Download, compile, and install the latest hamlib

Cd ~ mkdir ~ / hamlib-prefix & & cd ~ / hamlib-prefix & & git clone git://git.code.sf.net/u/bsomervi/hamlib srccd srcgit checkout integration./bootstrap./configuremakesudo make installsudo ldconfig

Download and install JTDX

Cd~wget https://www.release.jtdx.tech/Windows/Source%20code/src18.1.0.85.zipmkdir ~ / jtdx-prefix & & mkdir ~ / jtdx-prefix/build & & mkdir ~ / jtdx-prefix/srcunzip src18.1.0.85.zipmv wsjtx/* ~ / jtdx-prefix/src/cd ~ / jtdx-prefix/buildcmake-D CMAKE_PREFIX_PATH=~/hamlib-prefix. / srccmake-- build .sudo cmake-- build. -- target installGridTracker (optional)

Download GridTracker adapted to Raspberry Pi 3 version

Download Raspberry Pi 3 version of GridTracker. This will allow you to visualize your QRP points on Pi's own map. This is optional because you can do the same in PSKreporter.info.

Cd ~ / Downloadstar-xzf GridTracker-Linux-Arm-1.18.0604.tar.gz-C ~ Audio installation

We first need to create a virtual audio receiver for each frequency you want to monitor at the same time. The following example sets up two virtual audio receivers that are loaded at boot time. To set up another one, just add a few more lines from Virtual 2, and so on. First open the default.pa file of Pulseaudio:

Sudo leafpad / etc/pulse/default.pa

Add the following lines at the end of the file:

Load-module module-null-sink sink_name=**Virtual0** sink_properties=device.description= "* * Virtual0**" load-module module-null-sink sink_name=**Virtual1** sink_properties=device.description= "* * Virtual1**"

We also recommend disabling PulseAudio logging because it takes up a lot of CPU.

Sudo leafpad / etc/pulse/daemon.conf

Now find "log-level" and change it to "log-level = error". Delete the semicolon on the log-level edge. Save and exit.

; log-target = autolog-level = error; log-meta = no

You can now reload pulseaudio by rebooting or running "pulseaudio-k" on the command line.

Install PTL-SDR

Now, run the following command in the terminal window to set up a RTL-SDR TCP server using ncat. In this example, the center frequency is set to 14.1 MHz (14100000 Hz). Change this to the frequency you want to monitor. Here is a complete list of QRP bands. As long as you remember to offset the center frequency by a few hundred kHz from the actual signal frequency, you can avoid reaching the central DC peak.

Rtl_sdr-s 1200000-f 14100000-D 2-| csdr convert_u8_f | ncat-4l 4952-k-- send-only-- allow 127.0.0.1

In the Rel_stl command,-s represents the sampling rate and-f represents the center frequency. -D2 sets Q-branch to direct sampling mode.

Set the TCP IPv4 mode on ncat-4l, port 4952 send-only allows multiple connections,-send-only ensures that the server only sends data and does not receive data, and-allow 127.0.0.1 ensures that only local connections can be made.

Open a terminal window / tab and run the following command to generate a SSB USB channel to monitor the 20m FT8 channel at 14.074 MHz. Note that the "(14100000-14074000)" section sets the monitoring frequency to "(center frequency tuning frequency)". In this example, we monitor the frequency of 14.074 MHz, or 20m FT8. If you are monitoring a different band and use a different center frequency, change the offset frequency here. Use the csdr command to set up a USB SSB decoder. More information about using csdr can be found on the [csdr GitHub] page (https://github.com/simonyiszk/csdr)). Notice that we reduced the "transition bandwidth" in the fir_decimate_cc command from the 0.005 used in the csdr example on the GitHub page to 0.05. This operation can reduce the load on CPU at the cost of a little more interference, but there is nothing wrong with the example we have listed this time.

Ncat-v 127.0.0.1 4952 | csdr shift_addition_ccpython-c "print float (14100000-14074000) / 1200000" | csdr fir_decimate_cc 25 0.05 HAMMING | csdr bandpass_fir_fft_cc 0 0.5 05 | csdr realpart_cf | csdr agc_ff | csdr limit_ff | csdr convert_f_s16 | mplayer-nocache-rawaudio samplesize=2:channels=1:rate=48000-demuxer rawaudio-

Open pavucontrol and enter Raspberry Pi Start Menu-> Sound & Video-> PulseAudio Volume control, or simply type "pavucontrol" on the command line. Click the Playback tab and set MPlayer to use the Virtual 0 audio receiver.

Repair time delay

QRP mode, especially FT8, requires computer clocks to be very accurate. This is because signals are expected to be sent and received within a specific time interval. Most people use NTP to synchronize their computer clocks to a precise time. If there is a network connection, Raspbian will automatically synchronize to NTP.

The problem, however, is that when RTL_SDR,CSDR and mplayer are running on Raspberry Pi 33 at the same time, the input-to-output process produces a delay of about 2-3 seconds, which cannot exist. Most of the latency comes from buffering on the mplayer, which helps reduce the load at peak CPU. WSJT-X specifies that packets can be received within the correct time range, and if they exceed + /-2 seconds, they will not be decoded.

To solve this problem, we need to cheat the clock a little bit and set the system time setting forward for a few seconds. Thanks to dg0opk for letting us know this method, it includes replacing Raspberry Pi 3's default NTP software with Chrony, while we can configure Chrony ourselves. Chrony should have been installed in the previous section, and installing it automatically disables NTP and activates Chrony. Open its configuration file using the following command:

Sudo leafpad / etc/chrony/chrony.conf

The first command is set so that it can have an offset of about-2.5 seconds.

Pool 2.debian.pool.ntp.org iburst offset-2.5

Save the configuration file and exit, and then restart the Chrony service.

Sudo invoke-rc.d chrony restart

Install WSJT-X

Open WSJ-T or JTDX, go to the File-> Settings-> Audio tab, and set the sound card input as "Virtual0.monitor".

WSJT-X is set to FT8 mode, and now you can use it to decode the signal.

The same goes for the terminal to enter "jtdx" to open JTDX. The interface of the input sound card is set to the same as above.

WSJT-X uses RTL-SDR V3 to decode FT8 in direct sampling mode on Pi 3

If you don't see the decoded message, but you see the signal in the spectrum, try to adjust your time offset at this time. Then you can see in the WSJT-X data flow whether the packet arrived too early or too late. When you get the decoded data, adjust the offset time accordingly. Keep the value of the "DT" column as close to 0 as possible. The DT column shows the time offset and the exact time. For example,-0.5 indicates that the packet is 0.5 seconds earlier than expected.

Set up WSJT-X to send reports to PSKReporter

WSJT-X can report your location to pskreporter.info/pskmap, a site that gathers QRP sites from all over the world. Here, you can compare your receiver with the one nearby, see how your antenna and settings are, and show how many countries your signal can be received.

To set it, simply enter your call sign and maidenhead grid details in WSJT-X 's General settings, and then enter "Enable PSK Reporter Spotting" under the Reporting tab.

If you are not a ham, you can still contribute to the website as a SWL (shortwave listener). Your call sign can be "hamprefix/SWL/city". An example is provided in https://pskreporter.info. You can find your country here. You can get your Maidenhead grid location from this calculator. Use only the first four characters it gives you.

Multi-channel detection of FT8 + JT9/JT65

In this step we will show how to add synchronization monitoring to additional QRP schemas such as JT65, JT9, and WSPR. First of all, we will show how to set up dg0opk, which we talked about in his youtube video to monitor JT9 and JT65. Since the JT9 and JT65 bands are only a few kHz from FT8, we can simply open a second instance of WSJT-X to listen to the same audio as the FT8 decoder, and then expand the decoding bandwidth in WSJT-X.

1. To do this, type wsjtx-r jt_decode in the terminal to open the second example of wsjt-x.

two。 In WSJT-X advanced settings, increase the receiver bandwidth to 4500 hertz.

3. Set the mode to JT9+J65, and in the data window, set JT65 2500 JT9 to JT65 4500 JT9.

FT8 + JT9/JT65 + WSPR

Now to monitor WSPR, we need to open a second channel, because the maximum bandwidth that WSJT-X can monitor is 6000 hertz, and WSPR is 28.1696 kHz higher than FT8 in the 20m band.

Open the second terminal window and run the ncat command again to ensure that the tuning frequency is changed. In the following example, we change it to a 20m WSPR frequency of 14.0956 MHz.

Ncat-v 127.0.0.1 4952 | csdr shift_addition_ccpython-c "print float (14100000-14095600) / 1200000" | csdr fir_decimate_cc 25 0.05 HAMMING | csdr bandpass_fir_fft_cc 0 0.5 05 | csdr realpart_cf | csdr agc_ff | csdr limit_ff | csdr convert_f_s16 | mplayer-nocache-rawaudio samplesize=2:channels=1:rate=48000-demuxer rawaudio-

Open pavucontrol and go to Pi Start Menu (start menu)-> Sound & Video (sound and audio)-> PulseAudio Volume control (PulseAudio volume control), or simply type "pavucontrol" on the command line. Here you set up the new player to use the "Virtual 1" audio receiver.

Enter "wsjtx-r wspr" to open the third example of wsjt-x. Then set the input sound card to "Virtual1" and set the WSRP model. At this point, your environment has basically been built successfully.

We have successfully opened and run two channels and three WSJT-X decoding instances on Raspberry Pi 33. If you use JTDX, because it takes up too much CPU, we can actually only open one or two instances.

Grid Tracker

GridTracker is an easy-to-use software that automatically marks your location on a map. After installation, run. / GridTracker on the command line.

To set up WSJT-X for GridTracker, simply go to the Reporting tab of the settings window and enable "Accept UDP Requests".

However, for CPU of Raspberry Pi 33b, it is a bit difficult to run GridTracker with these two channels and three decoders. This may result in packet loss, flashback and overload of the buffer.

After reading this article, I believe you have a certain understanding of "how to use raspberry pie 3 and RTL-SDR V3 to build a low-cost QRP low-power monitoring point". If you want to know more about it, welcome to follow the industry information channel, thank you for reading!

Welcome to subscribe "Shulou Technology Information " to get latest news, interesting things and hot topics in the IT industry, and controls the hottest and latest Internet news, technology news and IT industry trends.

Views: 0

*The comments in the above article only represent the author's personal views and do not represent the views and positions of this website. If you have more insights, please feel free to contribute and share.

Share To

Wechat

© 2024 shulou.com SLNews company. All rights reserved.

12
Report