W8WWV - N2PK VNA - VNAccess: API For VNA Control (VNAccess.dll)

Seed Solutions, Inc.


VNAccess (va-nak-sess) is an API (application programming interface)  for the N2PK VNA. It encapsulates all of the details concerning the clocking of the chips through the parallel port (printer) interface. It also manages the various timing issues present in setting the DDS chips and reading the ADC. VNAccess calls are made in terms of the hardware registers present in the major integrated circuits.

If you are using the LTC2440 ADC chip, then you need to use VNAccess version 2.00, or greater. Versions under 2.00 were written with the LTC2410 in mind, and communicated with the 2410 in a way which does not work with the 2440. The newer version of VNAccess works with both chips.

VNAccess assumes that it can directly access the parallel I/O port on the computer. On Windows 95, 98, and ME, this is the default mode of operation. On Windows NT, 2000, and XP, the operating system normally disables direct application program access to the hardware as part of the overall security and protection model. On these platforms, direct access to the hardware can be obtained through the use of a driver which selectively turns off the protection mechanism. That driver is not part of VNAccess. We have been using UserPort 1.0, one of the many available packages for enabling direct access.

VNAccess is provided in a DLL (dynamic link library) form. The code has been written so as to minimize dependence upon additional packages, features or software. Although it is written in the C++ language, and was developed using the Microsoft Visual Studio version 6, the library can be used by standard C programs, and other popular languages such as Visual Basic.

VNAccess does not include direct support for the computation of electrical parameters such as reflection coefficient, or  impedance. The data returned by VNAccess is the raw input to that next step. The VNAgra API supports those calculations.


The best way to understand what VNAccess provides is to read the documentation, including the header file, which includes example calling sequences. Short of that, here are a few highlights.


The VNAccess download consists of a single ZIP file (VNAccess.zip). It contains the following files:

  1. VNAccess.dll: The dynamic link library. There are a set of rules which determine how a program finds the DLLs it uses. In recent years, the trend has been to put the DLL in the same folder as the program. This reduces sharing problems (since nothing is shared).

  2. VNAccess.lib: Used by the linker when linking a program which uses VNAccess.dll. Not necessary if the program is willing to call LoadLibrary and GetProcAddress explicitly.

  3. VNAccess.h: The declarations of the functions in VNAccess. Usually included in C/C++ programs that want to use the DLL. Can also be used as a reference when writing a file of DECLARE declarations for Visual Basic.

  4. VNAccessDoc.htm: The on-line documentation. It can be read with a web browser.

Click to Download VNAccess.zip

Only the most recent version will be available for download. See the Introduction section for information on the most recent version.

Often times, examples are better than documentation.  VNAccess.h is heavily commented, and includes a number of common functional sequences based on calls in the library.

The data sheets for the DDS (AD9851) chips and ADC (LTC2410) should be read to understand how those chips function. Both are available at the web sites of the chip makers. VNAs created as part of my March 2004 Group Build (or any VNA after that time that has something to do with W8WWV)  will use the LTC2440 chip, which supports a 10 different conversion rates.

VNAccess Documentation On-Line

VNAccess documentation is written in HTML, and is available from the following link.

Problems, Questions, Comments?

If you have problems, questions, or comments (concerning this software), please contact me via email, at ordy@seed-solutions.com.

License and Legal Notices

VNAccess  was developed by, and is owned by Seed Solutions, Inc. Copyright , 2004, Seed Solutions, Inc. All rights reserved. No warranty of any kind is made as to performance, or fitness of use in any application. Your use of this software is your agreement with these terms. You agree to hold Seed Solutions, Inc. free from responsibility for any damages that may or may not be associated with the installation or operation of the program.

This software may be redistributed in original form. No fee may be charged for redistribution without the prior and specific written consent of Seed Solutions. Inc. This software is licensed for personal and non-commercial use only, and is subject to the export laws and regulations as defined by the State Department of the United States of America, and other applicable regulatory agencies.

Windows, Windows 95, Windows 98, Windows NT, Windows 2000, Windows ME, Windows XP are either registered trademarks or trademarks of Microsoft Corporation. Other product and company names mentioned on this site may be the trademarks of their respective owners.

Back to my Software Contributions Page

Back to my Experimentation Page

Back to my Amateur Radio Page

Last update: Friday, August 12, 2005 10:05:37 AM
Back to my Home Page