A real-time passive radar
Find a file
sdn-ninja 660618716c
Update HackRf.cpp
gainLna and gainVga not populated so insert static values for now. this needs fixing (I presume in blah2.cpp?)

fixed the device check, previously it only triggered if 1 device was connected, but not 0 devices.

other fixes for using pointers instead of deferenced pointers, etc.
2024-05-08 21:54:59 +01:00
.devcontainer Devcontainer slow prog 2024-02-15 11:01:11 +00:00
api Fix SIGTERM handling and tidy RspDuo 2024-03-23 15:59:16 +00:00
config Update config-hackrf.yml 2024-05-08 21:31:22 +01:00
doc/html Add doxygen comments 2023-05-20 13:10:55 +09:30
host Add host information for reverse proxy 2024-02-11 11:49:46 +00:00
html Fix localhost check, cleanup front end and favicon 2024-02-18 12:26:17 +00:00
lib Update SDRplay API to 3.14.0 #6 2024-02-04 08:40:15 +00:00
script Add RSPduo reset script to readme 2024-04-02 10:42:32 +00:00
src Update HackRf.cpp 2024-05-08 21:54:59 +01:00
test Amend code style in Ambiguity and refactor ambiguity tests 2024-05-04 02:41:33 +00:00
.dockerignore CfarDetector1D is mostly working at /api/detection 2023-11-21 13:41:35 +00:00
.gitignore Added devcontainer and removed dependence on vendored third-party libraries 2023-12-26 08:18:14 +00:00
CMakeLists.txt Amend code style in Ambiguity and refactor ambiguity tests 2024-05-04 02:41:33 +00:00
CMakePresets.json Compiles and removed unnecessary deps in Dockerfile 2024-01-02 02:52:58 +00:00
docker-compose.yml Make RspDuo default config again oops 2024-04-09 13:59:19 +00:00
Dockerfile HackRF readme update and readd hackrf arch 2024-04-08 12:29:53 +00:00
Doxyfile Add doxygen comments 2023-05-20 13:10:55 +09:30
example.png Initial commit 2023-05-04 20:55:37 +09:30
Jenkinsfile Only release a package for blah2, not blah2_api as well 2024-02-19 12:18:19 +00:00
LICENSE Initial commit 2023-05-04 20:53:41 +09:30
README.md Add video link to readme 2024-04-28 05:24:57 +00:00

blah2

A real-time radar which can support various SDR platforms. See a live instance at http://radar4.30hours.dev.

blah2 example display

Features

  • Support for the SDRplay RSPDuo, USRP (only tested on the B210) and HackRF.
  • 2 channel processing for a reference and surveillance signal.
  • Designed to be used with external RF source (for passive radar or active radar).
  • Outputs delay-Doppler maps to a web front-end.
  • Record raw IQ data by pressing spacebar on the web front-end.
  • Saves delay-Doppler maps in a JSON array.

Services

The build environment consists of a docker-compose.yml file running the following services;

  • The radar processor responsible for IQ capture and processing.
  • The API middleware responsible for reading TCP ports for delay-Doppler map data, and exposing this on a REST API.
  • The web front-end displaying processed radar data.

Usage

Building the code using the following instructions;

  • Install docker and docker-compose on the host machine.
  • Clone this repository to some directory.
  • Install SDRplay API to run service on host.
  • Edit the config/config.yml for desired processing parameters.
  • Run the docker-compose command.
sudo git clone http://github.com/30hours/blah2 /opt/blah2
cd /opt/blah2
sudo chown -R $USER .
sudo chmod a+x ./lib/sdrplay-3.14.0/SDRplay_RSP_API-Linux-3.14.0.run
sudo ./lib/sdrplay-3.14.0/SDRplay_RSP_API-Linux-3.14.0.run --tar -xvf -C ./lib/sdrplay-3.14.0
cd lib/sdrplay-3.14.0/ && sudo ./install_lib.sh
sudo docker network create blah2
sudo systemctl enable docker
sudo docker compose up -d --build

Alternatively avoid building and use the pre-built Docker packages;

sudo docker pull ghcr.io/30hours/blah2:latest
vim docker-compose.yml
--- build: .
+++ image: ghcr.io/30hours/blah2:latest
sudo docker compose up -d

The radar processing output is available on http://localhost:49152.

Documentation

Future Work

  • Add a tracker in delay-Doppler space.
  • Support for the HackRF and RTL-SDR using a front-end mixer to sample 2 RF channels in 1 stream.
  • Support for the Kraken SDR.
  • Add SoapySDR support for the C++ API to include a wide range of SDR platforms.

FAQ

  • If the SDRplay RSPduo does not capture data, restart the API service (on the host) using the script sudo ./script/blah2_rspduo_restart.bash.

Contributing

Pull requests are welcome - especially for adding support for a new SDR.

  • Currently have an issue where the USRP B210 is timing out after 5-10 mins and crashes the code. Convinced it's an issue with my usage of the API - contact me for more info.
  • Join the Discord chat for sharing results and support.

  • Watch a Youtube video showing the hardware and software setup.

License

MIT