From 80acb91dbc7d5a40048a9662dd73aa8b184aef5b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=A2=D1=83=D1=80=D1=87=D0=B5=D0=BD=D0=BA=D0=BE=20=D0=92?= =?UTF-8?q?=D0=B0=D1=81=D0=B8=D0=BB=D0=B8=D0=B9=20=D0=92=D0=BB=D0=B0=D0=B4?= =?UTF-8?q?=D0=B8=D0=BC=D0=B8=D1=80=D0=BE=D0=B2=D0=B8=D1=87?= Date: Mon, 22 Mar 2021 00:31:47 +0300 Subject: [PATCH] add "--enable-antenna-power" command line option for HackRF configuration to be able to feed antenna's connector with +3.3v HackRF's internal DC voltage. --- sdr_hackrf.c | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/sdr_hackrf.c b/sdr_hackrf.c index 0e1b39d..537ebad 100644 --- a/sdr_hackrf.c +++ b/sdr_hackrf.c @@ -27,6 +27,7 @@ static struct { hackrf_device *device; uint64_t freq; int enable_amp; + int enable_ant_pwr; int lna_gain; int vga_gain; int rate; @@ -41,6 +42,7 @@ void hackRFInitConfig() HackRF.device = NULL; HackRF.freq = 1090000000; HackRF.enable_amp = 0; + HackRF.enable_ant_pwr = 0; HackRF.lna_gain = 32; HackRF.vga_gain = 50; HackRF.rate = 2400000; @@ -84,7 +86,10 @@ bool hackRFHandleOption(int argc, char **argv, int *jptr) HackRF.rate = atoi(argv[++j]); } else if (!strcmp(argv[j], "--enable-amp")) { HackRF.enable_amp = 1; - } else { + } else if (!strcmp(argv[j], "--enable-antenna-power")) { + HackRF.enable_ant_pwr = 1; + } + else { return false; } @@ -98,6 +103,7 @@ void hackRFShowHelp() printf(" HackRF-specific options (use with --device-type hackrf)\n"); printf("\n"); printf("--enable-amp enable amplifier)\n"); + printf("--enable-antenna-power enable DC power to the antenna connector\n"); printf("--lna-gain set LNA gain (Range 0-40 in 8dB steps))\n"); printf("--vga-gain set VGA gain (Range 0-62 in 2dB steps))\n"); printf("--samplerate set sample rate)\n"); @@ -181,6 +187,15 @@ bool hackRFOpen() return false; } + status = hackrf_set_antenna_enable(HackRF.device, HackRF.enable_ant_pwr); + if (status != 0) { + fprintf(stderr, "HackRF: hackrf_set_antenna_enable failed with code %d\n", status); + hackrf_close(HackRF.device); + hackrf_exit(); + return false; + } + + show_config(); HackRF.converter = init_converter(INPUT_UC8,