Image Not Available

Create Custom Software Clients
weather applications water applications energy applications gas flux and turbulence applications infrastructure applications soil applications


Current Version: 4.6

BMP5 Direct Software Development Kit (SDK) is a programming interface available at no charge in the Downloads section. It enables you to create custom software clients that support communications with one PakBus data logger using an RS-232 or IP Port connection.

Read More

Benefits and Features

  • Allows creation of custom software clients
  • Contains 20 commands

Detailed Description

BMP5 Direct SDK includes a simple call-level API (SimplePB.DLL) that acts as a wrapper for the included PakBus communications engine (coralib3d.dll).

Functions Supported by the SimplePB.DLL Wrapper

OpenPort, ClosePort, OpenIPPort, CloseIPPort, GetClock, SetClock, GetValue, SetValue, GetData, GetDataHeader, GetCommaData, File_Send, GetAddress, GetStatus, GetTableNames, GetDLLVersion, GetLastResults, FileControl, SetSecurity, and GetTableRecordsCount

Documentation and Examples Included in the Download

  • BMP5 Direct SDK Manual
  • Visual C++ MFC, VB.NET, and C#.NET examples


1) The developer should be familiar with Campbell Scientific’s hardware and software. 2) SimplePB.DLL and coralib3d.dll must be installed in the same folder. 3) The data logger must use the PakBus communications protocol. 4) Only one data logger can be connected at a time.


Current Version 4.6
Installed Items
  • SimplePB.dll
  • Limited LoggerNet Server
  • Examples
  • Documentation
Applications Best used for simple applications that communicate directly with PakBus data loggers only.
Limitations Communicates with only a single PakBus data logger at a time. Supports only direct TCP/IP or RS-232 connections. Limited functionality.


Note: The following shows notable compatibility information. It is not a comprehensive list of all compatible or incompatible products.

Data Loggers

Product Compatible Note
21X (retired)
CR10 (retired)
CR1000 (retired)
CR10X (retired)
CR200X (retired)
CR206X (retired)
CR211X (retired)
CR216X (retired)
CR23X (retired)
CR295X (retired)
CR500 (retired)
CR5000 (retired)
CR510 (retired)
CR9000 (retired)
CR9000X (retired)

Distributed Data Acquisition

Product Compatible Note


BMP5 Direct SDK v.4.6 (9.21 MB) 04-22-2020

A software development kit that allows the creation of custom software clients for simple and direct communications with a single datalogger containing a PakBus operating system.

Frequently Asked Questions

Number of FAQs related to BMP5: 11

Expand AllCollapse All

  1. In general, no. The BMP5 Direct SDK only works with direct connections (IP or COM port connections) between the data logger and the computer, or connections that appear to be direct (that is, modems that are transparent, like the SRM-5A Short Haul Modem).

  2. Yes. The BMP5 Direct SDK can communicate with the data logger as long as two conditions are met:

    1. The communications link between the data logger and the computer is transparent.
    2. There are no excessive delays.

  3. Yes. This can be done using a block of unsafe (that is, .NET unmanaged) code. A C# sample program can be obtained by contacting Campbell Scientific’s technical support.

  4. The simplepb.dll and coralib3d.dll libraries are 32-bit dlls, so it is really only possible to create a 32-bit application with them. These applications can often be accommodated by 64-bit operating systems via the use of emulators or similar techniques.
  5. Current data loggers compatible with the BMP5 Direct SDK are the CR200X-series, CR1000, CR3000, CR800, and CR850.

    Retired compatible data loggers include the CR10X-PB, CR23X-PB, and CR510-PB. These data loggers must have the optional PakBus operating system installed, which is available on the Downloads page of our website.

  6. The BMP5 Direct SDK is a software development kit that allows the creation of custom software clients for simple and direct communication with a single data logger containing a PakBus operating system.

  7. Using the FileControl() instruction, the .dat files can be retrieved directly from the memory card. When data is collected by the standard method (not as downloaded files, but as streamed data) with a GetData() or similar instruction, the memory card is automatically used as a source of records to be returned when the internal CPU table no longer contains the oldest data. These records can be retrieved simply by using their record numbers.

  8. After running the downloaded bmp5directsdk4.0.exe installation file, both the coralib3d.dll and simplepb.dll libraries should be in the C:\Campbellsci\BMP5DirectSDK\Controls directory unless a directory other than C:\Campbellsci\BMP5DirectSDK  was specified during installation.

  9. This is not supported in the BMP5 Direct SDK. The options available are to specify a starting record number, get the most recent record, or collect all available records. When specifying a starting record, all data from that record forward is then retrieved. The burden is on the programmer that uses the SDK to keep track of the last record number retrieved within the program and then to retrieve what is needed or desired in the future.

    The functionality to specify a date/time data collection range is available in the LoggerNet-SDK and the LoggerNet Server SDK. Both the LoggerNet-SDK and the LoggerNet Server SDK are available for purchase from Campbell Scientific.

  10. This can only be done by sending a different program using the FileControl() or File_Send() instruction. Data tables in a data logger cannot be added or deleted at data logger runtime using any of our data logger communication software, such as LoggerNet, PC400, PC200W, or any of the SDKs. Changes (additions, deletions, or modifications) to data tables within a data logger have to be changed inside the actual data logger program using a program editor such as CRBasic. After the data tables are modified within the program, the program must be resent to the data logger. Compiling the new program on the data logger will reset and create new tables as defined by the program.

    To clear a data table (zero out the data), the CoraScript control, found in either the LoggerNet-SDK or the LoggerNet Server SDK, would need to be used. This functionality does not exist in the BMP5 Direct SDK.

Privacy Policy Update

We've updated our privacy policy.  Learn More