Difference between revisions of "Template:FMB640 Accelerometer Features settings"

From Wiki Knowledge Base | Teltonika GPS
(Undo revision 67615 by Gintare.Slizyte (talk))
Tag: Undo
 
(21 intermediate revisions by 6 users not shown)
Line 1: Line 1:
 +
==Accelerometer Calibration==
 +
Accelerometer auto calibration functionality has one purpose - determine how FMB device is mounted in a vehicle. After the calibration process ''eco driving'' functionality becomes active and calibration data will be used to determine harsh acceleration, braking and cornering events.
 +
 +
There are two conditions when auto calibration takes place:
 +
 +
*If on device startup no calibration was detected;
 +
*If the device receives an SMS/GPRS message with ''auto_calibrate:set'' text.<br />
 +
 +
After functionality has started FMB device periodically checks current appliance GNSS, ignition and movement source parameters and if the conditions match:
 +
 +
*position fix got;
 +
*GNSS speed is zero;
 +
*ignition is ON;
 +
*first calibration vector was not saved yet;<br />
 +
 +
Then first vector is taken. Saved vector will be considered as ground vector and it will be used at further calibration calculations.
 +
 +
''Note: When FMB device saves first ground vector vehicle must be parked on flat ground''. Crooked vector may have an impact on further calculations.
 +
 +
Afterwards first ground vector was taken, device analyses conditions:
 +
 +
*position fix got;
 +
*GNSS speed is at least 20 km/h;
 +
*ignition is ON;
 +
*second vector was not saved yet;
 +
*vehicle driving in the same direction with 5⁰ tolerance;
 +
*vehicle speed increase by 7km/h within 1 second.<br />
 +
 +
For next vector. Second vector will be taken if all conditions match. Immediately after second vector is received, it will be multiplied by first (ground) vector, the result of these vectors is vector multiplication cross product which is the right side of a car. By using same vector multiplication method, device front, left side will be calculated. At this point calibration is successfully ended as indication device sends an SMS/GPRS message with ''Device is calibrated, to recalibrate send:auto_calibrate:set''.
 +
 +
''Note: SMS/GPRS message will be sent only if auto calibration functionality was triggered by'' SMS/GPRS message''.''
 +
 +
For user convenience in case auto calibration functionality fails then notification message will be sent. For exact messages, check algorithm section.
 +
 +
''Note: SMS/GPRS message will be sent only if auto calibration functionality was triggered by'' SMS/GPRS message''.''
 +
 +
To get current calibration status ''auto_calibrate:get'' SMS/GPRS command must be sent to the device. If device is calibrated it will respond with ''Calibration state: calibrated'' or otherwise ''Calibration state: not calibrated''. Also this command returns saved Ground and Side vectors.
 +
 +
After every TRIP START event, device starts shadow calibration. This type of calibration is running in parallel with already saved vectors (this means that vectors does not reset until shadow calibration have both new vectors). After shadow calibration is done, device updates the vector values to the new ones. There are two conditions when shadow calibration does not run at TRIP start event:
 +
 +
*Normal calibration is still running.
 +
*Shadow calibration is still running from previous TRIP event.<br />
 +
 +
To take ground vector these conditions should be met:
 +
 +
*Ignition is ON
 +
*Device got GPS FIX
 +
*Vehicle speed = 0km/h<br />
 +
 +
Device will check these conditions every 1sec until they will pass.
 +
 +
To take side vector these conditions should be met:
 +
 +
*Vehicle speed >= 20km/h
 +
*Device got GPS FIX
 +
*Ignition is ON
 +
*Device angle does not change more than 5 degrees in past 1 sec
 +
*Speed need to increase by 7km/h in 1s period.<br />Device will check these conditions every 1 sec until they will pass.
 +
 +
<br />
 
==Excessive Idling==
 
==Excessive Idling==
  
 
{{{pic_idling|[[Image:Fmb640_excessive_idling.png|300px|right]]}}}
 
{{{pic_idling|[[Image:Fmb640_excessive_idling.png|300px|right]]}}}
  
If ignition (DIN1 or Power Voltage) is ON and vehicle is not moving, after configured time period FMB640 will generate event. When vehicle starts moving FMB640 after configured time period generate event that vehicle idle time ends. You can configure time it takes to turn on this scenario (Time to Stopped). Scenario is activated until vehicle starts moving and keeps moving (moving is detected only from accelerometer) for amount of time that is configured. You can configure time it takes to turn OFF this scenario (Time to Stopped). .
+
If ignition (DIN1 or Power Voltage) is ON and the vehicle is not moving, FMB640 will generate the ''Excessive Idling'' event when the configured time period passes. When vehicle starts moving and configured period of time passes, FMB640 will generate event that vehicle idle time ends. Auto Geofencing option can be configured by the following parameters:
<br/><br/><br/><br/><br/><br/><br/><br/>
 
  
 +
