|
|
3 dias atrás | |
|---|---|---|
| cmd/sdrd | 3 dias atrás | |
| internal | 3 dias atrás | |
| tools | 4 dias atrás | |
| web | 3 dias atrás | |
| .gitignore | 3 dias atrás | |
| README.md | 4 dias atrás | |
| build-sdrplay.ps1 | 4 dias atrás | |
| config.yaml | 4 dias atrás | |
| go.mod | 5 dias atrás | |
| go.sum | 5 dias atrás | |
| start-sdr.ps1 | 4 dias atrás | |
Go-based SDRplay RSP1b live spectrum + waterfall visualizer with an event recorder, classifier, and demod/recording pipeline.
data/events.jsonl)/api/gpu# From repo root
go run ./cmd/sdrd --mock
Open http://localhost:8080.
This project uses the SDRplay API via cgo (sdrplay_api.h). Ensure the SDRplay API is installed.
$env:CGO_CFLAGS='-IC:\Program Files\SDRplay\API\inc'
$env:CGO_LDFLAGS='-LC:\Program Files\SDRplay\API\x64 -lsdrplay_api'
go build -tags sdrplay ./cmd/sdrd
.\sdrd.exe -config config.yaml
Requires the NVIDIA CUDA Toolkit installed (cuFFT + cudart). Ensure CUDA bin and lib/x64 are on PATH/LIB.
$env:CGO_CFLAGS='-IC:\Program Files\SDRplay\API\inc -IC:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.4\include'
$env:CGO_LDFLAGS='-LC:\Program Files\SDRplay\API\x64 -lsdrplay_api -LC:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.4\lib\x64 -lcufft -lcudart'
go build -tags "sdrplay,cufft" ./cmd/sdrd
.\sdrd.exe -config config.yaml
export CGO_CFLAGS='-I/opt/sdrplay_api/include'
export CGO_LDFLAGS='-L/opt/sdrplay_api/lib -lsdrplay_api'
go build -tags sdrplay ./cmd/sdrd
./cmd/sdrd/sdrd -config config.yaml
Edit config.yaml:
bands: list of band rangescenter_hz: center frequencysample_rate: sample ratefft_size: FFT sizegain_db: device gain (gain reduction)tuner_bw_khz: tuner bandwidth (200/300/600/1536/5000/6000/7000/8000)use_gpu_fft: enable GPU FFT (requires CUDA + cufft build tag)agc: enable automatic gain controldc_block: enable DC blocking filteriq_balance: enable basic IQ imbalance correctiondetector.threshold_db: power threshold in dB (fallback if CFAR disabled)detector.cfar_enabled: enable OS-CFAR detectiondetector.cfar_guard_cells, detector.cfar_train_cells, detector.cfar_rank, detector.cfar_scale_db: OS-CFAR window + ordered-statistic parametersdetector.min_duration_ms, detector.hold_ms: debounce/mergerecorder.*: enable IQ/audio recording, preroll, output_dir, max_disk_mbdecoder.*: external decode commands (use {iq}, {audio}, {sr} placeholders)GET /api/configPOST /api/configPOST /api/sdr/settingsGET /api/gpu/api/events reads from the JSONL event log:
limit (optional): max number of events (default 200, max 2000)since (optional): Unix milliseconds or RFC3339 timestampGET /api/signals → current live signals (latest snapshot)GET /api/recordingsGET /api/recordings/:id (meta.json)GET /api/recordings/:id/iqGET /api/recordings/:id/audioGET /api/recordings/:id/decode?mode=FT8|WSPR|DMR|D-STAR|FSK|PSKGET /api/demod?freq=...&bw=...&mode=...&sec=... → audio/wavPut external decoder binaries/scripts under tools/ and configure decoder.* in config.yaml.
See tools/README.md for examples.
go test ./...
sdrplay support not built, rebuild with -tags sdrplay.CGO_CFLAGS and CGO_LDFLAGS point to the API headers and library.--mock to run without hardware.