An open-source software-defined receiver for GPS, Galileo, GLONASS, and BeiDou signals, enabling custom GNSS processing.
GNSS-SDR is an open-source software-defined GNSS receiver that processes signals from multiple satellite navigation systems, including GPS, Galileo, GLONASS, and BeiDou. It performs detection, synchronization, demodulation, decoding of navigation messages, and computes position fixes, providing a flexible alternative to proprietary hardware receivers.
Researchers, educators, and developers working on GNSS signal processing, software-defined radio, or custom positioning applications who need full control over the receiver chain.
It offers a fully customizable, extensible framework for GNSS processing with support for multiple constellations and front-ends, enabling innovation without the constraints of closed-source hardware.
GNSS-SDR, an open-source software-defined GNSS receiver
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Processes signals from GPS, Galileo, GLONASS, and BeiDou across L1, E6, L2, and L5 bands, enabling comprehensive global navigation coverage as detailed in the README's signal list.
Compatible with a wide range of RF front-ends via drivers like UHD, OsmoSDR, and custom implementations, allowing use from RTL-SDR dongles to professional USRPs, as shown in configuration examples.
Features a clean separation between control and signal processing planes, enabling easy inspection, customization, and development of new algorithms, which is core to its philosophy.
Supports builds for GNU/Linux, macOS, Docker, Snap packages, and embedded platforms via OpenEmbedded/Yocto, ensuring versatility across different environments as outlined in the build sections.
Installation requires managing numerous dependencies across different OSes, with the README listing lengthy steps for Debian, Ubuntu, Fedora, etc., and optional builds like OpenCL or CUDA adding further complexity.
Users must manually tune XML configuration files with deep knowledge of GNSS parameters, such as sampling rates and signal conditioning, which is not intuitive for beginners without signal processing background.
Optimal real-time processing often necessitates running profilers like volk_gnsssdr_profile and manual adjustments for SIMD architectures, rather than being optimized out-of-the-box for all hardware.
While comprehensive, the documentation is extensive and technical, making it difficult to navigate for newcomers without prior experience in SDR or GNSS systems.