*Time to stopped - scenario is activated until vehicle starts moving and keeps moving (moving is detected only from the accelerometer) for the amount of time that is configured.
 +
*Time to moving - scenario is activated until vehicle stops and stays idle (moving is detected only from the accelerometer) for the amount of time that is configured.
 +
*Start speed threshold - scenario is activated, when the vehicle's speed exceeds the ''start speed threshold'' value.
 +
*Stop speed threshold - scenario is activated, when the vehicle's speed drops below the ''stop speed threshold'' value.
 +
 +
Digital output 1 or digital output 2 can be activated for a period of time to warn the driver. Output on-time is configured separately for each feature case. For more information please refer to [[DOUT_controls|DOUT controls]].
 +
 +
In order for vehicle to enter idling, state ignition has to be ON and at least one of these conditions have to be satisfied:
 +
 +
*detected speed is less than configured speed (Excessive Idling start speed threshold) for configured time duration (Time to stopped timeout);
 +
*no GPS fix AND speed configured as GPS speed in Speed source settings AND no movement detected for configured time duration (Time to stopped timeout);
 +
 +
The vehicle is considered to be leaving the idling state if at least one of these conditions is satisfied:
 +
 +
*if detected speed is greater than configured speed (Excessive Idling stop speed threshold) for configured time duration (Time to moving timeout);
 +
*if for configured time duration (Time to moving timeout) there is no GPS fix AND movement is detected AND speed is configured as GPS speed in Speed source settings;
 +
*if the ignition is not detected for configured time duration (Time to moving timeout).
 +
 +
If the Excessive idling Eventual records parameter is enabled, the event is generated and saved with low priority on every idling state change.
 +
 +
<br />
 
==Towing Detection==
 
==Towing Detection==
  
[[Image:Fmb640_towing.png|300px|right]]
+
[[Image:Fmb640_towing.png|250px|right]]
  
 
''Towing Detection'' feature helps to inform the driver about unexpected car movement when it was parked. {{{model|FMB640}}} generates an event when car is being towed or lifted, for example, in a case of vehicle evacuation. {{{model|FMB640}}} activates towing function when following conditions are met:
 
''Towing Detection'' feature helps to inform the driver about unexpected car movement when it was parked. {{{model|FMB640}}} generates an event when car is being towed or lifted, for example, in a case of vehicle evacuation. {{{model|FMB640}}} activates towing function when following conditions are met:
# Ignition (configured Ignition Source) is OFF.
+
 
# ''Activation Timeout'' is reached.
+
#Ignition (configured Ignition Source) is OFF.
 +
#''Activation Timeout'' is reached.
 +
 
 
When towing function is engaged {{{model|FMB640}}} monitors accelerometer data. If acceleration ''Threshold'' or ''Angle'' reach configured values for a configured ''Duration'', and Ignition is still OFF for a period of time that is longer than ''Event Timeout'', then an event is generated. When configured, ''Make Call To'' and ''Send SMS To'' functions make a call or send an SMS to a predefined phone number. Towing function will be reactivated after {{{model|FMB640}}} detects a change of Ignition state from ON to OFF.
 
When towing function is engaged {{{model|FMB640}}} monitors accelerometer data. If acceleration ''Threshold'' or ''Angle'' reach configured values for a configured ''Duration'', and Ignition is still OFF for a period of time that is longer than ''Event Timeout'', then an event is generated. When configured, ''Make Call To'' and ''Send SMS To'' functions make a call or send an SMS to a predefined phone number. Towing function will be reactivated after {{{model|FMB640}}} detects a change of Ignition state from ON to OFF.
<br/><br/><br/><br/><br/><br/><br/>
+
<br />
 +
 
 +
 
 +
==Crash detection==
 +
{{{pic_crash|[[File:Crash Detection cfg.PNG|right]]}}}
 +
 
 +
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|FMT100}}} can detect events ranging between a slight tapping on the device and a severe accident.<br/>
 +
If ''Crash Trace'' is disabled only one eventual crash record will be generated when ''Duration (ms)'' and ''Threshold (mg)'' values are exceeded. <br/>
 +
 
 +
If ''Crash Trace'' is enabled, {{{model|FMB640}}} 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: <br/>
 +
 
 +
*''Accel duration (s)''. Acceleration data duration can be set for up to 15 seconds before crash event and 15 seconds after; <br/>
 +
*''GNSS duration (s)''. GNSS data duration can be set for up to 30 seconds before crash event and 30 seconds after. <br/>
 +
*''IO duration (s)''. IO data duration can be set for up to 30 seconds before crash event and 30 seconds after. <br/>
 +
 
 +
