Git Product home page Git Product logo

satdump's Introduction

SatDump

A generic satellite data processing software. Thanks Crosswalkersam for the icon!

There now also is a Matrix room if you want to chat!

Introduction

Note : This is a very basic "how-to" skipping details and assuming some knowledge of what you are doing. For more details and advanced use cases, please see the detailed documentation.

GUI Version

Offline processing (recorded data)

Quick-Start :

  • Choose the appropriate pipeline for what you want to process
  • Select the input file (baseband, frames, soft symbols...)
  • Set the appropriate input level (what your file is)
  • Check settings shown below are right (such as samplerate)
  • Press "Start"!

Img

Img
SatDump demodulating a DVB-S2 Baseband

Live processing or recording (directly from your SDR)

Quick-Start :

  • Go in the "Recorder" Tab
  • Select and start your SDR Device
  • Choose a pipeline
  • Start it, and done!
  • For recording, use the recording tab instead. Both processing and recording can be used at once.

Img

CLI Version

Img

Offline processing

Usage : satdump [pipeline_id] [input_level] [input_file] [output_file_or_directory] [additional options as required]
Extra options (examples. Any parameter used in modules can be used here) :
  --samplerate [baseband_samplerate] --baseband_format [f32/s16/s8/u8] --dc_block --iq_swap
Sample command :
satdump metop_ahrpt baseband /home/user/metop_baseband.s16 metop_output_directory --samplerate 6e6 --baseband_format s16

You can find a list of Satellite pipelines and their parameters Here.

Live processing

Usage : satdump live [pipeline_id] [output_file_or_directory] [additional options as required]
Extra options (examples. Any parameter used in modules or sources can be used here) :
  --samplerate [baseband_samplerate] --baseband_format [f32/i16/i8/w8] --dc_block --iq_swap
  --source [airspy/rtlsdr/etc] --gain 20 --bias
As well as --timeout in seconds
Sample command :
satdump live metop_ahrpt metop_output_directory --source airspy --samplerate 6e6 --frequency 1701.3e6 --general_gain 18 --bias --timeout 780

You can find a list of all SDR Options Here. Run satdump sdr_probe to get a list of available SDRs and their IDs.

Recording

Usage : satdump record [output_baseband (without extension!)] [additional options as required]
Extra options (examples. Any parameter used in sources can be used here) :
  --samplerate [baseband_samplerate] --baseband_format [f32/s16/s8/u8/w16] --dc_block --iq_swap
  --source [airspy/rtlsdr/etc] --gain 20 --bias
As well as --timeout in seconds
Sample command :
satdump record baseband_name --source airspy --samplerate 6e6 --frequency 1701.3e6 --general_gain 18 --bias --timeout 780

Building / Installing

Windows

The fastest way to get started is to head over to the Releases page, where you can download SatDump's installer or portable app - no compilation necessary.

Our builds are made with Visual Studio 2019 for x64, so the appropriate Visual C++ Runtime will be required (though, likely to be already installed). You can get it here. Once downloaded, run either satdump-ui.exe or satdump.exe (CLI) to get started!

For compilation information, see the dedicated documentation here. Note : Mingw builds are NOT supported, VOLK will not work.

macOS

Dependency-free macOS builds are provided on the releases page (Thanks to JVital2013, the builds are also signed!).

General build instructions (Brew and XCode command line tools required)

# Install build tools
brew install cmake dylibbundler pkg-config libtool autoconf automake meson

# Clone SatDump
git clone https://github.com/altillimity/satdump.git && cd satdump

# Build dependencies
./macOS/Configure-vcpkg.sh

# Finally, build.
# If you do not want to build the GUI Version, add -DBUILD_GUI=OFF to the command
# If you want to disable some SDRs, you can add -DPLUGIN_HACKRF_SDR_SUPPORT=OFF or similar
mkdir build && cd build
cmake -DCMAKE_TOOLCHAIN_FILE=../vcpkg/scripts/buildsystems/vcpkg.cmake -DCMAKE_BUILD_TYPE=Release -DVCPKG_TARGET_TRIPLET=osx-satdump ..
make -j$(sysctl -n hw.logicalcpu)

# To run without bundling
ln -s ../pipelines .        # Symlink pipelines so it can run
ln -s ../resources .        # Symlink resources so it can run
ln -s ../satdump_cfg.json . # Symlink settings so it can run
./satdump-ui

# Make an app bundle (to add to your /Applications folder). Saves to build/MacApp, and
# a .dmg is created as well. 'make install' is not supported.
../macOS/bundle.sh

Linux

On Linux, building from source is recommended, but builds are provided for x64-based Ubuntu distributions. Here are some generic (Debian-oriented) build instructions.

# Install dependencies on Debian-based systems:
sudo apt install git build-essential cmake g++ pkgconf libfftw3-dev libpng-dev libtiff-dev libjemalloc-dev   # Core dependencies
sudo apt install libvolk2-dev                                                                                # If this package is not found, use libvolk-dev or libvolk1-dev
sudo apt install libnng-dev                                                                                  # If this package is not found, follow build instructions below for NNG
sudo apt install librtlsdr-dev libhackrf-dev libairspy-dev libairspyhf-dev                                   # All libraries required for live processing (optional)
sudo apt install libglfw3-dev zenity                                                                         # Only if you want to build the GUI Version (optional)
sudo apt install libzstd-dev                                                                                 # Only if you want to build with ZIQ Recording compression
# (optional)
sudo apt install libomp-dev                                                                                  # Shouldn't be required in general, but in case you have errors with OMP
sudo apt install ocl-icd-opencl-dev                                                                          # Optional, but recommended as it drastically increases speed of some operations. Installs OpenCL.
sudo apt install intel-opencl-icd                                                                            # Optional, enables OpenCL for Intel Integrated Graphics

# Install dependencies on Red-Hat-based systems:
sudo dnf install git cmake g++ fftw-devel volk-devel libpng-devel jemalloc-devel tiff-devel
sudo dnf install nng-devel
sudo dnf install rtl-sdr-devel hackrf-devel airspyone_host-devel
sudo dnf install glfw-devel zenity
sudo dnf install libzstd-devel
# (optional)
sudo dnf install libomp-devel
sudo dnf install ocl-icd                                                                                      # Optional, but recommended as it drastically increases speed of some operations. Installs OpenCL.
sudo dnf install intel-opencl                                                                                 # Optional, enables OpenCL for Intel Integrated Graphics

# Install dependencies on Alpine-based systems:
sudo apk add git cmake make g++ pkgconf fftw-dev libvolk-dev libpng-dev jemalloc-dev tiff-dev                 # Adding the testing repository is required for libvolk-dev
# You need to build libnng from source, see below.
sudo apk add librtlsdr-dev hackrf-dev airspyone-host-dev airspyhf-dev
sudo apk add glfw-dev zenity
sudo apk add zstd-dev
(optional)
sudo apk add opencl-dev                                                                                      # Optional, but recommended as it drastically increases speed of some operations. Installs OpenCL. Community repo required.

