Simultaneous RX/TV with RFX2400


#1

Hi,

I’ve been browsing through the mailing list archives to find some
examples of simultaneous rx/tx but with no luck. I have two USRP’s,
each equipped with RFX2400 and one antenna, attached to TX/RX. I would
like these two radios to talk to each other in an asynchronous fashion

  • a radio can receive while transmitting and vice versa. Is it
    possible to do it with just one antenna per box, or do I have to get a
    second antenna and connect it to the RX2? From reading the archives, I
    gather that I should use set_auto_tr(true) – can anyone elaborate on
    that? how does it work? As far as I understand it switches between
    rx/tx mode - isn’t there a risk of a loss of data?

How would I go about implementing such behavior? Do I need to run two
separate threads, one for tx and one for rx?

Any help greatly appreciated.

Regards,
Jakub.


#2

Hi Jakub - 2 possibilities, depending on how one interprets your
question:

A) If what you mean is “using a single host computer that controls the
two USRPs such that one transmits while the other receives and vice-
versa, but never a single USRP both Tx and Rx simultaneously”, then
yes, that can be done; you could probably even use two host computers
that sync the Tx/Rx in a MAC-like way using the current GNU Radio
software, so long as each USRP is not trying to do simultaneous Tx and
Rx. If using a single host computer: on each USRP, you’d use
set_auto_tr(true) and then control both USRPs from the same Python
script. My colleague Glenn has done this in a “TDMA fashion” to
compare properties of actual and theoretical relays; see his MS thesis
and related paper at UND < http://www.nd.edu/~jnl/group/glenn-
bradford/ >.

B) If what you mean is “simultaneous Tx/Rx on each USRP, using a
single RFX and single antenna”, then this problem is (1) possibly not
do-able in the current state of GNU Radio software and USRP hardware;
and (2) even if it is do-able, certainly not easily so in GNU Radio
software without significant hacking to make it work. The primary
issue is in jointly estimating the channel parameters (both the Tx ->
Rx delay and filter coefficients), which might be time-varying or
dependent on qualities beyond the direct TX signal. I’m happy to
discuss this interpretation further off-list.

Hope this helps! - MLD


#3

Dear Michael and Jakub,
I was working on the similar problem. What about using two TX daughter
boards in the same motherboard, and BOTH TRANSMITTING signals
simultaneously, one from each daughter board, but in an “overlapped”
fashion. Is it easily possible? What I mean is, I would like to have two
signals generated from two daughter boards plugged into the same
motherboard
but interleaved in some fashion so that I can study the effect of that
interleaving on the receiver side (receiver is on a different host far
from
these two simultaneously transmitting USRPs). Sorry if I am not being
clear.
But I am guessing Michael and Jakub will understand what I am asking.

-Sincerely,
-Bishal.


#4

On Apr 13, 2009, at 5:17 PM, Bishal T. wrote:

these two simultaneously transmitting USRPs). Sorry if I am not
being clear.

Hi Bishal - I understand the basics if what you’re trying to do, but
not the specifics. If the TX interleaving is done in frequency (FDMA
or OFDM) or codes (CDMA), then you should be able to do what you want
with some clever programming. OTOH, TDMA interleaving could be an
issue – depends on how you’ve implemented the overall system. I can
think of a number of ways to configure TDMA-like transmissions that
could work in your dual USRP setup – that said, they all require very
clever programming. Tell us more specifics of what you’re trying to
do, and maybe we can help more precisely (either on or off list, as
you see fit). - MLD


#5

Hi Michael,

my intention is to allow a communication between two USRP’s hooked up
to two different computers. Each USRP has one RFX2400 daughterboard
and one antenna connected to the Tx/Rx port. I have a more of a CS
than ECE background and my focus here is on the application level. I
would like the radios to be able to send and receive messages
asynchronously - which can mean asynchronous communication at the
application layer, but synchronous below - perhaps not even observable
above. In my scenario, radios send messages which are read from some
buffer and at the same time receive messages and put them in a
different buffer for further processing. How do I go about
implementing such scenario? Do I have to implement a protocol which
consists of some time-based switching of rx/tx? Can I achieve it with
only one antenna per USRP, or do I need two of them - one for Tx//Rx
and one for Rx2 port?

I imagine that in the case of only two radios, I could achieve this
behavior by allowing one radio to Rx while the other is Tx-ing and
after short time, switching the direction to the opposite, to allow
the first radio to Tx. However, I don’t see how this could be achieved
if 2+ radios are involved - without the prior knowledge of the number
of “neighbors”. That is why I thought each radio should be allowed to
Tx and Rx at the same time.

Thank you for help!
Jakub.