There are three configurable Crash Trace modes:<br/>
 +
'''Trace Full'''
 +
 
 +
*Data tracked: all GNSS and acceleration data <br/>
 +
 
 +
'''Trace Full with IO's'''
 +
 
 +
*Data tracked: all GNSS and acceleration data with IO's, configured in I/O settings as "Crash" parameter (see picture below)
 +
 
 +
[[File:Crash event input.png|thumb|none]]
 +
 
 +
'''Trace Changes'''
 +
 
 +
*Data tracked: GNSS and acceleration data, when acceleration values are changed by more then 50mG <br/><br/>
 +
 
 +
NOTE: with Crash Trace mode enabled, it is recommended to use ''[[Codec#Codec 8 Extended|Codec 8 Extended]]'' Data Protocol. This helps to optimize crash trace data sending from device to server.
 +
 
 +
[[File:Codec 8 Extended setting.png|thumb|none]]
 +
 
 +
Each record will have accurate timestamps in milliseconds. <br/>
 +
 
 +
 
 +
[[Image:Fmb120_crash_trace.png|600px|none]]
 +
<youtube>u6w7UHbvQcU</youtube>
 +
 
 +
==Crash Data Visualisation==
 +
 
 +
With Teltonika ''CrashDataVisualizer'' tool you can analyze crash trace data visually: determine impact to vehicle direction, view crash trace on the map, also see the change of mG and speed values during crash time period. CrashDataVisualizer is dedicated to work with TAVL application, it means that only crash trace log files exported from TAVL is compatible. To have ability to export crash trace log files, device must be configured to send data by [[Codec#Codec 8 Extended|Codec8E]].
 +
 
 +
'''To start using CrashDataVisualizer'''<br/>
 +
Download and install TAVL (version 4.15.0.1 or later) + CrashDataVisualizer applications from here:<br/>
 +
''Link:'' https://drive.teltonika.lt/d/05369fc90d9744afb14f/<br/>
 +
''Password:'' TJEk24YApbRhWrQQ
 +
 
 +
'''To get crash data'''<br/>
 +
 
 +
Login to TAVL application (please contact your Sales manager for TAVL login information).<br/>
 +
 
 +
[[File:Crash data steps.png|thumb|left]]
  
==Crash Detection==
+
In TAVL application:<br />
 +
1.  Go to Events<br />
 +
2.  Set the date of event<br />
 +
3.  Select the object you want to analyze<br />
 +
4.  Press "Crashes" button<br /><br /><br /><br /><br /><br /><br /><br />
 +
Crash event list window will show up. Press Download icon and save crash  event file (.JSON).<br />
 +
[[File:JSON download.png|thumb|none]]<br />
  
[[Image:Fmb640_crash.png|300px|right]]
+
'''Viewing crash data in application'''<br />
 +
Open CrashDataVisualizer application. Drag and Drop or Browse crash data file (.JSON).<br />
  
If ''Crash Detection'' is enabled, it monitors acceleration on each axis which helps detecting an accident. ''Threshold'' and ''Duration'' values are set depending on the impact that is required to be detected. {{{model|FMB640}}} can detect events ranging between a slight tapping on the device (Threshold = 100 mG, Duration = 1 ms) and a severe accident (Threshold = 4000 mG, Duration = 5 ms).
+
[[File:Crash Data Visualizer start screen.png|thumb|none]]
  
<br/><br/><br/><br/>
+
Use the Visualizer.<br />
  
{{{par_dout|==DOUT controls==
+
[[File:Crash Data Visualizer main.png|thumb|none]]
Please refer to [[FMB640 DOUT controls|DOUT controls]].}}}
+
}}}
 +
<br>
 +
==Crash Trace Explanation==
 +
Device continiously reads data from accelerometer. When accelerometer‘s axes magnitude is above configured threshold for defined duration, crash event is detected. After crash is detected, crash trace is performed. Crash trace functionality collects accelerometer, GNSS and additional configured IO data (configurable). Collected data holds configured seconds of information before crash and configured seconds of information after crash. <br>
 +
<br>
 +
'''Example:''' accel and GNSS duration set to 2s. Total data length will be 4s (2 before event 2 after event).<br>
 +
<br>
 +
'''Structure'''<br>
 +
Crash trace records follows AVL records structure, and can be parsed using the same parsers. Records are sent together with usual device records.<br>
 +
<br>
 +
'''Table 1. Crash Trace Record Part 1 '''
 +
{| class="nd-othertables_2" style="width:100%;"
 +
|+
 +
! rowspan="1" style="width:12.5%; border-bottom: 2px solid #0054A6; vertical-align: middle; text-align: center;" |Timestamp
 +
! rowspan="1" style="width:12.5%; border-bottom: 2px solid #0054A6; vertical-align: middle; text-align: center;" |Priority
 +
! rowspan="1" style="width:12.5%; border-bottom: 2px solid #0054A6; vertical-align: middle; text-align: center;" |Longitude
 +
! rowspan="1" style="width:12.5%; border-bottom: 2px solid #0054A6; vertical-align: middle; text-align: center;" |Latitude
 +
! rowspan="1" style="width:12.5%; border-bottom: 2px solid #0054A6; vertical-align: middle; text-align: center;" |Altitude
 +
! rowspan="1" style="width:12.5%; border-bottom: 2px solid #0054A6; vertical-align: middle; text-align: center;" |Angle
 +
! rowspan="1" style="width:12.5%; border-bottom: 2px solid #0054A6; vertical-align: middle; text-align: center;" |Sat in Use
 +
! rowspan="1" style="width:12.5%; border-bottom: 2px solid #0054A6; vertical-align: middle; text-align: center;" |Speed
 +
|-
 +
| style="vertical-align: middle; text-align: center;" |8B
 +
| style="vertical-align: middle; text-align: center;" |1B
 +
| style="vertical-align: middle; text-align: center;" |4B
 +
| style="vertical-align: middle; text-align: center;" |4B
 +
| style="vertical-align: middle; text-align: center;" |2B
 +
| style="vertical-align: middle; text-align: center;" |2B
 +
| style="vertical-align: middle; text-align: center;" |1B
 +
| style="vertical-align: middle; text-align: center;" |2B
 +
|-
 +
|}
 +
<br>
 +
'''Table 2. Crash Trace Record Part 2'''
 +
{| class="nd-othertables_2" style="width:100%;"
 +
|+
 +
! rowspan="1" style="width:20%; border-bottom: 2px solid #0054A6; vertical-align: middle; text-align: center;" |Eventual ID
 +
! rowspan="1" style="width:20%; border-bottom: 2px solid #0054A6; vertical-align: middle; text-align: center;" |Total, IO Count
 +
! rowspan="1" style="width:20%; border-bottom: 2px solid #0054A6; vertical-align: middle; text-align: center;" |1B IO elements
 +
! rowspan="1" style="width:20%; border-bottom: 2px solid #0054A6; vertical-align: middle; text-align: center;" |Crash Event, ID
 +
! rowspan="1" style="width:20%; border-bottom: 2px solid #0054A6; vertical-align: middle; text-align: center;" |Crash Event, Value
 +
|-
 +
| style="vertical-align: middle; text-align: center;" |1B<br> Always<br> 247
 +
| style="vertical-align: middle; text-align: center;" |1B<br> Always<br> 0x04
 +
| style="vertical-align: middle; text-align: center;" |1B<br> Always<br> 0x01
 +
| style="vertical-align: middle; text-align: center;" |1B<br> Always<br> 247
 +
| style="vertical-align: middle; text-align: center;" |1B<br> Always<br> [2-5]*
 +
|-
 +
|}
 +
* This value depends on user configuration : <br>
 +
2 – Trace changes and device is not calibrated.<br>
 +
3 – Trace changes and device is calibrated.<br>
 +
4 – Trace full and device is not calibrated.<br>
 +
5 – Trace full and device is calibrated.<br>
 +
<br>
 +
'''Table 3. Crash Trace Record Part 3'''
 +
{| class="nd-othertables_2" style="width:100%;"
 +
|+
 +
! rowspan="1" style="width:9%; border-bottom: 2px solid #0054A6; vertical-align: middle; text-align: center;" |1B IO <br> elements*
 +
! rowspan="1" style="width:9%; border-bottom: 2px solid #0054A6; vertical-align: middle; text-align: center;" |Ignition <br> Value*
 +
! rowspan="1" style="width:9%; border-bottom: 2px solid #0054A6; vertical-align: middle; text-align: center;" |2B IO <br> elements
 +
! rowspan="1" style="width:9%; border-bottom: 2px solid #0054A6; vertical-align: middle; text-align: center;" |Axis X, <br> ID
 +
! rowspan="1" style="width:9%; border-bottom: 2px solid #0054A6; vertical-align: middle; text-align: center;" |Axis X, <br> Value
 +
! rowspan="1" style="width:9%; border-bottom: 2px solid #0054A6; vertical-align: middle; text-align: center;" |Axis Y,<br> ID
 +
! rowspan="1" style="width:9%; border-bottom: 2px solid #0054A6; vertical-align: middle; text-align: center;" |Axis Y, <br> Value
 +
! rowspan="1" style="width:9%; border-bottom: 2px solid #0054A6; vertical-align: middle; text-align: center;" |Axis Z,<br> ID
 +
! rowspan="1" style="width:9%; border-bottom: 2px solid #0054A6; vertical-align: middle; text-align: center;" |Axis Z, <br> Value
 +
! rowspan="1" style="width:9%; border-bottom: 2px solid #0054A6; vertical-align: middle; text-align: center;" |4B IO <br> elements
 +
! rowspan="1" style="width:10%; border-bottom: 2px solid #0054A6; vertical-align: middle; text-align: center;" |8B IO <br> Elements
 +
|-
 +
| style="vertical-align: middle; text-align: center;" |1B <br> Always 1
 +
| style="vertical-align: middle; text-align: center;" |1B <br> Ignition <br> value
 +
| style="vertical-align: middle; text-align: center;" |1B <br> Always <br> 3
 +
| style="vertical-align: middle; text-align: center;" |1B <br> Always <br> 0x17
 +
| style="vertical-align: middle; text-align: center;" |2B
 +
| style="vertical-align: middle; text-align: center;" |1B <br> Always <br> 0x18
 +
| style="vertical-align: middle; text-align: center;" |2B
 +
| style="vertical-align: middle; text-align: center;" |1B <br> Always <br> 0x19
 +
| style="vertical-align: middle; text-align: center;" |2B
 +
| style="vertical-align: middle; text-align: center;" |1B <br> Always <br> 0x00
 +
| style="vertical-align: middle; text-align: center;" |1B <br> Always <br> 0x00
 +
|-
 +
|}
 +
* Ignition value is only added to the trace records if crash trace parameter is configured as „Trace Full“<br>
 +
<br>
 +
'''ODR explanation:'''<br>
 +
When crash ODR is set to 100 Hz then device should collect 100 samples of AXL data over one second. You should see records timestamp every 1 second and each record should contain Crash trace data (AVL ID 257). This IO element should has 100 samples of X,Y,Z values. Also I notice that you use Codec8 protocol. We strongly recommend to use Codec8 extended. <br>
 +
<br>
 +
'''Parsing'''<br>
 +
{| class="nd-othertables_2" style="width:100%;"
 +
! rowspan="1" style="width:100%; vertical-align: middle; text-align: center;" |Unparsed received data in hexadecimal stream
 +
|-
 +
| style="vertical-align: middle; text-align: center;" | <span style="background:#FFA533">0001</span><span style="background:#0b9768">0101</span><span style="background:#B233FF">0258</span><span style="background:#E74C3C">0234</span><span style="background:#F9FF33">001F</span><span style="background:#335EFF">0027</span><span style="background:#0b9768">0269</span><span style="background:#F9FF33">003A</span><span style="background:#335EFF">0035</span><span style="background:#E74C3C">026C</span><span style="background:#F9FF33">002A</span><span style="background:#B233FF">002B</span>0257FFC300180255FF8C00130258FF95000B0283FF800012027EFF860007026EFF63FFFA02D5F<br>F75000F0352FFBA003D03BEFFA70081043BFFE400EE04550027011003CBFFB8009103AFFFB0007D039BFFE0006D0357FFD70044039F0008007803AFFFEF008B03D9<br>FFD200BF040F0018010904210030013E03F6001A012E03BB003A01140336006A00C502A4000900780269FF9A00730228FF75006A0234FFBE007B024BFFD800990262FFEB00BE<br>02B000530123028FFFE70123016FFF11008C00C2FEE2005AFFB6FF8AFFF8FF46FFA5FFE6FEFBFFBDFFDAFEBDFFCEFFD6FE66FFF6FFD8FEC4004BFFD5FF730047FFE2FFD8F<br>FE6FFF100FB0040007C00A6FF1D006C0036FE6E007EFF46FF0FFFEBFE87001FFFA9FE370042FFA3FE500066FFA3FE35FF56FFBDFDCD0016FFB5FDDB006CFFBAFE770019<br>FFAFFE830020FFB1FE8E0032FFB3FE970034FFB6FE94FFF8FFBAFEA20028FFBBFEAC0027FFBDFEB00025FFBFFEB1002FFFC1FEB70027FFC3FEBB0025FFC5FEB90031FFC6FEB<br>F002FFFC8FED1000FFFCAFED6000DFFCCFED40023FFCDFED80024FFCFFEDA0026FFD0FEE00024FFD1FEE80022FFD3FEE2002CFFD4FEEC0028FFD5FEEE0028FFD6FE<br>F10027FFD8FEF70025FFD9FEFC0024FFDAFEFD0022FFDBFF050028FFDDFF0D0023FFDEFF180021FFDFFF030021FFE0FF020027FFE1FF150021FFE2FF190<br>023FFE3FF1E0024FFE4FF220023FFE5FF260022FFE6FF260020FFE6FF2C0023FFE7FF310022FFE8FF360020FFE9FF37001DFFEAFF3C001CFFEAF<br>F3F001EFFEBFF43001EFFECFF46001EFFEC
 +
|}
 +
<span style="background:#FFA533">0001</span> - IO element count <br>
 +
<span style="background:#0b9768">0101</span> - IO element ID 257 (dec) <br>
 +
<span style="background:#B233FF">0258</span> - Data length 600 (dec) <br>
 +
<br>
 +
Accelerometer data: <br>
 +
1‘st sample: <br>
 +
<span style="background:#E74C3C">0234</span> – X axis data 564 mG (dec) <br>
 +
<span style="background:#F9FF33">001F</span> – Y axis data 31 mG (dec) <br>
 +
<span style="background:#335EFF">0027</span> – Z axis data 39 mG (dec) <br>
 +
<br>
 +
2‘nd sample: <br>
 +
<span style="background:#0b9768">0269</span> – X axis data 617 mG (dec) <br>
 +
<span style="background:#F9FF33">003A</span> – Y axis data 58 mG (dec) <br>
 +
<span style="background:#335EFF">0035</span> – Z axis data 53 mG (dec) <br>
 +
<br>
 +
3‘rd sample:<br>
 +
<span style="background:#E74C3C">026C</span> – X axis data 620 mG (dec) <br>
 +
<span style="background:#F9FF33">002A</span> – Y axis data 42 mG (dec) <br>
 +
<span style="background:#B233FF">002B</span> – Z axis data 43 mG (dec) <br>
 +
...<br>
 +
N'th sample: <br>
 +
...<br>

Latest revision as of 07:55, 11 October 2021

Accelerometer Calibration

Accelerometer auto calibration functionality has one purpose - determine how FMB device is mounted in a vehicle. After the calibration process eco driving functionality becomes active and calibration data will be used to determine harsh acceleration, braking and cornering events.

There are two conditions when auto calibration takes place:

  • If on device startup no calibration was detected;
  • If the device receives an SMS/GPRS message with auto_calibrate:set text.

After functionality has started FMB device periodically checks current appliance GNSS, ignition and movement source parameters and if the conditions match:

  • position fix got;
  • GNSS speed is zero;
  • ignition is ON;
  • first calibration vector was not saved yet;

Then first vector is taken. Saved vector will be considered as ground vector and it will be used at further calibration calculations.

Note: When FMB device saves first ground vector vehicle must be parked on flat ground. Crooked vector may have an impact on further calculations.

Afterwards first ground vector was taken, device analyses conditions:

  • position fix got;
  • GNSS speed is at least 20 km/h;
  • ignition is ON;
  • second vector was not saved yet;
  • vehicle driving in the same direction with 5⁰ tolerance;
  • vehicle speed increase by 7km/h within 1 second.

For next vector. Second vector will be taken if all conditions match. Immediately after second vector is received, it will be multiplied by first (ground) vector, the result of these vectors is vector multiplication cross product which is the right side of a car. By using same vector multiplication method, device front, left side will be calculated. At this point calibration is successfully ended as indication device sends an SMS/GPRS message with Device is calibrated, to recalibrate send:auto_calibrate:set.

Note: SMS/GPRS message will be sent only if auto calibration functionality was triggered by SMS/GPRS message.

For user convenience in case auto calibration functionality fails then notification message will be sent. For exact messages, check algorithm section.

Note: SMS/GPRS message will be sent only if auto calibration functionality was triggered by SMS/GPRS message.

To get current calibration status auto_calibrate:get SMS/GPRS command must be sent to the device. If device is calibrated it will respond with Calibration state: calibrated or otherwise Calibration state: not calibrated. Also this command returns saved Ground and Side vectors.

After every TRIP START event, device starts shadow calibration. This type of calibration is running in parallel with already saved vectors (this means that vectors does not reset until shadow calibration have both new vectors). After shadow calibration is done, device updates the vector values to the new ones. There are two conditions when shadow calibration does not run at TRIP start event:

  • Normal calibration is still running.
  • Shadow calibration is still running from previous TRIP event.

To take ground vector these conditions should be met:

  • Ignition is ON
  • Device got GPS FIX
  • Vehicle speed = 0km/h

Device will check these conditions every 1sec until they will pass.

To take side vector these conditions should be met:

  • Vehicle speed >= 20km/h
  • Device got GPS FIX
  • Ignition is ON
  • Device angle does not change more than 5 degrees in past 1 sec
  • Speed need to increase by 7km/h in 1s period.
    Device will check these conditions every 1 sec until they will pass.


Excessive Idling

Fmb640 excessive idling.png

If ignition (DIN1 or Power Voltage) is ON and the vehicle is not moving, FMB640 will generate the Excessive Idling event when the configured time period passes. When vehicle starts moving and configured period of time passes, FMB640 will generate event that vehicle idle time ends. Auto Geofencing option can be configured by the following parameters:

  • Time to stopped - scenario is activated until vehicle starts moving and keeps moving (moving is detected only from the accelerometer) for the amount of time that is configured.
  • Time to moving - scenario is activated until vehicle stops and stays idle (moving is detected only from the accelerometer) for the amount of time that is configured.
  • Start speed threshold - scenario is activated, when the vehicle's speed exceeds the start speed threshold value.
  • Stop speed threshold - scenario is activated, when the vehicle's speed drops below the stop speed threshold value.

Digital output 1 or digital output 2 can be activated for a period of time to warn the driver. Output on-time is configured separately for each feature case. For more information please refer to DOUT controls.

In order for vehicle to enter idling, state ignition has to be ON and at least one of these conditions have to be satisfied:

  • detected speed is less than configured speed (Excessive Idling start speed threshold) for configured time duration (Time to stopped timeout);
  • no GPS fix AND speed configured as GPS speed in Speed source settings AND no movement detected for configured time duration (Time to stopped timeout);

The vehicle is considered to be leaving the idling state if at least one of these conditions is satisfied:

  • if detected speed is greater than configured speed (Excessive Idling stop speed threshold) for configured time duration (Time to moving timeout);
  • if for configured time duration (Time to moving timeout) there is no GPS fix AND movement is detected AND speed is configured as GPS speed in Speed source settings;
  • if the ignition is not detected for configured time duration (Time to moving timeout).

If the Excessive idling Eventual records parameter is enabled, the event is generated and saved with low priority on every idling state change.


Towing Detection

Fmb640 towing.png

Towing Detection feature helps to inform the driver about unexpected car movement when it was parked. FMB640 generates an event when car is being towed or lifted, for example, in a case of vehicle evacuation. FMB640 activates towing function when following conditions are met:

  1. Ignition (configured Ignition Source) is OFF.
  2. Activation Timeout is reached.

When towing function is engaged FMB640 monitors accelerometer data. If acceleration Threshold or Angle reach configured values for a configured Duration, and Ignition is still OFF for a period of time that is longer than Event Timeout, then an event is generated. When configured, Make Call To and Send SMS To functions make a call or send an SMS to a predefined phone number. Towing function will be reactivated after FMB640 detects a change of Ignition state from ON to OFF.


Crash detection

Crash Detection cfg.PNG

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. FMT100 can detect events ranging between a slight tapping on the device and a severe accident.
If Crash Trace is disabled only one eventual crash record will be generated when Duration (ms) and Threshold (mg) values are exceeded.

If Crash Trace is enabled, FMB640 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.

There are three configurable Crash Trace modes:
Trace Full

  • Data tracked: all GNSS and acceleration data

Trace Full with IO's

  • Data tracked: all GNSS and acceleration data with IO's, configured in I/O settings as "Crash" parameter (see picture below)
Crash event input.png

Trace Changes

  • Data tracked: GNSS and acceleration data, when acceleration values are changed by more then 50mG

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.

Codec 8 Extended setting.png

Each record will have accurate timestamps in milliseconds.


Fmb120 crash trace.png

Crash Data Visualisation

With Teltonika CrashDataVisualizer tool you can analyze crash trace data visually: determine impact to vehicle direction, view crash trace on the map, also see the change of mG and speed values during crash time period. CrashDataVisualizer is dedicated to work with TAVL application, it means that only crash trace log files exported from TAVL is compatible. To have ability to export crash trace log files, device must be configured to send data by Codec8E.

To start using CrashDataVisualizer
Download and install TAVL (version 4.15.0.1 or later) + CrashDataVisualizer applications from here:
Link: https://drive.teltonika.lt/d/05369fc90d9744afb14f/
Password: TJEk24YApbRhWrQQ

To get crash data

Login to TAVL application (please contact your Sales manager for TAVL login information).

Crash data steps.png

In TAVL application:
1. Go to Events
2. Set the date of event
3. Select the object you want to analyze
4. Press "Crashes" button







Crash event list window will show up. Press Download icon and save crash event file (.JSON).

JSON download.png


Viewing crash data in application
Open CrashDataVisualizer application. Drag and Drop or Browse crash data file (.JSON).

Crash Data Visualizer start screen.png

Use the Visualizer.

Crash Data Visualizer main.png

}}}

