Giter Club home page Giter Club logo

soapyairspy's Introduction

Soapy SDR plugin for Airspy R2 and Mini

Building

Make sure you have SoapySDR installed and do something like this:

mkdir build
cd build
cmake ..
make
sudo install

Using

Use this device string in GQRX:

soapy=0,driver=airspy

More settings are available:

soapy=0,driver=airspy,biastee=true|false,gains=linearity|sensitivity|manual

This branch (v2)

This branch is work in progress.

The code is significantly simpler than the previous version and most likely it has better performance. Quite a few bugs have been fixed, and some new ones have probably been introduced. Please help me find them! :-)

I have tested this with GQRX with good results.

Support me

Please consider sponsoring me on GitHub if you enjoy this work. Everything I earn through donations will go to families and children of Ukraine who have lost their homes because of the war.

Dependencies

Documentation

soapyairspy's People

Contributors

ast avatar cjcliffe avatar guruofquality avatar janvgils avatar luigifcruz avatar martin-zs avatar michalfratczak avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

soapyairspy's Issues

Information on the Nov 5 release

Build information:

cd source/git/ast/SoapyAirspy/
git pull
cd build
cmake -Wno-dev ../
make
sudo cp libairspySupport.so /usr/lib/x86_64-linux-gnu/SoapySDR/modules0.7/libairspySupport.so
sudo systemctl restart satnogs-client

This release info is shown as:

SoapySDRUtil --info
######################################################
##     Soapy SDR -- the SDR abstraction library     ##
######################################################

Lib Version: v0.7.2-2
API Version: v0.7.1
ABI Version: v0.7
Install root: /usr
Search path:  /usr/lib/x86_64-linux-gnu/SoapySDR/modules0.7
Module found: /usr/lib/x86_64-linux-gnu/SoapySDR/modules0.7/libairspySupport.so  (0.2.0-3d5e8c5)

Created some SatNOGS observations, and the first that we can see, that there are debug messages available.
The serial output doesn't seem to be correct and this can have issues when running multiple Airspy devices connected to the same system.

Nov 05 09:41:37 exomars satnogs-client[154968]: [DEBUG] Found AirSpy device: serial =         306b65c7
Nov 05 09:41:37 exomars satnogs-client[154968]: [DEBUG] SoapyAirspy::SoapyAirspy(biastee) = true
Nov 05 09:41:37 exomars satnogs-client[154968]: [INFO] airspy_set_rf_bias(1)
Nov 05 09:41:37 exomars satnogs-client[154968]: [INFO] airspy_set_rf_bias(1)
Nov 05 09:41:37 exomars satnogs-client[154968]: [INFO] Using format CF32.
Nov 05 09:41:37 exomars satnogs-client[154968]: [DEBUG] sample type: 0, sample size 8
Nov 05 09:41:37 exomars satnogs-client[154968]: [DEBUG] setGainMode(0)
Nov 05 09:41:37 exomars satnogs-client[154968]: [DEBUG] SoapyAirspy::setAntenna(RX)

The observation using the R2 at 2.5e6 sample rate shows similar vertical lines like with the first release https://network.satnogs.org/observations/6701815/

R2: airspy_info output

airspy_info 
airspy_lib_version: 1.0.11

Found AirSpy board 1
Board ID Number: 0 (AIRSPY)
Firmware Version: AirSpy NOS v1.0.0-rc10-6-g4008185 2020-05-08
Part ID Number: 0x6906002B 0x00000030
Serial Number: 0x466C64C8306B65C7
Supported sample rates:
	10.000000 MSPS
	2.500000 MSPS
Close board 1

Implement support for lower sampling rate?

Question:
Is it possible to implement support for lower sampling rates? When running the driver in SatNOGS it seams that the Raspberry 3 has problem handling samplings rate at 3e6, I get a lot of lost samples.

Setting gain question

