Line 29: |
Line 29: |
| |} | | |} |
| </center> | | </center> |
− | ====Auto calibration before firmware version 03.25.07.Rev.00.====
| |
− | 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.<br />
| |
− | There are two conditions when auto calibration takes place:<br />
| |
| | | |
− | *If on device startup no calibration was detected;
| + | ======Auto-calibration====== |
− | *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:<br />
| |
− | | |
− | *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.<br />
| |
− | ''Note: When FMB device saves first ground vector vehicle must be parked on flat ground''.
| |
− | Crooked vector may have an impact on further calculations.<br />
| |
− | Afterwards first ground vector was taken, device analyses conditions:<br />
| |
− | | |
− | *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''.<br />
| |
− | ''Note: SMS/GPRS message will be sent only if auto calibration functionality was triggered by''
| |
− | SMS/GPRS message''.<br />''
| |
− | For user convenience in case auto calibration functionality fails then notification message
| |
− | will be sent. For exact messages, check algorithm section.<br />
| |
− | ''Note: SMS/GPRS message will be sent only if auto calibration functionality was triggered by''
| |
− | SMS/GPRS message''.<br />''
| |
− | 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.<br />
| |
− | 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:<br />
| |
− | | |
− | *Normal calibration is still running.
| |
− | *Shadow calibration is still running from previous TRIP event.<br />
| |
− | | |
− | To take ground vector these conditions should be met:<br />
| |
− | | |
− | *Ignition is ON
| |
− | *Device got GPS FIX
| |
− | *Vehicle speed = 0km/h<br />
| |
− | | |
− | Device will check these conditions every 1sec until they will pass.<br />
| |
− | To take side vector these conditions should be met:<br />
| |
− | | |
− | *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 />
| |
− | | |
− | | |
− | ====Auto calibration rework and improvements from firmware version 03.25.07.Rev.00.==== | |
− | | |
− | 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.
| |
− | | |
− | Auto calibration task is launched on one of these conditions (assume calibration is enabled in configuration):
| |
− | *Every time device turns on, it checks whether it was previously calibrated and has calibration stored in flash. If device has no calibration in flash, auto calibration task is started.
| |
− | *Device calibration was previously disabled by configuration and now is enabled.
| |
− | *SMS “auto_calibrate:set” is received. Note: SMS response is sent after calibration has been acquired.
| |
− | This SMS triggers an SMS response to be sent. Response is sent when calibration is acquired. When 1 hour passes without successful calibration, failed SMS response is sent.
| |
− | *Calibrated device’s mean axes of set interval differ more than set amount from desired (0,0,1) calibration is considered inaccurate. Calibration is deleted from flash and auto calibration task started.
| |
− | After auto calibration task has been started, it will go on indefinitely until satisfactory calibration is acquired.<br />
| |
− | | |
− | =====Auto-calibration Improvement=====
| |
| | | |
| Auto calibration task is launched on one of these conditions (assume calibration is enabled in configuration):<br> | | Auto calibration task is launched on one of these conditions (assume calibration is enabled in configuration):<br> |