Crash Trace Explanation

Device continiously reads data from accelerometer. When accelerometer‘s axes magnitude is above configured threshold for defined duration, crash event is detected. After crash is detected, crash trace is performed. Crash trace functionality collects accelerometer, GNSS and additional configured IO data (configurable). Collected data holds configured seconds of information before crash and configured seconds of information after crash.

Example: accel and GNSS duration set to 2s. Total data length will be 4s (2 before event 2 after event).

Structure
Crash trace records follows AVL records structure, and can be parsed using the same parsers. Records are sent together with usual device records.

Table 1. Crash Trace Record Part 1

Timestamp Priority Longitude Latitude Altitude Angle Sat in Use Speed
8B 1B 4B 4B 2B 2B 1B 2B


Table 2. Crash Trace Record Part 2

Eventual ID Total, IO Count 1B IO elements Crash Event, ID Crash Event, Value
1B
Always
247
1B
Always
0x04
1B
Always
0x01
1B
Always
247
1B
Always
[2-5]*
  • This value depends on user configuration :

2 – Trace changes and device is not calibrated.
3 – Trace changes and device is calibrated.
4 – Trace full and device is not calibrated.
5 – Trace full and device is calibrated.

Table 3. Crash Trace Record Part 3

1B IO
elements*
Ignition
Value*
2B IO
elements
Axis X,
ID
Axis X,
Value
Axis Y,
ID
Axis Y,
Value
Axis Z,
ID
Axis Z,
Value
4B IO
elements
8B IO
Elements
1B
Always 1
1B
Ignition
value
1B
Always
3
1B
Always
0x17
2B 1B
Always
0x18
2B 1B
Always
0x19
2B 1B
Always
0x00
1B
Always
0x00
  • Ignition value is only added to the trace records if crash trace parameter is configured as „Trace Full“


