# Two rtl2832 dongles in a GRC project

**URL:** <https://www.ruby-forum.com/t/two-rtl2832-dongles-in-a-grc-project/241681>\
**Category:** GNU Radio\
**Created:** [April 23, 2015, 12:33pm UTC](https://www.ruby-forum.com/t/two-rtl2832-dongles-in-a-grc-project/241681 "2015-04-23T12:33:25Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![musicdenotation](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/ea666f/32.png) [@musicdenotation](https://www.ruby-forum.com/u/musicdenotation)\
**Post date:** [April 23, 2015, 12:33pm UTC](https://www.ruby-forum.com/t/two-rtl2832-dongles-in-a-grc-project/241681/1 "2015-04-23T12:33:25Z")

</div>

I try to make project with two dongles rtl2832+r820.

In GNU Radio Companion v3.7.6.1-58-g620817ed I made simple project with  
two equal channels containing rtl2832\_source block and  
blocks\_ctrlport\_probe2. And I have an error. The output of programm is:  
//////////////////////////////////////////////////////////////////////////////////////////////////////  
Generating: “/home/igor/GRC\_Projects/rtl\_2832\_block/top\_block.py”

> > > Warning: This flow graph may not have flow control: no audio or RF hardware  
> > > blocks found. Add a Misc-\>Throttle block to your flow graph to avoid CPU  
> > > congestion.

Executing: “/home/igor/GRC\_Projects/rtl\_2832\_block/top\_block.py”

RTL2832 Source block configuration:  
??? ??Read length (bytes): 32768  
??? ??Buffer enabled: yes  
??? ??Buffer multiplier: 8  
??? ??Buffer size (samples): 131072  
??? ??Samples per read: 16384  
??? ??Buffer level: 50,0%  
Successfully initialised demod: “ezcap EzTV”  
Skipping auto-probe with custom tuner: “r820t”  
Found RTL2832 device: ezcap EzTV (tuner: Rafael Micro R820T)  
??? ??Sample rate range:??? ??900001 - 3200000 Hz  
??? ??Crystal frequency:??? ??28800000 Hz  
[r820t] Initialised (default bandwidth: 0 Hz)  
RTL2832 Source block configuration:  
??? ??Read length (bytes): 32768  
??? ??Buffer enabled: yes  
??? ??Buffer multiplier: 8  
??? ??Buffer size (samples): 131072  
??? ??Samples per read: 16384  
??? ??Buffer level: 50,0%  
libusb error: unknown return code [-6] (int  
rtl2832::demod::find\_device():446) “libusb\_claim\_interface(devh, 0)”  
Traceback (most recent call last):  
?? File “/home/igor/GRC\_Projects/rtl\_2832\_block/top\_block.py”, line 146,  
in   
??? tb = top\_block()  
?? File “/home/igor/GRC\_Projects/rtl\_2832\_block/top\_block.py”, line 105,  
in **init**  
??? if self.rtl2832\_source\_0.create() == False: raise  
Exception(“Failed to create RTL2832 Source: rtl2832\_source\_0”)  
Exception: Failed to create RTL2832 Source: rtl2832\_source\_0  
////////////////////////////////////////////////////////////////////////////////////////////////////  
Separatly dongles are working properly. And if I run one project for the  
one dongle and one more for the second one all is OK.  
Please help me to what direction I have to go.  
Thank You.

---

<div class="post-metadata">

**Author:** ![S\_SSSSSSSSSSSS](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/ed655f/32.png) [@S\_SSSSSSSSSSSS](https://www.ruby-forum.com/u/S_SSSSSSSSSSSS)\
**Post date:** [April 25, 2015, 2:53am UTC](https://www.ruby-forum.com/t/two-rtl2832-dongles-in-a-grc-project/241681/2 "2015-04-25T02:53:58Z")

</div>

On Apr 23, 2015, at 3:32, Игорь Попов [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> I try to make project with two dongles rtl2832+r820.
> 
> In GNU Radio Companion v3.7.6.1-58-g620817ed I made simple project with two  
> equal channels containing rtl2832\_source block and blocks\_ctrlport\_probe2. And I  
> have an error. The output of programm is:  
> […]  
> libusb error: unknown return code [-6] (int rtl2832::demod::find\_device():446)  
> “libusb\_claim\_interface(devh, 0)”

I’m not familiar with this particular block you’re using, but I highly  
recommend you use gr-osmosdr’s source block instead. It is widely used  
and works with rtl-sdr devices, and I can confirm that it handles  
multiple devices well.

With gr-osmosdr, you can use the device string to specify two RTL  
dongles generically:

osmosdr.source(‘rtl=0’)  
osmosdr.source(‘rtl=1’)

or using their EEPROM serials instead, which is useful for consistent  
selection. (Note that most dongles come from the factory with a serial  
number like ‘000001’, so you’ll have to use the rtl\_eeprom tool to  
rewrite them to unique text of your choice.)

–  
Kevin R. [http://switchb.org/kpreid/](http://switchb.org/kpreid/)