# If libnng-dev is not available, you will have to build it from source
git clone https://github.com/nanomsg/nng.git
cd nng
mkdir build && cd build
cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=ON -DCMAKE_INSTALL_PREFIX=/usr ..
make -j4
sudo make install
cd ../..
rm -rf nng

# Finally, SatDump
git clone https://github.com/altillimity/satdump.git
cd satdump
mkdir build && cd build
# If you do not want to build the GUI Version, add -DBUILD_GUI=OFF to the command
# If you want to disable some SDRs, you can add -DPLUGIN_HACKRF_SDR_SUPPORT=OFF or similar
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr ..
make -j`nproc`

# To run without installing
ln -s ../pipelines .        # Symlink pipelines so it can run
ln -s ../resources .        # Symlink resources so it can run
ln -s ../satdump_cfg.json . # Symlink settings so it can run

# To install system-wide
sudo make install

# Run (if you want!)
./satdump-ui

Android

On Android, the preferred source is F-Droid.

Get it on F-Droid

If this is not an option for you, APKs are also available on the Release page.

Do keep in mind that while pretty much all features perfectly function on Android, there may be some limitations (either due to the hardware) in some places. For example, not all SDR Devices can be used.
Supported SDR devices are :

  • RTL-SDR
  • Airspy
  • AirspyHF
  • LimeSDR Mini
  • HackRF

satdump's People

Contributors

777arc avatar aang23 avatar agausmann avatar alexandrerouma avatar arvedviehweger avatar baskiton avatar blobtoe avatar crosswalkersam avatar ebirn avatar foxiks avatar illegalcoding avatar jvital2013 avatar kentuckyfrieddata avatar kng avatar lazzsnazz avatar marhmarchi avatar martinherren avatar mnux9 avatar mpentler avatar northelo avatar ok9uwu avatar rad750 avatar roseoo avatar sam210723 avatar sdrgeek avatar sgcderek avatar sv1cal avatar theverygaming avatar thomasdouwes avatar zbychubutitwastaken 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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

satdump's Issues

Support for the sdrplay ?

I have a sdrplay rsp1 but I can't use it with SatDump's live processing Is there any plan to support sdrplay devices

v0.0.34 make error

Usually I can Google for fixes when there is an error building someone's app, but I'm not seeing anything that I (non-programmer) can understand.

At the "make" step, at the 92% point I get

