Skip to content

CAN Communication

The MTS160 supports CANopen, allowing integration with navigation controllers, motor drives, PLCs, and other devices on a CAN bus.

TPDO Communication

The MTS160 transmits sensor data using up to three Transmit Process Data Objects (TPDOs). Each TPDO carries a different class of information and can be enabled or disabled independently.

A TPDO is transmitted when it is enabled and its configured transmission period is nonzero. Through the CANopen event-timer SDO (0x1800:5, 0x1801:5, or 0x1802:5), writing a nonzero period enables the corresponding TPDO and writing 0 disables it. Through the serial CNCF command, both the TPDO enable field and the period field must be set.

Valid period values are 0 to 65535 ms. Sensor measurements are generated every 5 ms, so TPDO periods below 5 ms can repeat the same measurement sample.

Multi-byte values in TPDO payloads are transmitted little-endian, with the least significant byte first.

"Sense" TPDO

This TPDO reports the main track-following data, including left and right track position, left and right track angle, and sensor status flags. It is the primary TPDO used for real-time navigation control.

Frame Header: 0x180 + NodeIDByte Count: 5

ByteContentTypeRange
1Left PositionSigned 8-bit±80 mm
2Right PositionSigned 8-bit±80 mm
3Left AngleSigned 8-bit±90°
4Right AngleSigned 8-bit±90°
5Status FlagsUnsigned 8-bitSee below

Status Flags Byte Detail:

Bit 7Bit 6Bit 5Bit 4Bit 3Bit 2Bit 1Bit 0
Merge DetectFork DetectIntersection DetectRight Marker DetectLeft Marker DetectTrack Detect & StrengthTrack Detect & StrengthUnused (0)

Track position and angle values are signed 8-bit integers. The two Track Detect & Strength bits use the same encoding as the serial SALL TDet field: 0 = no tape, 1 = weak, 2 = medium, 3 = strong. Bit 0 is unused in current firmware and is transmitted as 0.

The fork, merge, and intersection bits are implemented in current firmware. Treat them as advisory feature flags derived from magnetic geometry and validate them on the actual tape layout before using them for route decisions.

"Marker" TPDO

The "Marker" TPDO delivers precise lateral and longitudinal position data related to point-source markers. This information is critical for last-millimeter positioning.

Frame Header: 0x280 + NodeIDByte Count: 8

BytesContentType
1-2Left Marker X Position (LSB, MSB)Signed 16-bit
3-4Left Marker Y Position (LSB, MSB)Signed 16-bit
5-6Right Marker X Position (LSB, MSB)Signed 16-bit
7-8Right Marker Y Position (LSB, MSB)Signed 16-bit

Position values are signed 16-bit values in tenths of a millimeter (e.g., −235 = −23.5 mm).

When no guide tape is present, a standalone point-source magnet is commonly reported as both left and right marker detections at the same lateral position.

This TPDO reports the presence and value of Navicode Markers, allowing for the detection and decoding of these localization markers along a navigation path.

Frame Header: 0x380 + NodeIDByte Count: 3

ByteContentTypeRange
1-2Navicode (LSB, MSB)Unsigned 16-bit0–65535
3CounterUnsigned 8-bit0–255

Counter is incremented every time a new Navicode is detected and captured. Navicode decoding requires markers alongside a detected guide tape; standalone point-source markers without tape do not update this TPDO.

Auto-Run Automatic TPDO Transmission

When Auto Run is enabled, the sensor enters CANopen operational state at power-up and begins transmitting enabled TPDOs. Heartbeat messages are transmitted whenever the heartbeat period is nonzero.

When Auto Run is disabled, the sensor starts in CANopen pre-operational state and waits for network control before transmitting TPDOs. If the heartbeat period is nonzero, heartbeat messages are still transmitted in pre-operational state.

SDO Objects

The MTS160 sensor supports a set of Service Data Objects (SDOs) that allow for parameter setting and sensor configuration.

SDO writes update the active configuration in RAM. To make changes survive a power cycle, save the configuration through the Naviq utility or by sending the serial !SAVE command over USB or RS232.

Zero Setting

Starts zero-level calibration of the internal magnetic sensors. This should be performed after installation and before normal operation.

IndexSubNameTypeAccess
0x2000ZEROUnsigned 8-bitWrite Only

Perform Self-Test

Starts the internal magnetic sensing self-test. This command can be used to force a self-test at any time while the sensor is powered.

IndexSubNameTypeAccess
0x2001SELFTESTUnsigned 8-bitWrite Only

Track and Marker Parameters

This SDO is used to modify the first three sensor-configuration parameters exposed by the serial SNCF command.

IndexSubNameTypeAccess
0x20021TAPE POLARITYUnsigned 8-bitRead/Write
0x20022TAPE PULSE THRESHOLDUnsigned 8-bitRead/Write
0x20023MARKER THRESHOLDUnsigned 16-bitRead/Write

Tape polarity values are 0 for tape north on top and marker south on top, or 1 for tape south on top and marker north on top. Tape pulse threshold is a percentage of the detected tape peak. Marker threshold is in microtesla.

Read Self-Test Results

This SDO provides the results of the most recent self-test, whether performed automatically at power-up or started by the user. It returns the test result together with the minimum and maximum magnetic delta measured across the internal sensing ICs.

IndexSubNameTypeAccess
0x20031SELFTEST RESULTUnsigned 8-bitRead Only
0x20032MIN MAGNETIC DELTAUnsigned 16-bitRead Only
0x20033MAX MAGNETIC DELTAUnsigned 16-bitRead Only

Self-test result is 1 for pass and 0 for fail. Minimum and maximum magnetic delta values are in microtesla.

Heartbeat

The sensor supports the standard CANopen heartbeat mechanism. The heartbeat interval can be set from 0 to 65535 ms. The factory-default heartbeat interval is 1000 ms. A value of 0 disables heartbeat transmission. For any nonzero setting below 100 ms, the firmware uses a 100 ms heartbeat interval.

Using the Sensor without CANopen

The sensor can be easily operated by Navigation Computers with a CAN interface, even if they do not have a full CANopen Protocol Stack.

To achieve this, enable and set the send rate for the desired TPDO(s) and activate the Auto-Run feature using the Naviq Utility. With Auto-Run enabled, the sensor will start sending the TPDOs and heartbeat at the specified rate, regardless of any other activity on the CAN network.

The data can then be captured and parsed using C or Python code on the navigation computer. Most CAN drivers will store the complete incoming frame, which is structured as follows:

CAN Frame Structure

The parsing program first analyzes the header. Performing a bitwise AND operation with 0x7F will isolate the Node ID, which must then be compared with the sensor's Node ID to verify if the frame originated from the MTS160 sensor.

If this is the case, the upper part of the header should be isolated by performing a bitwise AND operation with 0xFF80. It should then be compared with 0x180, 0x280, and 0x380 to determine whether the frame contains TPDO1, TPDO2, or TPDO3.

The payload is then parsed according to the corresponding TPDO mapping described earlier in this manual.

TIP

Sample code can be obtained from the Naviq website.

CANopen EDS File

The Electronic Data Sheet (EDS) file for the MTS160 Magnetic Guide Sensor is provided to facilitate integration into a CANopen network. Containing information such as communication parameters and device-specific settings, the EDS file is necessary for proper configuration and operation within the network. It can be downloaded from the Resources section on the Naviq website at naviq.com.