Porting benchmark_tx/rx to UHD for use with E100

Hey all -

I’m attempting to make the necessary changes to get benchmark_tx/rx.py
working on the E100 with UHD. My end goal is to preserve
backwards-compatibility with non-UHD runs since the old USRP[1,2]
drivers will remain in GNURadio for a bit longer. As it turns out,
this requires very little modification to the actual benchmark_tx/rx
scripts themselves, and more in generic_usrp.py,
usrp_transmit_path.py, pick_bitrate.py, and the like.

Anyways, I’ve got the benchmark_tx stack to the point that it starts
up, detects the E100, and runs off on it’s merry way transmitting. At
least, it thinks it is transmitting. Spectrum analyzers show the
channel as completely empty though.

I’m trying to track down why the E100 thinks it is putting data over
the air, but actually isn’t. I have a suspicion that it has something
to do with my ugly, ugly hacks to bypass some of the old generic_usrp
interface for UHD functions, but I can’t seem to track it down.

I’ve thrown my changes up on GitHub in case anyone else working on the
E100 has an interest in this, and maybe wants to have a look and see
if I’m just doing something silly.

Word of warning: My changes thus far are EXTREMELY ugly.
“generic_usrp.py” is littered with ‘FIXMEs’, and the current state of
the code in no way reflects the end goal. Right now, I’m just trying
to get a grasp on how this needs to come together, and how to make it
work to begin with. Once that is done, I’ll get it production-worthy.
Also, note that my changes thus far are UHD + E100 specific - it is
unlikely that these changes will enable UHD + USRP[1,2]/N210 in their
current form, although that is the end goal.

The code: https://github.com/bhilburn/gnuradio-on-e100

Running it: # ./benchmark_tx.py -f 462M -u uhd

Once this is all done and cleaned-up, I’ll send out a patch/commit
with the final changeset.

Cheers,
Ben

Hey Ben

I'm working on USRP N200.I am also trying to run benchmark_tx/rx.py

codes to make two USRP N200s communicate with each other. Two USRPs are
connected to two different PCs. The changes which you have made in these
codes are also used for N200 or for only E100. I have got stuck at this
point of time and a little help would be highly appreciated.

Thanks
Saketh

Ben H. wrote in post #975551:

Hey all -

I’m attempting to make the necessary changes to get benchmark_tx/rx.py
working on the E100 with UHD. My end goal is to preserve
backwards-compatibility with non-UHD runs since the old USRP[1,2]
drivers will remain in GNURadio for a bit longer. As it turns out,
this requires very little modification to the actual benchmark_tx/rx
scripts themselves, and more in generic_usrp.py,
usrp_transmit_path.py, pick_bitrate.py, and the like.

Anyways, I’ve got the benchmark_tx stack to the point that it starts
up, detects the E100, and runs off on it’s merry way transmitting. At
least, it thinks it is transmitting. Spectrum analyzers show the
channel as completely empty though.

I’m trying to track down why the E100 thinks it is putting data over
the air, but actually isn’t. I have a suspicion that it has something
to do with my ugly, ugly hacks to bypass some of the old generic_usrp
interface for UHD functions, but I can’t seem to track it down.

I’ve thrown my changes up on GitHub in case anyone else working on the
E100 has an interest in this, and maybe wants to have a look and see
if I’m just doing something silly.

Word of warning: My changes thus far are EXTREMELY ugly.
“generic_usrp.py” is littered with ‘FIXMEs’, and the current state of
the code in no way reflects the end goal. Right now, I’m just trying
to get a grasp on how this needs to come together, and how to make it
work to begin with. Once that is done, I’ll get it production-worthy.
Also, note that my changes thus far are UHD + E100 specific - it is
unlikely that these changes will enable UHD + USRP[1,2]/N210 in their
current form, although that is the end goal.

The code: https://github.com/bhilburn/gnuradio-on-e100

Running it: # ./benchmark_tx.py -f 462M -u uhd

Once this is all done and cleaned-up, I’ll send out a patch/commit
with the final changeset.

Cheers,
Ben