Hi,
I don't use the method of hardware modification. That can do synchronization promisingly, sure. I know this scheme couple of months ago, and good to know it works pretty well from you.
My thought is doing the compensation by software according to a common source over the air instead of over the hardware.
Do you think it is doable? And what would be the bottleneck according to your experience? Any possibility to tune the hardware by software after we estimate the synchronization error in frequency and timing?
BR
Jiao xianjun
-----Original Message-----
From: "Sdr Guru" <sdrguru1(a)gmail.com>
Sent: 2013/12/30 19:01
To: "Jiao Xianjun" <putaoshu(a)gmail.com>
Cc: "osmocom-sdr(a)lists.osmocom.org" <osmocom-sdr(a)lists.osmocom.org>
Subject: Re: How to get IQ samples from multiple rtl-sdr dongles in asynchronized manner?
Hi
Are you using a common clock?
http://kaira.sgo.fi/2013/09/16-dual-channel-coherent-digital.html
I've modified some of the RTL dongles, played with GNURadio and Octave.
The results are promising, sample level correlation (2.4M/10, FM radio signal).
On Mon, Dec 30, 2013 at 9:38 AM, Jiao Xianjun <putaoshu(a)gmail.com> wrote:
Hi guys,
For the multiple dongles synchronization in signal level instead of bits/packets level, I setup a working repo in github, and write a initial demo framework. See below:
https://github.com/JiaoXianjun/multi-rtl-sdr-udp-relay.git
You may find information and instruction of demo quickly by reading the README.
My initial purpose is performing in-fly calibration for multiple dongles according to some pre-known signal (GSM, ADS-B?) to let them work together coherently.
An ideal scheme may be that we should generate a very narrow band and very week signal in (or just located at the edge of) target working band of dongles, and perform the software in-fly calibration in background (or driver level). This would be user friendly.
Cheap (8USD+PP), simple, computer-controlled and legal FM band "marker"
http://blog.palosaari.fi/2013/08/naked-hardware-12-usb-audio-transmitter.ht…
I know it is far from final state currently, and many things are not clear yet (See TODO). But please join me if you also think this is a good idea. Just check out the demo and run it to have a look.
Testing it and I'll let you know.
Currently I just test the demo in Ubuntu-Linux.
BR
Jiao Xianjun
On Mon, Sep 2, 2013 at 8:23 PM, Sylvain AZARIAN <sylvain.azarian(a)gmail.com> wrote:
Thanks.
sylvain
2013/9/2 Sdr Guru <sdrguru1(a)gmail.com>
The second way, use MLAT enabled dump1090
https://github.com/antirez/dump1090/pull/23http://www.satsignal.eu/raspberry-pi/dump1090.html
On Sun, Aug 25, 2013 at 4:13 PM, Jiao Xianjun <putaoshu(a)gmail.com> wrote:
Hi,
I want to use multiple rtl-sdr dongles to do some multi-antenna experiments.
Is it possible to read IQ samples from multiple rtl-sdr dongles in a synchronized manner?
I already have a glance at dump1090 codes, which is a project using rtl-sdr to decode aircraft broadcasting ADS-B messages in 1090MHz.
Seems that I should use rtlsdr_read_async() instead of rtlsdr_read_sync(), because that if rtlsdr_read_sync() is used, I have to call it multiple times sequentially. That looks not synchronized.
But rtlsdr_read_async() function only accept one rtl-sdr device as input parameter, and it will be blocked after it is called. So seems that it also can't be used for my purpose directly.
Also welcome any opinion on how to improve rtl-sdr lib/driver to support this feature.
Thank you.
BR
Jiao Xianjun
I see some UDP packet performance issues in my laptop (but not in my desktop computer). Will the common (interleave multiple receives) UDP link helps?
The issue is that fread for the second dongle in matlab get less data than expectation sometimes. Seem that fread for the first dongle works well.
-----Original Message-----
From: "Sdr Guru" <sdrguru1(a)gmail.com>
Sent: 2014/1/2 5:39
To: "osmocom-sdr(a)lists.osmocom.org" <osmocom-sdr(a)lists.osmocom.org>
Subject: Re: How to get IQ samples from multiple rtl-sdr dongles in asynchronized manner?
Hi
rtl-sdr-relay
Some of the recommendations.
Please add PPM error calculation, exactly like new rtl_test -p but multiple receivers simultaneously.
It provides immediate information if something is wrong with USB or dongles.
https://github.com/keenerd/rtl-sdr/commit/b5f89dcf40463130e717b6c9bb3a39a3c…https://github.com/keenerd/rtl-sdr/blob/master/src/rtl_test.c
Please add automatic eeprom PPM calibration
https://github.com/keenerd/rtl-sdr/commit/ecf267737ca52f5005b7a12a352307e8c…
default sample rate 2.4M (28.8/12) or 1.2M (28.8/24), probably lower jitter
MAX_NUM_DEV 4->16 :)
Some nice to have features.
ip binding
multicast support
one common (interleaved) stream of all the receivers
timestamped stream
I'm trying to convert MATLAB script to Ocatve.
SG
On Mon, Dec 30, 2013 at 9:38 AM, Jiao Xianjun <putaoshu(a)gmail.com> wrote:
Hi guys,
For the multiple dongles synchronization in signal level instead of bits/packets level, I setup a working repo in github, and write a initial demo framework. See below:
https://github.com/JiaoXianjun/multi-rtl-sdr-udp-relay.git
You may find information and instruction of demo quickly by reading the README.
My initial purpose is performing in-fly calibration for multiple dongles according to some pre-known signal (GSM, ADS-B?) to let them work together coherently.
An ideal scheme may be that we should generate a very narrow band and very week signal in (or just located at the edge of) target working band of dongles, and perform the software in-fly calibration in background (or driver level). This would be user friendly.
I know it is far from final state currently, and many things are not clear yet (See TODO). But please join me if you also think this is a good idea. Just check out the demo and run it to have a look.
Currently I just test the demo in Ubuntu-Linux.
BR
Jiao Xianjun
Hi,
I want to use multiple rtl-sdr dongles to do some multi-antenna experiments.
Is it possible to read IQ samples from multiple rtl-sdr dongles in a
synchronized manner?
I already have a glance at dump1090 codes, which is a project using rtl-sdr
to decode aircraft broadcasting ADS-B messages in 1090MHz.
Seems that I should use rtlsdr_read_async() instead of rtlsdr_read_sync(),
because that if rtlsdr_read_sync() is used, I have to call it multiple
times sequentially. That looks not synchronized.
But rtlsdr_read_async() function only accept one rtl-sdr device as input
parameter, and it will be blocked after it is called. So seems that it also
can't be used for my purpose directly.
Also welcome any opinion on how to improve rtl-sdr lib/driver to support
this feature.
Thank you.
BR
Jiao Xianjun
Hi all,
time is moving fast, and I want to start some initial discussion and
planning for OsmoDevCon 2014.
There are basically four questions which I'm raising below. Please
provide your feedback to the osmocom-event-orga mailing list only, to
avoid cross-posting over all the project lists.
= Who? =
My intention is to keep it an 'active developer/contributer only' event,
like we had it before. I would also want to keep the group relatively
small, to keep the 'Osmocom family' atmosphere.
If desired, we could have one half or full day of public prsentations in
a larger auditorium, but the developer meeting should be a close group,
as known so far.
= Where? =
If we keep the number of attendees within the same range as this year,
then I'm sure we could again hold it at the same venue. I know it is
not perfect, but it is a place that we have access to, 24 hours per day,
and free of cost for community projects like osmocom.org.
If the community wants a larger event, then this is something that would
require more funds and much more time organizing. And that is something
that I personally could not offer to take care of, sorry. I'm happy to
attend and support any larger events, but I'm unable to take care of
fundraising and venue research.
= When? =
Q1/2014. In January, I'm not aware of any 'blocker' events. February,
there is Fosdem (Feb 1 + Feb 2), and MWC from Feb 24 through Feb 27. In
March there is CeBIT (March 10-14) and Easter holidays (with EasterHegg
March 17-21). Did I miss any other FOSS / mobile event that might clash
in Q1?
So my preference woudl be to do it either late January (23-26) or in
February (6-9 or 13-16). Any preferences regarding preferred schedule?
Once we have some concencus here on the list [and we want to do it in
the same size / venue], I'll talk to IN-Berlin.
= What? =
I think that question is easy to answer, if we have the above three
figured out... There's no shortage of topics, I suppose.
You can start adding your suggestions to
http://openbsc.osmocom.org/trac/wiki/OsmoDevCon2014
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 again.
I would like to stream the RTL SDR over the Internet. My Internet connection is 1 Megabit in upload (much less than a LAN connection).
Is there a way to decrase or cap the bandwith of rtl_tcp?
In others words: is possible for example limit the audio stream on a bandwith of 300 Hz to 3400 Hz?
Thanks.
Fabio, IZ8MBW
Hi Jay,
rtl_fm can be used like rtl_tcp ?
Can I use SDR Sharp (SDR#) on a Windows 7 PC (Client side) to connect on the RTL SDR on the Raspberry Pi (Server side) like rtl_tcp?
73
Fabio, IZ8MBW
www.iz8mbw.net
>________________________________
> Da: Jay Bougie <jaybougie(a)gmail.com>
>A: IZ8MBW Fabio <iz8mbw(a)yahoo.it>
>Inviato: Lunedì 23 Dicembre 2013 23:33
>Oggetto: Re: Bandwidth
>
>
>
>Have you checked out rtl_fm yet?
>May just do the trick for your setup.
>On Dec 23, 2013 5:10 PM, "IZ8MBW Fabio" <iz8mbw(a)yahoo.it> wrote:
>
>
>>Hi again.
>>I would like to stream the RTL SDR over the Internet. My Internet connection is 1 Megabit in upload (much less than a LAN connection).
>>Is there a way to decrase or cap the bandwith of rtl_tcp?
>>In others words: is possible for example limit the audio stream on a bandwith of 300 Hz to 3400 Hz?
>>
>>Thanks.
>>
>>Fabio, IZ8MBW
>>
>>
>>
>
>
Hi.
I'm trying to install OSMOSdr on a Raspberry Pi.
I'm following this guide: http://www.hamradioscience.com/raspberry-pi-as-remote-server-for-rtl2832u-s…
After installing I try to test the RTL2832 USB SDR but I have this error:
root@raspberrypi:~/rtl2832/rtl-sdr/build# rtl_test
Found 1 device(s):
0: Generic RTL2832U OEM
Using device 0: Generic RTL2832U OEM
Kernel driver is active, or device is claimed by second instance of librtlsdr.
In the first case, please either detach or blacklist the kernel module
(dvb_usb_rtl28xxu), or enable automatic detaching at compile time.
usb_claim_interface error -6
Failed to open rtlsdr device #0.
This is my lsmod:
root@raspberrypi:~# lsmod
Module Size Used by
tun 18459 2
i2c_dev 5557 0
w1_therm 2921 0
w1_gpio 2363 0
wire 24832 2 w1_gpio,w1_therm
cn 4783 1 wire
snd_bcm2835 16165 0
evdev 9419 1
r820t 16279 1
rtl2832 8020 1
snd_soc_bcm2708_i2s 5474 0
regmap_mmio 2806 1 snd_soc_bcm2708_i2s
dvb_usb_rtl28xxu 14333 0
dvb_usb_v2 14860 1 dvb_usb_rtl28xxu
rc_core 16313 3 dvb_usb_rtl28xxu,dvb_usb_v2
rtl2830 7378 1 dvb_usb_rtl28xxu
snd_soc_core 131268 1 snd_soc_bcm2708_i2s
dvb_core 92797 3 rtl2830,rtl2832,dvb_usb_v2
regmap_spi 1897 1 snd_soc_core
snd_pcm 81593 2 snd_bcm2835,snd_soc_core
snd_page_alloc 5156 1 snd_pcm
regmap_i2c 1645 1 snd_soc_core
snd_compress 8076 1 snd_soc_core
snd_seq 53769 0
snd_timer 20133 2 snd_pcm,snd_seq
snd_seq_device 6473 1 snd_seq
leds_gpio 2059 0
led_class 3688 1 leds_gpio
snd 61291 7 snd_bcm2835,snd_soc_core,snd_timer,snd_pcm,snd_seq,snd_seq_device,snd_compress
i2c_bcm2708 3949 0
This is a portion of /var/log/messages
.
.
.
Dec 23 13:15:06 raspberrypi kernel: [ 2.369348] usb 1-1: new high-speed USB device number 2 using dwc_otg
Dec 23 13:15:06 raspberrypi kernel: [ 2.377867] Indeed it is in host mode hprt0 = 00001101
Dec 23 13:15:06 raspberrypi kernel: [ 2.387121] devtmpfs: mounted
Dec 23 13:15:06 raspberrypi kernel: [ 2.399736] Freeing unused kernel memory: 144K (c0572000 - c0596000)
Dec 23 13:15:06 raspberrypi kernel: [ 2.590087] usb 1-1: New USB device found, idVendor=0424, idProduct=9512
Dec 23 13:15:06 raspberrypi kernel: [ 2.599431] usb 1-1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
Dec 23 13:15:06 raspberrypi kernel: [ 2.609377] hub 1-1:1.0: USB hub found
Dec 23 13:15:06 raspberrypi kernel: [ 2.615786] hub 1-1:1.0: 3 ports detected
Dec 23 13:15:06 raspberrypi kernel: [ 2.899604] usb 1-1.1: new high-speed USB device number 3 using dwc_otg
Dec 23 13:15:06 raspberrypi kernel: [ 3.009979] usb 1-1.1: New USB device found, idVendor=0424, idProduct=ec00
Dec 23 13:15:06 raspberrypi kernel: [ 3.018605] usb 1-1.1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
Dec 23 13:15:06 raspberrypi kernel: [ 3.047105] smsc95xx v1.0.4
Dec 23 13:15:06 raspberrypi kernel: [ 3.124437] smsc95xx 1-1.1:1.0 eth0: register 'smsc95xx' at usb-bcm2708_usb-1.1, smsc95xx USB 2.0 Ethernet, b8:27:eb:30:43:fd
Dec 23 13:15:06 raspberrypi kernel: [ 3.229549] usb 1-1.3: new high-speed USB device number 4 using dwc_otg
Dec 23 13:15:06 raspberrypi kernel: [ 3.352535] usb 1-1.3: New USB device found, idVendor=0bda, idProduct=2838
Dec 23 13:15:06 raspberrypi kernel: [ 3.365766] usb 1-1.3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
Dec 23 13:15:06 raspberrypi kernel: [ 3.375070] usb 1-1.3: Product: RTL2838UHIDIR
Dec 23 13:15:06 raspberrypi kernel: [ 3.381218] usb 1-1.3: Manufacturer: Realtek
Dec 23 13:15:06 raspberrypi kernel: [ 3.391654] usb 1-1.3: SerialNumber: 00000001
Dec 23 13:15:06 raspberrypi kernel: [ 5.123693] bcm2708_i2c_init_pinmode(0,0)
Dec 23 13:15:06 raspberrypi kernel: [ 5.249498] bcm2708_i2c_init_pinmode(0,1)
Dec 23 13:15:06 raspberrypi kernel: [ 5.255625] bcm2708_i2c bcm2708_i2c.0: BSC0 Controller at 0x20205000 (irq 79) (baudrate 100k)
Dec 23 13:15:06 raspberrypi kernel: [ 5.468627] bcm2708_i2c_init_pinmode(1,2)
Dec 23 13:15:06 raspberrypi kernel: [ 5.545257] bcm2708_i2c_init_pinmode(1,3)
Dec 23 13:15:06 raspberrypi kernel: [ 5.614064] bcm2708_i2c bcm2708_i2c.1: BSC1 Controller at 0x20804000 (irq 79) (baudrate 100k)
Dec 23 13:15:06 raspberrypi kernel: [ 6.451707] usb 1-1.3: dvb_usb_v2: found a 'Realtek RTL2832U reference design' in warm state
Dec 23 13:15:06 raspberrypi kernel: [ 6.510309] usbcore: registered new interface driver dvb_usb_rtl28xxu
Dec 23 13:15:06 raspberrypi kernel: [ 6.552127] usb 1-1.3: dvb_usb_v2: will pass the complete MPEG2 transport stream to the software demuxer
Dec 23 13:15:06 raspberrypi kernel: [ 6.575184] DVB: registering new adapter (Realtek RTL2832U reference design)
Dec 23 13:15:06 raspberrypi kernel: [ 6.614879] bcm2708-i2s bcm2708-i2s.0: Failed to create debugfs directory
Dec 23 13:15:06 raspberrypi kernel: [ 6.639092] usb 1-1.3: DVB: registering adapter 0 frontend 0 (Realtek RTL2832 (DVB-T))...
Dec 23 13:15:06 raspberrypi kernel: [ 6.693199] r820t 2-001a: creating new instance
Dec 23 13:15:06 raspberrypi kernel: [ 6.721703] r820t 2-001a: Rafael Micro r820t successfully identified
Dec 23 13:15:06 raspberrypi kernel: [ 6.744416] Registered IR keymap rc-empty
Dec 23 13:15:06 raspberrypi kernel: [ 6.755520] input: Realtek RTL2832U reference design as /devices/platform/bcm2708_usb/usb1/1-1/1-1.3/rc/rc0/input0
Dec 23 13:15:06 raspberrypi kernel: [ 6.785036] rc0: Realtek RTL2832U reference design as /devices/platform/bcm2708_usb/usb1/1-1/1-1.3/rc/rc0
Dec 23 13:15:06 raspberrypi kernel: [ 6.808934] usb 1-1.3: dvb_usb_v2: schedule remote query interval to 400 msecs
Dec 23 13:15:06 raspberrypi kernel: [ 6.840041] usb 1-1.3: dvb_usb_v2: 'Realtek RTL2832U reference design' successfully initialized and connected
Dec 23 13:15:06 raspberrypi kernel: [ 10.489768] EXT4-fs (mmcblk0p2): re-mounted. Opts: (null)
Dec 23 13:15:06 raspberrypi kernel: [ 10.929880] EXT4-fs (mmcblk0p2): re-mounted. Opts: (null)
.
.
.
Any idea to how to solve?
Many thanks!!
73
Fabio, IZ8MBW
www.iz8mbw.net
Hi all, i'm almost there on the sdrangelove compilation:
[ 90%] Building CXX object
plugins/samplesource/osmosdr/CMakeFiles/inputosmosdr.dir/osmosdrinput.cpp.o
/home/alejo/documents/sat-a-ware/sdrangelove/plugins/samplesource/osmosdr/osmosdrinput.cpp:
In member function ‘bool OsmoSDRInput::applySettings(const
SampleSource::GeneralSettings&, const OsmoSDRInput::Settings&, bool)’:
/home/alejo/documents/sat-a-ware/sdrangelove/plugins/samplesource/osmosdr/osmosdrinput.cpp:463:120:
error: ‘osmosdr_set_iq_amp’ was not declared in this scope
if(!osmosdr_set_iq_amp(m_dev, m_settings.m_opAmpI1,
m_settings.m_opAmpI2, m_settings.m_opAmpQ1, m_settings.m_opAmpQ2))
^
/home/documents/sat-a-ware/sdrangelove/plugins/samplesource/osmosdr/osmosdrinput.cpp:473:83:
error: ‘osmosdr_set_tuner_dc_offset’ was not declared in this scope
if(!osmosdr_set_tuner_dc_offset(m_dev, m_settings.m_dcOfsI,
m_settings.m_dcOfsQ))
^
make[2]: ***
[plugins/samplesource/osmosdr/CMakeFiles/inputosmosdr.dir/osmosdrinput.cpp.o]
Error 1
make[1]: *** [plugins/samplesource/osmosdr/CMakeFiles/inputosmosdr.dir/all]
Error 2
make: *** [all] Error 2
make 82.14s user 4.50s system 91% cpu 1:34.54 total
Please let me know how to get over this,
Thanks in adavance!
Thanks for this timely update! I just got this R820T based device and
just tried to receive local radio stations to no avail.
I live about 70 miles from town, and get only a few stations here with a
cheap little transistor radio. With the device and rtl_fm, I am lucky to
make out voices in the static.
So, I sent one down to a server I manage that is _under_ a tower. Of
course, I can receive the two stations that broadcast from the tower.
They come in loud and clear! But nothing else. My goal was to be able to
listen to radio stations in town by remote using the server in town, so
I'm limited to shell based applications like rtl_fm. My next step was
going to be GNURadio, if I can make it work headless, but I found this
update last night! Very good timing for me!
Now for the problem(s). What I did on the server was:
git clone https://github.com/keenerd/rtl-sdr rtl-sdr-beta
cd rtl-sdr-beta/
autoreconf -i
./configure
make
and I get this (I cut out the largely irrelevant parts, but can supply
full console output if needed):
rtl_sdr.o: In function `main':
/home/deron/rtl-sdr-beta/src/rtl_sdr.c:128: undefined reference to
`verbose_device_search'
/home/deron/rtl-sdr-beta/src/rtl_sdr.c:202: undefined reference to
`verbose_set_sample_rate'
/home/deron/rtl-sdr-beta/src/rtl_sdr.c:205: undefined reference to
`verbose_set_frequency'
/home/deron/rtl-sdr-beta/src/rtl_sdr.c:209: undefined reference to
`verbose_auto_gain'
/home/deron/rtl-sdr-beta/src/rtl_sdr.c:216: undefined reference to
`verbose_ppm_set'
/home/deron/rtl-sdr-beta/src/rtl_sdr.c:212: undefined reference to
`nearest_gain'
/home/deron/rtl-sdr-beta/src/rtl_sdr.c:213: undefined reference to
`verbose_gain_set'
/home/deron/rtl-sdr-beta/src/rtl_sdr.c:232: undefined reference to
`verbose_reset_buffer'
/home/deron/rtl-sdr-beta/src/rtl_sdr.c:178: undefined reference to
`verbose_device_search'
I see where you have defined verbose_* in convenience.c, but
configuration must not be correctly building/linking it in. I am very
much out of my water with autoconf etal. I suspect you are using some
other method to compile this, so might not be in any better footing than I.
Thanks for you assistance,
Deron