Data AcQuisition And Real-Time Analysis
Scope - Spectrum - Spectrogram - Signal Generator
Software for Windows
Science with your Sound Card!
The following is from the Daqarta Help system:



Spectrum Analyzer

Signal Generator

(Absolutely FREE!)


Pitch Tracker


DaqMusiq Generator
(Free Music... Forever!)

Engine Simulator

LCR Meter

Remote Operation

DC Measurements

True RMS Voltmeter

Sound Level Meter

Frequency Counter
    Spectral Event

    MHz Frequencies

Data Logger

Waveform Averager


Post-Stimulus Time
Histogram (PSTH)

THD Meter

IMD Meter

Precision Phase Meter

Pulse Meter

Macro System

Multi-Trace Arrays

Trigger Controls


Spectral Peak Track

Spectrum Limit Testing

Direct-to-Disk Recording



Frequency response

Distortion measurement

Speech and music

Microphone calibration

Loudspeaker test

Auditory phenomena

Musical instrument tuning

Animal sound

Evoked potentials

Rotating machinery


Product test

Contact us about
your application!

Fcal Calibration Table

Controls: Options >> Frequency Counter >> Fcal >> Cal Table
Macro: FcalTbl

Daqarta's Fcal system handles nonlinear sensors by means of calibration tables, stored in .TBL files. Daqarta includes tables for all standard thermocouple types, and you can easily create tables for nonstandard thermocouples, RTD sensors, thermistors, or for any nonlinear sensor of any variable type (not just temperature).

Click on the Calibration Table button to open the file selection dialog, and select the desired .TBL file. The button changes to the name of the table file.

If you click on the button after a table has been loaded, Daqarta assumes you want to unload it and asks for confirmation. After unloading, Fcal will return to linear operation; click again to load a new table.

Note that you can load separate table files for each Trigger Source and Frequency Counter mode (Hertz, RPM, or msec) that can be used with Fcal operation. Any loaded tables will be reloaded automatically in future Daqarta sessions.

If you load one of the included thermocouple tables, the Units button (below the table button) will change to Celsius, and when Fcal is active the Frequency Counter will show 'C' after displayed values. Toggling the button will change to Fahrenheit, with 'F' after the values.

Note: The Thermocouple To Frequency circuit can be used to convert the tiny thermocouple voltage to frequency, and apply cold junction compensation as well.

With the table loaded, you still need Fcal High and Low values to tell Daqarta what Raw frequencies to associate with the Set values. Daqarta assumes a linear relationship between frequency and mV. An incoming frequency is converted to mV, and a reverse lookup in the table translates that mV value to degrees C (or whatever units your custom table uses). Interpolation is performed between table values as needed.

Creating Table (.TBL) Files:

If you have a non-standard thermocouple, or any other nonlinear sensor for any kind of units, you can create a custom table (.TBL) file.

Daqarta .TBL files are stored in Documents - Daqarta - App_Data unless you used a custom Daqarta installation, in which case they would typically be in Programs - Daqarta - App_Data.

A .TBL file is a standard ASCII text file that you can create with any text editor like Windows Notepad. Note that when saving your file via the Save As dialog in Notepad, you must change "Save as type" from "Text Documents (*.txt)" to "All Files". Otherwise, if you try to save "MyTable.TBL", Notepad will save it as "MyTable.TBL.txt".

However, Notepad doesn't support column operations, so a full-featured text editor like Notepad++ or PSPad (both free) can make table creation much simpler.

The table file must start with a header that tells Daqarta how to interpret the data values that follow. Comments may be included by preceding them with a semicolon; the rest of that line will be ignored.

Data values are typically given in two columns; one column is the Unit column, which is the value that should be displayed. The other is the Data column, which is the value that is linearly related to the incoming frequency.

In the header section, each key variable is identified by a 4-character label followed by a colon, then by the value or text of the indicated variable. For example, Unit:DegC specifies that the Unit column contains degrees Celsius, while Data:mV specifies that the Data column is mV.

The two columns may appear in either order, as indicated by the Ordr: label in the header. Ordr:0 means that the column order will be Data, Unit. Ordr:1 means Unit, Data.

Here is the header plus the first few values for K_TypeTC.TBL:

;Type K thermocouple mV, one degree C steps from -270 through 1372.
Ordr:1      ;Column order = Unit, Data = DegC, mV
Unit:DegC   ;Column 1 values are Degrees C
Data:mV     ;Column 2 values are mV
-270     -6.45774
-269     -6.45692
-268     -6.45592
 ...        ...

All values must be less than +/-32767; larger values will be limited to this range. Values are stored internally with approximately 5 decimal places when the table is loaded.

Typically, you will create a table from data provided by the manufacturer of the sensor. That data format may dictate the most convenient column order to use in the table.

