Instrument Control (GPIB, Serial, VISA, IVI)

cancel
Showing results for 
Search instead for 
Did you mean: 

official ni-rio drivers for linux ?

Are there any plans by NI to officially develop the RIO drivers for Linux.

 

I already know that the labview fpga module is not ported on linux, however I am looking at the possibility of using the 78xx RIO boards like this:

 

i) make the bitfile on windows via lavbiew fpga (with a development computer for example) 

ii) use the RIO drivers on linux (host computer) and interface to a C program without labview (including downloading the bitfile, running it and pci/pxi communication)

 

I am already following this flowchart on windows using the C api for lavbiew fpga.

Unfortunetly on linux this would require the RIO drivers.

I know some people have developped custom drivers (http://forums.ni.com/ni/board/message?board.id=280&message.id=2889&query.id=911247#M2889), so there are no technical reasons that forbid it. 

0 Kudos
Message 1 of 9
(5,230 Views)

Hi Kitten-

 

    We are actually investigating adding some NI-RIO support for Linux.  If you could provide some information about your application, I think it could help.  First, a general overview of what you're trying to do and why Linux. Which disribution will you be using? What would you think about compiling your own kernal if it was an option? What are your performance and jitter requirements? 

 

Thank you for providing further detail, we appreciate your feedback!

 

Regards,

 

John Harvey

NI-RIO Product Support Engineer

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

Thank you for your answer.

I ll try to detail a bit more my application:

 

1) why do I use ni fpga.

 

I am doing experimental quantum optics, and as thus I have many electronic systems for control and measurement of my optical setup.

Basically I am using a lot of custom made analogic circuits, but shifting more and more to digital circuitry.

Especially I like to use ni fpga with LV FPGA because the prototype development time is very short compared to anything else, and I can change it easily, whereas analogic circuits are a pain in the neck to modify/optimize, and other fpga solutions require VHDL or Verilog.

Typically when I need a new function I make a prototype program on LV FPGA with as few external circuitry as possible, and when ready I just copy-paste it with the other fpga programs into a bigger main program.

For example at the moment I have functions on my FPGA cards to do complex triggering sequences (several digital outputs synchronized together in the way I like), frequency counters to measure temperatures at different points of my setup ( a simple thermistor with a resistor-set oscillator chip whose output is directly sent to one FPGA DIO, very scalable), some demodulation circuits and a few others.

 

2) how do I use ni fpga.

 

I don't run labview when running the actual experiment.

Since I have other systems that need to be controlled at the same time, using regular labview would be too time-consuming.

So once I have a compiled fpga bitfile made in LV FPGA, I use the FPGA C api to download this bitfile, start the fpga, and I can then easily control it with read/write functions via the C api.

My program is actually a Ruby script (Python like) that interfaces to many dlls, which are as many layers to some constructor driver and electronic board (most of them are from NI).

At the moment I have layer dlls for a M serie DAQ board (via daqmx), a high speed NI digitizer (via ni-scope), two R serie intelligent daqs (via the FPGA C api), and finally a Tektronix oscilloscope (via Ni-Visa).

All of these devices are used simultaneously from one single Ruby script that directly call the dll functions.

In the case of the FPGA C api, I actually just compiled the NI provided .c source with gcc and control everything directly from Ruby.

For the oscilloscope and digitizer, I have additional compiled C functions that do the numerical heavy lifting.

 

3) why linux.

 

At the moment in all the computers I use, the one hosting the electronic cards (PXI chassis) is the only left on Windows and this starts to be cumbersome.

Besides, I am convinced that Linux is the way to go for embedded systems and complex measurement systems in the future.

Recently more and more constructors are supporting some Linux distributions for their products, as NI also does.

Finally since I develop a lot of custom software for control, measurement, and further numerical analysis, I like the open-development provided by linux.

Once you start doing development on open systems, a lot of things are easier.

 

About the distribution, I would use openSuse 10.x.

I don't mind compiling the kernel for specific driver needs if I have to.

Performance requirements are just being able to read/write fpga basics types (I and U8/16/32 and boolean) on the fpga, as I don t do dma transfer. Scalar would be enough.

Since the fpgas run themself the necessary programs, all I have to do is simple state-machine like control from the host computer. 

The cards I use are the PXI 7833 and PXI 7854, but I might look into Flex RIO in the future.

 

After looking around on the forums, I realized I could write my own driver with register-based communication.

But that would certainly be very much time consuming. 

 

I hope my explanation were clear enough ^_^

0 Kudos
Message 3 of 9
(5,164 Views)

I too am very interested in NI-RIO drivers for Linux or any combination of hardware and dirivers that runs under Linux for use in a motion control application. In fact I'd say I'd love to be line for a beta test of anything you guys have cooking!

0 Kudos
Message 4 of 9
(5,038 Views)

Hi gtg811q-

 

    I  appreciate your enthusiasm!  We'll certainly let you know if an opportunity like that is available.  I don't forsee any testing opportunities right now though.  If you'd like to reply back with details on your applications, uses, and requirements we are always happy to recieve feedback and suggestions!! Thanks.

 

Regards,

 

John H

0 Kudos
Message 5 of 9
(5,003 Views)

Any word on RIO drivers?

 

We are using the PCI-7811R to generate several channels of stepper motor puleses and to read some temperatures.

 

0 Kudos
Message 6 of 9
(4,785 Views)

The NI-RIO 3.5 release [1] for Linux includes a C API for interacting with your FPGA devices. Note that while the FPGA bitfile still needs to be written and compiled with LabVIEW and the LabVIEW FPGA module on a Windows machine, the card and controlling application can be deployed on a Linux target.

 

[1] NI-RIO 3.5 - Linux

http://joule.ni.com/nidu/cds/view/p/id/2134/lang/en

Joe Friedchicken
NI Configuration Based Software
Get with your fellow OS users
[ Linux ] [ macOS ]
Principal Software Engineer :: Configuration Based Software
Senior Software Engineer :: Multifunction Instruments Applications Group (until May 2018)
Software Engineer :: Measurements RLP Group (until Mar 2014)
Applications Engineer :: High Speed Product Group (until Sep 2008)
0 Kudos
Message 7 of 9
(4,704 Views)

The future is NOW! I'm walking running to the lab to go try it out!!

0 Kudos
Message 8 of 9
(4,701 Views)

Glad to hear.  Let us know how it goes!!

 

Just to be clear from the above post, the FPGA Interface C API is a separate download.  On the development computer you would install NI-RIO and the FPGA Interface C API (add-on to NI-RIO) develop the application.  NI-RIO for Linux allows you to run the C app on Linux.

 

-John Harvey

NI-RIO Product Support Engineer

0 Kudos
Message 9 of 9
(4,637 Views)