File Exchange

image thumbnail

Pico Technology TC-08 USB data acquisition

version 1.32 (10.4 KB) by

Files to connect, query, and disconnect from the Pico Technology USB TC-08, using DLL's.



View License

handle = usbtc08connect(types, tc08Path) configures the USB Pico Technology TC-08 data logger where types is a string or a vector array of strings of the respective channel types e.g. 'K' for type K thermocouples, and 'X' for measuring the voltage. If the tc08Path is supplied, it must point to the folder containing the DLLs, otherwise it assumes a default path of 'C:\Program Files (x86)\Pico Technology\Pico Full'. Empty paths are also acceptable, in which case the default path is used. handle is the handle of the TC-08 for using usbtc08query, or is 0 if any of the steps were unsuccessful. Additional output arguments are tolerated for legacy resons. This uses the streaming mode of the unit, which means queries are much faster - ca. 1 ms per call. interval is the time between samples and is set to the fastest possible value, obtained by requesting it from the unit - this is usually about 100 ms per channel - but can be specified if necessary.
[recentData, allData, overflowFlag] = usbtc08query(handle) returns the most recent values (as an 8-element numeric column vector). usbtc08connect must be run first to configure the USB TC-08 and to obtain tc08Handle. If allData is specified as a second argument, then all the data in the buffer is supplied as a cell array the same size as the number of channels, with temperature-time data. If no data is in the buffer, all the temperatures are NaN's. BufferSize is optional, and defaults to the maximum possible value (600, as according to the header file) to retain as much data as possible. The overflowFlag is a vector the same size as the channels, which gives a 1 if at any point a measurement on that channel overflowed - it is not possible to determine exactly which measurement failed.
usbtc08disconnect(handle) disconnects the USB TC-08 from MATLAB and unloads the DLLs, where handle is a uint16 from 1-65535 supplied by usbtc08connect.
This is now much faster, so the DDE method is no longer preferred.
Note that you MUST have the Pico Technology SDK ( and an appropriate compile for MATLAB setup.

Comments and Ratings (3)


to load the library use :

loadlibrary('C:\Program Files\Pico Technology\SDK\lib\usbtc08.dll','C:\Program Files\Pico Technology\SDK\lib\usbtc08.h')

instead only :
loadlibrary('C:\Program Files\Pico Technology\SDK\lib\usbtc08.dll')


I loaded the libraries in such way:

Copy the file usbtc08.h located on the directory :
C:\Program Files\Pico Technology\SDK

past to :
C:\Program Files\Pico Technology\SDK\lib

make sure you have a compiler setup with your matlab, otherwise use the command to configure one:

mex -setup

finally to install library into matlab:

loadlibrary('C:\Program Files\Pico Technology\SDK\lib\usbtc08.dll')

Maybe you are using different directory, in this case use the right one.
Pay attention : use the 32 bits files


Kristin (view profile)

Thank you very much for figuring out how to get the USBTC08 libraries loaded into 64-bit MATLAB. This was very helpful to me.



Updated with the current SDK paths


Minor bugfix


Significant changes to now be much faster.


Significant changes to now be much faster.

MATLAB Release
MATLAB 7.0.1 (R14SP1)

Download apps, toolboxes, and other File Exchange content using Add-On Explorer in MATLAB.

» Watch video