From c7f69a248ab5e98476ee902308146a3558d858b7 Mon Sep 17 00:00:00 2001 From: michelinok Date: Fri, 20 Mar 2015 15:15:26 +0100 Subject: [PATCH 01/14] Update README --- README | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/README b/README index 7f04203..b7cd175 100644 --- a/README +++ b/README @@ -1,6 +1,15 @@ +====================================================================== rtl-sdr turns your Realtek RTL2832 based DVB dongle into a SDR receiver ====================================================================== For more information see: http://sdr.osmocom.org/trac/wiki/rtl-sdr + +====================================================================== + +Features added atm by me: + +Ability to enable RTL AGC in rtl_sdr + +Need to pull my mods asap... From dec46fc7079464e73c20be3507f82fb78a5f9555 Mon Sep 17 00:00:00 2001 From: michelinok Date: Fri, 20 Mar 2015 15:26:19 +0100 Subject: [PATCH 02/14] Update rtl_sdr.c --- src/rtl_sdr.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/rtl_sdr.c b/src/rtl_sdr.c index 984e09a..1c3b3d4 100644 --- a/src/rtl_sdr.c +++ b/src/rtl_sdr.c @@ -57,6 +57,7 @@ void usage(void) "\t[-S force sync output (default: async)]\n" "\t[-D direct_sampling_mode, 0 (default/off), 1 (I), 2 (Q), 3 (no-mod)]\n" "\t[-N no dithering (default: use dithering)]\n" + "\t[-X enable RTL AGC]\n" "\tfilename (a '-' dumps samples to stdout)\n\n"); exit(1); } @@ -115,6 +116,7 @@ int main(int argc, char **argv) int gain = 0; int ppm_error = 0; int sync_mode = 0; + int rtlagc = 1; int direct_sampling = 0; int dithering = 1; FILE *file; @@ -127,6 +129,9 @@ int main(int argc, char **argv) while ((opt = getopt(argc, argv, "d:f:g:s:b:n:p:D:SN")) != -1) { switch (opt) { + case 'x': + rtlagc = 0; + break;*/ case 'd': dev_index = verbose_device_search(optarg); dev_given = 1; @@ -222,6 +227,12 @@ int main(int argc, char **argv) verbose_direct_sampling(dev, direct_sampling); } + /* enable RTL_AGC */ + if (!rtlagc) { + fprintf(stderr,"Enabling RTL AGC\n"); + verbose_set_rtlagc(dev); + } + /* Set the sample rate */ verbose_set_sample_rate(dev, samp_rate); From 96bec352bb67669552c76746267db3efe4011758 Mon Sep 17 00:00:00 2001 From: michelinok Date: Fri, 20 Mar 2015 15:27:23 +0100 Subject: [PATCH 03/14] Update convenience.h --- src/convenience/convenience.h | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/convenience/convenience.h b/src/convenience/convenience.h index 2daac78..85e986e 100644 --- a/src/convenience/convenience.h +++ b/src/convenience/convenience.h @@ -149,3 +149,10 @@ int verbose_reset_buffer(rtlsdr_dev_t *dev); int verbose_device_search(char *s); +/*! +* Enable RTL AGC +* Mod by MichelinoK +* email: michele@computerteam.it +*/ + +int verbose_set_rtlagc(rtlsdr_dev_t *dev); From a2ce7591550dddf3893d1f15a6f072970579ccfd Mon Sep 17 00:00:00 2001 From: michelinok Date: Fri, 20 Mar 2015 15:29:02 +0100 Subject: [PATCH 04/14] Update convenience.c --- src/convenience/convenience.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/convenience/convenience.c b/src/convenience/convenience.c index cc8a8bf..d3d6ee0 100644 --- a/src/convenience/convenience.c +++ b/src/convenience/convenience.c @@ -136,6 +136,18 @@ int nearest_gain(rtlsdr_dev_t *dev, int target_gain) return nearest; } +int verbose_set_rtlagc(rtlsdr_dev_t *dev) +{ + int r; + r = rtlsdr_set_agc_mode(dev, 1); + if (r < 0) { + fprintf(stderr, "WARNING: Failed to set RTL AGC\n"); + } else { + fprintf(stderr, "RTL AGC enabled\n"); + } + return r; +} + int verbose_set_frequency(rtlsdr_dev_t *dev, uint32_t frequency) { int r; From fd13e48576fc435de21e1fb0968685e0ef8ef169 Mon Sep 17 00:00:00 2001 From: michelinok Date: Fri, 20 Mar 2015 15:29:40 +0100 Subject: [PATCH 05/14] Update README --- README | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/README b/README index b7cd175..324a73c 100644 --- a/README +++ b/README @@ -8,8 +8,6 @@ http://sdr.osmocom.org/trac/wiki/rtl-sdr ====================================================================== -Features added atm by me: +Features added by me: Ability to enable RTL AGC in rtl_sdr - -Need to pull my mods asap... From ecb90b9fb83e7ca7d477f583d079c1c5dae0b61c Mon Sep 17 00:00:00 2001 From: michelinok Date: Fri, 20 Mar 2015 15:31:05 +0100 Subject: [PATCH 06/14] Update rtl_sdr.c --- src/rtl_sdr.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/rtl_sdr.c b/src/rtl_sdr.c index 1c3b3d4..c3a608b 100644 --- a/src/rtl_sdr.c +++ b/src/rtl_sdr.c @@ -57,7 +57,7 @@ void usage(void) "\t[-S force sync output (default: async)]\n" "\t[-D direct_sampling_mode, 0 (default/off), 1 (I), 2 (Q), 3 (no-mod)]\n" "\t[-N no dithering (default: use dithering)]\n" - "\t[-X enable RTL AGC]\n" + "\t[-x enable RTL AGC]\n" "\tfilename (a '-' dumps samples to stdout)\n\n"); exit(1); } @@ -131,7 +131,7 @@ int main(int argc, char **argv) switch (opt) { case 'x': rtlagc = 0; - break;*/ + break; case 'd': dev_index = verbose_device_search(optarg); dev_given = 1; From eac0f7ae49def2467b60c3d4bebb13cca30e44f5 Mon Sep 17 00:00:00 2001 From: michelinok Date: Fri, 20 Mar 2015 15:34:44 +0100 Subject: [PATCH 07/14] Update rtl_sdr.c --- src/rtl_sdr.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/rtl_sdr.c b/src/rtl_sdr.c index c3a608b..af51874 100644 --- a/src/rtl_sdr.c +++ b/src/rtl_sdr.c @@ -57,7 +57,7 @@ void usage(void) "\t[-S force sync output (default: async)]\n" "\t[-D direct_sampling_mode, 0 (default/off), 1 (I), 2 (Q), 3 (no-mod)]\n" "\t[-N no dithering (default: use dithering)]\n" - "\t[-x enable RTL AGC]\n" + "\t[-X enable RTL AGC]\n" "\tfilename (a '-' dumps samples to stdout)\n\n"); exit(1); } @@ -127,15 +127,15 @@ int main(int argc, char **argv) uint32_t samp_rate = DEFAULT_SAMPLE_RATE; uint32_t out_block_size = DEFAULT_BUF_LENGTH; - while ((opt = getopt(argc, argv, "d:f:g:s:b:n:p:D:SN")) != -1) { + while ((opt = getopt(argc, argv, "d:f:g:s:b:n:p:D:SNX")) != -1) { switch (opt) { - case 'x': - rtlagc = 0; - break; case 'd': dev_index = verbose_device_search(optarg); dev_given = 1; break; + case 'X': + rtlagc = 0; + break; case 'f': frequency = (uint32_t)atofs(optarg); break; From ec98a10cca28640637dbc9bc60d999f1875eaaa5 Mon Sep 17 00:00:00 2001 From: michelinok Date: Fri, 20 Mar 2015 15:37:16 +0100 Subject: [PATCH 08/14] Update README --- README | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/README b/README index 324a73c..90d58d9 100644 --- a/README +++ b/README @@ -1,4 +1,3 @@ -====================================================================== rtl-sdr turns your Realtek RTL2832 based DVB dongle into a SDR receiver ====================================================================== @@ -10,4 +9,8 @@ http://sdr.osmocom.org/trac/wiki/rtl-sdr Features added by me: -Ability to enable RTL AGC in rtl_sdr +- Ability to enable RTL AGC in rtl_sdr + +in rtl_sdr a you can use the "-X" switch to enable RTL AGC + +====================================================================== From 7c927c398b7a19e593b25fce81ff23257cd7b6ea Mon Sep 17 00:00:00 2001 From: michelinok Date: Fri, 20 Mar 2015 15:37:45 +0100 Subject: [PATCH 09/14] Update README --- README | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README b/README index 90d58d9..3f4f05a 100644 --- a/README +++ b/README @@ -11,6 +11,6 @@ Features added by me: - Ability to enable RTL AGC in rtl_sdr -in rtl_sdr a you can use the "-X" switch to enable RTL AGC +Now in rtl_sdr you can use the "-X" switch to enable RTL AGC ====================================================================== From 8bdcefebda943e22d51a70fe744b02d9c573f543 Mon Sep 17 00:00:00 2001 From: michelinok Date: Fri, 20 Mar 2015 15:38:25 +0100 Subject: [PATCH 10/14] Update README --- README | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README b/README index 3f4f05a..315f5f1 100644 --- a/README +++ b/README @@ -7,7 +7,7 @@ http://sdr.osmocom.org/trac/wiki/rtl-sdr ====================================================================== -Features added by me: +Features added by me (MichelinoK): - Ability to enable RTL AGC in rtl_sdr From c14354bcc8c418ecde7db22b111eece23219bfdc Mon Sep 17 00:00:00 2001 From: michelinok Date: Fri, 20 Mar 2015 21:09:50 +0100 Subject: [PATCH 11/14] Update README --- README | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/README b/README index 315f5f1..fcbd557 100644 --- a/README +++ b/README @@ -14,3 +14,14 @@ Features added by me (MichelinoK): Now in rtl_sdr you can use the "-X" switch to enable RTL AGC ====================================================================== + +Suggested to compile this way: + +git clone https://github.com/michelinok/rtl-sdr.git +cd rtl-sdr +mkdir build +cd build +cmake ../ -DDETACH_KERNEL_DRIVER=ON -DINSTALL_UDEV_RULES=ON +make +sudo make install +sudo ldconfig From aa6949bc2fc9217d9362ce9b40f7ff3ecd4eeb60 Mon Sep 17 00:00:00 2001 From: michelinok Date: Tue, 24 Mar 2015 16:10:04 +0100 Subject: [PATCH 12/14] Update rtl_tcp.c Added -X switch to enable RTL AGC in CLI for those apps that doesn't support turning RTL AGC on. --- src/rtl_tcp.c | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/src/rtl_tcp.c b/src/rtl_tcp.c index 35eadac..9dcebd4 100644 --- a/src/rtl_tcp.c +++ b/src/rtl_tcp.c @@ -95,7 +95,8 @@ void usage(void) "\t[-b number of buffers (default: 15, set by library)]\n" "\t[-n max number of linked list buffers to keep (default: 500)]\n" "\t[-d device index (default: 0)]\n" - "\t[-P ppm_error (default: 0)]\n"); + "\t[-P ppm_error (default: 0)]\n" + "\t[-X enable RTL AGC]\n"); exit(1); } @@ -369,6 +370,7 @@ int main(int argc, char **argv) int dev_index = 0; int dev_given = 0; int gain = 0; + int rtlagc = 0; int ppm_error = 0; int custom_ppm = 0; struct llist *curelem,*prev; @@ -388,12 +390,15 @@ int main(int argc, char **argv) struct sigaction sigact, sigign; #endif - while ((opt = getopt(argc, argv, "a:p:f:g:s:b:n:d:P:")) != -1) { + while ((opt = getopt(argc, argv, "a:p:f:g:s:b:n:d:P:X")) != -1) { switch (opt) { case 'd': dev_index = verbose_device_search(optarg); dev_given = 1; break; + case 'X': + rtlagc = 0; + break; case 'f': frequency = (uint32_t)atofs(optarg); break; @@ -473,6 +478,14 @@ int main(int argc, char **argv) else fprintf(stderr, "Tuned to %i Hz.\n", frequency); + /* enable RTL_AGC */ + if (!rtlagc) { + fprintf(stderr,"Enabling RTL AGC\n"); + verbose_set_rtlagc(dev); + } + + + if (0 == gain) { /* Enable automatic gain */ r = rtlsdr_set_tuner_gain_mode(dev, 0); From a74f495edda5635744a6b3aeb56c6ead3a2e61f0 Mon Sep 17 00:00:00 2001 From: michelinok Date: Tue, 24 Mar 2015 16:15:44 +0100 Subject: [PATCH 13/14] Update README --- README | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README b/README index fcbd557..985a026 100644 --- a/README +++ b/README @@ -10,8 +10,9 @@ http://sdr.osmocom.org/trac/wiki/rtl-sdr Features added by me (MichelinoK): - Ability to enable RTL AGC in rtl_sdr +- Ability to enable RTL AGC in rtl_tcp (for those apps that doesn't support enabling it) -Now in rtl_sdr you can use the "-X" switch to enable RTL AGC +Now in rtl_sdr and rtl_tcp you can use the "-X" switch to enable RTL AGC ====================================================================== From 474cbb30adaed9a369802b198fcb689f3d0027a6 Mon Sep 17 00:00:00 2001 From: michelinok Date: Tue, 24 Mar 2015 16:35:32 +0100 Subject: [PATCH 14/14] Update rtl_tcp.c --- src/rtl_tcp.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/rtl_tcp.c b/src/rtl_tcp.c index 9dcebd4..463b7ae 100644 --- a/src/rtl_tcp.c +++ b/src/rtl_tcp.c @@ -397,7 +397,7 @@ int main(int argc, char **argv) dev_given = 1; break; case 'X': - rtlagc = 0; + rtlagc = 1; break; case 'f': frequency = (uint32_t)atofs(optarg); @@ -479,7 +479,7 @@ int main(int argc, char **argv) fprintf(stderr, "Tuned to %i Hz.\n", frequency); /* enable RTL_AGC */ - if (!rtlagc) { + if (rtlagc) { fprintf(stderr,"Enabling RTL AGC\n"); verbose_set_rtlagc(dev); }