[ 92%] Linking CXX shared library ../libsatdump_core.so
/usr/bin/ld: /usr/local/lib/libnng.a(posix_debug.c.o): relocation R_X86_64_PC32 against symbol `stdout@@GLIBC_2.2.5' can not be used when making a shared object; recompile with -fPIC
/usr/bin/ld: final link failed: Bad value
collect2: error: ld returned 1 exit status
src-core/CMakeFiles/satdump_core.dir/build.make:5109: recipe for target 'libsatdump_core.so' failed
make[2]: *** [libsatdump_core.so] Error 1
CMakeFiles/Makefile2:214: recipe for target 'src-core/CMakeFiles/satdump_core.dir/all' failed
make[1]: *** [src-core/CMakeFiles/satdump_core.dir/all] Error 2
Makefile:135: recipe for target 'all' failed
make: *** [all] Error 2

Many thanks in advance for help on how to correct that!

'Live Processing' output?

Just installed ver. 0.0.28 and tried the 'Live Processing' option for the first time. AMAZING work! Thanks so much the the fun platform to decode weather sats.

I'm not sure that I am handling one aspect correctly. The output of the 'Live Processing' session is a .CADU file.

That's great - I was able to run satdump-ui again and produce the Meteor-M2 images from the .CADU file.

But, is there a way to generate the end-result images in a single session? Or, just as when using a .RAW recording from GQRX, is this still a 2-step process? Thanks!!

satdump-live

linux- last make -j4 error

every other command up until this point was working fine, but when i got to the last make -j4 I got the make: *** No targets specified and no makefile found. Stop. error, I am not good at using the UNIX command line, or coding at any level so i might be completely be glossing over something. The command that I put in previously was this cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE if that helps.
BTW I'm using linux Mint witch is a ubontu based system. here is some more info.
NAME="Linux Mint" VERSION="20 (Ulyana)" ID=linuxmint ID_LIKE=ubuntu PRETTY_NAME="Linux Mint 20" VERSION_ID="20" HOME_URL="https://www.linuxmint.com/"
thank you for your time

Need help

Who will help with the command need live build -DBUILD_LIVE=ON
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr .. #
How correct enter in linux

WIN32: Illegal use of gmtime()

Looking at the CI build log for Windows (e.g. here) there is this important warning from cl:

D:\a\SatDump\SatDump\src-core\libs\predict\julian_date.c(91,20): 
warning C4020: 'gmtime': too many actual parameters [D:\a\SatDump\build\src-core\satdump_core.vcxproj]

And using clang-cl, it's an error. I've patched it like this using the Secure functions:

--- a/src-core/libs/predict/julian_date.c  2021-10-25 14:22:24
+++ b/src-core/libs/predict/julian_date.c 2021-11-04 11:04:05
@@ -20,7 +20,7 @@
        //get UTC time, interpret resulting tm as a localtime
        struct tm timeinfo_gmt;
 #ifdef _WIN32
-       memcpy(&timeinfo_gmt, gmtime(&curr_time), sizeof(struct tm));
+       gmtime_s(&timeinfo_gmt, &curr_time);
 #else
        gmtime_r(&curr_time, &timeinfo_gmt);
 #endif
@@ -29,7 +29,7 @@
        //get localtime, interpret resulting tm as localtime
        struct tm timeinfo_local;
 #ifdef _WIN32
-       memcpy(&timeinfo_local, localtime(&curr_time), sizeof(struct tm));
+       localtime_s(&timeinfo_local, &curr_time);
 #else
        localtime_r(&curr_time, &timeinfo_local);
 #endif
@@ -88,7 +88,7 @@
        //add number of seconds since julian start day to the julian start day, get current time_t
        struct tm timeinfo;
 #ifdef _WIN32
-       gmtime(&ret_time, &timeinfo);
+       gmtime_s(&timeinfo, &ret_time);
 #else
        gmtime_r(&ret_time, &timeinfo);
 #endif

VHF/NOAA DSB mirrored

processing noaa dsb record gives pictures which are mirrored to apt decoded picture

DSB HIRS pictures:
HIRS-ALL-EQU

APT picture - already mirrored for comparison
noaa15m

Build error: Unknown CMake command "add_compile_definitions"

Hi, I'm trying to compile for Aarch64 Jetson Nano

I have this error when compiling:

~/satdump/build$ cmake -DBUILD_LIVE=ON -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr ..

CMake Error at CMakeLists.txt:9 (add_compile_definitions):
  Unknown CMake command "add_compile_definitions".

-- Configuring incomplete, errors occurred!

Distributor ID: Ubuntu
Description: Ubuntu 18.04.6 LTS
Release: 18.04
Codename: bionic

cmake --version
cmake version 3.10.2

Arm/Aarch64 Jetson Nano

Compiling >>> fatal error: filesystem: No such file or directory #include <filesystem>

Attempting to try installing for Jetson Nano (Arm/Aarch64) Ubuntu Linux

I have this error when compiling:

[ 20%] Building CXX object src-core/CMakeFiles/satdump_core.dir/init.cpp.o
/home/user1/satdump/src-core/init.cpp:5:10: fatal error: filesystem: No such file or directory
 #include <filesystem>
          ^~~~~~~~~~~~
compilation terminated.
src-core/CMakeFiles/satdump_core.dir/build.make:1363: recipe for target 'src-core/CMakeFiles/satdump_core.dir/init.cpp.o' failed
make[2]: *** [src-core/CMakeFiles/satdump_core.dir/init.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
CMakeFiles/Makefile2:214: recipe for target 'src-core/CMakeFiles/satdump_core.dir/all' failed
make[1]: *** [src-core/CMakeFiles/satdump_core.dir/all] Error 2
Makefile:135: recipe for target 'all' failed
make: *** [all] Error 2

Distributor ID: Ubuntu
Description: Ubuntu 18.04.6 LTS
Release: 18.04
Codename: bionic

cmake --version
cmake version 3.21.3

Arm/Aarch64 Jetson Nano

Feature Request: CI examples.

Hi Aang32,

Please add more examples for command line usage.
For example, it is possible to do Live processing from command line? What is the command?

Please consider adding a feature to the GUI that prints to the console, when you click "start", the CI command that one can use to run the same pipeline from the command line.

Compile error with ENABLE_DECOMPRESSION

Having a -DENABLE_DECOMPRESSION causes this error while compiling libsdr/sdr/sdr.cpp:

In file included from libsdr/sdr/sdr.cpp:63:
In file included from libsdr/sdr/file.h:6:
In file included from ./src-core\common/dsp/file_source.h:8:
f:/gv/dx-radio/gnuradio/gv-build/include\volk/volk_alloc.hh(54,55): error: too few arguments provided to function-like
      macro invocation
        if (n > std::numeric_limits<std::size_t>::max() / sizeof(T))
                                                      ^
f:\ProgramFiler-x86\WindowsKits\Include\10.0.19041.0\shared\minwindef.h(193,9): note: macro 'max' defined here
#define max(a,b)            (((a) > (b)) ? (a) : (b))
        ^
1 error generated.

(from a clang-cl build).

I'm not sure where/how <windows.h> gets included, but the fix for me was to add a -DNOMINMAX manually.
Not sure if the top-level CMakeLists.txt should add this is not.

SatDump Auto start.

Hello everyone. Will there be Orbitron and GPredict support. Currently I did not see an auto start feature. It would be nice if it would auto start when the satellite is in range via Orbitron or GPredict dde control.

Any idea if and when this plug-in or feature will be added.

A fully Automated unattended setup would be great.

Thank you.

[Win32] Exiting by "Alt-F4"

When running e.g. the "BasebandRecorder" and exiting by pressing Alt-F4,
the satdump-ui.exe hangs forever.

Edit: Same issue when simply mouse-pressing the upper-right X.

The last log is:

  (I) Saving settings to file settings.json

Some event is blocking (?) to continue the exit. Or perhaps an issue with ImGui?

Pressing Exit first, then pressing Alt-F4 (or mouse-pressing the upper-right X), works fine.

Compile error in plugins/gvar_extended/main.cpp

Trying to compile the plugins with MSVC-2019, I got this (for me) weird error in plugins/gvar_extended/main.cpp:

f:\gv\VC_2019\VC\Tools\MSVC\14.29.30133\include\vadefs.h(194): error C2338: va_start argument must not have 
reference type and must not be parenthesized
F:\gv\dx-radio\Satellite\SatDump\src-core\CImg.h(48553): note: see reference to class template instantiation 
'__vcrt_assert_va_start_is_not_reference<const cimg_library::CImgList<unsigned char> &>' being compiled
plugins/gvar_extended/main.cpp(132): note: see reference to function template instantiation 
'cimg_library::CImg<unsigned char> &cimg_library::CImg<unsigned char>::draw_text<unsigned char,unsigned char>(const int,const int,const char *const,const tc *const ,const int,const float,const cimg_library::CImgList<unsigned char> &,...)' 
being compiled
        with
        [
            tc=unsigned char
        ]
plugins/gvar_extended/main.cpp(132): note: see reference to function template instantiation 
'cimg_library::CImg<unsigned char> &cimg_library::CImg<unsigned char>::draw_text<unsigned char,unsigned char>(const int,const int,const char *const, const tc *const ,const int,const float,const cimg_library::CImgList<unsigned char> &,...)' 
being compiled with
        [
            tc=unsigned char
        ]

(slightly edited).

Some issue in src-core/CImg.h at line 48553 that MSVC-2019 does not like:

    template<typename tc1, typename tc2, typename t>
    CImg<T>& draw_text(const int x0, const int y0,
                       const char *const text,
                       const tc1 *const foreground_color, const tc2 *const background_color,
                       const float opacity, const CImgList<t>& font, ...) {
      if (!font) return *this;
      CImg<charT> tmp(2048);
      std::va_list ap; va_start(ap,font);  // !! line 48553
      cimg_vsnprintf(tmp,tmp._width,text,ap); va_end(ap);
      return _draw_text(x0,y0,tmp,foreground_color,background_color,opacity,font,false);
    }

Compiling the same file with clang-cl works fine.
I had to add -D_CRT_NO_VA_START_VALIDATION to avoid this error.

Update build instructions to use libvolk2

Hi Aang23,

LibVolk1 has been depreciated in some Linux distros, like Ubuntu 20.04. You can force an install by downloading the deb, but that seems to break other other apps, like gnuRadio.

Using libvolk2-dev to build SatDump seems to work fine and doesn't cause issues with the rest of the system.

Please update the build instructions to either specify the libvolk2-dev package, or add a note that libvolk2-dev can be installed if libvolk1-dev isn't available.

Thank you,
Errol

event_bus.hpp:8:10 fatal error

I'm getting this error, do you know what could be?

[ 18%] Building CXX object src-core/CMakeFiles/satdump_core.dir/common/widgets/fft_plot.cpp.o
In file included from /Users/benji/satdump/src-core/common/widgets/constellation.cpp:3:
In file included from /Users/benji/satdump/src-core/./module.h:13:
In file included from /Users/benji/satdump/src-core/./plugin.h:6:
/Users/benji/satdump/src-core/./libs/eventbus/event_bus.hpp:8:10: fatal error: 
      'any' file not found
#include <any>
         ^~~~~
1 error generated.
make[2]: *** [src-core/CMakeFiles/satdump_core.dir/common/widgets/constellation.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
In file included from /Users/benji/satdump/src-core/common/map/map_drawer.cpp:2:
In file included from /Users/benji/satdump/src-core/common/map/map_drawer.h:5:
/Users/benji/satdump/src-core/./CImg.h:48553:36: warning: passing an object of
      reference type to 'va_start' has undefined behavior [-Wvarargs]
      std::va_list ap; va_start(ap,font);
                                   ^
/Users/benji/satdump/src-core/common/map/map_drawer.cpp:178:35: note: in
      instantiation of function template specialization
      'cimg_library::CImg<unsigned char>::draw_text<unsigned char, unsigned
      char>' requested here
                        map_image.draw_text(cc.first, cc.second + 30 * r...
                                  ^
/Users/benji/satdump/src-core/./CImg.h:48550:64: note: parameter of type 'const
      CImgList<unsigned char> &' is declared here
                       const float opacity, const CImgList<t>& font, ...) {
                                                               ^
/Users/benji/satdump/src-core/./CImg.h:48553:36: warning: passing an object of
      reference type to 'va_start' has undefined behavior [-Wvarargs]
      std::va_list ap; va_start(ap,font);
                                   ^
/Users/benji/satdump/src-core/common/map/map_drawer.cpp:178:35: note: in
      instantiation of function template specialization
      'cimg_library::CImg<unsigned short>::draw_text<unsigned short, unsigned
      char>' requested here
                        map_image.draw_text(cc.first, cc.second + 30 * r...
                                  ^
/Users/benji/satdump/src-core/./CImg.h:48550:64: note: parameter of type 'const
      CImgList<unsigned char> &' is declared here
                       const float opacity, const CImgList<t>& font, ...) {
                                                               ^
2 warnings generated.
make[1]: *** [src-core/CMakeFiles/satdump_core.dir/all] Error 2
make: *** [all] Error 2

imac 10.12.6 sierra

Remember last used input / output directories

Currently every time we run SatDump we need to select the input file and output directory. The file / folder selection dialogue default to the current working directory, and when running SatDump from the build folder this is almost certainly incorrect. It would be nice if it's possible to make the input / output selection dialogues default to the last used directories.

fftw

on satdump page:

# macOS ONLY: build and install libfftw3
# if you install fftw via brew, cmake won't be able to find it
wget http://www.fftw.org/fftw-3.3.9.tar.gz
tar xf fftw-3.3.9.tar.gz
rm fftw-3.3.9.tar.gz
cd fftw-3.3.9
mkdir build && cd build
cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTS=false -DENABLE_FLOAT=true ..
make
sudo make install
cd ../..
rm -rf fftw-3.3.9

question:
how to then create symlink of /Users/usrname/fftw-3.3.9/build/libfftw3f.3.dylib
to /usr/local/opt/fftw/lib/libfftw3f.3.dylib

???

LRPT "NOSYNC" in terminal even if images are decoded; decoding slower than before

Basically, SatDump always says NOSYNC in the terminal when decoding an LRPT baseband file, even though the constellation diagram looks very clean and images are in fact produced at the end.

Below is an example of this behaviour. Even with BER below 1%, the program still says NOSYNC.

[04/12/21 - 01:07:39] (I) Starting processing pipeline meteor_m2_lrpt...
[04/12/21 - 01:07:39] (D) Input file (baseband) : /mnt/Data/Recordings/IQ/lrpt-trimmed.wav
[04/12/21 - 01:07:39] (D) Output file (products) : /mnt/Data/Pictures/Satellite
[04/12/21 - 01:07:39] (D) Starting meteor_m2_lrpt
[04/12/21 - 01:07:39] (W) Data is already at level baseband, skipping
[04/12/21 - 01:07:39] (W) Processing data to level soft
[04/12/21 - 01:07:39] (D) Parameters :
[04/12/21 - 01:07:39] (D)    - agc_rate : 0.00001
[04/12/21 - 01:07:39] (D)    - baseband_format : i16
[04/12/21 - 01:07:39] (D)    - buffer_size : 8192
[04/12/21 - 01:07:39] (D)    - costas_bw : 0.004
[04/12/21 - 01:07:39] (D)    - dc_block : 0
[04/12/21 - 01:07:39] (D)    - iq_swap : 0
[04/12/21 - 01:07:39] (D)    - rrc_alpha : 0.6
[04/12/21 - 01:07:39] (D)    - rrc_taps : 361
[04/12/21 - 01:07:39] (D)    - samplerate : 256000
[04/12/21 - 01:07:39] (D)    - symbolrate : 72000
[04/12/21 - 01:07:39] (I) Using input baseband /mnt/Data/Recordings/IQ/lrpt-trimmed.wav
[04/12/21 - 01:07:39] (I) Demodulating to /mnt/Data/Pictures/Satellite/meteor_m2_lrpt.soft
[04/12/21 - 01:07:39] (I) Buffer size : 8192
[04/12/21 - 01:07:40] (I) Progress 0.000000%
[04/12/21 - 01:07:50] (I) Progress 21.600000%
[04/12/21 - 01:08:00] (I) Progress 45.200001%
[04/12/21 - 01:08:10] (I) Progress 59.099998%
[04/12/21 - 01:08:20] (I) Progress 71.699997%
[04/12/21 - 01:08:30] (I) Progress 83.900002%
[04/12/21 - 01:08:40] (I) Progress 95.099998%
[04/12/21 - 01:08:44] (I) Demodulation finished
[04/12/21 - 01:08:44] (W) Processing data to level cadu
[04/12/21 - 01:08:44] (D) Parameters :
[04/12/21 - 01:08:44] (D)    - baseband_format : i16
[04/12/21 - 01:08:44] (D)    - dc_block : 0
[04/12/21 - 01:08:44] (D)    - diff_decode : 0
[04/12/21 - 01:08:44] (D)    - iq_swap : 0
[04/12/21 - 01:08:44] (D)    - samplerate : 256000
[04/12/21 - 01:08:44] (I) Using input symbols /mnt/Data/Pictures/Satellite/meteor_m2_lrpt.soft
[04/12/21 - 01:08:44] (I) Decoding to /mnt/Data/Pictures/Satellite/meteor_m2_lrpt.cadu
[04/12/21 - 01:08:50] (I) Progress 1.200000%, Viterbi BER : 26.733398%, Lock : NOSYNC
[04/12/21 - 01:09:00] (I) Progress 3.800000%, Viterbi BER : 26.904297%, Lock : NOSYNC
[04/12/21 - 01:09:10] (I) Progress 7.400000%, Viterbi BER : 28.088379%, Lock : NOSYNC
[04/12/21 - 01:09:20] (I) Progress 10.200000%, Viterbi BER : 6.542969%, Lock : NOSYNC
[04/12/21 - 01:09:30] (I) Progress 14.000000%, Viterbi BER : 3.198242%, Lock : NOSYNC
[04/12/21 - 01:09:40] (I) Progress 18.700001%, Viterbi BER : 0.646973%, Lock : NOSYNC
[04/12/21 - 01:09:50] (I) Progress 23.400000%, Viterbi BER : 0.170898%, Lock : NOSYNC
[04/12/21 - 01:10:00] (I) Progress 28.100000%, Viterbi BER : 0.219727%, Lock : NOSYNC
[04/12/21 - 01:10:10] (I) Progress 32.599998%, Viterbi BER : 0.195312%, Lock : NOSYNC
[04/12/21 - 01:10:20] (I) Progress 37.000000%, Viterbi BER : 0.207520%, Lock : NOSYNC
...

It seems this problem is quite new but I'll need to find the exact commit after which it appeared. Related to this, it seems LRPT decoding is a lot slower now than before. Before the problem appeared, as soon as the decoder recognises the signal and BER drops the progress becomes a lot faster, and once the signal is lost it slows down again; now it's slow all the way through.

I can provide the baseband files I used, although I believe this behaviour is not specific to any particular recording.

Raspberry Pi install

Hello everyone can someone point me to the step by step installation guide for Raspberry Pi with SatDump GUI

Will the Mac OS install guide work on the Raspberry Pi. That's a lot of steps lol. Can someone make one or more install scripts that will that will do a full GUI install making it easier for those who don't know much about Linux wanted to try.

I have complied and built an easy setup disk image of Raspberry NOAA V2 for Raspberry Pi. And many many user have been using it because they don't have to do all of the compiling and install. I would like to do the same with SatDump so we can get other users. Compiling and building the various disk images gives everyone a change to try the different software available plus many are moving over to Linux. Raspberry Pi's are getting used more more these days as weather satellite stations. 

Thank you.

Crash when using Live Processing with Remote SpyServer

The program crashes when trying to connect to a remote spyserver on Live Processing mode. Same issue with GOES HRIT and NOAA HRPT. The remote server is on another device on the same local IP subnet. The spyserver app never received the connection request attempt from SatDump.

enable bias tee?

do I use:
SoapySDRUtil --probe="driver=airspy,biastee=true
before launching satdump live processing?
Or is there another way in satdump?
Thanks

QPSK demodulator not detecting signal

Hi Aang I am trying to use Live Decoding on Satdump for Meteor-M2 however I am unable to get good signal for the demodulator to start working. If I use SDR++ Meteor demodulator on the same machine it works just fine. In satdump, the demoduator only gets weak signal when satellite overhead.

Setup:
Airspy mini
QFH
Jetson Nano with Ubuntu 18.04

I try adjusting gain, enabling or disabling DC Lock, Adjusting the scale sliders, etc but I am unable to find success.

Best wishes

Issues with Android build (macOS)

Not sure if my dependencies are all setup correctly, but I'm having issues with the Android build on macOS.
I have the Android 11 SDK and NDK, installed through Android Studio 4.1.3.

If I run ./gradlew assembleDebug I get the following error:

Task 'assembleDebug' not found in root project 'android'.

And running ./gradlew assemble leads to:

BUILD SUCCESSFUL in 0s

Without anything being built.

live elektro L TLM fail

Hi, I have already the newest build for win with the live processing aparently working. Satdump is able to open my airspy but the elektro L TLM signal is non present. I can't decode anything and the signal stays on 0.0 Any idea how to configure the software to receive this?? All help is welcome! Thx

Segfault while decoding FY3B ERM

Hi,

I just encountered a segfault while decoding FY3B. This is the shell output:

[06/15/21 - 17:25:00] (I) Using input frames /Users/bud/Documents/private/sat/recordings/2021-06-15-17-04-f3b/fengyun3_ab_ahrpt_live.cadu
[06/15/21 - 17:25:00] (I) Decoding to /Users/bud/Documents/private/sat/recordings/2021-06-15-17-04-f3b/ERM
[06/15/21 - 17:25:00] (I) Demultiplexing and deframing...
[06/15/21 - 17:25:00] (I) Progress 0.000000%
[06/15/21 - 17:25:00] (I) VCID 12 Frames : 240
[06/15/21 - 17:25:00] (I) CCSDS Frames : 146
[06/15/21 - 17:25:00] (I) ERM Lines : 4
[06/15/21 - 17:25:00] (I) Writing images.... (Can take a while)
[06/15/21 - 17:25:00] (I) Channel 1...
[1] 43540 segmentation fault satdump-ui

FYI this was recorded with a Nooelec Smart v4 at 3 MSps so I didn't expect this to result in anything anyway.

CADUs are here:

fengyun3_ab_ahrpt_live.cadu.zip

Either way thanks for making this great software!

Crashes while compositing images for M2 LRPT

Hi,

I'm running into the following error while decoding an M2 LRPT baseband:

satdump(83751,0x10fb31e00) malloc: *** error for object 0x7ffd1800d000: pointer being freed was not allocated
satdump(83751,0x10fb31e00) malloc: *** set a breakpoint in malloc_error_break to debug
[1] 83751 abort ./satdump meteor_m2_lrpt baseband products ~/Documents/Privat/sat/images/tmp

Full log: satdump_output.txt

Command:
./satdump meteor_m2_lrpt baseband 2021-03-14-18-09-m2-225000.raw products m2 -samplerate 225000 -baseband_format f32

You can download the baseband here.
Perhaps the recording is just too bad?

Any Idea what's going on here? I'm running SatDump on macOS 11.2.

SatDump on M1 - Volk without M1 support - Cant finish installing

Im having the following issue installing SatDump.
I do all the steps, until the following>

cmake -DCMAKE_BUILD_TYPE=Release ..

I get>

xxx@xxxx build % cmake -DCMAKE_BUILD_TYPE=Release ..
-- Checking for module 'volk'
-- No package 'volk' found
CMake Error at /opt/local/share/cmake-3.21/Modules/FindPkgConfig.cmake:562 (message):
A required package was not found
Call Stack (most recent call first):
/opt/local/share/cmake-3.21/Modules/FindPkgConfig.cmake:784 (_pkg_check_modules_internal)
src-core/CMakeLists.txt:89 (pkg_check_modules)

Im using macOS Big Sur 11.6 running on MBPRo M1

As far as I can track, there is an issue of Volk supporting M1, im following this:
gnuradio/volk#428

Maybe there is any patch or workaround to get rid of this, anyway its useful as an issue/report for people installing SatDump on M1. Im here to help testing this :)

LRPT Locking issues (RS, Demod?) (M2 LRPT)

This is very repeatable and I have not been able to find a cause.

System is Ubuntu 18.04, SatDump v0.0.37, "Live processing" option for Meteor-M2 137 MHz LRPT, Airspy-R2 @ 2.5M Samplerate

When satdump-ui GUI interface is launched, all appears well. At AOS, the signal on the FFT grows & grows as elevation increases. Viterbi turns green & the 4-dot constellations look normal. However, no matter how strong the signal or how long you wait, Reed-Solomon will stay red & there is no decode.

rs-red

However, if you un-check "Finish processing" and click "Stop", the click "Start" to restart the live capture, Reed-Solomon immediately turns green & images decode & are processed normally.

rs-green

Any suggestions on how I might be able to stop using this work-around much appreciated!

MacOS build error

I'm getting this error during build:

Command:
make -j4

Error:

[ 34%] Building CXX object src-core/CMakeFiles/satdump_core.dir/init.cpp.o
/Users/benji/satdump/src-core/init.cpp:5:10: fatal error: 'filesystem' file not
      found
#include <filesystem>
         ^~~~~~~~~~~~
1 error generated.
make[2]: *** [src-core/CMakeFiles/satdump_core.dir/init.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[1]: *** [src-core/CMakeFiles/satdump_core.dir/all] Error 2
make: *** [all] Error 2

Please help?

Using:
MacOS 10.12.6 Sierra

Clang --version:
Apple LLVM version 9.0.0 (clang-900.0.39.2)
Target: x86_64-apple-darwin16.7.0

g++ --version:
Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1
Apple LLVM version 9.0.0 (clang-900.0.39.2)
Target: x86_64-apple-darwin16.7.0

Xcode version:
/usr/bin/xcodebuild -version
Xcode 9.2

6M sample rate with an Airspy produces no FFT data in live processing LRPT

Hi! I've recently got an Airspy Mini and tried to receive LRPT with it. I found that if I set the sample rate to 6000000 in live processing LRPT, after pressing Start all graphs are static and no signal / data seems to be coming through from the Airspy. Admittedly 6M is a bit too high for a signal less than 200kHz wide and the more sensible 3M works fine, but still this is a bug that needs to be looked at (at some point).

Screenshot from 2021-08-10 10-50-52

Screenshot from 2021-08-10 10-51-08

Sorry to ask here

Guys this is the same master git for AltiWX but what no one is replying to that git why is there no info or support for AltiWX we need more info and support for the full Altillimity git master all branches or subs should be attended to. What's going on.

std::bad_function_call thrown when processing NOAA DSB to products

Description

When using the command-line version, the demodulation seems to work fine but as soon as SatDump starts "processing data to level products", the exception std::bad_function_call is thrown and the program crashes. Backtrace below:

#0  0x00007ffff727cef5 in raise () from /usr/lib/libc.so.6
#1  0x00007ffff7266862 in abort () from /usr/lib/libc.so.6
#2  0x00007ffff74bd86a in __gnu_cxx::__verbose_terminate_handler () at /build/gcc/src/gcc/libstdc++-v3/libsupc++/vterminate.cc:95
#3  0x00007ffff74c9d3a in __cxxabiv1::__terminate (handler=<optimized out>) at /build/gcc/src/gcc/libstdc++-v3/libsupc++/eh_terminate.cc:48
#4  0x00007ffff74c9da7 in std::terminate () at /build/gcc/src/gcc/libstdc++-v3/libsupc++/eh_terminate.cc:58
#5  0x00007ffff74ca04e in __cxxabiv1::__cxa_throw (obj=<optimized out>, tinfo=tinfo@entry=0x7ffff75f73b0 <typeinfo for std::bad_function_call>, 
    dest=dest@entry=0x7ffff74f44c0 <std::bad_function_call::~bad_function_call()>) at /build/gcc/src/gcc/libstdc++-v3/libsupc++/eh_throw.cc:95
#6  0x00007ffff74c07ac in std::__throw_bad_function_call () at /build/gcc/src/gcc/libstdc++-v3/src/c++11/functional.cc:34
#7  0x00007ffff7d4443f in std::function<std::shared_ptr<ProcessingModule> (std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >)>::operator()(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >) const (this=0x5555556f14c0, __args=std::map with 2 elements = {...}, __args=std::map with 2 elements = {...}, __args=std::map with 2 elements = {...})
    at /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/10.2.0/../../../../include/c++/10.2.0/bits/std_function.h:621
#8  0x00007ffff7d42ec8 in Pipeline::run (this=0x5555556f3e60, input_file="/mnt/Data/Recordings/Audio/gqrx_20210326_113615_137350000_w8.wav", output_directory=".", 
    parameters=std::map with 2 elements = {...}, input_level="baseband", ui=false, 
    uiCallList=std::shared_ptr<std::vector<std::shared_ptr<ProcessingModule>, std::allocator<std::shared_ptr<ProcessingModule> > >> (empty) = {...}, 
    uiCallListMutex=std::shared_ptr<std::mutex> (empty) = {...}) at /home/shuyuan/Build/SatDump/src-core/pipeline.cpp:52
#9  0x000055555561b889 in main (argc=10, argv=0x7fffffffe1d8) at /home/shuyuan/Build/SatDump/src-cli/main.cpp:84

When using the GUI version, a blank screen is shown after demodulation finishes and nothing happens.

Build info

  • gcc 10.2.0
  • libdsp built from source, commit 783dc00
  • libcorrect built from source, commit f5a28c7
  • volk 2.4
  • fftw 3.3.9

Sample source file

The following recording produced this error: https://drive.google.com/file/d/1o_NNQ6kTTxf93WYHNhh7QF4KC-t0yFd1/view?usp=sharing

Android samplerate problem

I want to use 6000000HZ samplerate for fy-2h decode on android but when I set the samplerate to 6000000HZ the output was like this even though set it to 10000000HZ. the BPSK demod constellation is slow.use a lower samplerate like 2500000HZ is working but the SNR is reduced.
FY-2x_3_20211109T115509Z

Decimation?

I continue to enjoy SatDump greatly!

Is there any possibility of adding 'decimation' to the "Live processing" screen?

It would be wonderful to be able to narrow the passband closer to the expected signal's bandwidth. A high sample rate, then decimated, can often produce better SNR also.

Thank you!

-Scott, K4KDR

AirSpy-R2 10M ok, 2.5M error

After downloading the updated v0.0.38 code, I can now run 'Live Processing' with my Airspy-R2 at the 10M sample rate setting, but if I enter 2.5M, I get the following:


[10/30/21 - 00:06:23] (E) No settings file found! Using defaults.
[10/30/21 - 00:06:40] (D) Starting livedemod...
[10/30/21 - 00:06:42] (D) Opening file dialog
[10/30/21 - 00:06:50] (D) Dir /home/k4kdr/SatDump-0.0.38/OUTPUT
[10/30/21 - 00:06:51] (D) Starting livedemod...
[10/30/21 - 00:06:51] (I) meteor_m2_lrpt
[10/30/21 - 00:06:51] (I) Starting live pipeline METEOR M2 LRPT
[10/30/21 - 00:06:51] (I) Module qpsk_demod
[10/30/21 - 00:06:51] (D) Parameters :
[10/30/21 - 00:06:51] (D)    - agc_rate : 0.1
[10/30/21 - 00:06:51] (D)    - baseband_format : f32
[10/30/21 - 00:06:51] (D)    - buffer_size : 8192
[10/30/21 - 00:06:51] (D)    - costas_bw : 0.004
[10/30/21 - 00:06:51] (D)    - dc_block : 0
[10/30/21 - 00:06:51] (D)    - rrc_alpha : 0.6
[10/30/21 - 00:06:51] (D)    - rrc_taps : 361
[10/30/21 - 00:06:51] (D)    - samplerate : 2500000
[10/30/21 - 00:06:51] (D)    - symbolrate : 72000
[10/30/21 - 00:06:51] (I) Module meteor_lrpt_decoder
[10/30/21 - 00:06:51] (D) Parameters :
[10/30/21 - 00:06:51] (D)    - baseband_format : f32
[10/30/21 - 00:06:51] (D)    - dc_block : 0
[10/30/21 - 00:06:51] (D)    - diff_decode : 0
[10/30/21 - 00:06:51] (D)    - samplerate : 2500000
[10/30/21 - 00:06:51] (T) Volk has the spiral kernel, using it!
[10/30/21 - 00:06:51] (D) Starting SDR...
[10/30/21 - 00:06:51] (D) Device parameters airspy:
[10/30/21 - 00:06:51] (I) Opened Airspy device!
[10/30/21 - 00:06:51] (I) Samplerate 2500000.000000
[10/30/21 - 00:06:51] (I) Frequency 137100000.000000
[10/30/21 - 00:06:51] (D) Input SPS : 34.722221
[10/30/21 - 00:06:51] (D) Resample : 1
[10/30/21 - 00:06:51] (D) Samplerate : 210000.000000
[10/30/21 - 00:06:51] (D) Dec factor : 11.904762
[10/30/21 - 00:06:51] (D) Final SPS : 2.916667
corrupted size vs. prev_size
Aborted (core dumped)

... as you can see at the top of that dump, I deleted my settings.json file to make sure that nothing saved in there was causing this issue.

FYI, the image files that resulted from the 'Live' 10M capture appeared normal, but it would be great to be able to run with the 2.5M sample rate to have a more useful FFT display and to reduce the system load on the computer.

Many thanks! -Scott, K4KDR

No error is produced when input file does not exist

Description

If the command-line version of SatDump is given an input file path that does not exist, instead of giving an error, the program keeps printing (I) Progress 100.000000%, Deframer : NOSYNC, Frames : 0 with seemingly no end.

The problem appears on both Release and Debug builds.

Build info

  • SatDump built from source, commit b8ec3e3
  • gcc 10.2.0
  • libdsp built from source, commit 783dc00
  • libcorrect built from source, commit f5a28c7
  • volk 2.4
  • fftw 3.3.9

GOES_GVAR image file naming bug?

There might be a bug in the file names used for GOES.

Satdump downloads the images, then it sits at 100% waiting for the next images to begin. When the new images set starts, SatDump starts saving the images, but it uses the file name it just got, and not the file name it got when the image started.

For instance. If the image starts at 8:15 and ends at 8:40, then SatDump waits until the next image starts at 8:45 before saving the images, but then it saves the images as T0845, instead of T0815.

From log:

[12/04/21 - 19:15:55] (I) Image start detected!
[12/04/21 - 19:15:55] (D) Saving Async...
[12/04/21 - 19:15:58] (I) Full disk finished, saving at GOES-13/2021-12-04_19-15...

Or does it use the "save time" as the image time, even though the save time is 30 minutes after the image was taken by the satellite?

Hope this makes sense.

Gain bug for RTL-SDR

Hi Aang23,

There seems to be a bug with RTL-SDR for gain adjustment. I found the bug while using RTL-TCP, but I suspect it exists when using a local device too.

When you open a live decode screen, the gain is automatically set according to the last slider position, ie 49, but it sets the gain to "49" instead of the "490" that RTL expects, so gain is lower than expected. If you then drag the gain slider down and back to 49 then it sends 490 to RTL SDR.

Example of RTL_TCP log when connecting:

set freq 1692999936
Allocating 15 zero-copy buffers
set sample rate 1000000
Exact sample rate is: 1000000.026491 Hz
set freq 1692999936
set gain mode 1
set gain 49

And when you adjust gain down and back to 49:

set gain 240
set gain 250
set gain 260
set gain 270
set gain 300
set gain 380
set gain 480
set gain 490

The issue seems to be purely when loading the value from storage when the screen opens, it doesn't multiply by 10 before sending to RTL

airspyhf errors on 'make' stage v0.0.37

The 'make' is failing for me w/ v0.0.37; I'm sure it's an error or omission on my part, but I'm not finding what that is.

I do not own an AirSpy-HF, but "think" I have all the listed dependencies installed.

Long list of errors are:

[ 93%] Building CXX object libsdr/CMakeFiles/sdr.dir/sdr/hackrf.cpp.o
/home/k4kdr/SatDump-0.0.37/libsdr/sdr/airspyhf.cpp: In static member function ‘static int SDRAirspyHF::_rx_callback(airspyhf_transfer_t*)’:
/home/k4kdr/SatDump-0.0.37/libsdr/sdr/airspyhf.cpp:11:92: warning: ‘void* memcpy(void*, const void*, size_t)’ copying an object of non-trivial type ‘struct std::complex<float>’ from an array of ‘struct airspyhf_complex_float_t’ [-Wclass-memaccess]
     std::memcpy(stream->writeBuf, t->samples, t->sample_count * sizeof(std::complex<float>));
                                                                                            ^
In file included from /usr/local/include/volk/volk_complex.h:22,
                 from /usr/local/include/volk/volk_typedefs.h:30,
                 from /usr/local/include/volk/volk.h:29,
                 from /home/k4kdr/SatDump-0.0.37/libsdr/../src-core/common/dsp/buffer.h:4,
                 from /home/k4kdr/SatDump-0.0.37/libsdr/sdr/sdr.h:3,
                 from /home/k4kdr/SatDump-0.0.37/libsdr/sdr/airspyhf.h:4,
                 from /home/k4kdr/SatDump-0.0.37/libsdr/sdr/airspyhf.cpp:1:
/usr/include/c++/8/complex:1072:12: note: ‘struct std::complex<float>’ declared here
     struct complex<float>
            ^~~~~~~~~~~~~~
/home/k4kdr/SatDump-0.0.37/libsdr/sdr/airspyhf.cpp: In member function ‘virtual void SDRAirspyHF::start()’:
/home/k4kdr/SatDump-0.0.37/libsdr/sdr/airspyhf.cpp:67:5: error: ‘airspyhf_set_hf_agc’ was not declared in this scope
     airspyhf_set_hf_agc(dev, agc_mode != 0);
     ^~~~~~~~~~~~~~~~~~~
/home/k4kdr/SatDump-0.0.37/libsdr/sdr/airspyhf.cpp:67:5: note: suggested alternative: ‘airspyhf_set_freq’
     airspyhf_set_hf_agc(dev, agc_mode != 0);
     ^~~~~~~~~~~~~~~~~~~
     airspyhf_set_freq
/home/k4kdr/SatDump-0.0.37/libsdr/sdr/airspyhf.cpp:68:5: error: ‘airspyhf_set_hf_agc_threshold’ was not declared in this scope
     airspyhf_set_hf_agc_threshold(dev, agc_mode - 1);
     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/k4kdr/SatDump-0.0.37/libsdr/sdr/airspyhf.cpp:68:5: note: suggested alternative: ‘airspyhf_set_calibration’
     airspyhf_set_hf_agc_threshold(dev, agc_mode - 1);
     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     airspyhf_set_calibration
/home/k4kdr/SatDump-0.0.37/libsdr/sdr/airspyhf.cpp:70:5: error: ‘airspyhf_set_hf_att’ was not declared in this scope
     airspyhf_set_hf_att(dev, attenuation / 6.0f);
     ^~~~~~~~~~~~~~~~~~~
/home/k4kdr/SatDump-0.0.37/libsdr/sdr/airspyhf.cpp:70:5: note: suggested alternative: ‘airspyhf_set_freq’
     airspyhf_set_hf_att(dev, attenuation / 6.0f);
     ^~~~~~~~~~~~~~~~~~~
     airspyhf_set_freq
/home/k4kdr/SatDump-0.0.37/libsdr/sdr/airspyhf.cpp:71:5: error: ‘airspyhf_set_hf_lna’ was not declared in this scope
     airspyhf_set_hf_lna(dev, hf_lna);
     ^~~~~~~~~~~~~~~~~~~
/home/k4kdr/SatDump-0.0.37/libsdr/sdr/airspyhf.cpp:71:5: note: suggested alternative: ‘airspyhf_set_freq’
     airspyhf_set_hf_lna(dev, hf_lna);
     ^~~~~~~~~~~~~~~~~~~
     airspyhf_set_freq
/home/k4kdr/SatDump-0.0.37/libsdr/sdr/airspyhf.cpp: In member function ‘virtual void SDRAirspyHF::drawUI()’:
/home/k4kdr/SatDump-0.0.37/libsdr/sdr/airspyhf.cpp:104:9: error: ‘airspyhf_set_hf_att’ was not declared in this scope
         airspyhf_set_hf_att(dev, attenuation / 6.0f);
         ^~~~~~~~~~~~~~~~~~~
/home/k4kdr/SatDump-0.0.37/libsdr/sdr/airspyhf.cpp:104:9: note: suggested alternative: ‘airspyhf_set_freq’
         airspyhf_set_hf_att(dev, attenuation / 6.0f);
         ^~~~~~~~~~~~~~~~~~~
         airspyhf_set_freq
/home/k4kdr/SatDump-0.0.37/libsdr/sdr/airspyhf.cpp:111:9: error: ‘airspyhf_set_hf_agc’ was not declared in this scope
         airspyhf_set_hf_agc(dev, agc_mode != 0);
         ^~~~~~~~~~~~~~~~~~~
/home/k4kdr/SatDump-0.0.37/libsdr/sdr/airspyhf.cpp:111:9: note: suggested alternative: ‘airspyhf_set_freq’
         airspyhf_set_hf_agc(dev, agc_mode != 0);
         ^~~~~~~~~~~~~~~~~~~
         airspyhf_set_freq
/home/k4kdr/SatDump-0.0.37/libsdr/sdr/airspyhf.cpp:112:9: error: ‘airspyhf_set_hf_agc_threshold’ was not declared in this scope
         airspyhf_set_hf_agc_threshold(dev, agc_mode - 1);
         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/k4kdr/SatDump-0.0.37/libsdr/sdr/airspyhf.cpp:112:9: note: suggested alternative: ‘airspyhf_set_calibration’
         airspyhf_set_hf_agc_threshold(dev, agc_mode - 1);
         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         airspyhf_set_calibration
/home/k4kdr/SatDump-0.0.37/libsdr/sdr/airspyhf.cpp:117:9: error: ‘airspyhf_set_hf_lna’ was not declared in this scope
         airspyhf_set_hf_lna(dev, hf_lna);
         ^~~~~~~~~~~~~~~~~~~
/home/k4kdr/SatDump-0.0.37/libsdr/sdr/airspyhf.cpp:117:9: note: suggested alternative: ‘airspyhf_set_freq’
         airspyhf_set_hf_lna(dev, hf_lna);
         ^~~~~~~~~~~~~~~~~~~
         airspyhf_set_freq
libsdr/CMakeFiles/sdr.dir/build.make:89: recipe for target 'libsdr/CMakeFiles/sdr.dir/sdr/airspyhf.cpp.o' failed
make[2]: *** [libsdr/CMakeFiles/sdr.dir/sdr/airspyhf.cpp.o] Error 1

THANK YOU!

32-bit support?

I'd like to see 32-bit (x86) support in SatDump programs. Since most of my external packages are for 32-bit.
(I guess that's the situation for many developers too).

I've built SatDump for x86 on Windows with only this patch:

--- a/src-core/libs/aec/gcc_builtins.c 2021-10-25 14:22:20
+++ b/src-core/libs/aec/gcc_builtins.c 2021-11-19 19:53:19
@@ -1,8 +1,9 @@
 /*
     MSVC lacks some builtin functions GCC has
-    From https://gist.github.com/pps83/3210a2f980fd02bb2ba2e5a1fc4a2ef0
+    Edited from https://gist.github.com/pps83/3210a2f980fd02bb2ba2e5a1fc4a2ef0
+    Added support for MSVC-x86 ('_WIN64' is not defined).
 */
-#ifdef _MSC_VER
+#if defined(_MSC_VER) && !defined(__clang__)
 #include <intrin.h>
 #include <stdint.h>

@@ -14,7 +15,15 @@

 int __builtin_ctzll(unsigned long long x) {
     unsigned long ret;
+
+#ifdef _WIN64
     _BitScanForward64(&ret, x);
+#else
+    if (_BitScanForward(&ret, (uint32_t)x) == 0) { // low 32 bits are all zero.
+      _BitScanForward(&ret, (uint32_t)(x >> 32));
+      ret += 32;
+    }
+#endif
     return (int)ret;
 }

@@ -23,17 +32,21 @@
 }

 int __builtin_clz(unsigned x) {
-    //unsigned long ret;
-    //_BitScanReverse(&ret, x);
-    //return (int)(31 ^ ret);
     return (int)__lzcnt(x);
 }

 int __builtin_clzll(unsigned long long x) {
-    //unsigned long ret;
-    //_BitScanReverse64(&ret, x);
-    //return (int)(63 ^ ret);
+#ifdef _WIN64
     return (int)__lzcnt64(x);
+#else
+    unsigned long ret;
+    // Scan the high 32 bits.
+    if (_BitScanReverse(&ret, (uint32_t)(x >> 32)))
+       return (63 ^ (ret + 32));
+    // Scan the low 32 bits.
+    _BitScanReverse(&ret, (uint32_t)x);
+    return (63 ^ (int)ret);
+#endif
 }

 int __builtin_clzl(unsigned long x) {
@@ -49,4 +62,5 @@
     return __builtin_clzll(x);
 }
 #endif
-#endif
\ No newline at end of file
+#endif // _MSC_VER) && !__clang__

Added:

  • clean-out old code.
  • clang-cl.exe (__clang__) defines _MSC_VER too. But it already has these __builtin_x() functons.

But adapting CMakeLists.txt , I've no idea how to adapt for x86 (I use a home-brew GNU Makefile).

So how about it?

v0.0.38 Sample Rate ?

Thank you SO much for the continued work on this seriously fun app!

My first attempt to run 'Live Processing' with my usual Airspy-R2 at the 2.5M sample rate setting (that I always use) resulted in a "Segmentation fault (core dumped)" error.

I tried the default in 'satdump-ui' and the app ran fine. Taking a closer look, I noticed that the default was one numeral short... where you would expect '10000000' (for the 10M sample rate option), there were only 6 zeros. So, I tried to run my usual 2.5M sample rate setting by typing in '250000' and that also ran fine.

Am I misunderstanding the correct setting, or are we one digit short in that field? Here is a config that works CORRECTLY:

satdump-038-airspy

Thanks again!

-Scott, K4KDR

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.