{"id":15031102,"url":"https://github.com/satdump/satdump","last_synced_at":"2025-04-12T12:39:42.195Z","repository":{"id":38382482,"uuid":"338785731","full_name":"SatDump/SatDump","owner":"SatDump","description":"A generic satellite data processing software.","archived":false,"fork":false,"pushed_at":"2025-04-10T09:08:25.000Z","size":151953,"stargazers_count":1544,"open_issues_count":132,"forks_count":176,"subscribers_count":33,"default_branch":"master","last_synced_at":"2025-04-10T10:43:23.037Z","etag":null,"topics":["baseband","ccsds","digital-signal-processing","satellite","sdr","simd","volk"],"latest_commit_sha":null,"homepage":"https://www.satdump.org","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/SatDump.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-02-14T11:05:13.000Z","updated_at":"2025-04-08T20:50:19.000Z","dependencies_parsed_at":"2023-09-22T21:40:46.340Z","dependency_job_id":"7c58ed0b-931f-4a41-bf30-528ccc82afe3","html_url":"https://github.com/SatDump/SatDump","commit_stats":{"total_commits":4747,"total_committers":56,"mean_commits":84.76785714285714,"dds":0.3562249842005477,"last_synced_commit":"323d2c0b347fc4f1f4de6cb12d92d13468ffefad"},"previous_names":[],"tags_count":56,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SatDump%2FSatDump","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SatDump%2FSatDump/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SatDump%2FSatDump/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SatDump%2FSatDump/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SatDump","download_url":"https://codeload.github.com/SatDump/SatDump/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248568224,"owners_count":21125988,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["baseband","ccsds","digital-signal-processing","satellite","sdr","simd","volk"],"created_at":"2024-09-24T20:14:54.246Z","updated_at":"2025-04-12T12:39:42.173Z","avatar_url":"https://github.com/SatDump.png","language":"C++","readme":"# SatDump\n\n\u003cimg src='/icon.png' width='500px' /\u003e\n\nA generic satellite data processing software.\n*Thanks Crosswalkersam for the icon!*\n\nThere now also is a [Matrix](https://matrix.to/#/#satdump:altillimity.com) room if you want to chat! Otherwise, a [Discord](https://discord.gg/ctt3M8pRYG) bridge to the Matrix is also available.\n\n# Introduction\n\n*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](https://docs.satdump.org).* \n\n## GUI Version\n\n### Offline processing (recorded data)\nQuick-Start :\n- Choose the appropriate pipeline for what you want to process\n- Select the input file (baseband, frames, soft symbols...)\n- Set the appropriate input level (what your file is)\n- Check settings shown below are right (such as samplerate)\n- Press \"Start\"!\n\n![Img](gui_example.png)\n\n![Img](gui_example2.png)\n*SatDump demodulating a DVB-S2 Baseband*\n\n### Live processing or recording (directly from your SDR)\n\nQuick-Start :\n- Go in the \"Recorder\" Tab\n- Select and start your SDR Device\n- Choose a pipeline\n- Start it, and done!\n- For recording, use the recording tab instead. Both processing and recording can be used at once.\n\n![Img](gui_recording.png)\n\n## CLI Version\n\n![Img](cli_example.png)\n\n### Offline processing\n\n```\nUsage : satdump [pipeline_id] [input_level] [input_file] [output_file_or_directory] [additional options as required]\nExtra options (examples. Any parameter used in modules can be used here) :\n  --samplerate [baseband_samplerate] --baseband_format [cf32/cs32/cs16/cs8/cu8] --dc_block --iq_swap\nSample command :\nsatdump metop_ahrpt baseband /home/user/metop_baseband.cs16 metop_output_directory --samplerate 6e6 --baseband_format cs16\n```\n\nYou can find a list of Satellite pipelines and their parameters [Here](https://docs.satdump.org/pipelines.html).\n\n### Live processing\n\n```\nUsage : satdump live [pipeline_id] [output_file_or_directory] [additional options as required]\nExtra options (examples. Any parameter used in modules or sources can be used here) :\n  --samplerate [baseband_samplerate] --baseband_format [cf32/cs32/cs16/cs8/w8] --dc_block --iq_swap\n  --source [airspy/rtlsdr/etc] --gain 20 --bias\nAs well as --timeout in seconds\nSample command :\nsatdump live metop_ahrpt metop_output_directory --source airspy --samplerate 6e6 --frequency 1701.3e6 --general_gain 18 --bias --timeout 780\n```\n\nYou can find a list of all SDR Options [Here](https://docs.satdump.org/sdr_options.html). Run `satdump sdr_probe` to get a list of available SDRs and their IDs.\n\n### Recording\n\n```\nUsage : satdump record [output_baseband (without extension!)] [additional options as required]\nExtra options (examples. Any parameter used in sources can be used here) :\n  --samplerate [baseband_samplerate] --baseband_format [cf32/cs32/cs16/cs8/cu8/w16] --dc_block --iq_swap\n  --source [airspy/rtlsdr/etc] --gain 20 --bias\nAs well as --timeout in seconds\nSample command :\nsatdump record baseband_name --source airspy --samplerate 6e6 --frequency 1701.3e6 --general_gain 18 --bias --timeout 780 --baseband_format cf32\n```\n\n# Building / Installing\n\n### Windows\nThe fastest way to get started is to head over to the [Releases](https://github.com/altillimity/SatDump/releases) page, where you can download SatDump's installer or portable app - no compilation necessary.\n\nOur 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](https://support.microsoft.com/en-us/topic/the-latest-supported-visual-c-downloads-2647da03-1eea-4433-9aff-95f26a218cc0).   Once downloaded, run either satdump-ui.exe or satdump.exe (CLI) to get started!\n\nFor compilation information, see the dedicated documentation [here](https://docs.satdump.org/build_windows.html). *Note : Mingw builds are NOT supported, VOLK will not work.*\n\n### macOS\nDependency-free macOS builds are provided on the [releases page](https://github.com/altillimity/SatDump/releases) (Thanks to JVital2013, the builds are also signed!).\n\nGeneral build instructions (Brew and XCode command line tools required)\n\n```bash\n# Install build tools\nbrew install cmake dylibbundler pkg-config libtool autoconf automake meson\n\n# Clone SatDump\ngit clone https://github.com/SatDump/SatDump.git \u0026\u0026 cd SatDump\n\n# Build dependencies\n./macOS/Configure-vcpkg.sh\n\n# Finally, build.\n# If you do not want to build the GUI Version, add -DBUILD_GUI=OFF to the command\n# If you want to disable some SDRs, you can add -DPLUGIN_HACKRF_SDR_SUPPORT=OFF or similar\nmkdir build \u0026\u0026 cd build\ncmake -DCMAKE_TOOLCHAIN_FILE=../vcpkg/scripts/buildsystems/vcpkg.cmake -DCMAKE_BUILD_TYPE=Release -DVCPKG_TARGET_TRIPLET=osx-satdump ..\nmake -j$(sysctl -n hw.logicalcpu)\n\n# To run without bundling\nln -s ../pipelines .        # Symlink pipelines so it can run\nln -s ../resources .        # Symlink resources so it can run\nln -s ../satdump_cfg.json . # Symlink settings so it can run\n./satdump-ui\n\n# Make an app bundle (to add to your /Applications folder). Saves to build/MacApp, and\n# a .dmg is created as well. 'make install' is not supported.\n../macOS/bundle.sh\n```\n\n### Linux\n\nOn Linux, building from source is recommended, but builds are provided for x64-based Ubuntu distributions. Here are some build instructions for common distros.\n\n---\n\n\u003cdetails\u003e\n\n\u003csummary\u003eInstall Dependencies - Debian, Ubuntu, and other Debian-based distros\u003c/summary\u003e\n\n```bash\nsudo apt install git build-essential cmake g++ pkgconf libfftw3-dev libpng-dev \\\n                 libtiff-dev libjemalloc-dev libcurl4-openssl-dev\nsudo apt install libvolk-dev                                                      # If this package is not found, use libvolk2-dev or libvolk1-dev\nsudo apt install libnng-dev                                                       # If this package is not found, follow build instructions below for NNG\n\n# (Optional)\nsudo apt install libglfw3-dev zenity                                              # Only if you want to build the GUI Version\nsudo apt install portaudio19-dev                                                  # Only if you want audio output\nsudo apt install libzstd-dev                                                      # Only if you want to build with ZIQ Recording compression\nsudo apt install libhdf5-dev                                                      # Only if you want official product support (ex, EUMETSAT)\nsudo apt install librtlsdr-dev libhackrf-dev libairspy-dev libairspyhf-dev        # All libraries required for live processing\nsudo apt install libad9361-dev libiio-dev                                         # For ADALM-Pluto, PlutoPlus, AntSDR and other SDRs based on Analog AD9361\nsudo apt install libbladerf-dev                                                   # For BladeRF\nsudo apt install libomp-dev                                                       # Shouldn't be required in general, but in case you have errors with OMP\nsudo apt install ocl-icd-opencl-dev                                               # Optional, but recommended as it drastically increases speed of some operations. Installs OpenCL.\nsudo apt install intel-opencl-icd                                                 # Enables OpenCL for Intel Integrated Graphics\nsudo apt install mesa-opencl-icd                                                  # For AMD Radeon cards *BEFORE series 5000* (e.g. RX480/580...). For newer cards, please install the official AMD drivers.\n\n# One-liner to install all dependencies:\nsudo apt install git build-essential cmake g++ pkgconf libfftw3-dev libpng-dev \\\n                 libtiff-dev libjemalloc-dev libcurl4-openssl-dev libvolk-dev libnng-dev \\\n                 libglfw3-dev zenity portaudio19-dev libzstd-dev libhdf5-dev librtlsdr-dev \\\n                 libhackrf-dev libairspy-dev libairspyhf-dev libad9361-dev libiio-dev \\\n                 libbladerf-dev libomp-dev ocl-icd-opencl-dev intel-opencl-icd mesa-opencl-icd\n```\n\n\u003c/details\u003e\n\u003cdetails\u003e\n\n\u003csummary\u003eInstall Dependencies - Red-Hat-based systems\u003c/summary\u003e\n\n```bash\nsudo dnf install git cmake g++ fftw-devel volk-devel libpng-devel jemalloc-devel \\\n                 libtiff-devel nng-devel curl-devel\n\n# (Optional)\nsudo dnf install glfw-devel zenity                                                # Only if you want to build the GUI Version\nsudo dnf install portaudio-devel                                                  # Only if you want audio output\nsudo dnf install libzstd-devel                                                    # Only if you want to build with ZIQ Recording compression\nsudo dnf install hdf5-devel                                                       # Only if you want official product support (ex, EUMETSAT)\nsudo dnf install rtl-sdr-devel hackrf-devel airspyone_host-devel                  # All libraries required for live processing\nsudo dnf install libomp-devel                                                     # Shouldn't be required in general, but in case you have errors with OMP\nsudo dnf install ocl-icd                                                          # Optional, but recommended as it drastically increases speed of some operations. Installs OpenCL.\nsudo dnf install intel-opencl                                                     # Enables OpenCL for Intel Integrated Graphics\n\n# One-liner to install all dependencies:\nsudo dnf install git cmake g++ fftw-devel volk-devel libpng-devel jemalloc-devel hdf5-devel \\\n                 libtiff-devel nng-devel curl-devel glfw-devel zenity portaudio-devel \\\n                 libzstd-devel rtl-sdr-devel hackrf-devel airspyone_host-devel libomp-devel \\\n                 ocl-icd intel-opencl\n```\n\u003c/details\u003e\n\u003cdetails\u003e\n\n\u003csummary\u003eInstall Dependencies - Alpine-based systems\u003c/summary\u003e\n\n```bash\n# Adding the testing repository is required for libvolk-dev.\n# You need to build libnng from source, see below.\nsudo apk add git cmake make g++ pkgconf fftw-dev libvolk-dev libpng-dev \\\n             jemalloc-dev tiff-dev curl-dev\n\n# (Optional)\nsudo apk add glfw-dev zenity                                           # Only if you want to build the GUI Version\nsudo apk add portaudio-dev                                             # Only if you want audio output\nsudo apk add zstd-dev                                                  # Only if you want to build with ZIQ Recording compression\nsudo apk add hdf5-dev                                                  # Only if you want official product support (ex, EUMETSAT)\nsudo apk add librtlsdr-dev hackrf-dev airspyone-host-dev airspyhf-dev  # All libraries required for live processing\nsudo apk add opencl-dev                                                # Optional, but recommended as it drastically increases speed of some operations. Installs OpenCL. Community repo required.\n```\n\u003c/details\u003e\n\u003cdetails\u003e\n\n\u003csummary\u003eInstall Dependencies - Gentoo\u003c/summary\u003e\n\n```bash\n# Assumes you already have gcc, g++, pkgconf, and cmake installed. \n# Using Gentoo, you probably do!\n#\n# NOTE: You will need to build nng yourself. See below for details.\n#       Some SDR sources, such as AirSpy, also need to be build from\n#       source if needed.\n\nsudo emerge --ask dev-vcs/git sci-libs/fftw dev-libs/jemalloc sci-libs/volk \\\n                  media-libs/libpng media-libs/tiff net-misc/curl\n\nsudo emerge --ask media-libs/glfw gnome-extra/zenity      # Only if you want to build the GUI Version\nsudo emerge --ask media-libs/portaudio                    # Only if you want audio output\nsudo emerge --ask app-arch/zstd                           # Only if you want to build with ZIQ Recording compression\nsudo emerge --ask sci-libs/hdf5                           # Only if you want official product support (ex, EUMETSAT)\nsudo emerge --ask net-wireless/rtl-sdr                    # RTL-SDR Support\nsudo emerge --ask net-libs/libhackrf                      # HackRF Support\nsudo emerge --ask net-wireless/bladerf                    # bladeRF Support\nsudo emerge --ask net-libs/libiio net-libs/libad9361-iio  # For ADALM-Pluto, PlutoPlus, AntSDR and other SDRs based on Analog AD9361\nsudo emerge --ask dev-libs/opencl-icd-loader              # OpenCL Support, Optional, but recommended\n\n# One-liner to install all dependencies:\nsudo emerge --ask dev-vcs/git sci-libs/fftw dev-libs/jemalloc sci-libs/volk \\\n                  media-libs/libpng media-libs/tiff net-misc/curl sci-libs/hdf5 \\\n                  media-libs/glfw gnome-extra/zenity media-libs/portaudio \\\n                  app-arch/zstd net-wireless/rtl-sdr net-libs/libhackrf   \\\n                  net-wireless/bladerf net-libs/libiio net-libs/libad9361-iio \\\n                  dev-libs/opencl-icd-loader\n```\n\n\u003c/details\u003e\n\u003cdetails\u003e\n\n\u003csummary\u003eInstall Dependencies - openSUSE\u003c/summary\u003e\n\n```bash\nsudo zypper install git gcc-c++ cmake g++ pkgconf fftw3-devel libpng-devel \\\n                    libtiff-devel jemalloc-devel libcurl-devel volk-devel  \\\n                    nng-devel \n\n# (Optional)\nsudo zypper install libglfw-devel zenity                                        # Only if you want to build the GUI Version\nsudo zypper install portaudio-devel                                             # Only if you want audio output\nsudo zypper install libzstd-devel                                               # Only if you want to build with ZIQ Recording compression\nsudo zypper install hdf5-devel                                                  # Only if you want official product support (ex, EUMETSAT)\nsudo zypper install rtl-sdr-devel hackrf-devel airspy-devel airspyhf-devel      # All libraries required for live processing\nsudo zypper install libad9361-iio-devel libiio-devel                            # For ADALM-Pluto, PlutoPlus, AntSDR and other SDRs based on Analog AD9361\nsudo zypper install bladeRF-devel                                               # For BladeRF\nsudo zypper install libomp-devel                                                # Shouldn't be required in general, but in case you have errors with OMP\nsudo zypper install opencl-headers libOpenCL1                                   # Optional, but recommended as it drastically increases speed of some operations. Installs OpenCL.\nsudo zypper install intel-opencl                                                # Enables OpenCL for Intel Integrated Graphics\nsudo zypper install Mesa-libOpenCL                                              # For AMD Radeon cards *BEFORE series 5000* (e.g. RX480/580...). For newer cards, please install the official AMD drivers.\n\n# One-liner to install all dependencies:\nsudo zypper install git gcc-c++ cmake g++ pkgconf fftw3-devel libpng-devel libtiff-devel jemalloc-devel \\\n                    libcurl-devel hdf5-devel volk-devel nng-devel libglfw-devel zenity portaudio-devel \\\n                    libzstd-devel rtl-sdr-devel hackrf-devel airspy-devel airspyhf-devel libad9361-iio-devel \\\n                    libiio-devel bladeRF-devel libomp-devel opencl-headers libOpenCL1 intel-opencl Mesa-libOpenCL\n\n```\n\n\u003c/details\u003e\n\n---\n\nIf nng is not available for your distro, you will have to build it from source\n```bash\ngit clone https://github.com/nanomsg/nng.git -b v1.9.0\ncd nng\nmkdir build \u0026\u0026 cd build\ncmake -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=ON -DCMAKE_INSTALL_PREFIX=/usr ..\nmake -j4\nsudo make install\ncd ../..\nrm -rf nng\n```\n\n#### Build SatDump\n```\ngit clone https://github.com/SatDump/SatDump.git\ncd SatDump\nmkdir build \u0026\u0026 cd build\n# If you do not want to build the GUI Version, add -DBUILD_GUI=OFF to the command\n# If you want to disable some SDRs, you can add -DPLUGIN_HACKRF_SDR_SUPPORT=OFF or similar\ncmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr ..\nmake -j`nproc`\n\n# To run without installing\nln -s ../pipelines .        # Symlink pipelines so it can run\nln -s ../resources .        # Symlink resources so it can run\nln -s ../satdump_cfg.json . # Symlink settings so it can run\n\n# To install system-wide\nsudo make install\n\n# Run (if you want!)\n./satdump-ui\n```\n\n### Raspberry Pi\n\nIn case you are using RPi3 (any revision) and older. Run ```make -j1 ``` instead of ```make -j`nproc` ``` otherwise the system will crash.\n  \n### Android\n\nOn Android, the preferred source is F-Droid.\n\n[\u003cimg src=\"https://fdroid.gitlab.io/artwork/badge/get-it-on.png\"\n    alt=\"Get it on F-Droid\"\n    height=\"80\"\u003e](https://f-droid.org/packages/org.satdump.SatDump)\n\n\nIf this is not an option for you, APKs are also available on the [Release](https://github.com/altillimity/SatDump/releases) page.\n\nDo 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.\nSupported SDR devices are :\n- RTL-SDR\n- Airspy\n- AirspyHF\n- LimeSDR Mini\n- HackRF\n\n\n### Docker\n\nBuilding and running under docker is a nice way to separate the build environment and libraries from the host OS.\nThe build process is a multistage build that uses two images, one with the -dev packages and another for the runtime.\nThis means that the runtime image can be kept smaller, although the disk space is still needed to complete the build.\n\nTo match the system user for the shared files get the same owner, set these in `.env` before building the image.\nThe user inside the container will always be named `satdump`, but the uid and gid will match the system user.\n\n```bash\n# set the current uid and gid \nprintf \"HOST_UID: $(id -u)\\nHOST_GID: $(id -g)\\n\" \u003e .env\n\n# create the shared directory\nmkdir -p srv\n\n# Build the images with compose, 8 parallel\ndocker compose build --build-arg CMAKE_BUILD_PARALLEL_LEVEL=8\n\n# Launch a shell inside the container/service\ndocker compose run --rm -it satdump\n```\n\nThe command that is started inside the container can either be specified at the end on the commandline mentioned above, \nor put in the `.env` with for example `COMMAND: satdump_sdr_server`. If you want to run the sdr server in the background\nand have it start automatically on boot, simply launch the container with `docker compose up -d` and check the logs with\n`docker compose logs -f`\n\n#### X11 under docker\n\nTo use the `satdump-ui` under docker you need to make a few changes.\nIt is possible to run this on WSL2 as well, change the source to `/run/desktop/mnt/host/wslg/.X11-unix` instead.\nIn the [docker-compose.yml](docker-compose.yml) you need to uncomment a few lines and make it looks like this:\n```yaml\n      - type: 'bind'\n        source: '/tmp/.X11-unix'\n        target: '/tmp/.X11-unix'\n```\n\nIf the user in the container is not authorized for X11, you will probably get this error message:\n`Authorization required, ...`\nThis is due to the ACL controlling access to your screen.\nThere's several ways to solve this, a few very broad and insecure, but the following should be acceptable on a non-shared system.\n\nOn the host, run: `xhost +local:docker` , then to start the ui: `docker compose run --rm -it satdump satdump-ui`\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsatdump%2Fsatdump","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsatdump%2Fsatdump","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsatdump%2Fsatdump/lists"}