The MTi 600-series, Xsens Avior series and Xsens Sirius series support a CAN output. The Xsens Avior series and Xsens Sirius series also support CAN input. The CAN communication must be configured through the UART or RS232 interface using Xbus messages. The method of configuring is described below. For more information on Xbus and its message structure, please review the MT Low Level Communication Protocol Documentation.
ReqCanConfig
MID 230 (0xE6)
DATA n/a
Direction To MT
Valid in Config State
|
610 |
620 |
630 |
670 |
680 |
Avior IMU | Avior VRU | Avior AHRS | Sirius IMU | Sirius VRU | Sirius AHRS |
Request the current CAN configuration – see SetCanConfig for information about the data field of the received ReqCanConfigAck acknowledgement message.
MID 230 (0xE6)
DATA CAN enable flag (1bit) , Baud rate code (1byte)
Direction To MT
Valid in Config State
|
610 |
620 |
630 |
670 |
680 |
Avior IMU | Avior VRU | Avior AHRS | Sirius IMU | Sirius VRU | Sirius AHRS |
Set the general configuration settings of the CAN-Bus

Example usage:
Enable CAN-FD at 500k nominal bitrate and 2M data bitrate
BAUDRATE
The BAUDRATE is a 1-byte code that specifies at which rate the CAN bus will send data. The CAN peripheral is internally automatically configured to best match a Sample-Point of 70% to 75%.
CAN config settings
|
Bit(s) |
Setting |
Size (bit) |
Description |
Products |
|---|---|---|---|---|
|
31:21 |
reserved |
11 |
|
|
| 20 | CAN input enabled | 1 | Sirius, Avior | |
| 19:12 | Data Bitrate/Baud Code (CAN-FD mode only, see table below) | 8 | Sirius, Avior | |
| 11 |
120 Ohm termination resistor enabled 0: disabled 1: enabled |
1 |
Activates the 120 Ohm termination resistor between CAN_H and CAN_L if set. Supported by Xsens Sirius devices with FW v1.2.0 and higher only. |
Sirius |
| 10 | reserved (for enabling CANopen) | 1 | ||
| 9 |
CAN-FD enabled (protocol only, also bit 8 required) 0: disabled 1: enabled |
1 | Sirius, Avior | |
|
8 |
CAN enabled 0: disabled 1: enabled |
1 |
Enable CAN interface if set |
Sirius, Avior, 600-series |
|
7:0 |
Nominal Bitrate/Baud Code (see table below) |
8 |
Bitrate/ Baud Code (see table below) |
Sirius, Avior, 600-series |
Available CAN baud codes
|
CAN Baud code (bps) |
BAUD CODE |
Note | Bit Timing Configuration (Sirius/Avior)* | |||
|---|---|---|---|---|---|---|
| Prescaler | TSEG1 | TSEG2 | Sync Jump Width | |||
| 8M | 15 (0x0F) | CAN-FD only (Applies to Sirius/Avior only) | 1 | 7 | 2 | 4 |
| 5M | 14 (0x0E) | CAN-FD only (Applies to Sirius/Avior only) | 1 | 11 | 4 | 4 |
| 2M | 13 (0x0D) | CAN-FD only (Applies to Sirius/Avior only) | 1 | 31 | 8 | 4 |
|
1M |
12 (0x0C) |
4 | 16 | 4 | 4 | |
|
800k |
11 (0x0B) |
10 | 7 | 2 | 2 | |
|
500k |
10 (0x0A) |
16 | 7 | 2 | 2 | |
|
250k (default) |
0 (0x00) |
4 | 63 | 16 | 16 | |
|
125k |
1 (0x01) |
64 | 7 | 2 | 2 | |
|
100k |
2 (0x02) |
80 | 7 | 2 | 2 | |
|
83k3 |
3 (0x03) |
12 | 63 | 16 | 16 | |
|
62k5 |
4 (0x04) |
128 | 7 | 2 | 2 | |
|
50k |
5 (0x05) |
160 | 7 | 2 | 2 | |
|
33k3 |
6 (0x06) |
30 | 63 | 16 | 16 | |
|
20k |
7 (0x07) |
400 | 7 | 2 | 2 | |
|
10k |
8 (0x08) |
800 | 7 | 2 | 2 | |
|
5k |
9 (0x09) |
1600 | 7 | 2 | 2 | |
* Bit timing configuration parameters may be subject to change in future firmware releases.
ReqCanOutputConfig
MID 232 (0xE8)
DATA n/a
Direction To MT
Valid in Config State
|
610 |
620 |
630 |
670 |
680 |
Avior IMU | Avior VRU | Avior AHRS | Sirius IMU | Sirius VRU | Sirius AHRS |
Request the general configuration settings of the CANBus.
SetCanOutputConfig
MID 232 (0xE8)
DATA Xsens CAN data id (7 bits) , ID length flag (1bit), ID mask (29 bits), Output frequency (11 bits)
Direction To MT
Valid in Config State
|
610 |
620 |
630 |
670 |
680 |
Avior IMU | Avior VRU | Avior AHRS | Sirius IMU | Sirius VRU | Sirius AHRS |
Set the output configuration of the CAN-Bus.
The data is a repeating sequence of Xsens CAN data id, ID length flag (11- or 29-bit length, indicated by the value 0 or 1), ID mask, Output frequency. See the figure below for the message structure, and the table below for the Xsens CAN Data Identifiers.
The maximum number of different output messages that can be configured is 16.
.png?Policy=eyJTdGF0ZW1lbnQiOlt7IlJlc291cmNlIjoiaHR0cHM6Ly9kemY4dnF2MjRlcWhnLmNsb3VkZnJvbnQubmV0L3VzZXJmaWxlcy8yNzc1NC8zNTEzNS9ja2ZpbmRlci9pbWFnZXMvcXUvaW1hZ2UoMjkpLnBuZyIsIkNvbmRpdGlvbiI6eyJEYXRlTGVzc1RoYW4iOnsiQVdTOkVwb2NoVGltZSI6MTc2NTgzODY5N319fV19&Signature=N5LjlqPo39Yt-EtArITdRmIixkzppBUZx2jovOFDhgaBrflUlMAro5ErNtHWRQZcB-m84jur2PQiknLwicCf7unD87-BQ-tx~R1JLDWwgabJ0LLcZucUjdhPKo9wBZB2QTckU3RtfrDph56tEyZneLnnyHn3B0rpZSoQM24Uu8uigjvqUsBSLsQvouDhD81DptKuIcn5Qa~z0r3gv5FvzDu7E3zwMKTj~zuy4SvYnFPaZbSjtfZUMA~9HwdfffnoxeiMu5fogoPEW3QkHi82~h5U2Qn7LyIoVrUsE3WWYP8i8PFEH5939ZcxBrma8QFdkm4SF4sp80777ME~X~GJ3w__&Key-Pair-Id=K2TK3EG287XSFC)