Hi,
I have built the branch v2 and using for SatNOGS Raspberry PI 4, according to this thread:
https://community.libre.space/t/new-airspy-r2-mini-driver-development/9768/26

I'm not sure if the gain setting is working, or if I'm using the wrong parameter settings. For example I'm using this setting in SatNOGS:

soapy-rx-device: "driver=airspy,gains=linearity"
other-settings: "LIN=19"

Changing the "LIN" value does not seem change any gain, as seen in the waterfall for a SatNOGS observation.
The debug info from SatNOGS is the following:

Jul 31 13:20:52 satnogs858 satnogs-client[3038]: [DEBUG] SoapyAirspy::SoapyAirspy()
Jul 31 13:20:52 satnogs858 satnogs-client[3038]: [DEBUG] SoapyAirspy::SoapyAirspy(driver) = airspy
Jul 31 13:20:52 satnogs858 satnogs-client[3038]: [DEBUG] SoapyAirspy::SoapyAirspy(gains) = linearity
Jul 31 13:20:52 satnogs858 satnogs-client[3038]: [DEBUG] SoapyAirspy::SoapyAirspy(label) = AirSpy One [62cc68ff214d1f17]
Jul 31 13:20:52 satnogs858 satnogs-client[3038]: [DEBUG] SoapyAirspy::SoapyAirspy(serial) = 62cc68ff214d1f17
Jul 31 13:20:52 satnogs858 satnogs-client[3038]: [DEBUG] Found AirSpy device: serial = 62cc68ff214d1f17
Jul 31 13:20:52 satnogs858 satnogs-client[3038]: [DEBUG] SoapyAirspy::SoapyAirspy(gains) = linearity
Jul 31 13:20:52 satnogs858 satnogs-client[3038]: [DEBUG] Supported sample rate: 3000000
Jul 31 13:20:52 satnogs858 satnogs-client[3038]: [DEBUG] Supported sample rate: 6000000
Jul 31 13:20:52 satnogs858 satnogs-client[3038]: [DEBUG] SoapyAirspy::setGain(1, 0, 0.000000)
Jul 31 13:20:52 satnogs858 satnogs-client[3038]: [DEBUG] setSampleRate: 3000000
Jul 31 13:20:52 satnogs858 satnogs-client[3038]: [INFO] Using format CF32.
Jul 31 13:20:52 satnogs858 satnogs-client[3038]: [DEBUG] sample type: 0, sample size 8
Jul 31 13:20:52 satnogs858 satnogs-client[3038]: [DEBUG] SoapyAirspy::hasDCOffsetMode(1, 0)
Jul 31 13:20:52 satnogs858 satnogs-client[3038]: [DEBUG] SoapyAirspy::listAntennas(1, 0)
Jul 31 13:20:52 satnogs858 satnogs-client[3038]: [DEBUG] SoapyAirspy::setAntenna(1, 0, RX)
Jul 31 13:20:52 satnogs858 satnogs-client[3038]: [DEBUG] setBandwidth: 0.000000
Jul 31 13:20:52 satnogs858 satnogs-client[3038]: [DEBUG] setBandwidth: automatic
Jul 31 13:20:52 satnogs858 satnogs-client[3038]: [DEBUG] setBandwidth: 3000000.000000 0.000000 1.000000
Jul 31 13:20:52 satnogs858 satnogs-client[3038]: [DEBUG] setBandwidth: decimation < 4
Jul 31 13:20:52 satnogs858 satnogs-client[3038]: [DEBUG] airspy_set_conversion_filter_float32() success
Jul 31 13:20:52 satnogs858 satnogs-client[3038]: [DEBUG] SoapyAirspy::activateStream() flags=0 timeNs=0 numElems=0

And the question is what does SoapyAirspy::setGain(1, 0, 0.000000) mean?

Debug information question

Looking at the debug output my eye was drawn to the following message:

Jul 21 20:46:48 canberra satnogs-client[4826]: [DEBUG] setBandwidth: decimation < 4

