# RuntimeError: b200: 2 RX 1 TX and 1 RX 2 TX configurations not possible

**URL:** <https://www.ruby-forum.com/t/runtimeerror-b200-2-rx-1-tx-and-1-rx-2-tx-configurations-not-possible/233068>\
**Category:** GNU Radio\
**Created:** [November 15, 2014, 3:33am UTC](https://www.ruby-forum.com/t/runtimeerror-b200-2-rx-1-tx-and-1-rx-2-tx-configurations-not-possible/233068 "2014-11-15T03:33:57Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![addis\_a](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/c4cdca/32.png) [@addis\_a](https://www.ruby-forum.com/u/addis_a)\
**Post date:** [November 15, 2014, 3:33am UTC](https://www.ruby-forum.com/t/runtimeerror-b200-2-rx-1-tx-and-1-rx-2-tx-configurations-not-possible/233068/1 "2014-11-15T03:33:57Z")

</div>

Hello,

I have a B210 and I am trying to transmit and receive from all it’s  
channels simultaneously. My setup is a macmini late 2012 with Ubuntu  
12.04  
install. I compiled and installed gnuradio from source using the  
gnuradio  
build script. I have developed the attached very simple GRC script that  
looks like this

signal\_source@1khz --\> USRP\_sink\_channel1  
signal\_source@2khz --\> USRP\_sink\_channel2

USRP\_source\_channel1 --\> WX\_GUI\_scope\_channel1  
USRP\_source\_channel2 --\> WX\_GUI\_scope\_channel2

The problem I have is that I get the following message at random times  
and  
on average on 1/3 executions of the GRC script.

linux; GNU C++ version 4.6.3; Boost\_104800; UHD\_003.008.000-18-g864f84b5

## Using Volk machine: avx\_64\_mmx\_orc – Operating over USB 3. – Initialize CODEC control… – Initialize Radio control… – Performing register loopback test… pass – Performing register loopback test… pass – Performing CODEC loopback test… pass – Performing CODEC loopback test… pass – Asking for clock rate 32.000000 MHz – Actually got clock rate 32.000000 MHz – Performing timer loopback test… pass – Performing timer loopback test… pass – Asking for clock rate 28.000000 MHz – Actually got clock rate 28.000000 MHz – Performing timer loopback test… pass – Performing timer loopback test… pass – Tune Request: 915.000000 MHz – The RF LO does not support the requested frequency: – Requested LO Frequency: 915.000000 MHz – RF LO Result: 914.999999 MHz – Attempted to use the DSP to reach the requested frequency: – Desired DSP Frequency: -0.000001 MHz – DSP Result: -0.000001 MHz – Successfully tuned to 915.000000 MHz

## – Tune Request: 915.000000 MHz – The RF LO does not support the requested frequency: – Requested LO Frequency: 915.000000 MHz – RF LO Result: 914.999999 MHz – Attempted to use the DSP to reach the requested frequency: – Desired DSP Frequency: -0.000001 MHz – DSP Result: -0.000001 MHz – Successfully tuned to 915.000000 MHz

## – Asking for clock rate 28.000000 MHz – Actually got clock rate 28.000000 MHz – Performing timer loopback test… pass – Performing timer loopback test… pass – Tune Request: 915.000000 MHz – The RF LO does not support the requested frequency: – Requested LO Frequency: 915.000000 MHz – RF LO Result: 914.999999 MHz – Attempted to use the DSP to reach the requested frequency: – Desired DSP Frequency: 0.000001 MHz – DSP Result: 0.000001 MHz – Successfully tuned to 915.000000 MHz

## – Tune Request: 915.000000 MHz – The RF LO does not support the requested frequency: – Requested LO Frequency: 915.000000 MHz – RF LO Result: 914.999999 MHz – Attempted to use the DSP to reach the requested frequency: – Desired DSP Frequency: 0.000001 MHz – DSP Result: 0.000001 MHz – Successfully tuned to 915.000000 MHz

_thread[thread-per-block[2]: \<block gr uhd usrp sink (24)\>]:  
RuntimeError:  
b200: 2 RX 1 TX and 1 RX 2 TX configurations not possible_

It is obvious that I have all channels activated and that this message  
shouldn’t be appearing in the first place, let alone, appearing in a  
non-deterministic manner.

Any ideas?

Thank you in advance  
Lefteris

---

<div class="post-metadata">

**Author:** ![Lefteris\_Kampianaki](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/l/4da419/32.png) [@Lefteris\_Kampianaki](https://www.ruby-forum.com/u/Lefteris_Kampianaki)\
**Post date:** [November 17, 2014, 11:16pm UTC](https://www.ruby-forum.com/t/runtimeerror-b200-2-rx-1-tx-and-1-rx-2-tx-configurations-not-possible/233068/2 "2014-11-17T23:16:42Z")

</div>

Hello,

FYI I am having problems even with a simpler configuration like this:

USRP\_source\_channel1 → USRP\_sink\_channel1  
USRP\_source\_channel2 → USRP\_sink\_channel2

Does anyone face the same issue? It is really frustrating because 1/3  
executions are wasted and this causes problems with later design, that  
has  
to have an execution rate of \> 1Hz

Thank you in advance  
Lefteris

On Fri, Nov 14, 2014 at 6:32 PM, Lefteris Kampianakis \<  
[removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)\> wrote:

> ## – Initialize CODEC control… – Actually got clock rate 28.000000 MHz
> 
> ## – Actually got clock rate 28.000000 MHz
> 
> b200: 2 RX 1 TX and 1 RX 2 TX configurations not possible\*

–  
Eleftherios(Lefteris) Kampianakis  
Electronics and Computer Engineer  
PHD Candidate and Researcher at Sensing Computing Communications Group  
(SGCC)  
Department of Electrical Engineering  
University of Washington  
3927 Adams Lane, NE, Mercer Court D805B, 98105  
website: [http://staff.washington.edu/ekampian/](http://staff.washington.edu/ekampian/)  
[http://users.isc.tuc.gr/~ekabianakis/](http://users.isc.tuc.gr/~ekabianakis/)  
mail: [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)

---

<div class="post-metadata">

**Author:** ![Lefteris\_Kampianaki](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/l/4da419/32.png) [@Lefteris\_Kampianaki](https://www.ruby-forum.com/u/Lefteris_Kampianaki)\
**Post date:** [November 17, 2014, 11:30pm UTC](https://www.ruby-forum.com/t/runtimeerror-b200-2-rx-1-tx-and-1-rx-2-tx-configurations-not-possible/233068/3 "2014-11-17T23:30:01Z")

</div>

On 11/17/2014 05:15 PM, Lefteris Kampianakis wrote:

> has to have an execution rate of \> 1Hz  
> \<[removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) [mailto:removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)\> wrote:  
> signal\_source@2khz → USRP\_sink\_channel2  
> Using Volk machine: avx\_64\_mmx\_orc  
> – Performing timer loopback test… pass  
> – DSP Result: -0.000001 MHz  
> –  
> – DSP Result: 0.000001 MHz  
> –
> 
> (SGCC)  
> [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
> [Discuss-gnuradio Info Page](https://lists.gnu.org/mailman/listinfo/discuss-gnuradio)  
> We shall probably need a more-detailed description of what you’re  
> doing. Like the actual .grc files, etc.

From your description, I think you’re wanting to:

bring up flow-graph, exchange a very small number of samples, and then  
exit the flow-graph, and do this in a loop?

That seems horribly inefficient, quit distinct from it perhaps  
uncovering possible bugs in the latest UHD.

But providing more information will help those who can help you.

---

<div class="post-metadata">

**Author:** ![Lefteris\_Kampianaki](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/l/4da419/32.png) [@Lefteris\_Kampianaki](https://www.ruby-forum.com/u/Lefteris_Kampianaki)\
**Post date:** [November 18, 2014, 2:48am UTC](https://www.ruby-forum.com/t/runtimeerror-b200-2-rx-1-tx-and-1-rx-2-tx-configurations-not-possible/233068/4 "2014-11-18T02:48:05Z")

</div>

Hi all,

I think what Lefteris tries to implement is a 2x2 loopback with a  
USRP-B210.

At least this is what I can see from the flowgraph attached in the first  
email.  
Is that possible with B210?

Best,  
George

---

<div class="post-metadata">

**Author:** ![Lefteris\_Kampianaki](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/l/4da419/32.png) [@Lefteris\_Kampianaki](https://www.ruby-forum.com/u/Lefteris_Kampianaki)\
**Post date:** [November 17, 2014, 11:48pm UTC](https://www.ruby-forum.com/t/runtimeerror-b200-2-rx-1-tx-and-1-rx-2-tx-configurations-not-possible/233068/5 "2014-11-17T23:48:44Z")

</div>

Hi Lefteris -

We recently added that warning. We think we got it right, but it’s  
possible  
something is wrong with the logic that makes it fire.

Can you share your GRC flowgraph?

Cheers,  
Ben

---

<div class="post-metadata">

**Author:** ![Lefteris\_Kampianaki](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/l/4da419/32.png) [@Lefteris\_Kampianaki](https://www.ruby-forum.com/u/Lefteris_Kampianaki)\
**Post date:** [November 18, 2014, 2:53am UTC](https://www.ruby-forum.com/t/runtimeerror-b200-2-rx-1-tx-and-1-rx-2-tx-configurations-not-possible/233068/6 "2014-11-18T02:53:31Z")

</div>

On 11/17/2014 08:46 PM, George S. wrote:

> George  
> Yes, that should easily be possible.

But some checking code was added in UHD 3.8.0 which apparently gets  
inappropriately triggered sometimes, which is what is causing this  
issue.

There was also talk about running and executing the entire flow-graph at  
a cadence of faster than 1Hz, which suggested some design issues  
in the intended application not related to the bug in UHD.

---

<div class="post-metadata">

**Author:** ![Lefteris\_Kampianaki](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/l/4da419/32.png) [@Lefteris\_Kampianaki](https://www.ruby-forum.com/u/Lefteris_Kampianaki)\
**Post date:** [November 19, 2014, 3:38am UTC](https://www.ruby-forum.com/t/runtimeerror-b200-2-rx-1-tx-and-1-rx-2-tx-configurations-not-possible/233068/7 "2014-11-19T03:38:17Z")

</div>

Hello again,

It seems that the patch fixed the problem! Thanks Julian!

For installing the patch with build-gnuradio script:

1. download patch
2. open a terminal at the folder where your uhd files are saved. By  
default  
this is in the folder uhd, inside the folder where you executed  
./build-gnuradio
3. follow instructions here:  
[How to create and apply a patch with Git | devroom.io](https://ariejan.net/2009/10/26/how-to-create-and-apply-a-patch-with-git/)  
or if you are lazy execute:  
git am --signoff \< patch\_file\_name
4. execute ./build-gnuradio uhd\_build to rebuild all UHD
5. done

I still have issues that are described here  
[http://lists.ettus.com/pipermail/usrp-users\_lists.ettus.com/2014-November/011247.html](http://lists.ettus.com/pipermail/usrp-users_lists.ettus.com/2014-November/011247.html)  
But this is for another thread.

Nonetheless, any suggestions for improving my setup are welcome.

Thank you  
Lefteris

On Tue, Nov 18, 2014 at 2:27 PM, Lefteris Kampianakis \<  
[removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)\> wrote:

> 1. Produce samples using MATLAB, not python, not C++. Application  
> )  
> the data through sockets.  
> [http://www.ettus.com/content/files/kb/mimo\_and\_sync\_with\_usrp\_updated.pdf](http://www.ettus.com/content/files/kb/mimo_and_sync_with_usrp_updated.pdf)
> 
> The code attached achieves a refresh rate of 0.5Hz when not receiving the

[http://lists.ettus.com/pipermail/usrp-users\_lists.ettus.com/2014-November/011247.html](http://lists.ettus.com/pipermail/usrp-users_lists.ettus.com/2014-November/011247.html)

> Byte Order: Little Endian  
> CPU MHz: 1200.000  
> Oct 29 09:56:49 UTC 2014 x86\_64 x86\_64 x86\_64 GNU/Linux  
> Device Address:
> 
> > FYI I am having problems even with a simpler configuration like this:  
> > Lefteris
> > 
> > > USRP\_source\_channel2 → WX\_GUI\_scope\_channel2  
> > > – Performing register loopback test… pass  
> > > – Performing timer loopback test… pass  
> > > – The RF LO does not support the requested frequency:  
> > > – Performing timer loopback test… pass  
> > > – The RF LO does not support the requested frequency:
> > 
> > [http://users.isc.tuc.gr/~ekabianakis/](http://users.isc.tuc.gr/~ekabianakis/)  
> > Department of Electrical Engineering  
> > University of Washington  
> > 3927 Adams Lane, NE, Mercer Court D805B, 98105  
> > website: [http://staff.washington.edu/ekampian/](http://staff.washington.edu/ekampian/)  
> > [http://users.isc.tuc.gr/~ekabianakis/](http://users.isc.tuc.gr/~ekabianakis/)  
> > mail: [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)

–  
Eleftherios(Lefteris) Kampianakis  
Electronics and Computer Engineer  
PHD Candidate and Researcher at Sensing Computing Communications Group  
(SGCC)  
Department of Electrical Engineering  
University of Washington  
3927 Adams Lane, NE, Mercer Court D805B, 98105  
website: [http://staff.washington.edu/ekampian/](http://staff.washington.edu/ekampian/)  
[http://users.isc.tuc.gr/~ekabianakis/](http://users.isc.tuc.gr/~ekabianakis/)  
mail: [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)

---

<div class="post-metadata">

**Author:** ![Lefteris\_Kampianaki](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/l/4da419/32.png) [@Lefteris\_Kampianaki](https://www.ruby-forum.com/u/Lefteris_Kampianaki)\
**Post date:** [November 18, 2014, 11:30pm UTC](https://www.ruby-forum.com/t/runtimeerror-b200-2-rx-1-tx-and-1-rx-2-tx-configurations-not-possible/233068/8 "2014-11-18T23:30:02Z")

</div>

Hello all and thank you for your replies.  
Sorry for my delayed answer

First of, I am completely new to USRP, gnuradio and uhd so excuse my  
inability to address the issue myself and point out possible reasons for  
the error.

The overview of what I want to do is this:

while(1){

1. Produce samples using MATLAB, not python, not C++. Application  
specific,  
cann’t change that.
2. Write the samples to a vector/file.
3. Transfer the data to the corresponding gnuradio program written in  
python. This can be done using either files or TCP sockets
4. The samples must be transmitted from one of B210’s channels (the  
other  
is 50Ohms terminated) while the two RX channels sample at the same time.  
That is, the transmission and reception must be executed at the same  
time.
5. Measure and compensate the phase between TX and RX which changes in  
every session. (see here:  
[http://lists.ettus.com/pipermail/usrp-users\_lists.ettus.com/2014-October/011140.html](http://lists.ettus.com/pipermail/usrp-users_lists.ettus.com/2014-October/011140.html)  
)
6. Stop the gnuradio script in a way that a) no more samples are written  
to  
memory/disk b) restart is posssible without errors. For details see  
here:  
[http://lists.ettus.com/pipermail/usrp-users\_lists.ettus.com/2014-October/011242.html](http://lists.ettus.com/pipermail/usrp-users_lists.ettus.com/2014-October/011242.html)  
and here  
[GNURADIO and USRP: Start(), Stop(), run(), wait() in GNURADIO : top\_block](http://sumitgnuradio.blogspot.com/2012/10/either-you-can-use-tb.html)  
and here  
[[Discuss-gnuradio] how to stop the top\_block and restart signal transmis](http://lists.gnu.org/archive/html/discuss-gnuradio/2011-02/msg00300.html)  
7)Process samples in MATLAB by ‘freading’ the written files or by  
getting  
the data through sockets.  
}

My goal is to conduct channel measurements. Therefore, in order to  
compensate for the TX/RX phase that changes in every session in B210 I  
have  
splitted the signal using a power splitter with known phase and send one  
port to RX1. Since RX1, RX2 phase is constant in every session, I can  
then  
calculate the phase difference between TX and RX and do my channel  
measurements.

In other words, I want to implement a setup like the one depicted here  
[http://www.ettus.com/content/files/kb/mimo\_and\_sync\_with\_usrp\_updated.pdf](http://www.ettus.com/content/files/kb/mimo_and_sync_with_usrp_updated.pdf)  
in figure 1 in order to acquire knowledge of the phase between the RF  
inputs and outputs of the B210.

Now, as to what I have developed so far. I have attached a grc flowgraph  
that is as simple as it gets. It consists of 2 signal sources and a  
scope  
connected to a usrp sink and source respectively. This setup produces  
the  
aforementioned error. I also noticed that whenever I receive this error,  
either only TX works or only RX, never both and this is done randonly.  
An  
example of series of executions that I monitored is the following:

OK (both transmitting)  
OK (both transmitting)  
Error, Only RX works  
OK (both transmitting)  
OK (both transmitting)  
OK (both transmitting)  
Error, Only RX works  
Error, Only TX works  
OK (both transmitting)  
Error, Only TX works

and it continues randomly

That was a first indication that something is wrong in the first place.

I proceeded with the development of a simple flowgraph that utilizes  
file  
sinks and sources as well as head blocks to stop the execution of the  
flowgraph after a specifica mount of samples. This is attached too.

Finally, I edited the python code, so that endless loop of flowgraphs  
restarting is conducted. (also attached).  
The code attached achieves a refresh rate of 0.5Hz when not receiving  
the  
error, which is acceptable for my application.

I know this is completely inefficient and please share any ideas on the  
subject. However, this is not my primary concern at this point. My main  
objective now is to have a viable demonstration and not a fast refresh  
rate. 0.5 Hz is barely enough.

At this point my 2 major issues are the following:

1. The error/warning that this thread discusses
2. The problem described here:  
[http://lists.ettus.com/pipermail/usrp-users\_lists.ettus.com/2014-November/011247.html](http://lists.ettus.com/pipermail/usrp-users_lists.ettus.com/2014-November/011247.html)  
which is being addressed.

Any advice on any subject from the ones mentioned here are extremely  
welcome.

My setup is the following  
lscpu:  
Architecture: x86\_64  
CPU op-mode(s): 32-bit, 64-bit  
Byte Order: Little Endian  
CPU(s): 4  
On-line CPU(s) list: 0-3  
Thread(s) per core: 2  
Core(s) per socket: 2  
Socket(s): 1  
NUMA node(s): 1  
Vendor ID: GenuineIntel  
CPU family: 6  
Model: 58  
Stepping: 9  
CPU MHz: 1200.000  
BogoMIPS: 4988.84  
Virtualization: VT-x  
L1d cache: 32K  
L1i cache: 32K  
L2 cache: 256K  
L3 cache: 3072K  
NUMA node0 CPU(s): 0-3

uname -a:  
Linux kampianakis-Macmini 3.13.0-39-generic #66~precise1-Ubuntu SMP Wed  
Oct  
29 09:56:49 UTC 2014 x86\_64 x86\_64 x86\_64 GNU/Linux

lshw output, attached.

Gnuradio version 3.7.5.1

## uhd\_find\_devices: linux; GNU C++ version 4.6.3; Boost\_104800; UHD\_003.008.000-18-g864f84b5

## – UHD Device 0

Device Address:  
type: b200  
name:  
serial: F50007  
product: B210

Thank you in advance  
Lefteris

PS sorry for the long post.

On Mon, Nov 17, 2014 at 2:15 PM, Lefteris Kampianakis \<  
[removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)\> wrote:

> to have an execution rate of \> 1Hz  
> [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)\> wrote:
> 
> > signal\_source@2khz → USRP\_sink\_channel2  
> > – Operating over USB 3.  
> > – Asking for clock rate 28.000000 MHz  
> > – Successfully tuned to 915.000000 MHz  
> > – Asking for clock rate 28.000000 MHz  
> > – Successfully tuned to 915.000000 MHz  
> > \*thread[thread-per-block[2]: \<block gr uhd usrp sink (24)\>]:  
> > Lefteris  
> > University of Washington  
> > 3927 Adams Lane, NE, Mercer Court D805B, 98105  
> > website: [http://staff.washington.edu/ekampian/](http://staff.washington.edu/ekampian/)  
> > [http://users.isc.tuc.gr/~ekabianakis/](http://users.isc.tuc.gr/~ekabianakis/)  
> > mail: [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)

–  
Eleftherios(Lefteris) Kampianakis  
Electronics and Computer Engineer  
PHD Candidate and Researcher at Sensing Computing Communications Group  
(SGCC)  
Department of Electrical Engineering  
University of Washington  
3927 Adams Lane, NE, Mercer Court D805B, 98105  
website: [http://staff.washington.edu/ekampian/](http://staff.washington.edu/ekampian/)  
[http://users.isc.tuc.gr/~ekabianakis/](http://users.isc.tuc.gr/~ekabianakis/)  
mail: [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)
