I need to read continiously analog input from an AI module in cDAQ-9181 Ethernet chassis under linux. cDaq devices are not listed among those supported by Daqmx Base 15.0 for Linux.
I could configure the device and create task under NI MAX for windows, but really need at least to be able to start and read data stream on Linux. Short of setting up a virtual machine with a version of MS operating system for that sole purpose, are there any options? Could NI disclose at least a part of their API so that I could implement a driver myself?
I'd recommend going with the virtual machine as a workaround for using a cDAQ that is not supported by DAQmx Base. Using virtual machine is the simplest solution by far -- otherwise you'd have to do register-level programming to essentially develop your own API for your cDAQ.
Is there any publicly available info on register-level programming of ethernet compact daq devices?
There is no public documentation at this time about the communications protocol for USB or Ethernet CompactDAQ devices, nor are they currently supported in NI-DAQmx Base or NI-DAQmx 8.0.2 for Linux. Please contact your NI sales representative if you'd like to push NI R&D further.
The absence of Linux driver for that chassis is very hard to explain, considering that it runs Linux itself.
The Ethernet CompactDAQ devices don't have a "full" CompactDAQ driver on the firmware side; they have a very limited embedded Linux distro and rely on the (Windows-side) DAQmx driver to do a lot of the heavy lifting for the "CompactDAQ" aspects of the device.
You might be more interested in the CompactDAQ Controllers product line, which run NI Linux RT, can operate without the Windows "tether", and are designed to run user application code on the device itself.
I couldn't find any on the ni.com site
Open-source license disclosures can be found installed with the NI-DAQmx distribution in "C:\Program Files (x86)\National Instruments\_Legal Information\NI-DAQmx [version]\notice.txt". (This directory is noted in the "Legal Information" section of the Readme.) These include the "written offers" for source code.
As mentioned previously, the most straight forward solution by far is going to be to use a VM, since DAQmx base does not support cDAQ. If you're using a model of cDAQ that has Linux RT on it and interested in that source code, you can get more information at the Linux RT Community boards here. Glancing through the description at the front page it looks like there are links to the source code and packages included.
The "written offers" in daqmx distribution are offers to email source for various system coponents like busybox and libusb, nothing like github repository for RT linux, so completely unhelpful.
Since RT linux controller can work with cDAQ modules, Linux drivers for them exist.
Linux drivers for ethernet and wireless cDAQ backplanes do not exist. Linux drivers for USB cDAQ backplanes do exist, but they are currently only provided for use with NI Linux RT controllers, like cDAQ-913x.
If you have a need for general Linux driver support for cDAQ backplanes, please contact your local NI sales team so that they can escalate the request with NI marketing and R&D.