gamutRF is a gnuradio-based SDR-based scanner, I/Q signal collector and identifier (using a image or I/Q based pyTorch model).
While it can run on Pi4 and Pi5 machines (and its components can be distributed over a network), it is more typically deployed on a single x86_64 machine with an nvidia GPU (see deployment instructions).
gamutRF's scanner container connects to a local SDR and sweeps over a configured frequency range or ranges collecting samples. When a configurable number of valid I/Q samples are received the SDR is retuned to a new interval (see blocks in gr-iqtlabs). The samples are processed and sent to a waterfall container for display, and optionally to a Torchserve instance for identification. Recording, and basic parameters (such as the frequency range to scan) can be controlled from the waterfall container.
Distributed under the Apache 2.0. See LICENSE for more information.
- Twitter: @iqtlabs
- Email: [email protected]
See our other projects: https://github.com/IQTLabs/
GamutRF has legacy support for the Deepwave AIR-T
Development with GamutRF requires familiarity with gnuradio, an SDR, a x86_64 host running Ubuntu 24.04 with Docker installed (and ideally an nvidia GPU, though this is not required).
- Install gnuradio, 3.10 or later
- Install gr-iqtlabs
- Make modifications, and install with
poetry install
- Run tests with
pytest
Follow above local development instructions, and then build containers (tests will be run inside the containers).
docker build -f docker/Dockerfile.base docker -t iqtlabs/gamutrf-base:latest
docker build -f Dockerfile . -t iqtlabs/gamutrf:latest