From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

USRP Software Radio

cancel
Showing results for 
Search instead for 
Did you mean: 

difference between NI-USRP and UHD

Solved!
Go to solution

Hello

 

My project goal is to develop both the driver code for a custom daughterboard and a Labview vi control panel to modify the daughterboards properties.

 

I have been developing the UHD in Linux to include support for the daughterboard follwing the format of the existing Ettus boards. This all works fine in conjunction with GNU radio/GRC.

 

Now that I am trying to develop a Labview application to control the board I have had to move away from Linux as there is no Labview support for the USRP in Lunix.

 

I am just getting going here with Windows and am about to install the NI-USRP support package for Labview.

 

I am concerned this is a dead end though. What is the NI-USRP? Is it a wrapper that allows Labview to interface with the UHD API? Or is it an alternate driver to the UHD?

 

I was planning on building the UHD in windows to including the patch I have made for our daughterboard and then develop a higher level control system in Labview. In my reading thus far however, it looks as though the NI-USRP doesn't talk to the UHD, it is a self contained driver with it's own hardware support. If the UHD and NI-USRP are mutually exclusive, how am I going to build the NI-USRP from source? (assuming it is proprietary code)

 

More generally I could phrase my question as: How do I develop driver support for my daughterboard such that I can use it with Labview?

 

After-all, I understood one of the major purposes the USRP is sold for, is to enable daughter board development. It stands to reason then that it should be possible to use NI's development environment? 

 

Any advice on what I need to install/acquire to set up a:

 

Labview -> driver -> USRP -> custom daughterboard

 

development environment would be greatly appreciated.  Smiley Happy

 

Alex

0 Kudos
Message 1 of 9
(8,319 Views)
Solution
Accepted by topic author buckleyalex

Alex -

 

Your application sounds very exciting and novel.   The NI-USRP driver is designed to work on a specific build of UHD and a specific FPGA image.  In order to provide a refined user experience it has been tested with NI USRP-29xx hardware and was not meant to be recompiled by the end user or used with custom daughterboards.

 

That said, you can call labraries and communicate with your own GNU radio applications through an internal UDP socket.  Based on the limited information I have on the application I would recommend staying in Linux and using LabVIEW for Linux.  You will have both the ability to call libraries and use UDP as I have described.  If you choose to move to windows you may add some basic IP capaiblies for functions / toolkits that run only in the Windows OS.

 

Erik

0 Kudos
Message 2 of 9
(8,259 Views)

Hi Erik

 

Thank you very much for your reply and the information.

 

I will investigate the UDP sockets approach and see opportunities it provides.

 

cheers

Alex

0 Kudos
Message 3 of 9
(8,249 Views)

Hi Eric,

 

As a follow up the the question above and to add more clarification, is NI-USRP essentially equivalent to the gr-uhd package used in GnuRadio? Is it possible to use gr-uhd functions from within NI-USRP (Labview)? If NI-USRP is replacing gr-uhd, I'm assuming the answer to my second question is no.

 

Thanks

Simon

0 Kudos
Message 4 of 9
(7,000 Views)

Simon,

 

They are not quite equivalent, but we hope to provide feature parity over time.  Between the NI-USRP LabVIEW API, the LabVIEW Modulation Toolkit, LabVIEW DSP Designer Toolkit, MathScript RT, and built-in LabVIEW Analysis VIs... and a collection of examples on line we are getting close.  Please let us know if you see feature gaps that we need to close!

 

NI-USRP LabVIEW API will NOT replace gr-uhd.  UHD can exist simulataneously with the NI-USRP driver and both will be maintained.  NI-USRP is intended for the LabVIEW customer.

0 Kudos
Message 5 of 9
(6,944 Views)

Thank you for your response. Perhaps, myquestion was unclear, I did not mean to ask if NI-USRP was replacing UHD in general. I was asking if NI-USRP was playing the same role for LabView that gr-UHD plays in the GnuRadio environment.

 

Perhaps I should explain my application and see if you can help. I have developed some MIMO OFDM code in LabView (w/ the Modulation Toolkit and Mathscript) for USRP N210. I am trying to evaluate the performance of reconfigurable antennas in a MIMO OFDM system. The reconfigurable antennas require control signals and I would like to be able to do this from within Labview by  writing/reading to/from the Debug port of the USRP board. I have done something similar in GnuRadio by making modifications to the FPGA image and using a function from gr-UHD package called "set_user_register". Would it be possible to call this function from Labview? If not, can you provide some guidance on what other methods I may be able to use to write/read to the Debug port of the USRP board?

 

Thanks,

Simon

0 Kudos
Message 6 of 9
(6,937 Views)

Please use Property Nodes to set low level commands at runtime like switching the antenna,  adjusting the center freq, etc...  Are you trying to send timed commands or just switch settings at runtime?

0 Kudos
Message 7 of 9
(6,930 Views)

Please use Property Nodes to set low level commands at runtime like switching the antenna,  adjusting the center freq, etc...  Are you trying to send timed commands or just switch settings at runtime?

0 Kudos
Message 8 of 9
(6,929 Views)

I am not trying to switch between antenna ports or center frequency. The reconfigurable antenna is able to change its radiation pattern electrically. The idea is to trasmit using a certain radiation pattern (state), get some feed back about the channel(ie. SNR) from the reciever and change the transmitter's radiation pattern to increase SNR at the reciever by trying other radiation patterns (states). In order to control the radiation pattern of the antenna, I would like to be able to write specific bit patterns corresponding to different antenna states to a register (Debug) on the FPGA board. Then I would wire these registers to the antenna's control circuitry. The goal is to write algorithms in LabView that would modify the antenna radiation pattern based on channel state information.

0 Kudos
Message 9 of 9
(6,923 Views)