Hi.
I noticed there is a 1 second delay in librtlsdr between calling
rtlsdr_cancel_async and releasing from rtlsdr_read_async. I'm writing a
radio scanner and this delay limits scanning speed considerably. I
tracked the delay down to this piece of code in librtlsdr.c:
while (RTLSDR_INACTIVE != dev->async_status) {
r = libusb_handle_events_timeout(dev->ctx, &tv);
[...]
if (RTLSDR_CANCELING == dev->async_status) {
next_status = RTLSDR_INACTIVE;
[...]
if (dev->dev_lost || RTLSDR_INACTIVE == next_status) {
>>>> libusb_handle_events_timeout(dev->ctx, &tv);
break;
}
The marked line is almost always(?) invoked when all the events are
already processed, hence it blocks for tv = 1 second. In fact I don't
understand what this `if' is supposed to do at all. I tried to modify
this line by changing the delay to 0 making it a non-blocking call
(leaving the timeout of 1 sec for the former
libusb_handle_events_timeout call). This worked with my project and the
1 second delay disappeared. So, I suppose, it's better to either a)
remove the whole `if' or b) make the latter libusb_handle_events_timeout
non-blocking as I did. I checked that b) works for me, and didn't test
a) yet.
The question is: what that `if (dev->dev_lost ...' is supposed to do?
And the two possible fixes for 1 second delay bug depending on the
answer are (diffs):
===
1630a1631
> struct timeval tv_nb = { 0, 0 };
1696c1697
< libusb_handle_events_timeout(dev->ctx, &tv);
---
> libusb_handle_events_timeout(dev->ctx, &tv_nb);
===
===
1694,1698d1693
<
< if (dev->dev_lost || RTLSDR_INACTIVE == next_status) {
< libusb_handle_events_timeout(dev->ctx, &tv);
< break;
< }
===
--
GPG fp: 6DFA 1186 7576 DE60 6CCB EB39 AD81 1733 EEBB 970A
Hi All,
After more than 2 weeks of endless trials to build, install and run
gr-osmosdr and/or gr-baz in Windows 7 to have an RTL2832 source in GNU Radio
- GRC without success I really wander if anybody exists and running these
programs under Windows?
Do you know anybody who succeeded to build and install gr-osmosdr and/or
gr-baz in Windows?
Regards,
Mu
I'm trying to write some code that uses a Raspberry Pi not just to capture
the samples, but also to do the DSP. The signal I'm working (aviation VOR)
is narrow and the DSP is not too hard-core, but it'll be easier if I can
sample at a lower rate.
Though rtlsdr_set_sample_rate returns no errors and rtlsdr_get_sample_rate
returns the same value I gave it (or quite close), it does not appear to be
working. I had been working at 250ksps but wanted to try 125ksps or even
62500sps, but none of those seem to work.
Is this just a limitation of the hardware?
I have a NooElec RTL2832 / R820T device if that matters.
Regards,
Dave J
Hello,
I heard a rumor from someone from industry that Realtek RTL2832u chip would soon be phased out and replaced by another chip (with lower sensitivity according to my contact).
Does anybody has more information about this ?
Regards
Mathias
Background:
Suppose you have four dongles. (That's easy for me. I do.) Suppose they
all identify as one of two types. (Three of one and one of the other.)
Suppose you want to load a specific dongle when you start the program.
And you don't want it to matter if you move the dongles around. How do I
do that?
Welllll, I hacked. Unfortunately rtlsdr.dll does not allow me to do this
even if I alter the serial numbers, at least not the way I want. There
is a fly in the rtlsdr ointment when fishing for the USB strings for
Manufacturer ID, product ID, and serial number. You must formally open
the device to read these values. The dongle can only be opened by one
opener at a time. Unfortunately SDRSharp is laid out inside such that
it searches for dongles whenever you open Config. And any time you open
Config you also have a dongle open. So far this is not too bad a problem.
If there's a dongle I cannot poll for strings, that's the one I have
open. Er, not so fast, Joanne. What if you have two or more copies open?
There will be more than one dongle you cannot poll.
I had to figure out how I could identify the dongle I have open even if
I move dongles. So I dug in and found some things libusb.dll can do. The
chief one is get the USB path for the dongle. And it can do that without
actually opening the dongle. Now when filling out the dialog if I cannot
read strings for a dongle I get the dongle's path from the device list
used and by cheating on the device handle rtlsdr.dll hands out for opened
dongles I extracted information I needed to get the path that way. If they
compare it's obviously my dongle. If they do not compare it's another
dongle that is already opened so I don't show it in the list.
Request:
Please implement two new entry points which expose the libusb_get_port_path
functionality, one by index (same as for strings) and one for rtlsdr
handle which I finessed to prove the technique above. The libusb_get_device
function will take the device handle and spit out the device list
entry that matches the handle.
Thanks for considering this.
{^_^} Joanne/W6MKU
Hi!
I'm modifying rtl_fm to change frequency and demod based on the date/time.
For the frequency i've no problem, but changing the modulation from wfm
to any other gives me no outout at all.
Which is the best approach to change the demod type in realtime?
(whitout shutting down rtl_fm of course!)
Many thanks!
Hi all !
Please excuse me if this is a bit off topic.
Is there any sense to tap the IQ signals from e4k or r820t to the
internal or external soundcards.
Is it possible at all (with r820t particularly) ?
(It could seem like reinventing funcube dongle, bet the
performance/price would be still right)
Best regards,
Zilvinas
I got a quite good (AM/SW)/FM/DAB/DVB-T USB dongle : Mirics FlexiTV
MSi3101.
http://www.mirics.comhttp://www.mirics.com/node/31
WFM , DAB/DAB+ DVB-T signals on air
well decoded by Mirics software ( FMDABplayer even on slow netBook,
while DVB-T needs fast PC) but Windows binary .
I noticed basic Linux software at address
http://cgit.osmocom.org/libmirisdr/
What the status of this software just now ( june 2013 )?
Thanks.
Francesco
Yes! Tap. The only problem is a sound card can only accommodate 48K - 96K bandwidth, some maybe as wide as 192K. The noise at the center of tuning may wipe out much of this tuning. What is needed is a tunable "Zero IF" double-balanced converter like a SA602(612) or NC1496 on the output of the Tuner chip driven by a very clean VC oscillator, these chips have differential I/Q inputs so the tuner can be used as it was designed and not constrained by that funky 8-bit A to D chip. A 16 bit I/Q sound card conversion of the double-balanced IF tuner output would reveal much the slow 8 bit converter does not, like very good noise cancelation, ultra narrow-band RADAR signals, very high speed frequency hopping, and spread spectrum modulation.
I would create such a thing if I were not involved in more profitable ventures.
Jay Salsburg
-----Original Message-----
From: osmocom-sdr-bounces(a)lists.osmocom.org [mailto:osmocom-sdr-bounces@lists.osmocom.org] On Behalf Of Zilvinas, LY2SS
Sent: Wednesday, June 12, 2013 3:14 AM
To: osmocom-sdr(a)lists.osmocom.org
Subject: e4000 r820t signal output
Hi all !
Please excuse me if this is a bit off topic.
Is there any sense to tap the IQ signals from e4k or r820t to the internal or external soundcards.
Is it possible at all (with r820t particularly) ?
(It could seem like reinventing funcube dongle, bet the performance/price would be still right)
Best regards,
Zilvinas
-----
No virus found in this message.
Checked by AVG - www.avg.com
Version: 2013.0.2904 / Virus Database: 3199/6404 - Release Date: 06/12/13