Model 302
24-bit USB Data
Acquisition System
      click image to zoom
   

         Other precision data
         acquisition products
  select category-> Specifications Docs User Applications Installation files and utilities For Developers Homepage  

 Model 301/302 Developer Application Software

  DLL, Driver, API, and FAQ info  below

 click thumbnail size image to zoom full-size
 IMPORTANT NOTE: Nothing below is compatible with "32-bit" Win10
 Windows
  NOTE: All Win2k/XP/Vista/7/8/10 applications shown below make use of the same DLL, but some
    make use of the newer simplified function calls - as marked with *
    Be aware that the zip files may not contain the recent DLL so please download it HERE
  Visual Basic
  graphing app
  2k/XP/Vista/7/8/10
  app updated 3-19-18
 
screenshots of the app
graphics screen
 
text screen
  2k/XP/Vista/7/8/10
  updated 6-18-12


  98/ME
  App/DLL different version
  updated 10-3-2007
 
a couple examples of same app

 
front panel
 
graphing panel
*simplified:  
  2k/XP/Vista/7/8/10
  app updated 5-1-09

     
a couple different app examples

 
GetOneVoltage app
 
Multi-channel-scan app
  C++
  console app
  Win2k/XP/Vista/7/8/10
  app updated 6-12-18

  many "mini" samples using
  various new function calls

  HERE

  old style for Win98/ME
  HERE

 
an updated
multi-function DOS
style console app
example

 
main panel
scanning panel
*simplified
  console app:

  Win2k/XP/Vista/7/8/10
  app updated 8-16-05
  more HERE

 
a simplified
DOS style
console app
example

 
scanning mode panel
  GUI app
  Win2k/XP/Vista/7/8/10
  Win98/ME/
  app updated 7-9-03
     
a Windows style
GUI app

 
application panel
  VB.NET    special note
*simplified
  2k/XP/Vista/7/8/10
  app updated 11-21-08



a single example (more at link left of this) showing options to get one conversion, scan, send analog output, send/check digital I/O

     
multi-function app panel
  C#.NET    special note
*simplified
  2k/XP/Vista/7/8/10
  app updated 7-25-08



a single example
(more at link left of this)
showing options to
get one conversion, scan, send/check digital I/O

     
multi-function app panel
  Labview
*simplified
  2k/XP/
  app updated 7-6-05

a single example
(more at link left of this) showing options to get one conversion, scan, send analog output, send/check digital I/O

     
 
main panel
 
code diagram
*simplified
  with Model 35B
  thermocouple amplifier
 
  Win2k/XP
  app updated 4-10-03
     
an example of using with the 35B thermocouple
amplfier. Multi-function app with graphing

     
main panel
code diagram           
  Matlab
*simplified
  uses 64-bit DLL:  
  2k/XP/Vista/7/8/10
  app updated 3-30-15
a single example
(more at link left of this) showing options to get one conversion, scan, send analog output, send/check digital I/O

          multi-function app panel
  Python Windows
 Non-WIN10 demo app
 tested in WinXP only

 code download here
 code/app updated 10-23-17

 documentation here
 doc update 10-23-17
 

the screenshots show the
main menu and also a
view of the scan menu
uses our USB Driver/DLL


main menu panel
   
scan menu
 Win10 demo app
 tested in Win10 only

 code download here
 code/app updated 7-26-23

 documentation links below
 
READ FIRST
 then read this
 docs updated 7-26-23
 

the screenshots show the
main menu and also a
view of the scan menu
uses our USB Driver
and 64-bit DLL

main menu panel
   
scan menu
 simple single-chan app
 example - no user menu  tested in WinXP only

 code download here
 app last updated 9-20-17
 documentation here
 doc update 9-20-17
 

screenshot shows the output
from our simple single-chan
scan example app which
uses our USB Driver/DLL


app screenshot
 simple multi-chan app
 example - no user menu  tested in WinXP only

 code download here
 app last tested 9-20-17
 documentation here
 doc update 9-20-17
 

