kopia lustrzana https://github.com/Guenael/rtlsdr-wsprd
Merge pull request #88 from Guenael/guenael
chore(readme): not decoding issue fixed & documentedpull/89/head
commit
86d8d37568
2
Makefile
2
Makefile
|
@ -25,4 +25,4 @@ clean:
|
|||
rm -f *.o wsprd/*.o $(TARGETS) fftw_wisdom.dat hashtable.txt selftest.iq
|
||||
|
||||
install:
|
||||
install rtlsdr_wsprd /usr/local/lib/rtlsdr_wsprd
|
||||
install rtlsdr_wsprd /usr/local/bin/rtlsdr_wsprd
|
||||
|
|
87
README.md
87
README.md
|
@ -2,7 +2,7 @@
|
|||
|
||||
![rtlsdr-wsprd](art/rtlsdr-wsprd-web.jpg)
|
||||
|
||||
![Project Status](https://img.shields.io/badge/status-broken-red)
|
||||
![Project Status](https://img.shields.io/badge/status-OK-green)
|
||||
![Workflow Status](https://img.shields.io/github/workflow/status/Guenael/rtlsdr-wsprd/CI)
|
||||
![Last commit](https://img.shields.io/github/last-commit/Guenael/rtlsdr-wsprd)
|
||||
![Commit activity](https://img.shields.io/github/commit-activity/m/Guenael/rtlsdr-wsprd)
|
||||
|
@ -12,14 +12,29 @@
|
|||
## 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 *Rasbian OS* with a *4.x* Linux kernel:
|
||||
To install and use your dongle on a Raspberry Pi with a Raspberry Pi OS, follow these steps:
|
||||
|
||||
```bash
|
||||
sudo apt-get update && sudo apt-get -y install build-essential clang cmake libfftw3-dev libusb-1.0-0-dev librtlsdr-dev libcurl4-gnutls-dev ntp git
|
||||
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 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
|
||||
make install
|
||||
|
||||
echo "== Start/test rtlsdr-wsprd"
|
||||
rtlsdr_wsprd -f 2m -c A1XYZ -l AB12cd -g 29
|
||||
```
|
||||
|
||||
|
@ -40,32 +55,47 @@ This application written in C does:
|
|||
|
||||
1. Install a Linux compatible distro on your device.
|
||||
|
||||
With **RasberryPi** devices, use a kernel **4.x ONLY**. There is a know bug related to later version 5.x.
|
||||
For Raspberry Pi, you can download official images here: https://www.raspberrypi.com/software/operating-systems/
|
||||
|
||||
You can use this image : https://downloads.raspberrypi.org/raspbian_lite/images/raspbian_lite-2019-04-09/
|
||||
1. It's a good practice to update your OS. On a RaspberryPi, run this command usual:
|
||||
```bash
|
||||
sudo apt-get update && sudo apt-get upgrade
|
||||
```
|
||||
|
||||
Update your OS as usual:
|
||||
```bash
|
||||
sudo apt-get update && sudo apt-get upgrade
|
||||
```
|
||||
1. Install dependencies & useful tools (for example, NTP for time synchronization). Example with a Debian based like Raspbian:
|
||||
```bash
|
||||
sudo apt-get update && sudo apt-get -y install build-essential clang cmake libfftw3-dev libusb-1.0-0-dev librtlsdr-dev libcurl4-gnutls-dev ntp git
|
||||
```
|
||||
```bash
|
||||
sudo apt-get update && sudo apt-get -y install build-essential clang cmake libfftw3-dev libusb-1.0-0-dev libcurl4-gnutls-dev ntp git
|
||||
```
|
||||
|
||||
1. Install `rtl-sdr` library manually. **Do not use the librtlsdr-dev package on RaspberryPi** 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).
|
||||
```bash
|
||||
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 it is not automatically recognized.
|
||||
|
||||
1. Clone this repository:
|
||||
```bash
|
||||
git clone https://github.com/Guenael/rtlsdr-wsprd
|
||||
```
|
||||
```bash
|
||||
git clone https://github.com/Guenael/rtlsdr-wsprd
|
||||
```
|
||||
|
||||
1. Build the application:
|
||||
```bash
|
||||
cd rtlsdr-wsprd
|
||||
make
|
||||
make install
|
||||
```
|
||||
1. Start the application with your right parameters, ex. for the 2m band, with a fake callsign (A1XYZ):
|
||||
```bash
|
||||
rtlsdr_wsprd -f 2m -c A1XYZ -l AB12cd -g 29
|
||||
```
|
||||
```bash
|
||||
cd rtlsdr-wsprd
|
||||
make
|
||||
sudo make install
|
||||
```
|
||||
|
||||
1. Finally, start the application with the right parameters/options for you (frequency, callsign, locator etc... Fake example below):
|
||||
```bash
|
||||
rtlsdr_wsprd -f 2m -c A1XYZ -l AB12cd -g 29
|
||||
```
|
||||
|
||||
## Tips (for your Raspberry Pi and SDR dongles)
|
||||
|
||||
|
@ -82,13 +112,8 @@ This application written in C does:
|
|||
|
||||
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 intergrate a 0.5ppm TCXO. It's the best second option, after an external clock. Based on my personal experience:
|
||||
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 drift a lot
|
||||
|
||||
## OS & Linux kernel requirement for RaspberryPi devices
|
||||
|
||||
I have no idea why this app works fine for RPi with a kernel 4.x and not 5.x. Using a x86_64, rtlsdr-wsprd works perfectly fine with both versions of the kernel. This is probably related to an issue with pthread, and I have to investinage this point.
|
||||
If you have some knowledge about this, your help is welcome!!
|
||||
- Other no-name like : RT820, E4000, FC0012, FC0013, can work, but require modification and usually drift a lot
|
||||
|
|
Ładowanie…
Reference in New Issue