Steve D. Sharples
Last update (code): 6 October 2004
Last update (website): 11 December 2009
Related links:
Communicating with VXI11 Ethernet Devices from Linux (How to talk to your Agilent or Tektronix Scope from Linux over LAN. Also works with modern LXI-compliant LeCroy scopes.)
Linux Drivers for Tektronix
Oscilloscopes and Arbitrary Function Generators (built on the VXI-11 protocol and user library)
Linux Drivers for
Agilent Infiniium Oscilloscopes (built on the VXI-11 protocol and user library)
Random links:
Linux on a Dell Latitude CP M233XT |
strip_nl: newline (CR) stripper |
Eagle PCB -> LPKF Milling Machine Mini-How-To |
Agfa Snapscan 310 Scanner with Linux |
Installing PCI230/PCI260 Comedi driver on a RedHat 9 system (PDF) |
The steve (a new unit of measurement)
I have written a (fairly solid) vxi11 driver for Linux, and in the near future (once our new scope arrives) we will write drivers built on top of this VXI-11 protocol for doing common tasks (grabbing traces etc). To set up your scope to use VXI-11, either use the utilities menu, or your scope's own web page.
In view of this, the Linux implementation here of the VICP protocol should be considered deprecated. It will of course remain available for download for old LeCroy scopes which were not LXI compliant.
I'm writing with regards to your 'LeCroy TCP' library, which I found on
your website: http://optics.eee.nottingham.ac.uk/lecroy_tcp/
The code that this was started from had several problems, and the
specification has evolved since it was written. We published a reference
implementation of the VICP protocol on SourceForge many months ago. This
is the actual code that's embedded within our ActiveDSO and ScopeExplorer
products. This code is located here:
http://sourceforge.net/projects/lecroyvicp/.
This reference implementation has been very well tested, and should be
relatively platform independent (it's a single .h file). In addition, it
includes several techniques to maximize performance, including disabling
the TCP nagle algorithm (a killer for real-time performance), and reducing
the number of packets sent over the wire for 'small data'.
Anyway, on with my stuff...
The scope was bought on the understanding that support would be available from LeCroy in the form of source code, and information on protocols and headers and suchlike to enable us to write our own drivers. This was immediately forthcoming, and to their credit LeCroy, despite not supporting Linux directly, were very helpful in supplying simple, easy to read Windows/DOS source code that would enable me to write Linux code. I'd especially like to thank Graham Gibbons, at "LeCroy Applications Europe" for his help.
I guess I should just get this lot out of the way....:
Neither Steve Sharples, nor the University of Nottingham, have any connection with LeCroy Corporation. LeCroy is not "responsible" for this code, nor will they support it. The code is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
The code was modified to compile under Linux, and available here, released under the GNU General Public License.
At some point I'll include here some code for some utilities that use this driver... you never know, I might eventually write a graphics front-end for this (hmmm... sounds suspiciously like 3rd/4th year undergraduate project!).
Both produce the same thing, a "lecroy_tcp" directory containing the driver source code, a simple example program, a Makefile, a README.TXT file, and a copy of the GNU GPL. To extract the tarball, use tar -xvzf file.tar.gz . To unzip the zipfile, use unzip file.zip .
Please read the disclaimer about warranty, etc etc.
All the files are available for viewing or downloading here.
Instructions for compiling are included, however it should hopefully just be a case of typing make . No "./configure" script is included (not sure how to make these) so it may not work on your particular architecture/flavour of Linux/UNIX. Not very knowledgeable about these things, sorry!