screenshot shows the output
from our simple multi-chan
scan example app which
uses our USB Driver/DLL


app screenshot
 

Windows DLL/Driver, FAQ, & related files and information
Differences between old and new DLLs
read about it
complete API Documentation
for the new DLL
frequently asked questions
FAQ Here
Most recent Driver, DLL, .INI, .Inf, Docs, etc. linked to below
click this link
  Although the  new API  is recommended, the  old API  is still available for backward compatibility



  Linux    *All built and tested in Oracle VM VirtualBox, within Win7, running ubuntu 14.04 LTS
  Linux M30x USB library  (pre-9-25-24) 
 Library build

 code download here
 lib built/tested 7-11-17

 documentation here
 doc update 7-18-17



image shows building
of the Library and
relocating to usr/lib

     
 
lib build screenshot
  Linux sample apps coded in C
 big example app
 with user menu  
 lib built/tested 7-11-17

 
code download here
 app last built/tested 7-12-17

 documentation here
 doc update 7-17-17

screenshots show
our most complete
example application
coded in C language
for testing in Linux


polled mode screen
 
scan mode screen
 simple example app
 with no user menu  
 lib built/tested 7-11-17

 code download here
 app last built/tested 6-29-17

 documentation here
 doc update 6-28-17
 

screenshot shows the output
from our simple example app
coded in C language for
testing our library in Linux


simple  C  app screenshot
  Linux sample app coded in python  (LLabs Linux library included) 
 simple example app
 with no user menu  
  lib built/tested 9-18-24

 code download here
  app last built/tested 9-18-24

 documentation here
  doc update 9-18-24
 

screenshots show the output
in order of occurrence
from our simple example
application coded in python
for testing our library in Linux


 
click each
screenshot
to enlarge
 
 

































































































































































DLL Related information for the software developer
This simplified interface of the new DLL contains function calls prefixed with "EX_" which are designed to be used together. The advantage of the new DLL is that it groups several function calls together within the DLL.

An example of the simplification can be noticed by the number of calls required in the original DLL for the initialization or scanning process. While the original DLL would require several calls into the DLL to start either of those processes, the new DLL requires only a single call for each,  EX_Connect()  and  EX_Run()  if the default configuration  ( single device connected, single channel scan, 100Hz )  will work for you. The use of these two calls will connect to the first M30x device that is found, and start a single channel scan at 100Hz.

An example of the versatility of the new DLL can be realized by the scanning related options. The scan can be configured to only log data to disk, log data to memory which can be read by the application, or do both. There are also options to run a scan that stops automatically and even beep the PC speaker when it stops. These options are explained within the  API documentation here  or by following the link provided further up this page.

The links for the new DLL take you to links to  mini applications  that show the use of various single and multiple calls into the DLL. For example one mini application might show how to connect and get a single conversion - not much more than a single page of code. Another might show how to connect and do a multi-channel, digital-input type scan with memory and data logging. Another shows how to use a configuration file to configure the device, saving function calls into the DLL that might otherwise be required.

The applications provided in the links above to the new DLL can often be made to work with Win98/ME simply by replacing the reference to "LL_USB2k.DLL" within the sample applications with reference to "LL_USB.DLL". The exception is the .NET sample applications which require the .NET environment available within WinXP and Vista.

Please note that although most of the sample applications contain a copy of the DLL, that DLL may not be the most current, but instead the one that was used at the time the application was created. You can get the  most recent DLL here,  or by following the link provided further up this page.

The new DLL still has all the API of the original old style DLL, so you can use the new DLL with your old applications - as long as the new device driver is used with it.










































Using old and new DLL API together
The newest DLL is backward compatible. In other words, although new entry points are frequently added to make the interface simpler, all the original entry points are still available. The links that go to either the new DLL or old DLL, also contain the API for each one, although the DLL is the same for each. The differences between the links is the sample applications which contain source code for the software developer. The old DLL links will contain sample applications that make use of only the old entry points, while the new DLL links will make use of the entry points provided within a more recent DLL.