I have been looking at CLI decimation options but could find a way to use this functionality.
Based on the debug message, is it possible to alter the decimation value use by the AIRSPY?

Full debug output:

Jul 21 20:46:48 canberra satnogs-client[4826]: [DEBUG] SoapyAirspy::SoapyAirspy()
Jul 21 20:46:48 canberra satnogs-client[4826]: [DEBUG] SoapyAirspy::SoapyAirspy(biastee) = true
Jul 21 20:46:48 canberra satnogs-client[4826]: [DEBUG] SoapyAirspy::SoapyAirspy(driver) = airspy
Jul 21 20:46:48 canberra satnogs-client[4826]: [DEBUG] SoapyAirspy::SoapyAirspy(gainmode) = 0
Jul 21 20:46:48 canberra satnogs-client[4826]: [DEBUG] SoapyAirspy::SoapyAirspy(label) = AirSpy One [04a464c83670830b]
Jul 21 20:46:48 canberra satnogs-client[4826]: [DEBUG] SoapyAirspy::SoapyAirspy(serial) = 04a464c83670830b
Jul 21 20:46:48 canberra satnogs-client[4826]: [DEBUG] Found AirSpy device: serial = 4a464c83670830b
Jul 21 20:46:48 canberra satnogs-client[4826]: [DEBUG] SoapyAirspy::SoapyAirspy(biastee) = true
Jul 21 20:46:48 canberra satnogs-client[4826]: [DEBUG] airspy_set_rf_bias(1)
Jul 21 20:46:48 canberra satnogs-client[4826]: [DEBUG] Supported sample rate: 3000000
Jul 21 20:46:48 canberra satnogs-client[4826]: [DEBUG] Supported sample rate: 6000000
Jul 21 20:46:48 canberra satnogs-client[4826]: [DEBUG] SoapyAirspy::setGain(1, 0, 0.000000)
Jul 21 20:46:48 canberra satnogs-client[4826]: [DEBUG] airspy_set_rf_bias(1)
Jul 21 20:46:48 canberra satnogs-client[4826]: [DEBUG] setSampleRate: 3000000
Jul 21 20:46:48 canberra satnogs-client[4826]: [INFO] Using format CF32.
Jul 21 20:46:48 canberra satnogs-client[4826]: [DEBUG] sample type: 0, sample size 8
Jul 21 20:46:48 canberra satnogs-client[4826]: [DEBUG] SoapyAirspy::hasDCOffsetMode(1, 0)
Jul 21 20:46:48 canberra satnogs-client[4826]: [DEBUG] SoapyAirspy::listAntennas(1, 0)
Jul 21 20:46:48 canberra satnogs-client[4826]: [DEBUG] SoapyAirspy::setAntenna(1, 0, RX)
Jul 21 20:46:48 canberra satnogs-client[4826]: [DEBUG] setBandwidth: 0.000000
Jul 21 20:46:48 canberra satnogs-client[4826]: [DEBUG] setBandwidth: automatic
Jul 21 20:46:48 canberra satnogs-client[4826]: [DEBUG] setBandwidth: 3000000.000000 0.000000 1.000000
Jul 21 20:46:48 canberra satnogs-client[4826]: [DEBUG] setBandwidth: decimation < 4
Jul 21 20:46:48 canberra satnogs-client[4826]: [DEBUG] airspy_set_conversion_filter_float32() success
Jul 21 20:46:48 canberra satnogs-client[4826]: [DEBUG] SoapyAirspy::activateStream() flags=0 timeNs=0 numElems=0

All the best.

Build error

After the cleanup from Juli 14th 2023 I have the following experience.

Building on a SoapySDR 0.7 environment (debian bullseye):

cmake -Wno-dev ../
-- The CXX compiler identification is GNU 10.2.1
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Build type not specified: defaulting to release.
-- Found PkgConfig: /usr/bin/pkg-config (found version "0.29.2") 
-- Checking for module 'libairspy'
--   Found libairspy, version 1.0
-- Found LIBAIRSPY: /usr/local/lib/libairspy.so  
-- Found Git: /usr/bin/git (found version "2.30.2") 
-- Module airspySupport configured with version: 0.2.0-12744c4
-- Configuring done
-- Generating done
-- Build files have been written to: /home/janvg/source/git/ast/SoapyAirspy/build
janvg@canberra:~/source/git/ast/SoapyAirspy/build$ make
Scanning dependencies of target airspySupport
[ 20%] Building CXX object CMakeFiles/airspySupport.dir/Registration.cpp.o
/home/janvg/source/git/ast/SoapyAirspy/Registration.cpp: In function ‘SoapySDR::Device* makeAirspy(const Kwargs&)’:
/home/janvg/source/git/ast/SoapyAirspy/Registration.cpp:78:30: warning: ‘new’ of type ‘SoapyAirspy’ with extended alignment 64 [-Waligned-new=]
   78 |   return new SoapyAirspy(args);
      |                              ^
/home/janvg/source/git/ast/SoapyAirspy/Registration.cpp:78:30: note: uses ‘void* operator new(std::size_t)’, which does not have an alignment parameter
/home/janvg/source/git/ast/SoapyAirspy/Registration.cpp:78:30: note: use ‘-faligned-new’ to enable C++17 over-aligned new support
[ 40%] Building CXX object CMakeFiles/airspySupport.dir/Settings.cpp.o
In file included from /home/janvg/source/git/ast/SoapyAirspy/Settings.cpp:25:
/home/janvg/source/git/ast/SoapyAirspy/SoapyAirspy.hpp: In constructor ‘SoapyAirspy::SoapyAirspy(const Kwargs&)’:
/home/janvg/source/git/ast/SoapyAirspy/SoapyAirspy.hpp:76:10: warning: ‘SoapyAirspy::currentBandwidth_’ will be initialized after [-Wreorder]
   76 |   double currentBandwidth_;
      |          ^~~~~~~~~~~~~~~~~
/home/janvg/source/git/ast/SoapyAirspy/SoapyAirspy.hpp:67:9: warning:   ‘SoapyAirspy::Gains SoapyAirspy::gains_’ [-Wreorder]
   67 |   Gains gains_;
      |         ^~~~~~
/home/janvg/source/git/ast/SoapyAirspy/Settings.cpp:29:1: warning:   when initialized here [-Wreorder]
   29 | SoapyAirspy::SoapyAirspy(const SoapySDR::Kwargs &args)
      | ^~~~~~~~~~~
In file included from /home/janvg/source/git/ast/SoapyAirspy/SoapyAirspy.hpp:39,
                 from /home/janvg/source/git/ast/SoapyAirspy/Settings.cpp:25:
/home/janvg/source/git/ast/SoapyAirspy/RingBuffer.hpp: In instantiation of ‘RingBuffer<T>::RingBuffer(size_t) [with T = unsigned char; size_t = long unsigned int]’:
/home/janvg/source/git/ast/SoapyAirspy/Settings.cpp:32:43:   required from here
/home/janvg/source/git/ast/SoapyAirspy/RingBuffer.hpp:27:53: error: use of deleted function ‘std::atomic<long unsigned int>::atomic(const std::atomic<long unsigned int>&)’
   27 |   cacheline_aligned std::atomic<size_t> read_pos_ = 0;
      |                                                     ^
In file included from /home/janvg/source/git/ast/SoapyAirspy/SoapyAirspy.hpp:32,
                 from /home/janvg/source/git/ast/SoapyAirspy/Settings.cpp:25:
/usr/include/c++/10/atomic:828:7: note: declared here
  828 |       atomic(const atomic&) = delete;
      |       ^~~~~~
