GithubHelp home page GithubHelp logo

guenael / rtlsdr-wsprd Goto Github PK

View Code? Open in Web Editor NEW
113.0 18.0 32.0 1.04 MB

WSPR daemon for RTL receivers

License: GNU General Public License v3.0

Makefile 0.41% C 98.69% Dockerfile 0.90%
radio c decoder rtl sdr rtl-sdr beacon propagation wspr wsprnet

rtlsdr-wsprd's Introduction

rtlsdr-wsprd -- WSPR daemon for RTL receivers

rtlsdr-wsprd

Project Status Workflow Status Last commit Commit activity LGTM Alerts LGTM Grade

TL;DR

This project aim at decoding WSPR signals using an RTL device, usually connected to a Raspberry Pi. To install and use your dongle on a Raspberry Pi with a Raspberry Pi OS, follow these steps:

echo "== Install dependencies"
sudo apt-get update && sudo apt-get -y install build-essential clang cmake libfftw3-dev libusb-1.0-0-dev libcurl4-gnutls-dev help2man ntp git

echo "== Install rtl-sdr library (on RPi, don't use your distro package)"
git clone https://github.com/osmocom/rtl-sdr
cd rtl-sdr
mkdir -p make
cd make
cmake -DCMAKE_INSTALL_PREFIX:PATH=/usr -DDETACH_KERNEL_DRIVER=ON -Wno-dev ..
make
sudo make install
cd ../..

echo "== Install rtlsdr-wsprd"
git clone https://github.com/Guenael/rtlsdr-wsprd
cd rtlsdr-wsprd
make
sudo make install

echo "== Start/test rtlsdr-wsprd"
rtlsdr_wsprd -f 2m -c A1XYZ -l AB12cd -g 29

Overview

This non-interactive application allows automatic reporting of WSPR spots on WSPRnet. The initial idea was to allow a small computer like a Raspberry Pi and a RTL-SDR device to send WSPR reports for VHF/UHF bands. This kind of lightweight setup could run continuously without maintenance and help to get additional propagation reports. The code is massively based on Steven Franke (K9AN) implementation of Joe Taylor (K1JT) publication and work.

This application written in C does:

  • A time alignment (2 mins, required NTPd to run on the OS)
  • Start the reception using the RTL lib
  • Decimate the IQ data (2.4Msps to 375 sps)
  • Decode WSPR signals
  • Push any spots on WSPRnet
  • Repeat, again and again...

