10-24-2013 06:55 AM
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.
Alex
Solved! Go to Solution.
10-30-2013 10:15 AM
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
10-31-2013 05:03 AM
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
10-30-2014 02:26 PM
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
11-03-2014 09:29 AM
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.
11-03-2014 01:47 PM
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
11-03-2014 02:26 PM
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?
11-03-2014 02:26 PM
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?
11-03-2014 04:40 PM
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.