/usr/include/c++/10/atomic:832:17: note:   after user-defined conversion: ‘constexpr std::atomic<long unsigned int>::atomic(std::atomic<long unsigned int>::__integral_type)’
  832 |       constexpr atomic(__integral_type __i) noexcept : __base_type(__i) { }
      |                 ^~~~~~
In file included from /home/janvg/source/git/ast/SoapyAirspy/SoapyAirspy.hpp:39,
                 from /home/janvg/source/git/ast/SoapyAirspy/Settings.cpp:25:
/home/janvg/source/git/ast/SoapyAirspy/RingBuffer.hpp:28:54: error: use of deleted function ‘std::atomic<long unsigned int>::atomic(const std::atomic<long unsigned int>&)’
   28 |   cacheline_aligned std::atomic<size_t> write_pos_ = 0;
      |                                                      ^
In file included from /home/janvg/source/git/ast/SoapyAirspy/SoapyAirspy.hpp:32,
                 from /home/janvg/source/git/ast/SoapyAirspy/Settings.cpp:25:
/usr/include/c++/10/atomic:828:7: note: declared here
  828 |       atomic(const atomic&) = delete;
      |       ^~~~~~
/usr/include/c++/10/atomic:832:17: note:   after user-defined conversion: ‘constexpr std::atomic<long unsigned int>::atomic(std::atomic<long unsigned int>::__integral_type)’
  832 |       constexpr atomic(__integral_type __i) noexcept : __base_type(__i) { }
      |                 ^~~~~~
make[2]: *** [CMakeFiles/airspySupport.dir/build.make:95: CMakeFiles/airspySupport.dir/Settings.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:95: CMakeFiles/airspySupport.dir/all] Error 2
make: *** [Makefile:149: all] Error 2

And this build isn't successful and can't be used.

Building on a SoapySDR 0.8 environment (debian trixie):

cmake -Wno-dev ../
-- The CXX compiler identification is GNU 12.3.0
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Build type not specified: defaulting to release.
-- Found PkgConfig: /usr/bin/pkg-config (found version "1.8.1") 
-- Checking for module 'libairspy'
--   Found libairspy, version 1.0
-- Found LIBAIRSPY: /usr/local/lib/libairspy.so  
-- Found Git: /usr/bin/git (found version "2.40.1") 
-- Module airspySupport configured with version: 0.2.0-12744c4
-- Configuring done (0.3s)
-- Generating done (0.0s)
-- Build files have been written to: /home/janvg/source/git/ast/SoapyAirspy/build
janvg@goldstone:~/source/git/ast/SoapyAirspy/build$ make
[ 20%] Building CXX object CMakeFiles/airspySupport.dir/Registration.cpp.o
[ 40%] Building CXX object CMakeFiles/airspySupport.dir/Settings.cpp.o
In file included from /home/janvg/source/git/ast/SoapyAirspy/Settings.cpp:25:
/home/janvg/source/git/ast/SoapyAirspy/SoapyAirspy.hpp: In constructor ‘SoapyAirspy::SoapyAirspy(const SoapySDR::Kwargs&)’:
/home/janvg/source/git/ast/SoapyAirspy/SoapyAirspy.hpp:76:10: warning: ‘SoapyAirspy::currentBandwidth_’ will be initialized after [-Wreorder]
   76 |   double currentBandwidth_;
      |          ^~~~~~~~~~~~~~~~~
/home/janvg/source/git/ast/SoapyAirspy/SoapyAirspy.hpp:67:9: warning:   ‘SoapyAirspy::Gains SoapyAirspy::gains_’ [-Wreorder]
   67 |   Gains gains_;
      |         ^~~~~~
/home/janvg/source/git/ast/SoapyAirspy/Settings.cpp:29:1: warning:   when initialized here [-Wreorder]
   29 | SoapyAirspy::SoapyAirspy(const SoapySDR::Kwargs &args)
      | ^~~~~~~~~~~
[ 60%] Building CXX object CMakeFiles/airspySupport.dir/Streaming.cpp.o
[ 80%] Building CXX object CMakeFiles/airspySupport.dir/Version.cpp.o
[100%] Linking CXX shared module libairspySupport.so
[100%] Built target airspySupport

