Jump to content

Test-AC: Difference between revisions

From Teltonika Telematics Wiki
GTPGTM-11768 - draft
No edit summary
 
(27 intermediate revisions by 2 users not shown)
Line 1: Line 1:
==Introduction==
{{#switch: {{{model}}}


With a professional device lineup, telltale information (dashboard indicators) from heavy-duty vehicles can be read remotely to identify a variety of issues. New feature of Diagnostic Trouble Code (DTC) reading will help to narrow down the specific faults happening in vehicles.
| #default =


With {{{model}}} you can read 2 types of DTC messages based on J1939 protocol:  
==Crash Detection==
If Crash Detection is enabled, it monitors acceleration on each axis which helps to detect an accident. '''Threshold and Duration''' values are set depending on the impact magnitude that is required to be detected. {{{model}}} can detect events ranging between a slight tapping on the device and a severe accident. {{{model}}} will collect crash trace data with frequency defined by Trace ODR (Hz) parameter. Acceleration, GNSS and IO data monitoring duration during the crash event is defined by these parameters:
*'''Accel duration (s)''' - Acceleration data duration can be set for up to 15 seconds before crash event and 15 seconds after.
*'''GNSS duration (s)''' - GNSS data duration can be set for up to 30 seconds before crash event and 30 seconds after.
*'''IO duration (s)''' - IO data duration can be set for up to 30 seconds before crash event and 30 seconds after.
===Crash Trace Modes===
<b>Disabled</b>
*No crash trace is provided.
*When Crash Trace is disabled only one eventual crash record will be generated when '''Duration (ms)''' and '''Threshold (mg)''' values are exceeded.
<b>Trace Changes</b>
*Device will collect acceleration data for the configured period.
*When acceleration values are changed by more then 50mG data will be collected and records generated.
*If Acceleration does not change, records will be saved with 1 second period.
<b>Trace Full</b>
*Data tracked: Buffer size is calculated by the below provided formula. Trace Full mode will trace everything for the configured trace duration period, regardless if axes changed more than > 50 mG or not.


*DM1 – Communicates currently present faults
''SampleFrequency (100 Hz)'' * ''TraceDuration (5 s before + 5 s after)''
*DM2 – Reports stored faults


{{{model}}} is able to read DM codes and pass them to the server in IO element. When active DM1 or DM2 messages appear on CAN line it is broadcasted very often – {{{model}}} device saves the codes into the internal memory and does not flood the server with irrelevant information – only new DTC codes are sent to the server.
For example, if frequency is configured at '''100 Hz''', and the duration is set to '''5 sec''', the buffer will be created for '''1000 entries''', each containing X, Y and Z values. '''This buffer will be split into records'''. Records sharing the same crash counter correspond to the same crash event. To reconstruct the full trace, append the accelerometer data with the corresponding crash counter.


==Functionality Description==
'''Note:''' With Crash Trace mode enabled, it is recommended to use Codec 8 Extended Data Protocol. This helps to optimize crash trace data sending from device to server. For more information, please visit [[Crash trace]] page.


This functionality is available from Firmware version '''03.01.02.rev.06''' or higher.
===Crash Counter===
Crash Eventual record and Trace records can have a new IO element '''Crash Counter“ (AVL ID 317)'''. In addition to ''Crash Counter,  Crash Trace'' must also be enabled in order for the functionality to work. Crash Counter connects the eventual crash record with its trace packets meaning each eventual crash record will have '''ID 317''', as well as that crash‘s trace packets with the same value. When enabled, first crash will send eventual record with '''value 1'''.  Subsequent crashes will add 1 to value overflowing at 255 and starting again from 0.


For proper functionality, the device requires ignition to be active. Source of ignition and voltage level can be selected from '''System''' tab.
<!---===Ground Vector===
Ground vector must be removed from the magnitude used in the crash evaluation. Ground vector is calculated when AXL calibration is present, otherwise, it is not removed. Magnitude is recalculated when the device has no calibration. For that, it is supposed, that the required acceleration is on the XY plane. Then angle between the Z axis and the XY plane is 90 deg, therefore Pythagorean theorem can be used. If the magnitude is less than 1 G, the result cannot be evaluated and is set to 0.


Ignition has to be active for at least 14 sec to start generating the DTC list. If ignition is turned off, the device will clean all DM1 and DM2 codes and functionality will not be working.
'''Note:''' Each record will have accurate timestamps in milliseconds.
--->
===Crash Classification===


[[File:DTC_Ignition.png]]
<table class="nd-othertables_2" style="width:70%; border-collapse: collapse;">
<tr>
<th style="width:20%; vertical-align: middle; text-align: center;">Crash Event Element ID</th>
<th style="width:10%; vertical-align: middle; text-align: center;">Value</th>
<th style="width:60%; vertical-align: middle; text-align: left;">Meaning</th>
</tr>
<tr>
<td rowspan="6" style="vertical-align: middle; text-align: center;"><b>247</b></td>
<td style="vertical-align: middle; text-align: center;">1</td>
<td style="vertical-align: middle; text-align: left;">Crash detected, the accelerometer is partially calibrated</td>
</tr>
<tr>
<td style="vertical-align: middle; text-align: center;">6</td>
<td style="vertical-align: middle; text-align: left;">Crash detected, the accelerometer is not calibrated</td>
</tr>
<tr>
<td style="vertical-align: middle; text-align: center;">7</td>
<td style="vertical-align: middle; text-align: left;">Crash (pothole) detected. Max Z axis</td>
</tr>
<tr>
<td style="vertical-align: middle; text-align: center;">8</td>
<td style="vertical-align: middle; text-align: left;">Crash (fake) detected. Max axis X or Y, but without essential speed change</td>
</tr>
<tr>
<td style="vertical-align: middle; text-align: center;">9</td>
<td style="vertical-align: middle; text-align: left;">Crash detected, the accelerometer is not calibrated</td>
</tr>
<tr>
<td style="vertical-align: middle; text-align: center;">12</td>
<td style="vertical-align: middle; text-align: left;">Crash detected, the accelerometer is full calibrated</td>
</tr>
</table>
<br>
Conditions for the fake crash detection:
*Device must have a GPS fix.
*Max crash axis is X or Y.
*Speed must be more than 0.
*Crash second speed value must be more than 0.
*Subsequent second GPS speed value must be greater than crash speed value minus threshold.
*Subsequent (2nd second) second GPS speed value must be greater than crash speed value minus threshold times two.


After the device is connected to the Configurator, there will be '''DM1 / DM2''' tab made available. There is a configurable DM1 / DM2 Data source parameter. This parameter selects the CAN source based on which device will parse DM data from. Based on selected data source, device will also call a request for DTCs.
'''''Example:''''' if GNSS duration is set to '''6 s''' and '''Accel duration is set to 5 s''', there will be two records that will not contain accelerometer data. Crash records always contain accelerometer data for the duration of the Accel duration setting, regardless of I/O settings.


'''Note:''' The functionality is completely separated from the FMS source.
===AVL IDs===
<table class="nd-othertables_2" style="width:100%; border-collapse: collapse;">
<tr>
<th style="width:1%; vertical-align: middle; text-align: center;">PARAMETER NAME</th>
<th style="width:1%; vertical-align: middle; text-align: center;">PARAMETER ID (RELATED AVL ID)</th>
<th style="width:5%; vertical-align: middle; text-align: center;">DESCRIPTION</th>
<th style="width:6%; vertical-align: middle; text-align: center;">VALUES</th>
</tr>
<tr>
<td style="vertical-align: middle; text-align: center;">Scenario Settings</td>
<td style="vertical-align: middle; text-align: center;">111400<br>(247)</td>
<td style="vertical-align: middle; text-align: center;">Sets the scenario priority level.</td>
<td style="vertical-align: middle; text-align: left;">
'''0 = Disable''' Disable scenario.<br>
'''1 = Low priority''' Device makes an additional record with indication of event cause. <br>
'''2 = High priority''' Device makes an additional record with high priority flag and immediately sends an event packet to the server by GPRS. <br>
'''3 = Panic priority''' Triggers the same actions as high priority, but if GPRS fails, the device sends an AVL packet via SMS (if enabled in SMS settings).
</td>
</tr>
<tr>
<td style="vertical-align: middle; text-align: center;">Duration (ms)</td>
<td style="vertical-align: middle; text-align: center;">11401</td>
<td style="vertical-align: middle; text-align: center;">Sets the minimal time period for how long the acceleration value should be higher than "Threshold" to trigger the event.</td>
<td style="vertical-align: middle; text-align: left;">Minimum value '''= 0'''<br>
Maximum value '''= 1000'''  </td>
</tr>
<tr>
<td style="vertical-align: middle; text-align: center;">Threshold (mG)</td>
<td style="vertical-align: middle; text-align: center;">11402</td>
<td style="vertical-align: middle; text-align: center;">Sets the acceleration threshold value to detect the event.</td>
<td style="vertical-align: middle; text-align: left;"> Minimum value '''= 100'''<br>
Maximum value '''= 6000'''</td>
</tr>
<tr>
<td style="vertical-align: middle; text-align: center;">Threshold (16 g) (mG)</td>
<td style="vertical-align: middle; text-align: center;">11416</td>
<td style="vertical-align: middle; text-align: center;">Acceleration threshold (applicable for devices with max 16 g range accelerometer)</td>
<td style="vertical-align: middle; text-align: left;">Minimum value '''= 100'''<br>
Maximum value '''= 14000''' </td>
</tr>
<tr>
<td style="vertical-align: middle; text-align: center;">Send SMS to</td>
<td style="vertical-align: middle; text-align: center;">7037</td>
<td style="vertical-align: middle; text-align: center;">Sets the GSM number of SMS event recipient.</td>
<td style="vertical-align: middle; text-align: left;">Number selected from “GSM Predefined Numbers” list in menu “SMS / Call Settings”.</td>
</tr>
<tr>
<td style="vertical-align: middle; text-align: center;">SMS Text</td>
<td style="vertical-align: middle; text-align: center;">8037</td>
<td style="vertical-align: middle; text-align: center;">Toggle filtering of accelerometer data in the crash trace. IF enabled, data is passed through EMA filter with 0.4 beta value (can be changed through serial command).</td>
<td style="vertical-align: middle; text-align: left;">Maximum text length '''= 160 symbols'''</td>
</tr>
<tr>
<td style="vertical-align: middle; text-align: center;">Trace Filter</td>
<td style="vertical-align: middle; text-align: center;">11412</td>
<td style="vertical-align: middle; text-align: center;">Toggle filtering of accelerometer data in the crash trace. IF enabled, data is passed through EMA filter with 0.4 beta value (can be changed through serial command).</td>
<td style="vertical-align: middle; text-align: left;">'''0 =''' Disable <br> '''1 =''' Enable </td>
</tr>
<tr>
<td style="vertical-align: middle; text-align: center;">Crash Trace</td>
<td style="vertical-align: middle; text-align: center;">11406<br>(257)</td>
<td style="vertical-align: middle; text-align: center;">Enable tracing of crash events to get additional data about the crash. Related parameters: "Trace ODR", "Accel duration", "GNSS duration".</td>
<td style="vertical-align: middle; text-align: left;">'''0 = Disable''' Generates only an eventual crash record.<br>
'''1 = Trace Changes''' Records timestamps, GNSS data and acceleration values ONLY WHEN acceleration values change my 50 mG or more (saves mobile data).<br>
'''2 = Trace Full''' Records timestamps, GNSS data and acceleration values. <br>
'''3 = Trace Full with IOs''' Records timestamps, GNSS data and acceleration values, together with IO elements configured as "Crash" (see "I/O" menu).
</td>
</tr>
<tr>
<td style="vertical-align: middle; text-align: center;">Crash Counter</td>
<td style="vertical-align: middle; text-align: center;">11415<br>(317)</td>
<td style="vertical-align: middle; text-align: center;">Toggle crash counter. This allows relating the eventual record of a particular crash with its trace packets by adding IO ID 317 to both. “Crash Counter“ and “Crash Trace“ must be enabled. The first crash will send an eventual record with IO ID 317 value 1. Subsequent crashes will add 1 to the value, overflowing at 255 and starting again from 0.</td>
<td style="vertical-align: middle; text-align: left;">'''0 = Disable'''<br>
'''1 = Enable'''</td>
</tr>
<tr>
<td style="vertical-align: middle; text-align: center;">Trace ODR (Hz)</td>
<td style="vertical-align: middle; text-align: center;">11410</td>
<td style="vertical-align: middle; text-align: center;">Sets the output data rate (frequency) of crash event data recording.</td>
<td style="vertical-align: middle; text-align: left;">Minimum value '''= 20''' <br> Maximum value '''= 200/400'''
* Depends on hardware modification.
</td>
</tr>
<tr>
<td style="vertical-align: middle; text-align: center;">Accel Duration (s)</td>
<td style="vertical-align: middle; text-align: center;">11407</td>
<td style="vertical-align: middle; text-align: center;">Sets monitoring duration of linear accelerometer values before and after crash event.<br>
This parameter is available for trackers without a gyroscope (IMU).
</td>
<td style="vertical-align: middle; text-align: left;">Minimum value '''= 2''' <br> Maximum value '''= 15''' </td>
</tr>
<tr>
<td style="vertical-align: middle; text-align: center;">GNSS Duration (s)</td>
<td style="vertical-align: middle; text-align: center;">11408</td>
<td style="vertical-align: middle; text-align: center;">Sets monitoring duration of GNSS data before and after the crash event.</td>
<td style="vertical-align: middle; text-align: left;">Minimum value '''= 2''' <br> Maximum value '''= 30'''</td>
</tr>
<tr>
<td style="vertical-align: middle; text-align: center;">Gyroscope crash trace</td>
<td style="vertical-align: middle; text-align: center;">78112 <br>(1422)</td>
<td style="vertical-align: middle; text-align: center;">Gyroscope data is collected and processed simultaneously with accelerometer data. If enabled, collected data will be included in accelerometer + gyroscope crash trace, AVL ID 1422.<br>


[[File:DTC Data source selection.png]]
This parameter is available for trackers that have a gyroscope (IMU)
</td>
<td style="vertical-align: middle; text-align: left;">'''0 =''' Disable <br> '''1 =''' Enable</td>
</tr>
<tr>
<td style="vertical-align: middle; text-align: center;">IMU trace duration before crash (s)</td>
<td style="vertical-align: middle; text-align: center;">78100</td>
<td style="vertical-align: middle; text-align: center;">Accelerometer and gyroscope crash trace duration before the crash. Sum of crash trace durations (before and after the crash) cannot be more than 20 seconds.


*NONE – Device will not use any CAN as data source
This parameter is available for trackers that have a gyroscope (IMU)
*CAN1 – Device will use CAN1 as data source
</td>
*CAN2 – Device will use CAN2 as data source
<td style="vertical-align: middle; text-align: left;">Minimum value '''= 2''' <br> Maximum value '''= 15''' <br>
*BOTH – Device will use CAN1 and CAN2 as data source
* Maximum changes according to the “IMU trace duration after crash” value.
 
</td>
Bellow '''Data source''' parameters there is a list of configurable IOs
</tr>
 
<tr>
[[File:DTC Configurable IOs.png]]
<td style="vertical-align: middle; text-align: center;">IMU trace duration after crash (s)</td>
 
<td style="vertical-align: middle; text-align: center;">78101</td>
„DTC DM1“ and “DTC DM2“ shows the last DTC that has been detected. „Active DM1 List“ and „Active DM2 List“ provides a list of all active DTCs for a given source.
<td style="vertical-align: middle; text-align: center;">Accelerometer and gyroscope crash trace duration after the crash. Sum of crash trace durations (before and after the crash) cannot be more than 20 seconds. <br>
 
This parameter is available for trackers that have a gyroscope (IMU)
Example of generating DM1 / DM2 list: To register DM1 code, it is required to send a command using (pgn 0xFEFA). Device will first check if such DTC code exist in the system (MCUID and CAN Source has to be unique for each DTC). Otherwise, DTC will be rejected.
</td>
 
<td style="vertical-align: middle; text-align: left;">Minimum value '''= 2''' <br> Maximum value '''= 11''' <br>
[[File:DTC Configurator outputs.png]]
* Maximum changes according to the “IMU trace duration after crash” value.</td>
 
</tr>
<span style="color:green;">9D000301:<span style="color:blue;">01:<span style="color:red;">01
</table>
*<span style="color:green;">9D000301</span> – DTC in hexadecimal format
*<span style="color:blue;">01</span> – MCU source that reported the DTC
*<span style="color:red;">01</span> – Device CAN source used (00 - CAN1, 01 - CAN2)
 
<span style="color:green;">9D000302:<span style="color:blue;">02:<span style="color:red;">01
*<span style="color:green;">9D000302</span> – DTC in hexadecimal format
*<span style="color:blue;">02</span> – MCU source that reported the DTC
*<span style="color:red;">01</span> – Device CAN source used (00 - CAN1, 01 - CAN2)
 
Based on configured „Priority“, „Event Only“ and „Operand“ device will add this parameter to record.
 
[[File:DTC Terminal logs.png]]
 
To remove one of the DTC from DM1 list, DM2 code (pgn 0xFEFB) is required. Device will check if the sent DTC code exists in the system (MCUID and CAN Source has to be unique for each DTC). If sent DTC does not exist in the system, it will be rejected.
 
Based on previous example, sending DTC 9D000301 with MCUID 01 on CAN2, device remove this DTC from the system, as the result, this DTC is removed from „Active DM1 List“ and added to the „Active DM2 List“.
 
[[File:DTC Configurator outputs 2.png]]
 
Log example:
 
[[File:DTC Terminal logs 2.png]]
 
That DTCs will be added to record and would be accessible on server. Data on server need to be converted from HEX to ASCII.
 
[[File:DTC Outputs from server.png]]
 
'''39443030303330323A30323A30313B''' -> (after conversion from hex to ANSCII) '''9D000302:02:01''';
 
'''39443030303330313A30313A30313B''' -> (after conversion from hex to ANSCII) '''9D000301:01:01''';
 
==Functionality Block Diagram==
Graphic representation of '''DM1''' and '''DM2''' functionality:
 
[[File:DTC Functionality blok diagram.png]]
 
 
==DM1 Lamp Status and Flash Signals==
 
The '''DM1 (Diagnostic Message 1)''' in the '''J1939''' protocol reports active '''Diagnostic Trouble Codes (DTCs)''' and controls vehicle warning indicators. It defines the behavior of the '''Malfunction Indicator Lamp (MIL)''' and other warning lamps, which can be off, on solid, or flashing, depending on the severity and priority of detected faults. Flashing typically signals a more urgent or severe condition, while a solid light indicates an active but less critical issue.
 
The first byte represents the status of four indicator lamps:
 
*'''PL (Protect Lamp)''' - DTC's indicate non-electronic subsystem issue.
*'''AWL(Amber Warning Light)''' - DTC's indicate a non-critical issue that does not warrant stopping the vehicle.
 
*'''RSL(Red Stop Lamp)''' -  DTC's indicate a critical issue that warrants stopping the vehicle immediately.
 
*'''MIL(Malfunction Indicator Lamp)''' - At least one DTC indicates emissions related issue.
 
Each lamp is encoded using 2 bits, allowing four possible states: '''off, on, slow flash, and fast flash'''. This compact encoding means all lamp states are conveyed within a single byte, with each pair of bits mapped to a specific lamp in a fixed order. These lamp states directly inform the operator about the severity and urgency of active faults.
 
DM1 encodes warning lamp information in its first 2 bytes, combining both lamp status  and flash behavior. Each lamp is represented by two 2-bit fields—one in byte 1 (status) and one in byte 2 (flash).
 
To decode, split each byte into 2-bit segments and map each pair to its corresponding lamp. The final behavior is determined by combining status and flash (e.g., ON + fast flash = rapidly blinking warning).
 
==Global and Manufacturer SPN Codes==
 
===Global-Level SPN codes===
 
Standard codes are defined by the SAE J1939 standards and are recognized across all compliant vehicles and equipment. The SPNs for these codes fall within the range of '''1 to 24,324''' representing widely used parameters such as engine speed, coolant temperature, or oil pressure. FMI values are standardized, describing specific failure patterns such as high voltage, circuit open, or out-of-range conditions.
 
Because they are standardized, these codes are universally interpretable by any compliant diagnostic tool without requiring manufacturer-specific references.
 
===Manufacturer-Level SPN codes===
 
Manufacturer-level or proprietary codes are reserved for OEM-specific faults that are not defined in the J1939 standard. These allow manufacturers to monitor unique components, systems, or operational conditions that are specific to their equipment.
 
The SPNs for proprietary codes typically occupy the high end of the 19-bit field, ranging from '''516,096 to 524,287'''. FMI values may be standard or custom, but the meaning of the SPN is defined by the manufacturer. Accurate interpretation requires access to OEM documentation, as these codes are not universally defined or interpretable.
 
==DM1/DM2 Message Structure==
 
Each DM1/DM2 message is transmitted using the J1939 transport protocol when needed (multi-packet if the data exceeds 8 bytes), but can also fit within a single CAN frame when only one DTC is present. The message begins with a lamp status byte, followed by zero or more DTC entries, each occupying exactly 4 bytes.
 
 
 
Following the lamp status byte, the message contains one or more Diagnostic Trouble Codes (DTCs). Each DTC is encoded in a 4-byte structure that combines several fields into a compact binary format. The first 19 bits represent the Suspect Parameter Number (SPN), which identifies the specific parameter or component that is faulty. This value is split across the first three bytes in a non-linear way, requiring bit-level extraction rather than simple byte parsing.
 
The next 5 bits define the Failure Mode Identifier (FMI), which describes how the failure manifests (for example, data out of range, voltage too high, or signal erratic). Together, the SPN and FMI uniquely describe the nature of the fault.
 
After the FMI, a single bit is used for the SPN Conversion Method (CM). In modern systems, this bit is almost always set to 0, indicating the standard encoding method is used. A value of 1 indicates an alternative legacy encoding, which is rarely encountered but must still be handled correctly in robust implementations.
 
The final 7 bits of the 4-byte DTC structure represent the Occurrence Count (OC). This value indicates how many times the fault has been detected. It is typically capped at 127 and provides useful insight into whether a fault is intermittent or persistent.
 
When multiple DTCs are present, they are simply appended sequentially after the lamp status byte, each occupying 4 bytes. There is no explicit delimiter between DTCs; instead, the total message length determines how many are included. In multi-packet transmissions, this sequence continues seamlessly across transport protocol frames.
 
Practical Interpretation and DM1 vs DM2 Context
 
From an implementation perspective, decoding DM1 and DM2 messages requires careful bit extraction and reconstruction of the SPN, FMI, CM, and OC fields from each 4-byte DTC block. The lamp status byte must be interpreted separately before processing the DTC list.
 
The practical difference between DM1 and DM2 lies not in structure but in semantics. DM1 messages are typically broadcast periodically (for example, once per second) whenever active faults exist, making them essential for real-time monitoring and dashboards. In contrast, DM2 messages are only transmitted upon request and provide access to historical fault data that is no longer active but still stored in the ECU memory.
 
An important implementation detail is that DM1 messages may contain no DTCs, in which case only the lamp status byte is transmitted. This indicates that no active faults are present, and all lamps are typically off. However, the system must still correctly interpret this as a valid message rather than an error condition.
 
Another subtle but important aspect is that multiple ECUs on the same network can transmit their own DM1 messages independently. Each message is identified by its source address, meaning a complete diagnostic picture requires aggregating DM1 data across all nodes on the network.
 
In summary, the DM1/DM2 message structure is compact but highly information-dense. A single byte conveys overall system warning states, while each 4-byte DTC block encodes a complete fault description including what failed, how it failed, and how often it has occurred. Proper decoding requires precise bit-level handling, but once implemented, it provides a standardized and scalable way to monitor and diagnose vehicle systems across the entire J1939 network.

Latest revision as of 09:24, 1 June 2026

{{#switch: {{{model}}}

| #default =

Crash Detection

If Crash Detection is enabled, it monitors acceleration on each axis which helps to detect an accident. Threshold and Duration values are set depending on the impact magnitude that is required to be detected. {{{model}}} can detect events ranging between a slight tapping on the device and a severe accident. {{{model}}} will collect crash trace data with frequency defined by Trace ODR (Hz) parameter. Acceleration, GNSS and IO data monitoring duration during the crash event is defined by these parameters:

  • Accel duration (s) - Acceleration data duration can be set for up to 15 seconds before crash event and 15 seconds after.
  • GNSS duration (s) - GNSS data duration can be set for up to 30 seconds before crash event and 30 seconds after.
  • IO duration (s) - IO data duration can be set for up to 30 seconds before crash event and 30 seconds after.

Crash Trace Modes

Disabled

  • No crash trace is provided.
  • When Crash Trace is disabled only one eventual crash record will be generated when Duration (ms) and Threshold (mg) values are exceeded.

Trace Changes

  • Device will collect acceleration data for the configured period.
  • When acceleration values are changed by more then 50mG data will be collected and records generated.
  • If Acceleration does not change, records will be saved with 1 second period.

Trace Full

  • Data tracked: Buffer size is calculated by the below provided formula. Trace Full mode will trace everything for the configured trace duration period, regardless if axes changed more than > 50 mG or not.

SampleFrequency (100 Hz) * TraceDuration (5 s before + 5 s after)

For example, if frequency is configured at 100 Hz, and the duration is set to 5 sec, the buffer will be created for 1000 entries, each containing X, Y and Z values. This buffer will be split into records. Records sharing the same crash counter correspond to the same crash event. To reconstruct the full trace, append the accelerometer data with the corresponding crash counter.

Note: With Crash Trace mode enabled, it is recommended to use Codec 8 Extended Data Protocol. This helps to optimize crash trace data sending from device to server. For more information, please visit Crash trace page.

Crash Counter

Crash Eventual record and Trace records can have a new IO element Crash Counter“ (AVL ID 317). In addition to Crash Counter, Crash Trace must also be enabled in order for the functionality to work. Crash Counter connects the eventual crash record with its trace packets meaning each eventual crash record will have ID 317, as well as that crash‘s trace packets with the same value. When enabled, first crash will send eventual record with value 1. Subsequent crashes will add 1 to value overflowing at 255 and starting again from 0.

Crash Classification

Crash Event Element ID Value Meaning
247 1 Crash detected, the accelerometer is partially calibrated
6 Crash detected, the accelerometer is not calibrated
7 Crash (pothole) detected. Max Z axis
8 Crash (fake) detected. Max axis X or Y, but without essential speed change
9 Crash detected, the accelerometer is not calibrated
12 Crash detected, the accelerometer is full calibrated


Conditions for the fake crash detection:

  • Device must have a GPS fix.
  • Max crash axis is X or Y.
  • Speed must be more than 0.
  • Crash second speed value must be more than 0.
  • Subsequent second GPS speed value must be greater than crash speed value minus threshold.
  • Subsequent (2nd second) second GPS speed value must be greater than crash speed value minus threshold times two.

Example: if GNSS duration is set to 6 s and Accel duration is set to 5 s, there will be two records that will not contain accelerometer data. Crash records always contain accelerometer data for the duration of the Accel duration setting, regardless of I/O settings.

AVL IDs

PARAMETER NAME PARAMETER ID (RELATED AVL ID) DESCRIPTION VALUES
Scenario Settings 111400
(247)
Sets the scenario priority level.

0 = Disable Disable scenario.
1 = Low priority Device makes an additional record with indication of event cause.
2 = High priority Device makes an additional record with high priority flag and immediately sends an event packet to the server by GPRS.
3 = Panic priority Triggers the same actions as high priority, but if GPRS fails, the device sends an AVL packet via SMS (if enabled in SMS settings).

Duration (ms) 11401 Sets the minimal time period for how long the acceleration value should be higher than "Threshold" to trigger the event. Minimum value = 0
Maximum value = 1000
Threshold (mG) 11402 Sets the acceleration threshold value to detect the event. Minimum value = 100
Maximum value = 6000
Threshold (16 g) (mG) 11416 Acceleration threshold (applicable for devices with max 16 g range accelerometer) Minimum value = 100
Maximum value = 14000
Send SMS to 7037 Sets the GSM number of SMS event recipient. Number selected from “GSM Predefined Numbers” list in menu “SMS / Call Settings”.
SMS Text 8037 Toggle filtering of accelerometer data in the crash trace. IF enabled, data is passed through EMA filter with 0.4 beta value (can be changed through serial command). Maximum text length = 160 symbols
Trace Filter 11412 Toggle filtering of accelerometer data in the crash trace. IF enabled, data is passed through EMA filter with 0.4 beta value (can be changed through serial command). 0 = Disable
1 = Enable
Crash Trace 11406
(257)
Enable tracing of crash events to get additional data about the crash. Related parameters: "Trace ODR", "Accel duration", "GNSS duration". 0 = Disable Generates only an eventual crash record.

1 = Trace Changes Records timestamps, GNSS data and acceleration values ONLY WHEN acceleration values change my 50 mG or more (saves mobile data).
2 = Trace Full Records timestamps, GNSS data and acceleration values.
3 = Trace Full with IOs Records timestamps, GNSS data and acceleration values, together with IO elements configured as "Crash" (see "I/O" menu).

Crash Counter 11415
(317)
Toggle crash counter. This allows relating the eventual record of a particular crash with its trace packets by adding IO ID 317 to both. “Crash Counter“ and “Crash Trace“ must be enabled. The first crash will send an eventual record with IO ID 317 value 1. Subsequent crashes will add 1 to the value, overflowing at 255 and starting again from 0. 0 = Disable
1 = Enable
Trace ODR (Hz) 11410 Sets the output data rate (frequency) of crash event data recording. Minimum value = 20
Maximum value = 200/400
  • Depends on hardware modification.
Accel Duration (s) 11407 Sets monitoring duration of linear accelerometer values before and after crash event.

This parameter is available for trackers without a gyroscope (IMU).

Minimum value = 2
Maximum value = 15
GNSS Duration (s) 11408 Sets monitoring duration of GNSS data before and after the crash event. Minimum value = 2
Maximum value = 30
Gyroscope crash trace 78112
(1422)
Gyroscope data is collected and processed simultaneously with accelerometer data. If enabled, collected data will be included in accelerometer + gyroscope crash trace, AVL ID 1422.

This parameter is available for trackers that have a gyroscope (IMU)

0 = Disable
1 = Enable
IMU trace duration before crash (s) 78100 Accelerometer and gyroscope crash trace duration before the crash. Sum of crash trace durations (before and after the crash) cannot be more than 20 seconds.

This parameter is available for trackers that have a gyroscope (IMU)

Minimum value = 2
Maximum value = 15
  • Maximum changes according to the “IMU trace duration after crash” value.
IMU trace duration after crash (s) 78101 Accelerometer and gyroscope crash trace duration after the crash. Sum of crash trace durations (before and after the crash) cannot be more than 20 seconds.

This parameter is available for trackers that have a gyroscope (IMU)

Minimum value = 2
Maximum value = 11
  • Maximum changes according to the “IMU trace duration after crash” value.