From 2a4f342157208a437e16cb1b16ca09fdcd7131ed Mon Sep 17 00:00:00 2001 From: BuildTools Date: Sat, 10 Feb 2024 22:57:31 -0500 Subject: [PATCH] added RTLSDR bias tee support with -B --- main.c | 8 ++++++-- rtl.c | 8 ++++++++ vdlm2.h | 1 + 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/main.c b/main.c index ab7933e..eefee0b 100644 --- a/main.c +++ b/main.c @@ -50,6 +50,7 @@ FILE *logfd; #ifdef WITH_RTL int gain = 450; int ppm = 0; +int bias = 0; #endif #ifdef WITH_AIR int gain = 18; @@ -66,7 +67,7 @@ static void usage(void) "vdlm2dec %s Copyright (c) 2016-2023 Thierry Leconte \n\n", VDLM2DEC_VERSION); fprintf(stderr, "Usage: vdlm2dec [-J] [-q] [-j addr:port ] [-s addr:port ] [-l logfile] [-g gain]"); #ifdef WITH_RTL - fprintf(stderr, " [-p ppm] -r rtldevicenumber"); + fprintf(stderr, " [-p ppm] [-B bias] -r rtldevicenumber"); #endif #ifdef WITH_AIR fprintf(stderr, " [-k airspy_serial_number]"); @@ -93,6 +94,7 @@ static void usage(void) fprintf(stderr, " -g gain :\t\tset rtl preamp gain in tenth of db (ie -g 90 for +9db).\n"); fprintf(stderr, " -p ppm :\t\tppm frequency correction\n"); + fprintf(stderr, " -B bias :\t\tEnable (1) or Disable(0) bias tee\n"); #endif #ifdef WITH_AIR fprintf(stderr, @@ -123,7 +125,7 @@ int main(int argc, char **argv) nbch = 0; logfd = stdout; - while ((c = getopt(argc, argv, "vqrp:g:k:l:JRj:s:i:GEUb:a")) != EOF) { + while ((c = getopt(argc, argv, "vqrp:g:k:l:JRj:s:i:GEUb:a:B:")) != EOF) { switch (c) { case 'v': verbose = 2; @@ -148,6 +150,8 @@ int main(int argc, char **argv) case 'g': gain = atoi(optarg); break; + case 'B': + bias = atoi(optarg); #endif #ifdef WITH_AIR case 'g': diff --git a/rtl.c b/rtl.c index a2c907b..175e09d 100644 --- a/rtl.c +++ b/rtl.c @@ -267,6 +267,14 @@ int initRtl(char **argv, int optind, thread_param_t * param) return 1; } + if(verbose>1) + fprintf(stderr,"Bias Tee set to %d\n",bias); + r = rtlsdr_set_bias_tee(dev, bias); + if (r < 0 ) { + fprintf(stderr, "WARNING: Failed to set bias tee\n"); + return 1; + } + return 0; } diff --git a/vdlm2.h b/vdlm2.h index 8fb7fa5..79e64ed 100644 --- a/vdlm2.h +++ b/vdlm2.h @@ -86,6 +86,7 @@ extern pthread_barrier_t Bar1, Bar2; #ifdef WITH_RTL extern int ppm; +extern int bias; extern complex float Cbuff[RTLINBUFSZ / 2]; #endif #ifdef WITH_AIR