And this library can be used, as can be seen after the following command:

SoapySDRUtil --probe="driver=airspy"
######################################################
##     Soapy SDR -- the SDR abstraction library     ##
######################################################

Probe device driver=airspy
[DEBUG] SoapyAirspy::SoapyAirspy()
[DEBUG] SoapyAirspy::SoapyAirspy(driver) = airspy
[DEBUG] SoapyAirspy::SoapyAirspy(label) = AirSpy One [b58069dc396e3913]
[DEBUG] SoapyAirspy::SoapyAirspy(serial) = b58069dc396e3913
[DEBUG] Found AirSpy device: serial = b58069dc396e3913
[DEBUG] Supported sample rate: 2500000
[DEBUG] Supported sample rate: 10000000
[DEBUG] SoapyAirspy::setGain(1, 0, 0.000000)
[DEBUG] SoapyAirspy::listAntennas(1, 0)
[DEBUG] SoapyAirspy::hasDCOffsetMode(1, 0)
[DEBUG] getBandwidth: 0.000000
[DEBUG] listBandwidths(1, 0)

----------------------------------------------------
-- Device identification
----------------------------------------------------
  driver=Airspy
  hardware=Airspy
  serial=b58069dc396e3913

----------------------------------------------------
-- Peripheral summary
----------------------------------------------------
  Channels: 1 Rx, 0 Tx
  Timestamps: NO
  Other Settings:
     * Bias tee - Enable the 4.5v DC Bias tee to power SpyVerter / LNA / etc. via antenna connection.
       [key=biastee, default=false, type=bool]
     * Bit pack - Enable packing 4 12-bit samples into 3 16-bit words for 25% less USB trafic.
       [key=bitpack, default=false, type=bool]
     * Gain Mode - linearity | sensitivity | manual
       [key=gainmode, default=linearity, type=int]

----------------------------------------------------
-- RX Channel 0
----------------------------------------------------
  Full-duplex: NO
  Supports AGC: YES
  Stream formats: CS16, CF32
  Native format: CS16 [full-scale=32767]
  Antennas: RX
  Full gain range: [0, 21] dB
    LIN gain range: [0, 21] dB
  Full freq range: [24, 1800] MHz
    RF freq range: [24, 1800] MHz
  Sample rates: 2.5, 10 MSps
  Filter bandwidths: 1.875, 7.5 MHz

Is this enough information to resolve this issue?

ringbuffer write timeout

Hi!

I tried your driver with gainmode=1 and got "ringbuffer write timeout".

It happended sometime.

Log with timeout:

Nov 15 06:04:22 gs2107 satnogs-client[4599]: [INFO] Using format CF32.
Nov 15 06:05:22 gs2107 satnogs-client[4599]: [INFO] SoapyAirspy::rx_callback: ringbuffer write timeout
Nov 15 06:05:23 gs2107 satnogs-client[4599]: [INFO] SoapyAirspy::rx_callback: ringbuffer write timeout
Nov 15 06:05:23 gs2107 satnogs-client[4599]: [INFO] SoapyAirspy::rx_callback: ringbuffer write timeout
Nov 15 06:05:23 gs2107 satnogs-client[4599]: [INFO] SoapyAirspy::rx_callback: ringbuffer write timeout
Nov 15 06:08:04 gs2107 satnogs-client[4599]: [INFO] SoapyAirspy::rx_callback: ringbuffer write timeout
Nov 15 06:08:04 gs2107 satnogs-client[4599]: [INFO] SoapyAirspy::rx_callback: ringbuffer write timeout
Nov 15 06:09:53 gs2107 satnogs-client[3100]: netrigctl_close: done status=Command completed successfully
Nov 15 06:09:54 gs2107 satnogs-client[4674]: POST OBSERVATION SCRIPT RUNNING