Installation

  1. Install a Linux compatible distro on your device.

    For Raspberry Pi, you can download official images here.

  2. It's a good practice to update your OS. With Pi OS, run this command as usual:

    sudo apt-get update && sudo apt-get upgrade
  3. Install dependencies & useful tools (for example, NTP for time synchronization). Example with a Debian based OS, like Rasbian, or Raspberry Pi OS:

    sudo apt-get update && sudo apt-get -y install build-essential clang cmake libfftw3-dev libusb-1.0-0-dev libcurl4-gnutls-dev help2man ntp git
  4. Install rtl-sdr library manually. Do not use the librtlsdr-dev package on Raspberry PiOS. There is a know bug with this lib and rtlsdr_wsprd will not be able to get enough samples (don't decode anything & 100% CPU pattern).

    git clone https://github.com/osmocom/rtl-sdr
    cd rtl-sdr
    mkdir -p make
    cd make
    cmake -DCMAKE_INSTALL_PREFIX:PATH=/usr -DDETACH_KERNEL_DRIVER=ON -Wno-dev ..
    make
    sudo make install
    cd ../..

Note: You may have to re-plug you dongle if it was already connected, or play with udev if not automatically detected.

  1. Clone this repository:

    git clone https://github.com/Guenael/rtlsdr-wsprd
  2. Build the application:

    cd rtlsdr-wsprd
    make
    sudo make install
  3. Finally, start the application with the right parameters/options for you (frequency, callsign, locator etc... Fake example below):

    rtlsdr_wsprd -f 2m -c A1XYZ -l AB12cd -g 29

Container Image

As an alternative to the above steps, a pre-built container image containing rtlsdr-wsprd is available for use with Docker or Podman.

The RTL DVB kernel modules must first be blacklisted on the host running the container. RTL-SDR itself is not required on the host running the container. This can be permanently accomplished using the following commands:

echo 'blacklist dvb_usb_rtl28xxu' | sudo tee /etc/modprobe.d/blacklist-dvb_usb_rtl28xxu.conf
sudo modprobe -r dvb_usb_rtl28xxu

If the modprobe -r command errors, a reboot is recommended to unload the module.

You can then start the container with the right parameters/options for you (frequency, callsign, locator etc... Fake example below):

docker run --rm -it --pull=always --device=/dev/bus/usb ghcr.io/guenael/rtlsdr-wsprd:latest -f 2m -c A1XYZ -l AB12cd -g 29

Tips (for your Raspberry Pi and SDR dongles)

  • Use ferrite bead on the USB cable to limit the QRN
  • Use an external clean power supply
  • Cut off the display (could help to reduce QRN)
    /opt/vc/bin/tvservice -o
  • Remove unused modules (for example, /etc/modules: #snd-bcm2835)
  • Use an enclosure, and ground it

Crystal stability

Most of RTL dongles use a cheap crystal, and frequency drift can effect the decoding & performance. The use of no-name RTL dongle for VHF/UHF bands usually require crystal modification, for a better one. External clock could be also used, like GPSDO or rubidium reference clock, aligned on 28.8MHz.

Some manufacturers integrate a 0.5ppm TCXO. It's the best second option, after an external clock. Based on my personal experience:

  • NooElec NESDR SMART : Works fine out of the box
  • RTL-SDR Blog 1PPM TCXO : Works with some drift, require additional mass, or a better enclosure
  • Other no-name like : RT820, E4000, FC0012, FC0013, can work, but require modification and usually drift a lot

Performance & hardware tests

Some performance tests using:

  • Raspbian GNU/Linux 11 (bullseye) for Raspberry Pi devices
  • rtlsdr-wsprd version 0.4.2
  • Build with clang -O3 -std=gnu17
Hardware Supported RX Load Decode burst
RPi-1 ✔️ 23.2% 8.4s
RPi-2 ✔️ 13.5% 4.1s
RPi-3 ✔️ 10.9% 2.1s
RPi-4 ✔️ 5.8% 1.1s
PC (i7-5820K) ✔️ 1.7% 0.5s

rtlsdr-wsprd's People

Contributors

adecarolis avatar dforsi avatar donmr avatar guenael avatar iz7boj avatar krasoffski avatar sharjeelaziz avatar snh avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

rtlsdr-wsprd's Issues

Supporting rx_tools / getting samples from stdin

Hi Guenael,

I'm using rtlsdr-wsprd on Raspberry Pi 3. I'd like to use my SDRplay RSP2 Pro to take advantage of its much better RX performance.
At first, I was about to ask if it's possible to add support for rx_tools to enable more hardware, but then I considered what this tool is really focused on: WSPR reporting from a IQ data stream.

Hence the second and perhaps more useful question: why not supporting stdin input (so the command line would look like 'rx_sdr [options] | rtlsdr_wsprd -'), like i.e. the OpenWebRX's "csdr" tool?
That would improve separation of concerns and the tool would be usable in a lot more scenarios.

I've searched the web but did not find a plain implementation that reads from stdin, your implementation was the closest I was able to find.

Thanks in advance, kind regards.
IU3JSX Marco

Add option to run for specified number of cycles

Thanks for a very useful program. My Pi 3/RTL-SDR is running very nicely, listening on 20m and reporting up to wsprnet.org.

I was wondering if you could add an option to run rtlsdr-wsprd for a specified number of 2-minute receive cycles, then have the program exit. For example, if the option was "-t 30", rtlsdr-wsprd would listen for a total of 60 minutes and exit.

This would allow me to create a shell script with a series of rtlsdr-wsprd commands listening at different frequencies.

Roger N5RWK

Setup a build pipeline for this project

TODO: format check + build pipeline, to check any MR on master + build release system

Some idea to start with GitHub (not very familiar, I only known GitLab CI/CD system)

name: CI Build pipeline
on: [push]
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - run: echo "INFO -- This job was automatically triggered by a ${{ github.event_name }} event on a ${{ runner.os }} server"
      - run: echo "INFO -- Branch name: ${{ github.ref }} Repo name: ${{ github.repository }}."
      - name: Check out repository code
        uses: actions/checkout@v2
      - name: Install OS dependencies
        run: apt-get install build-essential cmake libfftw3-dev libusb-1.0-0-dev libcurl4-gnutls-dev librtlsdr-dev
      - name: Install cpplint # install cpplint with pip before
        run: pip install cpplint
      - name: Build
        run: make
      - name: Test
        run: echo "TODO"
      - name: DBG_status
        run: echo "INFO -- Status: ${{ job.status }}"

CPU maxed out after end of cycle

It seems we are not quite there yet...

I'm seeing 100% CPU usage at 1 or 2 seconds into the new cycle for a few seconds.
That is at even minute + 1 to +10..

I suspect this is interfering with sampling enough that 1 in every 2 or three cycles
does not get any spots.

No spot 2021-12-17 00:20z
Spot : 2021-12-17 00:22:21 41.94 0.26 7.040106 1 EA6RD JM19 27
Spot : 2021-12-17 00:22:21 34.62 -0.89 7.040126 1 OE1RPW JN88 37
Spot : 2021-12-17 00:24:27 37.08 -0.55 7.040112 0 SO2O JO94 23
Spot : 2021-12-17 00:24:27 31.39 0.69 7.040149 1 EC7WR IM77 23
No spot 2021-12-17 00:26z

I'm getting this pattern quite a lot, with many spots and then none for a few cycles.

It seems to me that it's not running the decode at 10 seconds to the minute but after the minute. The no-spot reports are being printed at around 5-10 seconds after the minute.

Faulty SNR reports

Hi,
A number of erroneous SNR reports popped up on wsprnet, all of them reporting version rtlsdr-wspr.
The users report much too high SNR, up to +60 dB.
Let me know if you need examples.

Caught signal 11

Hello Dear OM,

I try to make a multi RTL-SDR wspr decoder.
Your soft is very helpfull but i have a new bug.
I have made it with last raspbian version at this time.

When come the time to decode, i get only "Caught signal 11" message and software stop...

Can you help me?

using -n including rtlsdr_wsprd won't exit

I am using 7e3070a

When using the -n option rtlsdr_wsrpd does not exit after the specified number of cycles. The main loop does exit but the program gets hung up waiting for pthread_join(decState.thread, NULL);

The decoder() function uses rx_state.exit_flag in it's while loop. Without that flag being set to true the loop keeps going so decoder() never returns and the main thread waits for a pthread_join which never happens. In my local copy I set rx_state.exit_flag = true after the main loop exits. With that flag set decoder() can return.

Once decoder() returns that join happens and the programs can exit.

This leads me to a problem I am having with the if/break at the start of the decoder() function.

static void *decoder(void *arg) {
    int32_t n_results = 0;

    while (!rx_state.exit_flag) {
        safe_cond_wait(&decState.ready_cond, &decState.ready_mutex);

        if (rx_state.exit_flag)
            break;  /* Abort case, final sig */

At the end of rtlsdr_wspr.c if rx_state.exit_flag is set between the end of the main loop and the safe_cond_signal() then that if/break exists the decoder before the last cycle is decoded and spotted wasting the last couple of minutes. If rx_state.exit_flag is set between safe_cond_signal() and the pthread_join() then by the time rx_state.exit_flag is set that if/break has already been skipped and has no effect.

That is the behaviour I have been finding. I do not want that if/break exiting decoder() so I removed it in my local copy as I want the decode and spot before the program exits. If there is a better spot to set the exit_flag so decoder() returns I am happy to test.

if I want 1 decode cycle then I would set -n 2 and the expected behaviour for me is a decode and spot before exiting the program.

Less decodes than WSJT-X

The .c2 file in 211212_2142.zip was saved by WSJT-X 2.5.2 which decodes the following 3 signals from the corresponding .wav file (it doesn't read back the .c2 file):

UTC    dB   DT     Freq     Drift  Call          Grid    dBm   km
2142  -29   0.6    0.001424    0   DL6OBU        JO43     23   1131
2142  -16   0.9    0.001493    0   M0ICR         IO91     27   1245
2142  -28   1.3    0.001598    0   2E0DYH        JO01     37   1147

but rtlsdr-wsprd 0.4.2 decodes only one signal:

        SNR      DT        Freq Dr    Call    Loc Pwr
Spot : -15.48  -0.12   0.001493  0   M0ICR   IO91 27

I made this simple change to just skip the header skip-26-bytes.txt but it would be nice to read the dial frequency from the header and use it in the output.

Many entries like this " Spot : -19.11 2.33 28.125194 0 <...> A000AA 63"

Hello Guenael,

My log shows quite a fewl entries like this
"Spot : -19.11 2.33 28.125194 0 <...> A000AA 63"
As a very beginner in C programming I searched the source and found this in "wsprd_utils.c"

  // I don't know what to do with these... They show up as "A000AA" grids.
  if( ntype == -64 ) noprint=1;

Are these lines referring to the entries I find in my the log?

73,
Dick

callsign with 9 characters in length

When I use a call sign with 9 characters in length
the Spot show a different call sign.

Example: I have a Tx transmitting via PU2790SWL call sign but rtlsdr-wsprd is reporting a
different call sign --> PU1QSK

Starting rtlsdr-wsprd (2020-09-09, 00:57z) -- Version 0.2
Callsign : PU2790SWL
Locator : GG66NL
Dial freq. : 21094600 Hz
Real freq. : 21094600 Hz
PPM factor : 0
Auto gain : enable
Wait for time sync (start in 32 sec)

Spot : -6.65 -0.57 21.096013 -4 PU1QSK GG66 10
Spot : -7.54 -0.81 21.096133 -4 PU1QSK GG66 10

Running error on openwrt

tmp20191018140437
I have successed compile rtlsdr_wsprd from source on the openwrt(version 18.06.02) and cpu hardware is mt7621 chipset, when I run it appear a error

rtl-sdr wsprd is more sensitive on RPi3 than RPi2

Hi,
thank you for this nice project.
Apart for setting udev, the instructions are very useful and I managed to test it on RPI zero W, RPI2 and RPi3.
I noticed that the same rtl-sdr V3 decodes many more signals on RPi3 than on the other two.
I actually didn't manage to undestand why, I noticed that on the zero the CPU goes from 14% when capturing data to 98% when decoding, whereas on RPi3 is much lower.
Having had a look at the source code, I didn't find any issue, still what should run identically actually doesn't.

Is there anything I can do for helping?

73 de Claudio SA0PRF

Issue with offset setting?

Have spent a number of hours of trying to calibrate center via the offset setting and are seing larger steps in the detected fq than the steps used.

I run a testsignal via WsprryPi which as a sideeffects gives of harmonies at 100 Hz intervals from the center signal calibrated to "exact" center of the wspr-interval.
command: sudo ./wspr -p -40 SM3ULC JO89ul 10 30m

I've patched the code for max swing detection +-100 => +-200 Hz. Also added a printout of the offset for troubleshooting. In the example i step offset from -100 100 in steps of 10. The result should be the detected signals "slides" downwards/decrease in fqs in steps of 10 (+- small error), right?

Loop used for calibration/troubleshooting:

for n in seq -100 10 100;do echo $n;./rtlsdr_wsprd -c SM0ULC -l JO98ul -g 20 -p 31 -o ${n} -u 125M -f 10138.7k | tee -a logg;sleep 0.5;done

Log:

160918-0544 -9.70 -0.93 10.140274 0 -100 SM3ULC JO89 10
160918-0544 -17.94 -1.00 10.140174 0 -100 SM3ULC JO89 10
160918-0548 -11.64 -0.89 10.140274 0 -90 SM3ULC JO89 10
160918-0548 -17.74 -0.91 10.140174 1 -90 SM3ULC JO89 10
160918-0552 -11.55 -0.98 10.140274 0 -80 SM3ULC JO89 10
160918-0552 -20.18 -1.02 10.140174 1 -80 SM3ULC JO89 10
160918-0556 -10.98 -0.98 10.140274 1 -70 SM3ULC JO89 10
160918-0556 -19.62 -0.91 10.140174 1 -70 SM3ULC JO89 10
160918-0600 -11.04 -0.91 10.140219 1 -60 SM3ULC JO89 10
160918-0604 -10.25 -0.93 10.140219 0 -50 SM3ULC JO89 10
160918-0612 -12.34 -1.06 10.140219 1 -30 SM3ULC JO89 10
160918-0612 -18.70 -1.02 10.140119 1 -30 SM3ULC JO89 10
160918-0616 -9.40 -0.91 10.140219 0 -20 SM3ULC JO89 10
160918-0616 -17.49 -0.93 10.140119 1 -20 SM3ULC JO89 10
160918-0620 -20.21 -0.98 10.140119 1 -10 SM3ULC JO89 10
160918-0624 -9.35 -0.95 10.140164 1 0 SM3ULC JO89 10
160918-0624 -17.73 -0.98 10.140264 1 0 SM3ULC JO89 10
160918-0628 -13.58 -0.89 10.140161 0 10 SM3ULC JO89 10
160918-0632 -8.48 -0.98 10.140160 1 20 SM3ULC JO89 10
160918-0632 -19.76 -0.98 10.140260 0 20 SM3ULC JO89 10
160918-0636 -10.13 -0.98 10.140160 1 30 SM3ULC JO89 10
160918-0636 -19.00 -0.89 10.140260 0 30 SM3ULC JO89 10
160918-0640 -9.26 -0.95 10.140159 0 40 SM3ULC JO89 10
160918-0640 -18.17 -0.98 10.140259 0 40 SM3ULC JO89 10
160918-0644 -16.43 -0.93 10.140104 0 50 SM3ULC JO89 10
160918-0644 -25.42 -0.95 10.140204 0 50 SM3ULC JO89 10
160918-0648 -10.55 -0.93 10.140104 0 60 SM3ULC JO89 10
160918-0648 -19.84 -0.98 10.140204 0 60 SM3ULC JO89 10
160918-0648 -27.67 -0.93 10.140304 0 60 SM3ULC JO89 10
160918-0652 -17.02 -0.91 10.140204 1 70 SM3ULC JO89 10
160918-0652 -19.38 -0.95 10.140304 0 70 SM3ULC JO89 10
160918-0656 -9.63 -0.93 10.140104 0 80 SM3ULC JO89 10
160918-0656 -18.50 -0.91 10.140204 0 80 SM3ULC JO89 10
160918-0656 -25.32 -0.93 10.140304 0 80 SM3ULC JO89 10
160918-0700 -6.97 -1.02 10.140104 0 90 SM3ULC JO89 10
160918-0700 -19.39 -1.02 10.140204 0 90 SM3ULC JO89 10
160918-0700 -26.04 -1.00 10.140304 0 90 SM3ULC JO89 10
160918-0704 -19.12 -0.95 10.140149 0 100 SM3ULC JO89 10
160918-0704 -23.61 -0.95 10.140248 0 100 SM3ULC JO89 10

Support for PTT control line

Hi,

If integrated with a WSPR beacon to form a transceiver a control line acting as a PTT is needed, it is required to turn own an amplifier but, more important, to switch the antenna from the rtl-sdr device and whatever it's being used for transmission (even the raspberry pi itself with programs such as WsprryPi or others).

Thanks in advance, Pedro LU7DID

0.4.0 no decodes

./rtlsdr_wsprd -w 0.4test -d 2 -f 20m -c G8LKD -l IO91VN
Saving IQ file planned with prefix: 0.4test
Found 1 device(s):
0: Realtek, RTL2838UHIDIR, SN: 00000001

Using device 0: Generic RTL2832U OEM
Found Rafael Micro R820T tuner
Enabled direct sampling mode, input 2

Starting rtlsdr-wsprd (2021-12-16, 18:13z) -- Version 0.4.0
Callsign : G8LKD
Locator : IO91VN
Dial freq. : 14095600 Hz
Real freq. : 14095600 Hz
PPM factor : 0
Gain : 29 dB
Wait for time sync (start in 44 sec)

          Date  Time(z)    SNR     DT       Freq Dr    Call    Loc Pwr

No spot 2021-12-16 18:14z
No spot 2021-12-16 18:16z
No spot 2021-12-16 18:18z
No spot 2021-12-16 18:20z
No spot 2021-12-16 18:22z
No spot 2021-12-16 18:24z
04test.zip

No spot 2021-12-16 18:26z

First cycle is not decoded

postSpots() is not reached on first iteration, it may be wsprDecoder() that isn't getting called, but I am not certain. I wonder if this is related to the sig11's from subtraction method?

"Caught signal 11" on RPi 3

Hi,

I see the same problem, using RPi 3 with "2017-01-11-raspbian-jessie.img"

When using -S switch it disappears.
Does anyone know what causing this?

Thanks,

`pi@raspberrypi:~/rtlsdr-wsprd $ ./rtlsdr_wsprd -f 14.0956M -c HA7DCD -l JN97ML -d 2
Found 1 device(s):
0: Realtek, RTL2838UHIDIR, SN: 00000001

Using device 0: Generic RTL2832U OEM
Found Rafael Micro R820T tuner
Enabled direct sampling mode, input 2

Starting rtlsdr-wsprd (2017-01-27, 14:15z) -- Version 0.2
Callsign : HA7DCD
Locator : JN97ML
Dial freq. : 14095599 Hz
Real freq. : 14095599 Hz
PPM factor : 0
Gain : 2 dB
Wait for time sync (start in 38 sec)

Caught signal 11
Caught signal 11
... 1 MByte long text cut here ...
Caught signal 11
Caught signal 11`

Possible resource leaks

Running cppcheck *c in the rtlsdr-wsprd directory shows the following warnings and errors:

Checking fano.c ...
Checking fano.c: MJ...
Checking fano.c: NASA_STANDARD...
1/7 files checked 7% done
Checking nhash.c ...
Checking nhash.c: VALGRIND...
2/7 files checked 23% done
Checking rtlsdr_wsprd.c ...
rtlsdr_wsprd.c:413:9: error: Resource leak: fd [resourceLeak]
        return 1;
        ^
rtlsdr_wsprd.c:419:9: error: Resource leak: fd [resourceLeak]
        return 1;
        ^
3/7 files checked 49% done
Checking tab.c ...
4/7 files checked 50% done
Checking wsprd.c ...
wsprd.c:490:19: warning: The file '"hashtable.txt"' is opened for read and write access at the same time on different streams [incompatibleFileOpen]
            fhash=fopen("hashtable.txt","w+");
                  ^
5/7 files checked 80% done
Checking wsprd_utils.c ...
6/7 files checked 91% done
Checking wsprsim_utils.c ...
wsprsim_utils.c:123:9: error: Memory leak: call6 [memleak]
        call6=strtok(NULL," ");
        ^
7/7 files checked 100% done

Adding date and time to the decoding result.

Hi Guenael,
I see you are currently busy are making changes.
Could you consider adding the date and time to the results like this:

2017-06-24, 06:38z Spot : -21.80 -0.55 28.125172 0 G7FYO IO82 33
2017-06-24, 06:40z Spot : -15.65 -1.85 28.125190 0 IK1WVQ JN44 27
2017-06-24, 06:42z, No spot
2017-06-24, 06:44z Spot : -17.16 -0.91 28.125129 0 EA1FAQ IN71 37

It makes it much easier to tune your setup and interpret the results.

Also using this command
./rtlsdr_wsprd -f 28.1236M -c PA2015 -l JO22XF -g 29 -p +4 -o 1000 -S >> "logs/wsprd_$(date +"%Y%m%d%H%M").log" 2>&1 &
with redirected the output results in a unique file with the settings and the result.
Very handy..

Cheers,
Dick (PA-2015)
the Netherlands

selecting device

Is there a command line option to select a receiver device from multiple ones?
In "rtl_sdr" the "-d" command line switch works for that, but in rtlsdr-wsprd it looks like doesn't have effect.

73 and Thanks,
Zoltan

Support for up converters

Please will you add support for up converters (HamitUp, Spyverter) as most people are more likely to use WSPR on the HF frequencies rather than VHF in you sample. It is very confusing what to enter on the command line, say i am wanting to monitor 20M WSPR frequency of 14.0956 MHz and my up converter is HamItUp that adds 125MHz. What would be the exact command line that i would issue for wsprd for this example??

Thanks again for your efforts.

OS version used with rtlsdr-wsprd

I noticed that rtlsdr-wsprd was developed on Wheezy. I'm running Buster on a Pi 3B+ and have also tried it on a Pi ZeroW. Managed to get wsprd working but it usually stops after one to three hours. If I restart without rebooting, wsprd sometimes fails to upload spots.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.