Note that many manufacturers provide wide tables for ease of manual use. For example, a temperature sensor may start each row with the temperature in degrees Cesius, with 10 degrees between rows. Then the remainder of the row will contain 10 values of mV, one for each degree starting from the given temperature.

This arrangement is hard to convert to the preferred 2-column format for .TBL files, since there is no easy way to get a degree C value to go with each mV value. Instead, you may use a single-column format by designating a start temperature and step size in the header.

To create such a file from multi-column data, you can use an editor that supports column operations (not Windows Notepad) to trim out all the first-column temperature values, leaving only 10 columns of mV values. You may also need to trim out occasional lines that repeat the column headers once per page, etc.

Caution: Many tables have 11 columns, 0 to 10 C, with the 10 C entry the same as the 0 C entry of the following row. If this is the case, trim out the 10 C column. Note that for negative temperatures the columns may run 0 to -10 C, with the -10 column the same as the 0 C entry of the prior row, in which case you must trim out the 0 C column.

Then combine the negative and positive temperature blocks into one long 10-column block. Set your editor to wrap after the first column and reformat into a single column of values running from most-negative to most-positive.

Add a header similar to the one below, which is the single-column equivalent to the above K_TypeTC.TBL, obtained directly from the multi-column text tables (having only 3 decimal places) instead of being computed from the source equations to 5 places. Data:mV indicates that the table values are mV, while Unit:DegC and Step:1.00 together indicate that each mV value corresponds to one degree Celsius more than the prior. From:-270 indicates the Unit (DegC) value corresponding to the first Data (mV) value.

;Type K thermocouple mV, one degree C steps from -270 through 1372.
Data:mV     ;The values shown in the list are mV
Unit:DegC   ;Each list value corresponds to Degrees C
Step:1.00   ;One degree C per line
From:-270   ;Starting with -270 C
-6.458       ;-6.458 mV at -270 C

Although the above 1-column table type needs to use a fixed Step spacing between entries, a 2-column table can use arbitrary steps between Unit,Data pairs. If you have a sensor that is very linear over some range, you only need to supply the start and end points of that range and Daqarta will interpolate between those points. You can piece together a full response table from multiple linear segments of different sizes, using smaller segments where the data values are changing more rapidly.

Note that you may create temperature tables using Unit:DegF instead of DegC if the source data table is in Fahrenheit instead of Celsius. The Units button will then default to Fahrenheit and toggling will convert to Celsius. Only DegC and DegF are recognized by the Units button.

Macro Notes:

The Fcal dialog does not need to be open to load or unload Calibration Table files. However, since separate tables are maintained for each Trigger Source channel and valid Frequency Counter mode (Hertz, RPM, and msec), you must make sure the desired source and mode are set in order to load or unload the proper table.

The FcalTbl macro has no effect if any File Open or Save As dialog is already active.

FcalTbl= without a name will open the File Open dialog for Fcal Table, showing all .TBL files but with no default name.

FcalTbl="MyTable" will open the File Open dialog with the default name set to MyTable. (Note that quotes are needed around all filenames in macros.) If you accept this by hitting Enter or the Open button in that dialog, Daqarta will attempt to load a file named MyTable.TBL, and will fail if that file is not found.

A.FcalTbl="MyTable" will load MyTable.TBL directly, without any File Open dialog. Note that if there was a file already loaded, it will be replaced with the specified file.

FcalTbl can use string variables and expressions. For example, FcalTbl=Field1 will use the contents of Field1 as the default file name, and A.FcalTbl=Field1 will load a file with that name directly.

Similarly, if the Macro Variable Var0 holds a value of 12, then FcalTbl="Test"+Var0 will set a default file name of Test12. If you expect to use a large series of files, you can use FcalTbl="Test"+Var0(3) (for example) to set the decimal format to 3 integer places to get Test012. This will allow proper sorting by file name. If an Fcal Table file has already been loaded, you can unload it by giving another FcalTbl command. FcalTbl= (with no name given) will prompt you to confirm unloading the file. If you use A.FcalTbl= the current file will be unloaded without any confirmation prompt.

You can read FcalTbl to get the table file size in bytes. To test if an Fcal Table file is already loaded, you can use an IF statement like IF.FcalTbl=>0. (Note that this is "greater than", not "equal or greater".) This will be true if a file has been loaded.

Table header information can be read using query characters:

    FcalTbl?O      ;Ordr (0=data,unit; 1=unit,data)
    FcalTbl?U(A)   ;Unit string (DegC)
    FcalTbl?D(A)   ;Data string (mV)
    FcalTbl?S      ;Step value (1.000)
    FcalTbl?F      ;From value (-270.000

Note that for 2-column tables the Step and From values will be 0, and for single-column tables Ordr will be 0.

See also Fcal Dialog, Frequency Counter


Questions? Comments? Contact us!

We respond to ALL inquiries, typically within 24 hrs.
Over 35 Years of Innovative Instrumentation
© Copyright 2007 - 2023 by Interstellar Research
All rights reserved