ODR explanation:
When crash ODR is set to 100 Hz then device should collect 100 samples of AXL data over one second. You should see records timestamp every 1 second and each record should contain Crash trace data (AVL ID 257). This IO element should has 100 samples of X,Y,Z values. Also I notice that you use Codec8 protocol. We strongly recommend to use Codec8 extended.

Parsing

Unparsed received data in hexadecimal stream
0001010102580234001F00270269003A0035026C002A002B0257FFC300180255FF8C00130258FF95000B0283FF800012027EFF860007026EFF63FFFA02D5F
F75000F0352FFBA003D03BEFFA70081043BFFE400EE04550027011003CBFFB8009103AFFFB0007D039BFFE0006D0357FFD70044039F0008007803AFFFEF008B03D9
FFD200BF040F0018010904210030013E03F6001A012E03BB003A01140336006A00C502A4000900780269FF9A00730228FF75006A0234FFBE007B024BFFD800990262FFEB00BE
02B000530123028FFFE70123016FFF11008C00C2FEE2005AFFB6FF8AFFF8FF46FFA5FFE6FEFBFFBDFFDAFEBDFFCEFFD6FE66FFF6FFD8FEC4004BFFD5FF730047FFE2FFD8F
FE6FFF100FB0040007C00A6FF1D006C0036FE6E007EFF46FF0FFFEBFE87001FFFA9FE370042FFA3FE500066FFA3FE35FF56FFBDFDCD0016FFB5FDDB006CFFBAFE770019
FFAFFE830020FFB1FE8E0032FFB3FE970034FFB6FE94FFF8FFBAFEA20028FFBBFEAC0027FFBDFEB00025FFBFFEB1002FFFC1FEB70027FFC3FEBB0025FFC5FEB90031FFC6FEB
F002FFFC8FED1000FFFCAFED6000DFFCCFED40023FFCDFED80024FFCFFEDA0026FFD0FEE00024FFD1FEE80022FFD3FEE2002CFFD4FEEC0028FFD5FEEE0028FFD6FE
F10027FFD8FEF70025FFD9FEFC0024FFDAFEFD0022FFDBFF050028FFDDFF0D0023FFDEFF180021FFDFFF030021FFE0FF020027FFE1FF150021FFE2FF190
023FFE3FF1E0024FFE4FF220023FFE5FF260022FFE6FF260020FFE6FF2C0023FFE7FF310022FFE8FF360020FFE9FF37001DFFEAFF3C001CFFEAF
F3F001EFFEBFF43001EFFECFF46001EFFEC

0001 - IO element count
0101 - IO element ID 257 (dec)
0258 - Data length 600 (dec)

Accelerometer data:
1‘st sample:
0234 – X axis data 564 mG (dec)
001F – Y axis data 31 mG (dec)
0027 – Z axis data 39 mG (dec)

2‘nd sample:
0269 – X axis data 617 mG (dec)
003A – Y axis data 58 mG (dec)
0035 – Z axis data 53 mG (dec)

3‘rd sample:
026C – X axis data 620 mG (dec)
002A – Y axis data 42 mG (dec)
002B – Z axis data 43 mG (dec)
...
N'th sample:
...