SetCanOutputConfig structure
CAN Output Configuration
|
Block |
Bit(s) |
Description |
|---|---|---|
|
1 |
14:8 |
Xsens internal Can Data Identifier |
| 1 | 7:1 | reserved |
| 1 | 0 |
ID length 0: 11-bit identifier 1: 29-bit identifier |
| 2 | 31:29 | reserved |
| 2 | 28:0 | Can Message ID for given Data set |
| 3 | 15:11 | reserved |
|
3 |
10:0 |
Output Frequency |
Xsens CAN Identifiers
|
ID |
XsCanDataIdentifier |
|---|---|
|
0x000 |
XCDI_Invalid |
|
0x001 |
XCDI_Error |
|
0x002 |
XCDI_Warning |
|
0x005 |
XCDI_SampleTime |
|
0x006 |
XCDI_GroupCounter |
|
0x007 |
XCDI_UtcTime |
|
0x011 |
XCDI_StatusWord |
|
0x021 |
XCDI_Quaternion |
|
0x022 |
XCDI_EulerAngles |
|
0x023 |
XCDI_RotationMatrix |
|
0x031 |
XCDI_DeltaV |
|
0x032 |
XCDI_RateOfTurn |
|
0x033 |
XCDI_DeltaQ |
| 0x034 | XCDI_Acceleration |
| 0x035 | XCDI_FreeAcceleration |
| 0x041 | XCDI_MagneticField |
| 0x051 | XCDI_Temperature |
| 0x052 | XCDI_BaroPressure |
| 0x061 | XCDI_RateOfTurnHR |
| 0x062 | XCDI_AccelerationHR |
| 0x071 | XCDI_LatLon |
| 0x072 | XCDI_AltitudeEllipsoid |
| 0x073 | XCDI_PositionEcef_X |
| 0x074 | XCDI_PositionEcef_Y |
| 0x075 | XCDI_PositionEcef_Z |
| 0x076 | XCDI_VelocityXYZ |
| 0x079 | XCDI_GnssReceiverStatus |
| 0x07A | XCDI_GnssReceiverDop |
| 0x0AA | XCCI_DeviceIdReq* |
| 0x0AB | XCCI_DeviceId* |
| 0x0AC | XCCI_GotoConfig* |
| 0x0AD | XCCI_GotoMeasurement* |
| 0x0AE | XCCI_Reset* |
| 0x0AF | XCCI_IccCommand* |
| 0x0B0 | XCCI_IccCommandAck* |