I'm a RTL-SDR researcher and DSP learner currently working on a project for
properly figuring RTL2832 and I/Q fundamentals out. The project is about
reading raw I/Q samples, processing samples and creating FFT graph from
them. I tried to explain what I'm doing in detail with comment lines. I'm
hoping that I will be helpful to RTL-SDR beginners with this rtl_map [C]
project. Another purpose of the rtl_map project is making a frequency
scanner application for signal security researches.
Another information about the project, installation instructions and
example usages exist at the GitHub repository.
https://github.com/KeyLo99/rtl_map
Hi Rey + Robert,
I've just also been hit by a bug that was already filed some 5 months ago
in the osmocom.org bug tracker: http://osmocom.org/issues/3512
It seems that the bladerf support to gr-osmosdr added in 2018 unconditionally
accepts any libbladerf version installed and subseequently enables the support
for it, only then to fails to compile as it actually appears to require a minimum
version of 2.0.0 for which it doesn't check during the cmake step.
I don't know much about Cmake and hence it would be great if you as the authors
of the related code could find a minute to ensure that gr-osmosdr will simply
not try to build bladerf support if the version of libbladerf is too old.
I'm aware that I can of course manually disable bladerf support, but that's
more a work-around than a proper solution, IMHO.
Thanks in advance!
Regards,
Harald
--
- Harald Welte <laforge(a)gnumonks.org> http://laforge.gnumonks.org/
============================================================================
"Privacy in residential applications is a desirable marketing option."
(ETSI EN 300 175-7 Ch. A6)
Hi, after I make the appropriate bandpass filters, I wanted to attach the
device to an antenna and try some SSB HF, maybe 10 or 20 meter band. I
noticed there are no SSB examples and so I will need to write the program
myself.
I was contacting to ask if there is any reason that the examples use
standalone binaries to interact with the fresco chip rather than writing a
library for gnuradio. Did something about gnuradio make the fresco's
integration with it impractical? Would I be better off proceeding by
writing a gnuradio block for the Fresco sink or a standalone SSB-tx program?
The novelty of demonstrating that such a cheap setup is feasible really
appeals to me.
Thanks,
Joseph Hutchins
This allows to get the device index based on the usb bus and port number
Signed-off-by: Nicolas Sugino <nsugino(a)3way.com.ar>
---
include/rtl-sdr.h | 12 ++++++++++++
src/librtlsdr.c | 42 ++++++++++++++++++++++++++++++++++++++++++
2 files changed, 54 insertions(+)
diff --git a/include/rtl-sdr.h b/include/rtl-sdr.h
index 3ed13ae..d1e3c1e 100644
--- a/include/rtl-sdr.h
+++ b/include/rtl-sdr.h
@@ -60,6 +60,18 @@ RTLSDR_API int rtlsdr_get_device_usb_strings(uint32_t index,
*/
RTLSDR_API int rtlsdr_get_index_by_serial(const char *serial);
+/*!
+ * Get device index by USB bus and port number
+ *
+ * \param bus bus number where the device is connected
+ * \param port port number where the device is connected
+ * \return device index of first device where the name matched
+ * \return -1 on libusb initialization failure
+ * \return -2 if no devices were found at all
+ * \return -3 if devices were found, but none with matching bus and port
+ */
+RTLSDR_API int rtlsdr_get_index_by_usb_bus_port(uint8_t bus, uint8_t port);
+
RTLSDR_API int rtlsdr_open(rtlsdr_dev_t **dev, uint32_t index);
RTLSDR_API int rtlsdr_close(rtlsdr_dev_t *dev);
diff --git a/src/librtlsdr.c b/src/librtlsdr.c
index 89ec903..0d0804d 100644
--- a/src/librtlsdr.c
+++ b/src/librtlsdr.c
@@ -1436,6 +1436,48 @@ int rtlsdr_get_index_by_serial(const char *serial)
return -3;
}
+int rtlsdr_get_index_by_usb_bus_port(uint8_t bus, uint8_t port)
+{
+ int r = -2, index = 0;
+ int i, found = 0;
+ libusb_context *ctx;
+ libusb_device **list;
+ struct libusb_device_descriptor dd;
+ uint8_t reg, dev_bus, dev_port;
+ ssize_t cnt;
+
+ r = libusb_init(&ctx);
+ if(r < 0){
+ return -1;
+ }
+
+ cnt = libusb_get_device_list(ctx, &list);
+ if (!cnt) {
+ libusb_exit(ctx);
+ return -2;
+ }
+
+ for (i = 0; i < cnt; i++) {
+ libusb_get_device_descriptor(list[i], &dd);
+
+ if (find_known_device(dd.idVendor, dd.idProduct)) {
+ dev_bus = libusb_get_bus_number(list[i]);
+ dev_port = libusb_get_port_number(list[i]);
+ if(bus == dev_bus && port == dev_port) {
+ found = 1;
+ break;
+ }
+ index++;
+ }
+ }
+
+ libusb_free_device_list(list, 1);
+
+ libusb_exit(ctx);
+
+ return found ? index : -3;
+}
+
int rtlsdr_open(rtlsdr_dev_t **out_dev, uint32_t index)
{
int r;
--
2.13.6
Hi my friends
I'w got a problem wen install direct sampling mode. When install openwebrx everything is ok up and running.
The problem is when I install the direct sampling mode (Have install 3 other and no problem). This is the
first Ubuntu 18.04. I copy the log here but it is only from startup script.
[openwebrx-main] Configuration script not specified. I will use: "config_webrx.py"
[openwebrx-main] nmux_bufsize = 602112, nmux_bufcnt = 84
[openwebrx-main] Started rtl_thread: rtl_sdr -s 2400000 -f 144250000 -p 0 -g 5 -| nmux --bufsize 602112 --bufcnt
84 --port 4951 --address 127.0.0.1
[openwebrx-main] Waiting for I/Q server to start...
rtl_sdr: symbol lookup error: rtl_sdr: undefined symbol: rtlsdr_set_dithering
nmux: listening on 127.0.0.1:4951
nmux: (main thread/for) end input stream, exiting.
Lars SM6HOC
Hi!
today I discovered that the gr-osmosdr package in debian unstable contains
a whooping list of 96 patches. This is due to the fact that since November
2014 there hasn't been any tagged versions in the repository.
I'd like to suggest to tag releases a bit more often.
@horizon: What about jumping to 1.0.0 right away?
Regards,
Harald
--
- Harald Welte <laforge(a)gnumonks.org> http://laforge.gnumonks.org/
============================================================================
"Privacy in residential applications is a desirable marketing option."
(ETSI EN 300 175-7 Ch. A6)
Good evening -
I am trying to make modifications to rtl_fm so that I can change
frequencies, gains, modulation types, and squelch values on the fly (and
thus avoiding a restart).
Its unclear to me what functions need to be called in order to apply
changes to the sdr device so that I can do the above. The rtl_fm code isnt
documented so I dont have much to go off of...
GQRX doesnt run reliably on any RPi3's I've tried so I hoping to use a
modified rtl_fm in its place. Any help would be appreciated.
Thanks :)
This allows to get the device index based on the usb bus and port number
Signed-off-by: Nicolas Sugino <nsugino(a)3way.com.ar>
---
include/rtl-sdr.h | 12 ++++++++++++
src/librtlsdr.c | 41 +++++++++++++++++++++++++++++++++++++++++
2 files changed, 53 insertions(+)
diff --git a/include/rtl-sdr.h b/include/rtl-sdr.h
index 3ed13ae..d1e3c1e 100644
--- a/include/rtl-sdr.h
+++ b/include/rtl-sdr.h
@@ -60,6 +60,18 @@ RTLSDR_API int rtlsdr_get_device_usb_strings(uint32_t index,
*/
RTLSDR_API int rtlsdr_get_index_by_serial(const char *serial);
+/*!
+ * Get device index by USB bus and port number
+ *
+ * \param bus bus number where the device is connected
+ * \param port port number where the device is connected
+ * \return device index of first device where the name matched
+ * \return -1 on libusb initialization failure
+ * \return -2 if no devices were found at all
+ * \return -3 if devices were found, but none with matching bus and port
+ */
+RTLSDR_API int rtlsdr_get_index_by_usb_bus_port(uint8_t bus, uint8_t port);
+
RTLSDR_API int rtlsdr_open(rtlsdr_dev_t **dev, uint32_t index);
RTLSDR_API int rtlsdr_close(rtlsdr_dev_t *dev);
diff --git a/src/librtlsdr.c b/src/librtlsdr.c
index 89ec903..12a196f 100644
--- a/src/librtlsdr.c
+++ b/src/librtlsdr.c
@@ -1436,6 +1436,47 @@ int rtlsdr_get_index_by_serial(const char *serial)
return -3;
}
+int rtlsdr_get_index_by_usb_bus_port(uint8_t bus, uint8_t port)
+{
+ int r = -2, index = -3;
+ int i;
+ libusb_context *ctx;
+ libusb_device **list;
+ struct libusb_device_descriptor dd;
+ uint8_t reg, dev_bus, dev_port;
+ ssize_t cnt;
+
+ r = libusb_init(&ctx);
+ if(r < 0){
+ return -1;
+ }
+
+ cnt = libusb_get_device_list(ctx, &list);
+ if (!cnt) {
+ libusb_exit(ctx);
+ return -2;
+ }
+
+ for (i = 0; i < cnt; i++) {
+ libusb_get_device_descriptor(list[i], &dd);
+
+ if (find_known_device(dd.idVendor, dd.idProduct)) {
+ index == -3 ? index = 0 : index++;
+ dev_bus = libusb_get_bus_number(list[i]);
+ dev_port = libusb_get_port_number(list[i]);
+ if(bus == dev_bus && port == dev_port) {
+ break;
+ }
+ }
+ }
+
+ libusb_free_device_list(list, 1);
+
+ libusb_exit(ctx);
+
+ return index;
+}
+
int rtlsdr_open(rtlsdr_dev_t **out_dev, uint32_t index)
{
int r;
--
2.13.6