USRP Software Radio

cancel
Showing results for 
Search instead for 
Did you mean: 

Configuring Ettus USRP B200 on LabVIEW Windows

Hello again NI Forums,

 

I acquired an USRP B200 unit which I am successfully able to use with LabVIEW in Windows by using the most current UHD Drivers and the USB Drivers that are found on the Ettus website:

 

https://files.ettus.com/manual/page_install.html

 

I realized the B2x0 is now compatible with LabVIEW (since very recently I believe), thus I would like to ask on how to configure it. My main goal is to configure it for int8 samples on LabVIEW Windows environment.

 

In my previous specific application, I was using INT8 samples collected from an NI-USRP2932, and to achieve that I basically set the property node configuration as follows:

 

Host Data Type - I16

Sample Width - int8

Expected Peak - 0.00390625 (which is 128/32768 basically)

 

I was getting normal samples with Gain set to 0 in the NI-USRP2932. Now for the B200 this does not work directly with this configuration. In fact I am getting odd behaviours which happen as follows:

 

-When I use Host Data Type I16 and Sample Width int8 and irrespective of Expected Peak and/or Gain, I get nothing, not even noise. All zeros.

ScreenHunter_582 Oct. 01 17.16.jpg

 

When I set the Sample Width to int16 now it starts to show samples, but the Expected Peak values don't seem to make a difference:

 

ScreenHunter_583 Oct. 01 17.22.jpg

 

My main goal is to be able to use int8 samples, since I believe this is possible with GNU Radio (native environment for the B200 I believe). Is this possible in a native way in LabVIEW Windows environment? Meaning, directly in the configuration so that the USRP outputs int8, and not having to use any extra VI functions such as Convert to INT8 or something.

 

Here is my Block Diagram VI (basically the One Shot Rx with some modifications). I am using the property node to setup everyting as per the suggestion I found somewhere in this forum.

 

First section:

ScreenHunter_584 Oct. 01 17.23.jpg

 

Second section:

ScreenHunter_585 Oct. 01 17.23.jpg

 

I have also attached the VI.

 

Thanks,

Erick

0 Kudos
Message 1 of 12
(9,239 Views)

Test no. 2. 

 

Anyone? Thanks!

 

Smiley Tongue

0 Kudos
Message 2 of 12
(9,181 Views)

Hello erickschmidt,

 

I had a couple questions for you regarding your setup:

Which version of the NI-USRP driver are you using? 

Are you able to successfully run an unmodified example on the USRP B200?

Is the code that you posted the same code you used with the NI USRP-2932?

Is it possible for you to post picture of the data that you received from the NI USRP-2932?

 

Thank you,

0 Kudos
Message 3 of 12
(9,173 Views)

Hello Alex. Sorry for the late reply.

 

Which version of the NI-USRP driver are you using?

 

I was using 15.0 in the previous post, but this whole day I spent upgrading to version 16.0. I also downloaded LabVIEW 2016 64-bit, as well as Modulation Toolkit 16.0 and some other patches that downloaded automatically. It took me a whole day (Very heavy files btw). And I thought this would help but it seems not.


Are you able to successfully run an unmodified example on the USRP B200?

 

Yes, this VI would correspond to the CDB mode. This works okay. But as I mentioned before my goal is to use int8 samples for higher sampling rate and faster processing, etc.

 

2932:

2932 with OEM Rx One Shot.vi (CDB mode)


B200:

B200 on Rx One Shot.vi unmodified (CDB mode)

 

Is the code that you posted the same code you used with the NI USRP-2932?

 

Correct. This VI works for both B200 and USRP2932.

 

NOTE: I actually have modified (attached VI too) this VI and removed the Bandwidth configuration in the Property Node since it was messing the B200 spectrum in a very odd way. See this image for INT16 with the B200 and Max Gain set (since this becomes evident when Gain is increased). This also happens with CDB on the B200:

 

B200 Bandwidth Setting Strange Behavior With INT16

 

Is it possible for you to post picture of the data that you received from the NI USRP-2932?

 

Yes. 

 

Here is 2932 with the modified VI (VI attached) set to INT16:

ScreenHunter_596 Oct. 06 01.09.jpg

 

Here is the 2932 with the modified VI set to INT8 and the expected peak to 32768/128. It seems to work just fine.

ScreenHunter_595 Oct. 06 01.09.jpg

 

Here is the B200 with the modified VI set to INT16 (it seems to work I guess but I want to use int8):

ScreenHunter_597 Oct. 06 01.10.jpg

 

Here is the B200 with the modified VI set to INT8 and expected peak to 32768/128, gain set to zero. Signal killed completely.

ScreenHunter_599 Oct. 06 01.10.jpg

 

Finally, here is the B200 with the modified VI set to INT8 and expected peak to 32768/128, gain set to MAX. Now something is seen there but seems like a very bad clipped signal. The range where it gets clipped should be 127 to -128 as int8.

ScreenHunter_598 Oct. 06 01.10.jpg

 

Sorry for so long post. Is there any ready example where the B200 has been used as int8? This would help.

 

Thanks!

0 Kudos
Message 4 of 12
(9,154 Views)

Any news ? Bump Smiley Tongue

0 Kudos
Message 5 of 12
(9,124 Views)

Hello erickschmidt:

 

Are you still seeing this issue? Have you run the example with an input signal? I can see the same behavior when lowering the input signal to below -45dBm (with no additional gain). You can also check out the niUSRP EX Rx Customize Fetch Type and Sample Width VI for an out of the box example. There is a front panel control on the bottom left that allows you to select the sample width.

0 Kudos
Message 6 of 12
(8,968 Views)

Hello kgilbertNI,

 

Response to your questions:

1. Yes, I still see the issue. I've been using INT16 for now.

2. I'm sorry I didn't get what example you refer to ("Have you run the example with an input signal")? The VI's I use are attached in previous posts and there is no option of dBm's, only Gain in dB from NI-USRP VI's. I actually haven't tested this last VI you mention ("niUSRP EX Rx Customize Fetch Type and Sample Width"). I will give it a try although the VI's I uploaded in the previous posts do have these options (Sample Width, etc) set in the Property Node, which I am pretty sure is a similar thing as this VI you mention.

 

Some summary notes on my side:

 

1. I actually found out that the Bandwidth parameter from the Property Node disrupts/attenuates/affects the signal quite a lot, unless you use a setting of 20MHz, which I believe is the default value. In other words, it only takes the default value; other than that, it practically kills the signal. As opposed to the NI-USRP2932, which (at least) doesn't disrupt the signal when modifying this said parameter.

 

2. In general, when using the INT8 parameter from the Property Node for the B200, the GPS post-processing script mentioned in previous posts does find satellites and tracks them, but the signal quality is noticeably lower. I know this because when using the INT16 parameter, the signal is much clearer; and also when I say this, I am considering the "quantization noise" coming from INT16 to INT8 transition. And the reason I know this is because I've seen GPS samplers that use even 2-bits (GN3S receiver) and show a better signal quality in the same GPS post-processing script as opposed to the INT8 setting from the B200.

 

My hypothesis is that the B200 is not fully compatible with INT8 samples when requested from the NI-USRP VI's (or NI-USRP Driver?). And actually even the NI-USRP2932 in INT8 mode also shows a better signal quality than the INT8 mode in B200, which further adds to my hypothesis.

 

Thanks

Erick

0 Kudos
Message 7 of 12
(8,959 Views)

Hi,

We bought the SDR USRP b200mini of Ettus
https://www.ettus.com/product/details/USRP-B200mini

 

is this hardware compatible with LabVIEW?

0 Kudos
Message 8 of 12
(8,836 Views)

Hello Matías.L.Martini,

 

The B200mini is not natively supported by LabVIEW but it is possible to pull over the necessary files from the Ettus drivers to add support. Here are the steps you will need to go through to use the B200mini with LabVIEW:

 

1.    Install NI-USRP 16.0
2.    Install Ettus USB Driver: (you might have already done this you were using the B200mini with UHD before)
      a.    https://files.ettus.com/manual/page_transport.html#transport_usb_installwin
3.    Download Ettus Images/Firmware:
      a.    http://files.ettus.com/binaries/images/uhd-images_003.009.004-rc1.zip
      b.    Copy images/FW for b200 mini to the NI-USRP directory: C:\Program Files (x86)\National Instruments\NI-USRP\images
4.    Run find devices to make sure that all of the steps above worked:
      a.    C:\Program Files (x86)\National Instruments\NI-USRP\utilities\uhd_find_devices.exe
5.    Use the device in LabVIEW!

 

I hope that this helps!

0 Kudos
Message 9 of 12
(8,816 Views)

Hi, Alex

Hope you are doing great. I was facing an issue regarding the use of USRP B200 through the LabVIEW usrp open tx session. I have performed all the steps listed above but couldn't able to configure the device in LabVIEW. Although, I can see the B200 under the Device Manager Hardware.

Also, when I click the "uhd_find_devices.exe", the window pop-ups and closes without showing anything.

 

Device.PNG

 

0 Kudos
Message 10 of 12
(3,570 Views)