Log NO timeout:

Sep 16 15:58:44 gs2107 satnogs-client[3876]: [INFO] Using format CF32.
Sep 16 16:06:50 gs2107 satnogs-client[3876]: OOOOOsOsOsOsOsO
Sep 16 16:06:50 gs2107 satnogs-client[2124]: netrigctl_close: done status=Command completed successfully
Sep 16 16:06:53 gs2107 satnogs-client[3949]: POST OBSERVATION SCRIPT RUNNING

I'm using Raspberry Pi 4B with SatNOGS client 1.8.1/Raspbian SatNOGS Image(Release: 2022091000)
Airspy Mini(v1.0.0-rc10-6) is connected to USB2.

Driver setting:

satnogs_soapy_rx_device: driver=airspy,gainmode=1
satnogs_rx_samp_rate: 3e6
satnogs_antenna: RX
satnogs_gain_mode: Settings Field
satnogs_other_settings: SENS=14

x86 Build error

Nov 6th 2022:

git clone https://github.com/ast/SoapyAirspy.git

cd SoapyAirspy
git branch 
* v2
mkdir build
cd build
cmake -Wno-dev ../
-- The CXX compiler identification is GNU 10.2.1
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Build type not specified: defaulting to release.
-- Found PkgConfig: /usr/bin/pkg-config (found version "0.29.2") 
-- Checking for module 'libairspy'
--   Found libairspy, version 1.0
-- Found LIBAIRSPY: /usr/local/lib/libairspy.so  
-- Performing Test HAS_STD_CXX11
-- Performing Test HAS_STD_CXX11 - Success
-- Found Git: /usr/bin/git (found version "2.30.2") 
-- Module airspySupport configured with version: 0.2.0-8a202af
-- Configuring done
-- Generating done
-- Build files have been written to: source/git/ast/SoapyAirspy/build
make
Scanning dependencies of target airspySupport
[ 20%] Building CXX object CMakeFiles/airspySupport.dir/Registration.cpp.o
source/git/ast/SoapyAirspy/Registration.cpp: In function ‘SoapySDR::Device* makeAirspy(const Kwargs&)’:
source/git/ast/SoapyAirspy/Registration.cpp:77:32: warning: ‘new’ of type ‘SoapyAirspy’ with extended alignment 64 [-Waligned-new=]
   77 |     return new SoapyAirspy(args);
      |                                ^
source/git/ast/SoapyAirspy/Registration.cpp:77:32: note: uses ‘void* operator new(std::size_t)’, which does not have an alignment parameter
source/git/ast/SoapyAirspy/Registration.cpp:77:32: note: use ‘-faligned-new’ to enable C++17 over-aligned new support
[ 40%] Building CXX object CMakeFiles/airspySupport.dir/Settings.cpp.o
[ 60%] Building CXX object CMakeFiles/airspySupport.dir/Streaming.cpp.o
[ 80%] Building CXX object CMakeFiles/airspySupport.dir/Version.cpp.o
[100%] Linking CXX shared module libairspySupport.so
[100%] Built target airspySupport

Vertical lines seen in the waterfall

First SatNOGS observation with your code.

Looking at this waterfall https://network.satnogs.org/observations/6694954/ something is off, those parallel lines shouldn't be there.
This is a Doppler corrected observation and that is the reason for the S shape.

The Airspy used in the observation:

airspy_info 
airspy_lib_version: 1.0.11

Found AirSpy board 1
Board ID Number: 0 (AIRSPY)
Firmware Version: AirSpy NOS v1.0.0-rc10-6-g4008185 2020-05-08
Part ID Number: 0x6906002B 0x00000030
Serial Number: 0x466C64C8306B65C7
Supported sample rates:
	10.000000 MSPS
	2.500000 MSPS
Close board 1

Running at 2.5e6 sample rate and the Soapy driver settings used "driver=airspy,serial=466c64c8306b65c7,biastee=true"

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.