Product is specified: (i) in PNI’s Price List in effect at time of order acceptance; or (ii) on PNI’s web site (www.pnicorp.com) at time of order acceptance, be free from defects in material and workmanship and will...
Note: Several versions of the TCM exist, as the product line has evolved over the years. Throughout this manual the term “TCM” refers to the TCM 3 and TCM 5. Other versions available from PNI include the current TCM XB and TCM 5LT, and the legacy TCM 2.5 and TCM 2.6. (Availability subject to change.)
0.6 typical 2.1.8 Environmental Specifications Parameter TCM3 TCM5 Units Operating Temperature -40º to 85º -40º to 85º Storage Temperature -40º to 85º -40º to 85º PNI Sensor Corporation Doc #1007537 r12 TCM3 & TCM5 User Manual- Sept 2011 Page 6...
The default orientation for the TCM is for the silk-screened arrow to point in the “forward” direction. That puts the edge opposite of the Molex connector as the front edge of the board. PNI Sensor Corporation Doc #1007537 r12 TCM3 & TCM5 User Manual – Sept 2012 Page 7...
Included with the TCM Interface Kit is a cable to allow for the unit to be connected to your host system. On one end of the cable is the connector needed to mate with the TCM3/5. The cable’s wires are color coded as indicated below.
To determine the range of field distortion, place the compass in a fixed position, then move/energize suspect components while observing the output to determine when they are an influence. PNI Sensor Corporation Doc #1007537 r12 TCM3 & TCM5 User Manual- Sept 2011 Page 10...
The TCM is factory calibrated with respect to the mounting holes, as shown below, thus it must be aligned within host system with respect these mounting holes, board edges. PNI Sensor Corporation Doc #1007537 r12 TCM3 & TCM5 User Manual – Sept 2012 Page 11...
Page 12
Note: The board depicted below is for illustration purposes only and does not show the actual TCM board. TCM3/5 Mounting Options PNI Sensor Corporation Doc #1007537 r12 TCM3 & TCM5 User Manual- Sept 2011 Page 12...
TCM while using the TCM Studio program’s more friendly interface. Check the PNI website for the latest updates at www.pnicorp.com. 4.1.1 Install the TCM Studio program onto a Windows system: 1.
Standard 270 Degrees: When selected the unit is to be mounted with the main board in a horizontal position but rotated so the arrow is pointed 270 degrees clockwise from the front of the host system. PNI Sensor Corporation Doc #1007537 r12 TCM3 & TCM5 User Manual- Sept 2011 Page 14...
Page 15
Z Sensor Down Plus 90 Degrees: When selected the unit is to be mounted with the main board in a vertical position (the Z axis magnetic sensor is vertical) and rotated 90 degrees clockwise from the front of the host system. PNI Sensor Corporation Doc #1007537 r12 TCM3 & TCM5 User Manual – Sept 2012 Page 15...
Page 16
Z Sensor Up Plus 270 Degrees: When selected the unit is to be mounted with the main board in a vertical position (the Z axis magnetic sensor is vertical) and rotated 270 degrees clockwise from the front of the host system. PNI Sensor Corporation Doc #1007537 r12 TCM3 & TCM5 User Manual- Sept 2011 Page 16...
Page 17
The “Acquire Time” setting box sets the time between samples taken by the unit. This is an internal setting that is NOT tied to the time with which the unit transmits the data out to the program or host. PNI Sensor Corporation Doc #1007537 r12 TCM3 & TCM5 User Manual – Sept 2012 Page 17...
Page 18
Some computer systems may not have the graphics capability to render the 3D Model, for this reason it may be necessary to turn off this feature. PNI Sensor Corporation Doc #1007537 r12 TCM3 & TCM5 User Manual- Sept 2011 Page 18...
2. If the calibration is sufficient then click on the <Save> button to save the calibration. If this button is not selected then the unit will need to be recalibrated after a power cycle. PNI Sensor Corporation Doc #1007537 r12 TCM3 & TCM5 User Manual – Sept 2012 Page 19...
This window indicates the pertinent setting information. 3D Model: The helicopter will follow the movement of the attached module and give a clear representation of the module’s orientation. PNI Sensor Corporation Doc #1007537 r12 TCM3 & TCM5 User Manual- Sept 2011 Page 20...
TCM module as well as cor- rected output after a user calibration has been performed PNI Sensor Corporation Doc #1007537 r12 TCM3 & TCM5 User Manual – Sept 2012 Page 21...
You are trying to get an even sampling of the magnetic field over as many headings and tilts as possible, including upside down if possible. Pay attention to the coverage percentage. The lower the percentage the less accurate the com- pass. PNI Sensor Corporation Doc #1007537 r12 TCM3 & TCM5 User Manual- Sept 2011 Page 22...
For the TCM a positive pitch is when the front edge of the board is rotated upward and a positive roll is when the right edge of the board is rotated downward. TCM Standard Mounting PNI Sensor Corporation Doc #1007537 r12 TCM3 & TCM5 User Manual- Sept 2011 Page 24...
30° with 10°-20° positive roll 120° with 10°-20° negative roll 210° with 10°-20° positive roll 300° with 10°-20° negative roll PNI Sensor Corporation Doc #1007537 r12 TCM3 & TCM5 User Manual – Sept 2012 Page 25...
Page 26
A magnetically noisy environment will also result in a poor calibration. PNI Sensor Corporation Doc #1007537 r12 TCM3 & TCM5 User Manual- Sept 2011 Page 26...
For the greatest possible accuracy, go to the National Geophysical Data Center web page below to declination angle based your latitude longitude: http://www.ngdc.noaa.gov/geomagmodels/Declination.jsp PNI Sensor Corporation Doc #1007537 r12 TCM3 & TCM5 User Manual – Sept 2012 Page 27...
The TCM can calibrate for any environment that creates a magnetic field that does not exceed the dynamic range of its magnetometers. PNI Sensor Corporation Doc #1007537 r12 TCM3 & TCM5 User Manual- Sept 2011 Page 28...
52 51 Exponent Mantissa (Exponent-1023) The value (v) is determined as (if and only if 0 < Exponent < 2047): v = (-1) * 1.Mantissa PNI Sensor Corporation Doc #1007537 r12 TCM3 & TCM5 User Manual – Sept 2012 Page 29...
Page 30
Signed 16-bit Integer (SInt16) SInt16 based parameters are signed 16 bit numbers (2’s compliment). Bit 15 represents the sign of the value (0=positive, 1=negative) Big Endian Little Endian PNI Sensor Corporation Doc #1007537 r12 TCM3 & TCM5 User Manual- Sept 2011 Page 30...
Page 31
UInt16 based parameters are unsigned 16 bit numbers. Big Endian Little Endian Unsigned 8-bit Integer (UInt8) UInt8 based parameters are unsigned 8-bit numbers. byte PNI Sensor Corporation Doc #1007537 r12 TCM3 & TCM5 User Manual – Sept 2012 Page 31...
Response to kGetAcqParams kPowerDownDone Response to kPowerDown kFactoryUserCal Clears user calibration coefficients kFactorUserCalDone Response to kFactoryUserCal kTakeUserCalSample Commands the unit to take a sample during user calibration PNI Sensor Corporation Doc #1007537 r12 TCM3 & TCM5 User Manual- Sept 2011 Page 32...
Page 33
When querying for data (kGetData frame), the sequence of the data component output follows the sequence of the data component IDs as set in this frame. PNI Sensor Corporation Doc #1007537 r12 TCM3 & TCM5 User Manual – Sept 2012 Page 33...
Page 34
Pitch and Roll angle outputs. Pitch is equal to -90.0˚ to 90.0˚ and Roll is equal to kPAngle, kRAngle -180.0˚ to 180.0˚. kXAligned, kYAligned, kZAligned User calibration Earth’s magnetic field (M) vector component output. PNI Sensor Corporation Doc #1007537 r12 TCM3 & TCM5 User Manual- Sept 2011 Page 34...
Page 35
These configurations can only be set one at time. Payload Config ID Value UInt8 Specific Example: To configure the declination, the payload would look like: PNI Sensor Corporation Doc #1007537 r12 TCM3 & TCM5 User Manual – Sept 2012 Page 35...
Page 36
Flag to set compass heading output to true north heading by adding the declination angle to the magnetic north heading. kBigEndian Flag to set the Endianness of packets kMountingRef This sets the reference orientation for the module. PNI Sensor Corporation Doc #1007537 r12 TCM3 & TCM5 User Manual- Sept 2011 Page 36...
Page 37
This frame is the response to kGetConfig frame. The payload contains the configuration ID and value. Payload Config ID Value UInt8 Specific Example: If a request to get the set declination angle, the payload would look like: PNI Sensor Corporation Doc #1007537 r12 TCM3 & TCM5 User Manual – Sept 2012 Page 37...
Page 38
FIR filter settings. kStopCal (frame ID 11) This frame commands the module to stop calibration points sampling and calculate the calibration score and coefficients. PNI Sensor Corporation Doc #1007537 r12 TCM3 & TCM5 User Manual- Sept 2011 Page 38...
Page 40
This frame is the response to kSave frame. The payload contains a UInt16 error code, 0000h indicates no error, 0001h indicates error when attempting to save data into non-volatile memory. Payload Error code UInt16 PNI Sensor Corporation Doc #1007537 r12 TCM3 & TCM5 User Manual- Sept 2011 Page 40...
Page 41
The frame has no payload. kStopIntervalMode (frame ID 22) This frame commands the module to stop data output at a fixed time interval. The frame has no payload. PNI Sensor Corporation Doc #1007537 r12 TCM3 & TCM5 User Manual – Sept 2012 Page 41...
Page 42
This frame is the response to kSetAcqParams frame. The frame has no payload. kAcqParamsResp (frame ID 27) This frame is the response to kGetAcqParams frame. The payload should contain the same payload as the kSetAcqParams frame. PNI Sensor Corporation Doc #1007537 r12 TCM3 & TCM5 User Manual- Sept 2011 Page 42...
Page 43
This frame is the response to kFactoryUserCal frame. The frame has no payload. kTakeUserCalSample (frame ID 31) This frame commands the unit to take a sample during user calibration. The frame has no payload. PNI Sensor Corporation Doc #1007537 r12 TCM3 & TCM5 User Manual – Sept 2012 Page 43...
4.4.2 Binary TCM Protocol C++ Communication Examples The following 4 example files, CommProtocol.h, CommProtocol.cp, TCM5.h and TCM5.cp would be used together for proper communication with a TCM3, TCM5 or TCM5L module. NOTE: The follwing files are not included in the samples code: SystemSenPort.h;...
Page 50
= (UInt16)len + kPacketMinSize; // exit without sending if there is too much data to fit inside our packet if(len > kBufferSize - kPacketMinSize) return; PNI Sensor Corporation Doc #1007537 r12 TCM3 & TCM5 User Manual- Sept 2011 Page 50...
Page 52
= Ticks() + mStep++ ; // goto the next step in the process break case // wait for msg complete or timeout if(inLen >= mExpectedLen - 2) PNI Sensor Corporation Doc #1007537 r12 TCM3 & TCM5 User Manual- Sept 2011 Page 52...
Page 53
// the length bytes. Clear everything in the input buffer since the data is unreliable mSerialPort->InClear(); mStep = // Look for the next length bytes break default: break PNI Sensor Corporation Doc #1007537 r12 TCM3 & TCM5 User Manual – Sept 2012 Page 53...
Page 55
4.4.2.3 TCM5.h File (For TCM3, TCM5 and TCM5L Modules): #pragma once #include "Processes.h" #include "CommProtocol.h" This file contains the object providing communication to the TCM. It will set up the unit and parse packets received Process is a base class that provides TCM with cooperative parallel processing.
Page 56
4.4.2.4 TCM5.cp File (For TCM3, TCM5 & TCM5L Modules): #include "TCM.h" #include "TickGenerator.h" const UInt8 kDataCount = 4; // We will be requesting 4 componets (Heading, pitch, roll, temperature) This object polls the TCM unit once a second for heading, pitch, roll and temperature.
Page 57
(bytes)). Move copies specified number of // bytes from the source pointer to the destination pointer. // Store the roll. Move(&(data[pntr]), &roll, sizeof(roll)); PNI Sensor Corporation Doc #1007537 r12 TCM3 & TCM5 User Manual – Sept 2012 Page 57...
Page 58
// send next data request break; default: // Message is a function that displays a formatted string (similar to printf) Message("Unknown frame %02X received\r\n", (UInt16)frameType); break; PNI Sensor Corporation Doc #1007537 r12 TCM3 & TCM5 User Manual- Sept 2011 Page 58...
Page 59
> mTime) // tell the unit to take a sample SendComm(CommProtocol::kGetData); mTime = Ticks() + 100; // take a sample every second mStep++; PNI Sensor Corporation Doc #1007537 r12 TCM3 & TCM5 User Manual – Sept 2012 Page 59...
Page 60
// Ticks is a timer function. 1 tick = 10msec. if(Ticks() > mResponseTime) Message("No response from the unit. Check connection and try again\r\n"); mStep = 0; break; default: break; PNI Sensor Corporation Doc #1007537 r12 TCM3 & TCM5 User Manual- Sept 2011 Page 60...
Need help?
Do you have a question about the TCM3 and is the answer not in the manual?
Questions and answers