For example, although the API for the new DLL linked to further up this page makes no mention of SP_SystemCalibration, it can be found by following the link to the old DLL - within the API documentation provided there. If you'd like to do a system calibration, while using the new API, you can initialize using the new API call, EX_Connect to connect, and then use SP_SystemCalibration later to do a system calibration. It should be noted, in regard to this particular function, that a system calibration is performed by the DLL during the call to EX_Connect but you can still do it again anytime while not scanning. The best way to think about it all, is that the newest functions are "wrappers" around the older functions. The DLL itself often uses the older functions internally - combining many of them into a single function call preceded by EX_.

For your convenience, below are links to the API for both the old and new DLL.
    old API
    new API

Please note that an old copy of the DLL will most likely be included within the applications referenced by the "uses old DLL API" links. That DLL may not be compatible with the newest driver, so it's recommended that you get both the  latest driver and DLL.







































































































VisualBasic source code download options Win98/WinME
Source Code Download
includes device driver, DLL, and sample app

instructions for opening archive
(plain text style format)
Documentation
view online with web browser
Documentation
download archive










































Download Graphing App with source code for Win2k/XP/Vista/7/8/10
archive

download archive, extract to a new folder,
and follow instructions within the archive










































VC++ Console source code download options Win98/WinME
Source Code Download
includes device driver, DLL, and sample app

instructions for opening archive
(plain text style format)
Documentation
view online with web browser
Documentation
download archive










































VC++ GUI source code download options Win98/WinME
Source Code Download
includes device driver, DLL, and sample app

instructions for opening archive
(plain text style format)
Documentation
view online with web browser
Documentation
download archive










































VC++ GUI source code download options Win2k/XP/Vista/7/8/10
Source Code Download
includes device driver, DLL, and sample app

instructions for opening archive
(plain text style format)
Documentation
view online with web browser
Documentation
download archive










































LabView source code download options Win98/WinME
Source Code Download
includes device driver, DLL, and sample app

instructions for opening archive
(plain text style format)
Documentation
view online with web browser
Documentation
download archive










































VisualBasic source code download options Win2k/XP/Vista/7/8/10
Source Code Download
includes device driver, DLL, and sample app

instructions for opening archive
(plain text style format)
Documentation
view online with web browser
Documentation
download archive


Model 302 interface for the Model 35B Thermocouple amplifier
note: this example for Model 302
A sample application written in Visual Basic to interface the Model 302 USB Data Aquisition System
to the 35B Thermocouple Amplifier - source code is provided
VB302 sample appApplication documentation










































VC++ Console source code download options Win2k/XP/7/8/10
Source Code Download
includes sample code written in VisualStudio 2015 and DLL

Documentation
for API used with this code










































VC++ GUI source code download options Win2k/WinXP/7/8/10
Source Code Download
includes sample app, DLL, and docs
Documentation
view online with web browser
Documentation
download archive










































LabView source code download options Win2k/XP
Source Code Download
includes device driver, DLL, and sample app

instructions for opening archive
(plain text style format)
Documentation
view online with web browser
Documentation
download archive









































Visual Studio Configuration for Win 64-bit
Although the system driver file that we distribute for 64-bit versions of Windows is 64-bit, the DLL is 32-bit. In most cases there is no problem interfacing that DLL with an old 32-bit application built for WinXP or even Win98 that has been taken into a Win64-bit environment such as Win7 or Win8 64-bit. But that's not the case when it's a .NET style application. To interface our DLL with an application making use of the 64-bit .NET environment the application must be built with the "Target" being set to "x86."

We provide various .NET sample application code at our website and those are typically built using Microsoft Visual Studio. To set the compilation to an x86 target follow the following menu links once Visual Studio is loaded:

      Project->Application Properties->Compile

There will be an option there to set the Target CPU which you should set to x86 while leaving Platform set to Any CPU.



 this page last reviewed/modified: