Difference between revisions of "Teltonika DualCam"

From Wiki Knowledge Base | Teltonika GPS
(48 intermediate revisions by 6 users not shown)
Line 1: Line 1:
'''Teltonika DualCam''' solution is perfect for capturing videos or pictures of the events that might occur on the road, e.g. crash. Mounted on the vehicle front window, two cameras are used, front and rear, to record videos before and after the events, take photos periodically or by request and send all data to the server.
+
__TOC__
 +
==Introduction to the product==
 +
Teltonika DualCam is connected to '''FMB125,FMC125 and FMB225, FMC225''' devices using the RS232 interface. <br><br>
 +
[[image:DualCam1.png|400px]] <br>
  
'''Also the possibility to connect two cameras, DSM and DashCam or DualCam, to one device, FMC650'''. By utilizing the two RS232 ports on the FMC650, you can connect the DSM camera for driver status monitoring to one port and the DualCam or DashCam camera for road and cargo monitoring to the second port. '''[https://wiki.teltonika-gps.com/view/DualCam_Configuration#Connecting_two_cameras_simultaneously_for_FMx650 Configuration]'''
+
==How to insert microSD cards==
  
DualCam is connected to '''FMB125, FMC125 and FMB225, FMC225 and FMC650''' devices using the RS232 interface.
+
Teltonika DualCam can hold 2 x microSD cards, which are inserted on both sides of the camera (front and rear). <br>
 +
When the card is inserted correctly, it locks in with a "click". How the cards are inserted is depicted in the photos.
  
[[File:471085 DualCam-2022-02-08 (1).png|alt=|right|500x500px]]
+
'''NOTE:''' If you do not insert microSD cards, you will be only available to receive images, but you do not receive video if the trigger will happen or you will send SMS/GPRS command.
  
*[[First Start]]
+
[[image:Dual_camera_MicroSD_card_insert_1.png|400px]]  
*[[Camera Manual]]
+
[[image:Dual_camera_MicroSD_card_insert_2.png|400px]]
*[[DualCam Configuration]]
 
*[[Data image/video review]]
 
*[[DualCam Communication Protocol]]
 
*[[DualCam Data Sending Parameters ID]]
 
*[[DualCam SMS commands]]
 
*[[DualCam Certifications & Approvals]]
 
*[[DualCam Troubleshoot]]
 
*[[DualCam Firmware errata]]
 
*[[DualCam Product Change Notifications]]
 
*[[DualCam FAQ]]
 
*[[DualCam Integration on platforms]]
 
*[[DualCam Nomenclature, classification codes]]
 
*[[DualCam EAN]]
 
*[[Dualcam Testing|DualCam Testing guide]]
 
*[[CloudView Platform]]
 
==Downloads==
 
'''Manual & Documentation'''<br>
 
  
[[File:pdf_icon.png|32px|link=]]
+
==Camera mounting recommendation==
[[Media:631370 Datasheet Teltonika DualCam V1.2.pdf|DualCam Datasheet (EN)]]
 
<small>(Updated on: 2024-01-02)</small>
 
  
==Additional information==
+
Camera location:
 +
* To maximize the field of view, the camera should be mounted in the middle of the front windshield so that an even field of view for the sides of the vehicle is recorded. We recommend you mount the Dual Cam near the rearview mirror area.
 +
* We always recommend angling the lens slightly upwards so that video footage displays about 60% road and 40% sky. This angle offers a good balance of exposure and details.
 +
* View footage from SD card while mounting the Dual Cam so you can select what position and angle you prefer the Dual Cam to be set at.
  
https://teltonika-gps.com/lt/product/dualcam/
+
Rear camera adjusting:
  
{{{EOL|For EOL policy please refer to link [https://teltonika-gps.com/support/eol-products here].}}}
+
[[image:Dual camera rotation 1.png|200px]]
 +
[[image:Dual camera rotation 2.png|200px]]
 +
[[image:Dual camera rotation 3.png|200px]]
 +
[[image:Dual camera rotation 4.png|200px]]
  
==Video presentation about DualCam==
+
* Gently remove the cover from the case of the top camera. After the cover is removed you will see the screw.
 +
* Unscrew it and rotate the rear camera to adjust the better view of the cabin. The rear camera contains infrareds on it.
 +
* Put the cover back on the camera.
  
<youtube>https://www.youtube.com/watch?v=1ccD4Yo1zFA&ab_channel=TeltonikaTelematics</youtube><br><br>
+
Connecting power source:
 +
* Due to high camera power consumption we always recommend connecting the camera to the vehicle ignition. The camera start-up in 2-3 seconds when vehicle ignition goes ON.
 +
* Camera ground (Black cable) must be connected to the same (common) Ground wire as FMx125 device.
 +
* Ground wire is connected to the vehicle frame or metal parts that are fixed to the frame.
  
[[Category:Video Solutions]]
+
Please refer to FMx125 device mounting recommendation: https://wiki.teltonika-gps.com/view/FMC125_First_Start#Mounting_recommendations
 +
 
 +
==Video file conversion==
 +
 
 +
===Video files and conversion===
 +
Videos downloaded from the camera are in the raw h265 format. By default, they could be viewed using the ZMVideoPlayer program in the h265 format. If the videos are needed in a more common format, they can be converted.
 +
 
 +
===Video conversion example and settings===
 +
For converting DualCam h265 videos to a more popular mp4 video format, a free open-source converter FFmpeg is used in the example. Although any other converter from h265 would work as well.
 +
 
 +
To convert DualCam video properly, the converter has to know the frame rate of the video. The frame rate is configured as Config Id: 66003 and could be either 20, 25, or 30 FPS. That same value could be obtained by using the metadata command (see more details at [[Teltonika_DualCam#Communication_protocol|File metadata response]] ('''CMD ID 0x000B''')).
 +
 
 +
Recommended parameters using the FFmpeg for the conversion:
 +
 
 +
'''ffmpeg -r <fps> -i <input>.h265 -ss 00:00:0.9 -c:a copy -c:v libx264 <output>.mp4'''
 +
 
 +
<fps> - configured frame rate of the video;
 +
 
 +
<input> - file name of the video file from the camera;
 +
 
 +
<output> - file name of the video that will be converted to mp4.
 +
 
 +
==Product Specification==
 +
<br>
 +
<table class="nd-othertables" style="width: 73%;">
 +
        <th style="width: 10%; text-align:left; vertical-align:middle; color:black">Technical data</th>
 +
        <th style="width: 20%; text-align:center; vertical-align:middle; color:black">Description</th>
 +
    </tr>
 +
<tr>
 +
        <td style="width: 8%; text-align:left;">Supported by</td>
 +
        <td style="width: 8%; text-align:left">FMC125, FMB125, FMB225, FMC225</td>
 +
    </tr>
 +
<tr>
 +
        <td style="width: 8%; text-align:left">Day & Night Vision Effect</td>
 +
        <td style="width: 8%; text-align:left">Day (Color), Night (Black & White)</td>
 +
    </tr>
 +
<tr>
 +
        <td style="width: 8%; text-align:left">Angle of View</td>
 +
        <td style="width: 8%; text-align:left">Horizontal 120°, Vertical 70°</td>
 +
    </tr>
 +
<tr>
 +
        <td style="width: 8%; text-align:left">Dual Camera</td>
 +
        <td style="width: 8%; text-align:left">Front and Rear (equal characteristics)</td>
 +
    </tr>
 +
<tr>
 +
        <td style="width: 8%; text-align:left">Camera casing dimensions</td>
 +
        <td style="width: 8%; text-align:left">126.2 x 36.6 x 36.6 mm</td>
 +
    </tr>
 +
<tr>
 +
        <td style="width: 8%; text-align:left">Camera mounting</td>
 +
        <td style="width: 8%; text-align:left">Sticky tape (3M) or screws</td>
 +
    </tr>
 +
<tr>
 +
        <td style="width: 8%; text-align:left">Supported microSD card sizes</td>
 +
        <td style="width: 8%; text-align:left">16 GB, 32 GB, 64 GB</td>
 +
    </tr>
 +
<tr></table>
 +
<br>
 +
<table class="nd-othertables" style="width: 73%;">
 +
        <th style="width: 10%; text-align:left; vertical-align:middle; color:black">Electrical parameters</th>
 +
        <th style="width: 20%; text-align:center; vertical-align:middle; color:black">Description</th>
 +
    </tr>
 +
<tr>
 +
        <td style="width: 8%; text-align:left;">Input voltage range</td>
 +
        <td style="width: 8%; text-align:left">9 ~ 36 V</td>
 +
    </tr>
 +
<tr>
 +
        <td style="width: 8%; text-align:left">Working temperature and humidity</td>
 +
        <td style="width: 8%; text-align:left">Temperature: -30 °C ~ 85 °C
 +
Humidity: <90%
 +
</td>
 +
    </tr>
 +
<tr>
 +
        <td style="width: 8%; text-align:left">Power consumption</td>
 +
        <td style="width: 8%; text-align:left">220 mA</td>
 +
    </tr>
 +
<tr></table>
 +
<br>
 +
<table class="nd-othertables" style="width: 68%;">
 +
        <th style="width: 10%; text-align:left; vertical-align:middle; color:black">Function parameters</th>
 +
        <th style="width: 20%; text-align:center; vertical-align:middle; color:black">Description</th>
 +
    </tr>
 +
<tr>
 +
        <td style="width: 8%; text-align:left;">Real time clock (RTC) synchronization</td>
 +
        <td style="width: 8%; text-align:left">Available over FM (via NTP, NITZ or GNSS)</td>
 +
    </tr>
 +
<tr>
 +
        <td style="width: 8%; text-align:left">Picture resolution</td>
 +
        <td style="width: 8%; text-align:left">1280 x 720 (default) (50KB transfer period 18 sec), Configurable: 160 x 120; 320 x 240; 640 x 480; 1920 x 1080</td>
 +
    </tr>
 +
<tr>
 +
        <td style="width: 8%; text-align:left">IR Distance</td>
 +
        <td style="width: 8%; text-align:left">2 Meters</td>
 +
    </tr>
 +
<tr>
 +
        <td style="width: 8%; text-align:left">Cable length</td>
 +
        <td style="width: 8%; text-align:left">RS232 (3.5 m)</td>
 +
    </tr>
 +
<tr>
 +
        <td style="width: 8%; text-align:left">Video compression</td>
 +
        <td style="width: 8%; text-align:left">H.265</td>
 +
    </tr>
 +
<tr>
 +
        <td style="width: 8%; text-align:left">Video resolution</td>
 +
        <td style="width: 8%; text-align:left">720P (20 sec. – 6MB, transfer period ~ 320 sec.)</td>
 +
    </tr>
 +
<tr>
 +
        <td style="width: 8%; text-align:left">Video storage</td>
 +
        <td style="width: 8%; text-align:left">2psc. MicroSD card (Max 64GB up to 72 hours of video)</td>
 +
    </tr>
 +
</table>
 +
 
 +
 
 +
===Firmware Version===
 +
 
 +
We are always improving our device's performance, stability, and reliability. <br />
 +
This document describes '''DualCAM platform and FMX125''' devices' firmware improvements, changes, new features implementations as well as current firmware release version.
 +
 
 +
Firmware  download for FMX125 and DualCam:
 +
 
 +
Link: https://drive.teltonika.lt/d/e5c4b09a60b74fa5b6a0/
 +
 
 +
Password: 3RpOAf96
 +
 
 +
{| class="wikitable" style="width: 100%;"
 +
|+
 +
FMX125 Firmware
 +
! style="width: 20%; border: 1px solid white; border-bottom: 2px solid #0054A6; background: white; color: #0054A6; text-align: center;" |FIRMWARE VERSION
 +
! style="width: 20%; border: 1px solid white; border-bottom: 2px solid #0054A6; background: white; color: #0054A6; text-align: center;" |RELEASE DATE
 +
! style="width: 60%; border: 1px solid white; border-bottom: 2px solid #0054A6; background: white; color: #0054A6; text-align: left;" |CHANGES
 +
|-
 +
| style="border: 1px solid white; border-bottom: 2px solid #E8E8E8; text-align: center; vertical-align: center; background: white;" |<span class="mw-headline" id="03.27.07.Rev.365">{{{fw|'''03.27.07.Rev.365'''}}}</span><br />
 +
| style="border: 1px solid white; border-bottom: 2px solid #E8E8E8; text-align: center; vertical-align: center; background: white;" |{{{release_date| 2022-03-17}}}
 +
| style="border: 1px solid white; border-bottom: 2px solid #E8E8E8; text-align: left; vertical-align: center; background: white;" |
 +
* Minor improvements
 +
* DualCam metadata timestamp mismatch
 +
* Increased timeout for video data pack request
 +
* CRC calculation mismatch after file upload resume
 +
* Periodic image sending
 +
* Add camera time zone parameter
 +
* Added periodic time check and sync for the camera
 +
* Adjusted DualCam command timeouts
 +
* Added fixes and workarounds for cam command fails
 +
* FPS parameter added to the meta data command
 +
|-
 +
| style="border: 1px solid white; border-bottom: 2px solid #E8E8E8; text-align: center; vertical-align: center; background: white;" |<span class="mw-headline" id="03.27.07.Rev.361">{{{fw|'''03.27.07.Rev.361'''}}}</span><br />
 +
| style="border: 1px solid white; border-bottom: 2px solid #E8E8E8; text-align: center; vertical-align: center; background: white;" |{{{release_date| 2021-09-17}}}
 +
| style="border: 1px solid white; border-bottom: 2px solid #E8E8E8; text-align: left; vertical-align: center; background: white;" |
 +
* Minor improvements
 +
|-
 +
| style="border: 1px solid white; border-bottom: 2px solid #E8E8E8; text-align: center; vertical-align: center; background: white;" |<span class="mw-headline" id="03.27.07.Rev.360">{{{fw|'''03.27.07.Rev.360'''}}}</span><br />
 +
| style="border: 1px solid white; border-bottom: 2px solid #E8E8E8; text-align: center; vertical-align: center; background: white;" |{{{release_date| 2021-08-30}}}
 +
| style="border: 1px solid white; border-bottom: 2px solid #E8E8E8; text-align: left; vertical-align: center; background: white;" |
 +
* Extended video and image sending configuration
 +
* Added Domain and Port parameters to “camreq” command
 +
* Extended “camreq” response
 +
* Added “camgetver” command
 +
* Fixed timestamp for video meta data
 +
* Improved system stability and fixed general bugs
 +
|-
 +
| style="border: 1px solid white; border-bottom: 2px solid #E8E8E8; text-align: center; vertical-align: center; background: white;" |<span class="mw-headline" id="03.27.03.Rev.104">{{{fw|'''03.27.03.Rev.104'''}}}</span><br />
 +
| style="border: 1px solid white; border-bottom: 2px solid #E8E8E8; text-align: center; vertical-align: center; background: white;" |{{{release_date| 2021-06-18}}}
 +
| style="border: 1px solid white; border-bottom: 2px solid #E8E8E8; text-align: left; vertical-align: center; background: white;" |
 +
* Added image sending trigger
 +
* Ability to configure multiple video triggers
 +
* Always enabled DualCam scenario support
 +
* Improved system stability and fixed general bugs
 +
|-
 +
| style="border: 1px solid white; border-bottom: 2px solid #E8E8E8; text-align: center; vertical-align: center; background: white;" |<span class="mw-headline" id="03.27.00.Rev.100">{{{fw|'''03.27.00.Rev.100'''}}}</span><br />
 +
| style="border: 1px solid white; border-bottom: 2px solid #E8E8E8; text-align: center; vertical-align: center; background: white;" |{{{release_date| 2021-02-19}}}
 +
| style="border: 1px solid white; border-bottom: 2px solid #E8E8E8; text-align: left; vertical-align: center; background: white;" |
 +
* Initial release
 +
|-
 +
|}
 +
 
 +
 
 +
{| class="wikitable" style="width: 100%;"
 +
|+
 +
DualCam firmware
 +
! style="width: 20%; border: 1px solid white; border-bottom: 2px solid #0054A6; background: white; color: #0054A6; text-align: center;" |DUALCAM FIRMWARE VERSION
 +
! style="width: 20%; border: 1px solid white; border-bottom: 2px solid #0054A6; background: white; color: #0054A6; text-align: center;" |RELEASE DATE
 +
! style="width: 60%; border: 1px solid white; border-bottom: 2px solid #0054A6; background: white; color: #0054A6; text-align: left;" |CHANGES
 +
|-
 +
| style="border: 1px solid white; border-bottom: 2px solid #E8E8E8; text-align: center; vertical-align: center; background: white;" |<span class="mw-headline" id="V2.2.3">{{{fw|'''V2.2.3'''}}}</span><br />
 +
| style="border: 1px solid white; border-bottom: 2px solid #E8E8E8; text-align: center; vertical-align: center; background: white;" |{{{release_date| 2022-05-20}}}
 +
| style="border: 1px solid white; border-bottom: 2px solid #E8E8E8; text-align: left; vertical-align: center; background: white;" |
 +
* Added watch dog for camera to restart it self if camera will stuck
 +
|-
 +
| style="border: 1px solid white; border-bottom: 2px solid #E8E8E8; text-align: center; vertical-align: center; background: white;" |<span class="mw-headline" id="V2.2.2">{{{fw|'''V2.2.2'''}}}</span><br />
 +
| style="border: 1px solid white; border-bottom: 2px solid #E8E8E8; text-align: center; vertical-align: center; background: white;" |{{{release_date| 2022-01-06}}}
 +
| style="border: 1px solid white; border-bottom: 2px solid #E8E8E8; text-align: left; vertical-align: center; background: white;" |
 +
* Added video buffer pool,repair the write rate of the SD card
 +
* Solved the bug when 35min can not download video
 +
* Changed the logic of FPS setting and switching,the video saves the exact FPS of each video packet in the PTM_FRAME
 +
* Improved the picture and video quality,image edge trimming
 +
* Added flash upgrade mode
 +
* Modified command to get Image quality
 +
* Resolved the problem that the camera restarts after switching the OSD switch
 +
* Optimized setting video frame rate without restarting the camera
 +
|-
 +
| style="border: 1px solid white; border-bottom: 2px solid #E8E8E8; text-align: center; vertical-align: center; background: white;" |<span class="mw-headline" id="V1.9.3">{{{fw|'''V1.9.3'''}}}</span><br />
 +
| style="border: 1px solid white; border-bottom: 2px solid #E8E8E8; text-align: center; vertical-align: center; background: white;" |{{{release_date| 2021-07-15}}}
 +
| style="border: 1px solid white; border-bottom: 2px solid #E8E8E8; text-align: left; vertical-align: center; background: white;" |
 +
* Improved stability and fixes of camera data packets
 +
|-
 +
| style="border: 1px solid white; border-bottom: 2px solid #E8E8E8; text-align: center; vertical-align: center; background: white;" |<span class="mw-headline" id="V1.9.2">{{{fw|'''V1.9.2'''}}}</span><br />
 +
| style="border: 1px solid white; border-bottom: 2px solid #E8E8E8; text-align: center; vertical-align: center; background: white;" |{{{release_date| 2021-06-02}}}
 +
| style="border: 1px solid white; border-bottom: 2px solid #E8E8E8; text-align: left; vertical-align: center; background: white;" |
 +
* Fixed issue with front camera crash if picture size is too large
 +
* Added command to check the camera version
 +
* Improved system stability and fixed general bugs
 +
|-
 +
 
 +
| style="border: 1px solid white; border-bottom: 2px solid #E8E8E8; text-align: center; vertical-align: center; background: white;" |<span class="mw-headline" id="V1.9.0">{{{fw|'''V1.9.0'''}}}</span><br />
 +
| style="border: 1px solid white; border-bottom: 2px solid #E8E8E8; text-align: center; vertical-align: center; background: white;" |{{{release_date| 2021- 02-19}}}
 +
| style="border: 1px solid white; border-bottom: 2px solid #E8E8E8; text-align: left; vertical-align: center; background: white;" |
 +
* Initial release
 +
|-
 +
|}
 +
 
 +
== Certifications & Approvals ==
 +
 
 +
* [[Teltonika Dualcam REACH|Teltonika DualCam REACH]]
 +
 
 +
==Installation==
 +
To connect the DualCam to a supported device, you have to make sure to connect 4 PINs of the camera to the PINs of your device correctly.
 +
 
 +
'''NOTE:''' Dual Cam must be connected to the ignition source or another source, where then you turn off ignition camera will turn off in another case camera will drain the battery if  you connect directly.
 +
 
 +
[[File:443035 Teltonika DualCam Wiki Knowledge Base Teltonika GPS 1.2.jpg|frameless|928x928px]]
 +
{| class="wikitable"
 +
|+
 +
! style="width:10%; border: 1px solid white; border-bottom: 2px solid #0054A6; background: white; color: #0054A6; text-align: left;" |PIN NUMBER
 +
! style="width:15%; border: 1px solid white; border-bottom: 2px solid #0054A6; background: white; color: #0054A6; text-align: left;" |PIN NAME
 +
! style="width:25%; border: 1px solid white; border-bottom: 2px solid #0054A6; background: white; color: #0054A6; text-align: left;" |
 +
DESCRIPTION
 +
|-
 +
| style="border: 1px solid white; border-bottom: 2px solid #E8E8E8; text-align: left; vertical-align: center; background: white;" |1
 +
| style="border: 1px solid white; border-bottom: 2px solid #E8E8E8; text-align: left; vertical-align: center; background: white;" |<span style="color:#008000">'''RS232-Tx'''</span>
 +
| style="border: 1px solid white; border-bottom: 2px solid #E8E8E8; text-align: left; vertical-align: center; background: white;" |DualCam output for data transmission through RS232
 +
|-
 +
| style="border: 1px solid white; border-bottom: 2px solid #E8E8E8; text-align: left; vertical-align: center; background: white;" |2
 +
| style="border: 1px solid white; border-bottom: 2px solid #E8E8E8; text-align: left; vertical-align: center; background: white;" |<span style="color:#D8D800">'''RS232-Rx'''</span>
 +
| style="border: 1px solid white; border-bottom: 2px solid #E8E8E8; text-align: left; vertical-align: center; background: white;" |DualCam input for data reception through RS232
 +
|-
 +
|-
 +
| style="border: 1px solid white; border-bottom: 2px solid #E8E8E8; text-align: left; vertical-align: center; background: white;" |3
 +
| style="border: 1px solid white; border-bottom: 2px solid #E8E8E8; text-align: left; vertical-align: center; background: white;" |<span style="color:#FF0000">'''VCC(9-36V)''' </span>(+)
 +
| style="border: 1px solid white; border-bottom: 2px solid #E8E8E8; text-align: left; vertical-align: center; background: white;" |Power supply for the DualCam
 +
|-
 +
| style="border: 1px solid white; border-bottom: 2px solid #E8E8E8; text-align: left; vertical-align: center; background: white;" |4
 +
| style="border: 1px solid white; border-bottom: 2px solid #E8E8E8; text-align: left; vertical-align: center; background: white;" |<span style="color:#000000">'''GND''' </span>(-)
 +
| style="border: 1px solid white; border-bottom: 2px solid #E8E8E8; text-align: left; vertical-align: center; background: white;" |Ground
 +
|}
 +
<br>
 +
 
 +
==Device configuration==
 +
 
 +
=== How to set up Dual Cam ===
 +
*It is necessary to change '''Data Protocol''' to [[Codec#Codec_8_Extended | Codec 8 Extended]]
 +
 
 +
[[Image:Data_protocol.gif|300px]]
 +
 
 +
*Make sure to change '''I/O''' Camera state '''Priorities''' to ''Low''
 +
'''
 +
[[File:Io.gif|500px]]
 +
'''
 +
 
 +
*In '''RS232\RS485''' settings change '''Mode''' to ''RS232'' and in '''RS232 Mode''' select ''DualCam''
 +
[[File:232.gif|500px]]
 +
 
 +
*'''Do not forget''' to configure ''DualCam'' server information. In '''RS232\RS485''' fill in '''DualCam Server Settings''' with ''Domain'' and ''Port'' entries.
 +
[[File:Dualcamserver.png|600px]]
 +
*'''''NOTE:''''' ''This is a base setup for the device to work properly. Other device configuration is made according to your needs. 
 +
''
 +
==DualCam RS232 camera support==
 +
DualCam camera support was introduced from firmware version 03.27.06.Rev.360. A new RS232 mode "DualCam"
 +
was added with parameters for setting control. The details of the RS232 mode parameter are provided in the table below.
 +
{| class="wikitable"
 +
|+
 +
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" |'''Parameter name'''
 +
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" |'''Parameter ID'''
 +
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" |'''Parameter value'''
 +
|-
 +
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |RS232 Mode
 +
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |151
 +
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |18
 +
|}
 +
[[Image:DualCamCFG.PNG|{{{general|size}}}|right]]
 +
Configuration version 8.14.1.0 has to be used if configuration is being made in offline mode.
 +
<br>
 +
<br>
 +
<br>
 +
==Camera Feature Settings==
 +
[[Image:CameraFeatureSettings.PNG|{{{general|size}}}|right]]
 +
Once this mode is enabled, new tab “Camera Settings” appears on the left sidebar. This will contain the main parameters for configuring the camera settings The parameter IDs and values are provided in the table below. Once configuration is
 +
saved to device, these parameters are updated.
 +
<br>
 +
{| class="wikitable"
 +
|+
 +
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" |'''Parameter name'''
 +
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" |'''Parameter ID'''
 +
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" |'''Parameter values'''
 +
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" |'''Default values'''
 +
|-
 +
| colspan="1" rowspan="6" style="text-align: center; style=" width: 150px; background: white; color: black;" |Camera Picture Resolution
 +
| colspan="1" rowspan="6" style="text-align: center; style=" width: 150px; background: white; color: black;" |66000
 +
|-
 +
| rowspan="1" style="text-align: center; vertical-align: center;" |0 - 160 x 120
 +
| colspan="1" rowspan="5" style="text-align: center; style=" width: 150px; background: white; color: black;" |3
 +
|-
 +
| rowspan="1" style="text-align: center; vertical-align: center;" |1 - 320 x 240
 +
|-
 +
| rowspan="1" style="text-align: center; vertical-align: center;" |2 - 640 x 480
 +
|-
 +
| rowspan="1" style="text-align: center; vertical-align: center;" |3 - 1280 x 720
 +
|-
 +
| rowspan="1" style="text-align: center; vertical-align: center;" |4 - 1920 x 1080
 +
|-
 +
| colspan="1" rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |Camera Picture Compression
 +
| colspan="1" rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |66001
 +
| rowspan="1" style="text-align: center; vertical-align: center;" |[0 - 100] (%)
 +
| colspan="1" rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |50
 +
|-
 +
| colspan="1" rowspan="2" style="text-align: center; style=" width: 150px; background: white; color: black;" |OSD Display
 +
| colspan="1" rowspan="2" style="text-align: center; style=" width: 150px; background: white; color: black;" |66002
 +
| rowspan="1" style="text-align: center; vertical-align: center;" |0 - Disabled
 +
| colspan="1" rowspan="2" style="text-align: center; style=" width: 150px; background: white; color: black;" |0
 +
|-
 +
| rowspan="1" style="text-align: center; vertical-align: center;" |1 - Enabled
 +
|-
 +
| colspan="1" rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |Video Frame Rate
 +
| colspan="1" rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |66003
 +
| colspan="1" rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |20, 25 and 30 (frames per second)
 +
| colspan="1" rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |30
 +
|}
 +
'''OSD display''' - On Screen Display feature displays date and time in the upper left corner of the photo. This feature can be enabled or disabled.
 +
<br>
 +
 
 +
==Camera Scenario Settings==
 +
[[Image:CameraScenarioSettings.PNG|{{{general|size}}}|right]]
 +
"Camera settings" tab also contains scenario settings that trigger camera video/photo capture when specific condition is met.
 +
<br>
 +
{| class="wikitable"
 +
|+
 +
! rowspan="1" style="width: 350px; background: #0054A6; color: white;" |'''Parameter name'''
 +
! rowspan="1" style="width: 350px; background: #0054A6; color: white;" |'''Parameter ID'''
 +
! rowspan="1" style="width: 350px; background: #0054A6; color: white;" |'''Parameter values'''
 +
! rowspan="1" style="width: 350px; background: #0054A6; color: white;" |'''Default values'''
 +
|-
 +
| colspan="1" rowspan="4" style="text-align: center; style=" width: 150px; background: white; color: black;" |Periodic Image sending
 +
| colspan="1" rowspan="4" style="text-align: center; style=" width: 150px; background: white; color: black;" |66006
 +
| rowspan="1" style="text-align: center; vertical-align: center;" |0 - Disabled
 +
| colspan="1" rowspan="4" style="text-align: center; style=" width: 150px; background: white; color: black;" |0
 +
|-
 +
| rowspan="1" style="text-align: center; vertical-align: center;" |1 - Front Camera
 +
|-
 +
| rowspan="1" style="text-align: center; vertical-align: center;" |2 - Rear Camera
 +
|-
 +
| rowspan="1" style="text-align: center; vertical-align: center;" |3 - Both Cameras
 +
|-
 +
| colspan="1" rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |Sending interval
 +
| colspan="1" rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |66007
 +
| colspan="1" rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |[10-1800] (seconds)
 +
| colspan="1" rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |600
 +
|-
 +
 
 +
|-
 +
| colspan="1" rowspan="10" style="text-align: center; style=" width: 150px; background: white; color: black;" |Image Sending Trigger
 +
| colspan="1" rowspan="10" style="text-align: center; style=" width: 150px; background: white; color: black;" |66022
 +
|-
 +
| rowspan="1" style="text-align: center; vertical-align: center;" |0 - None
 +
| colspan="1" rowspan="9" style="text-align: center; style=" width: 150px; background: white; color: black;" |0
 +
|-
 +
| rowspan="1" style="text-align: center; vertical-align: center;" |2 - DIN1
 +
|-
 +
| rowspan="1" style="text-align: center; vertical-align: center;" |4 - DIN2
 +
|-
 +
| rowspan="1" style="text-align: center; vertical-align: center;" |8 - Crash
 +
|-
 +
| rowspan="1" style="text-align: center; vertical-align: center;" |16 - Towing
 +
|-
 +
| rowspan="1" style="text-align: center; vertical-align: center;" |32 - Idling
 +
|-
 +
| rowspan="1" style="text-align: center; vertical-align: center;" |64 - Geofence
 +
|-
 +
| rowspan="1" style="text-align: center; vertical-align: center;" |128 - Unplug
 +
|-
 +
| rowspan="1" style="text-align: center; vertical-align: center;" |256 - Green Driving
 +
|-
 +
| colspan="1" rowspan="5" style="text-align: center; style=" width: 150px; background: white; color: black;" |Video sending trigger
 +
| colspan="1" rowspan="5" style="text-align: center; style=" width: 150px; background: white; color: black;" |66023
 +
|-
 +
| rowspan="1" style="text-align: center; vertical-align: center;" |0 - None
 +
| colspan="1" rowspan="4" style="text-align: center; style=" width: 150px; background: white; color: black;" |0
 +
|-
 +
| rowspan="1" style="text-align: center; vertical-align: center;" |2 - DIN1
 +
|-
 +
| rowspan="1" style="text-align: center; vertical-align: center;" |4 - DIN2
 +
|-
 +
| rowspan="1" style="text-align: center; vertical-align: center;" |8 - Crash
 +
|-
 +
| colspan="1" rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |Video duration before trigger
 +
| colspan="1" rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |66009
 +
| colspan="1" rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |[1-10] (seconds)
 +
| colspan="1" rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |5
 +
|-
 +
| colspan="1" rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |Video duration after trigger
 +
| colspan="1" rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |66010
 +
| colspan="1" rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |[1-10] (seconds)
 +
| colspan="1" rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |5
 +
|-
 +
| colspan="1" rowspan="3" style="text-align: center; style=" width: 150px; background: white; color: black;" |Camera Scenario Mode
 +
| colspan="1" rowspan="3" style="text-align: center; style=" width: 150px; background: white; color: black;" |66020
 +
|-
 +
| rowspan="1" style="text-align: center; vertical-align: center;" |0 - On Ignition
 +
| colspan="1" rowspan="2" style="text-align: center; style=" width: 150px; background: white; color: black;" |0
 +
|-
 +
| rowspan="1" style="text-align: center; vertical-align: center;" |1 - Always
 +
|-
 +
 
 +
| colspan="1" rowspan="5" style="text-align: center; style=" width: 150px; background: white; color: black;" |Video source for trigger DIN1
 +
| colspan="1" rowspan="5" style="text-align: center; style=" width: 150px; background: white; color: black;" |66040
 +
|-
 +
| rowspan="1" style="text-align: center; vertical-align: center;" |0 - None
 +
| colspan="1" rowspan="4" style="text-align: center; style=" width: 150px; background: white; color: black;" |0
 +
|-
 +
| rowspan="1" style="text-align: center; vertical-align: center;" |1 - Front
 +
|-
 +
| rowspan="1" style="text-align: center; vertical-align: center;" |2 - Rear
 +
|-
 +
| rowspan="1" style="text-align: center; vertical-align: center;" |3 - Front and Rear
 +
|-
 +
 
 +
| colspan="1" rowspan="5" style="text-align: center; style=" width: 150px; background: white; color: black;" |Video source for trigger DIN2
 +
| colspan="1" rowspan="5" style="text-align: center; style=" width: 150px; background: white; color: black;" |66041
 +
|-
 +
| rowspan="1" style="text-align: center; vertical-align: center;" |0 - None
 +
| colspan="1" rowspan="4" style="text-align: center; style=" width: 150px; background: white; color: black;" |0
 +
|-
 +
| rowspan="1" style="text-align: center; vertical-align: center;" |1 - Front
 +
|-
 +
| rowspan="1" style="text-align: center; vertical-align: center;" |2 - Rear
 +
|-
 +
| rowspan="1" style="text-align: center; vertical-align: center;" |3 - Front and Rear
 +
|-
 +
 
 +
| colspan="1" rowspan="5" style="text-align: center; style=" width: 150px; background: white; color: black;" |Video source for trigger Crash
 +
| colspan="1" rowspan="5" style="text-align: center; style=" width: 150px; background: white; color: black;" |66042
 +
|-
 +
| rowspan="1" style="text-align: center; vertical-align: center;" |0 - None
 +
| colspan="1" rowspan="4" style="text-align: center; style=" width: 150px; background: white; color: black;" |0
 +
|-
 +
| rowspan="1" style="text-align: center; vertical-align: center;" |1 - Front
 +
|-
 +
| rowspan="1" style="text-align: center; vertical-align: center;" |2 - Rear
 +
|-
 +
| rowspan="1" style="text-align: center; vertical-align: center;" |3 - Front and Rear
 +
|-
 +
|}
 +
<br>
 +
===Periodic image sending scenario===
 +
Periodic image sending triggers photo capture from a front camera, whenever the timeout is reached (sending interval parameter).
 +
 +
'''Update: Since 03.27.03.Rev.04 firmware''', Periodic Image Sending Enable/Disable switch was replaced by a camera selection:
 +
* Both cameras deselected – periodic image sending is disabled (value 0)
 +
* Front camera selected – front camera’s pictures will be sent periodically (value 1)
 +
* Rear camera selected – rear camera’s pictures will be sent periodically (value 2)
 +
* Both cameras selected – both cameras’ pictures will be sent periodically (value 3)
 +
If the camera has not finished uploading pictures to the server, then the photo capture is skipped.
 +
 
 +
===Camera Scenario Mode===
 +
 
 +
The options On Ignition and Always determine the working mode.
 +
 
 +
'''On Ignition''' means the camera scenarios will operate the way it was up to '''03.27.03.Rev.105''', that is it will work only when the ignition is detected.
 +
 
 +
'''Always''' mode means the camera scenarios will work all the time, including whenever the device is in sleep mode (excepting Ultra sleep mode during which scenario is disabled). During sleep footage requests (if the network is available), periodic image sending and triggers work as well.
 +
 
 +
'''Warning:''' using Always mode, depending on the configuration, the device might wake up from sleep very frequently. That has to be taken into consideration when configuring the scenarios.
 +
 
 +
===Video sending by trigger===
 +
Video sending by trigger camera scenario monitors the selected trigger (video sending trigger parameter) and captures video from front, rear or both cameras before and after the event (video duration before trigger and video duration after trigger parameters). If the previously captured video has not finished downloading, then a new video capture is skipped until the old one has been sent. When this scenario is triggered, high priority eventual record is generated with the value corresponding to what triggered the scenario. See the table below.
 +
{| class="wikitable"
 +
|+
 +
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" |'''Parameter name'''
 +
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" |'''Parameter AVL ID'''
 +
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" |'''Parameter value'''
 +
|-
 +
| rowspan="9" style="text-align: center; style=" width: 150px; background: white; color: black;" |SOS trigger
 +
| rowspan="9" style="text-align: center; style=" width: 150px; background: white; color: black;" |499
 +
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |0 - Server request
 +
|-
 +
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |1 - DIN1
 +
|-
 +
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |2 - DIN2
 +
|-
 +
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |3 - Crash
 +
|-
 +
|}
 +
 
 +
===Image sending trigger===
 +
 
 +
'''Added''' Image sending trigger option (works the same way as Video sending trigger just triggers image sending). Both front and rear images will be sent.
 +
 
 +
For selecting multiple options using SMS/GPRS commands, add values of every option and set that value for this parameter.
 +
 
 +
For example, to set DIN1 (2), Crash (8), and Unplug (128) scenarios as triggers, add their values (2 + 4 + 128 = 138) and set the sum as the parameter value
 +
{| class="wikitable"
 +
|+
 +
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" |'''Parameter name'''
 +
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" |'''Parameter AVL ID'''
 +
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" |'''Parameter value'''
 +
|-
 +
| rowspan="9" style="text-align: center; style=" width: 150px; background: white; color: black;" |SOS trigger
 +
| rowspan="9" style="text-align: center; style=" width: 150px; background: white; color: black;" |499
 +
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |0 - Server request
 +
|-
 +
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |1 - DIN1
 +
|-
 +
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |2 - DIN2
 +
|-
 +
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |3 - Crash
 +
|-
 +
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |4 - Towing
 +
|-
 +
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |5 - Idling
 +
|-
 +
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |6 - Geofence
 +
|-
 +
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |7 - Unplug
 +
|-
 +
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |8 - Green Driving
 +
|}
 +
 
 +
===Camera firmware version===
 +
 
 +
Additional SMS/GPRS command for cameras’ firmware checking. Since both cameras are separate, there are two versions returned.
 +
 
 +
{| class="wikitable"
 +
|+
 +
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" |'''Command'''
 +
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" |'''Arguments'''
 +
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" |'''Explanation'''
 +
|-
 +
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |camgetver
 +
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |None
 +
| rowspan="1" style="text-align: left; style=" width: 150px; background: white; color: black;" |Used to check firmware versions.
 +
Returns version in the format: '''V<major>.<minor>.<revision>.'''
 +
For example, '''V1.9.3.'''
 +
 
 +
Because there are two cameras, two versions are returned.
 +
The complete response would look like this:
 +
'''Front camera V1.9.3. Rear camera V1.9.3.'''
 +
 
 +
If there are problems reading the version or if the camera is not responding/connected, the return would be this:
 +
'''The front camera camgetver failed. The rear camera camgetver failed.'''
 +
 
 +
|}
 +
 
 +
===Camera request command===
 +
A new camera request has been added, which allows the server to request files from a camera. The format is as provided below in the table:
 +
{| class="wikitable"
 +
|+
 +
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" |'''Command'''
 +
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" |'''Arguments'''
 +
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" |'''Explanation'''
 +
|-
 +
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |camreq:
 +
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |<file_type>,<file_source>,<timestamp>,<duration>
 +
,<domain>,<port>
 +
| rowspan="1" style="text-align: left; style=" width: 150px; background: white; color: black;" |Captures appropriate file with the provided details. If the connection to server is opened, them files immediately become available for download. If not, then connection is tried to be made. If <domain> and <port> parameters are included, the device will send footage of the command to that address.
 +
|}
 +
The arguments are as follows:
 +
 
 +
*<file_type>
 +
**0 - Video
 +
**1 - Photo
 +
*<file_source>
 +
**1 - Front camera
 +
**2 - Rear camera
 +
**3 - Both cameras
 +
*<timestamp>
 +
**Unix timestamps in decimal (not required for photo download)
 +
*<duration>
 +
**Video duration in seconds from provided timestamps (not required for photo download), (max 30 sec)
 +
 
 +
'''Structure examples:'''
 +
 
 +
'''camreq:<file type>,<file source>(if video, add ",<timestamp>,<duration>)'''
 +
 
 +
However, if there is a need to send to the specific server without configuring, you can add two extra parameters.
 +
The complete structure:
 +
 
 +
'''camreq:<file type>,<file source>(if video, add ",<timestamp>,<duration>),<domain>,port'''
 +
 
 +
For example: camreq:0,1,1624960616,5,212.59.13.226,7160
 +
 
 +
 
 +
{| class="wikitable"
 +
|+
 +
! rowspan="1" style="width: 600px; background: #0054A6; color: white;" |'''Conditions'''
 +
! colspan="3" rowspan="1" style="width: 600px; background: #0054A6; color: white;" |'''Command response'''
 +
|-
 +
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |Request successful and server  connection successful. Device is ready to send selected file
 +
| rowspan="14" style="text-align: left; style=" width: 150px; background: white; color: black;" |Photo  request from source <1-3>.
 +
 
 +
'''(If  photo request)'''
 +
 
 +
 
 +
Video  request from source <1-3> for <1-255> seconds since YYYY-MM-DD  HH:MM:SS.
 +
 
 +
'''(If  video request)'''
 +
| colspan="2" |Preparing to send file  from timestamp <timestamp of the file>
 +
|-
 +
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |Request successful but the device  was already connected to the server. Device is ready to send selected file
 +
| colspan="2" |Already connected.  Preparing to send file from timestamp <timestamp of the file>
 +
|-
 +
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |Request received but the capture  failed
 +
| colspan="2" |Error: capture failed
 +
|-
 +
|Request received but the device  cannot proceed with the capture and sending because ignition is off
 +
| colspan="2" |Error: Cannot capture  because ignition is off
 +
|-
 +
|Request received but the previously captured and prepared photo/video was not sent. New media is not captured.  The device is ready to send the previous capture
 +
| colspan="2" |Warning: Photo / Video  already captured previously, trying to send it
 +
|-
 +
|Request received but the device was already connected to the server. New media is not captured. The device is ready to send previous capture
 +
| colspan="2" |Already connected. Warning:  Photo / Video already captured previously, trying to send it
 +
|-
 +
|Request received but the camera doesn’t acknowledge sent command. Nothing will be sent
 +
| colspan="2" |Error: DualCam NAK
 +
|-
 +
|Request received but the camera is  not connected or not working
 +
| colspan="2" |Error: DualCam not  present
 +
|-
 +
|Request received but the camera is  not connected or not working
 +
| colspan="2" |Error: requested file  does not exist
 +
|-
 +
|Request received but the device  cannot connect to the server
 +
| colspan="2" |Error: connect to  server
 +
|-
 +
|Request received but the modem is  not ready for operation (network or modem issue)
 +
| colspan="2" |Error: modem not ready  to start send
 +
|-
 +
|Request received but the device  cannot proceed with the capture and sending because the camera is being  reconfigured
 +
| colspan="2" |Cannot send, DualCam  configuration is in progress
 +
|-
 +
|Request received but file capture time was exceeded.
 +
| colspan="2" |Error: Media request  timeout
 +
|-
 +
|Request received but capture  completed incorrectly
 +
| colspan="2" |Error: Media request problem
 +
|-
 +
|File type parameter incorrect in the  request command
 +
| rowspan="4" |Error:  Invalid
 +
|File Type
 +
| rowspan="4" |argument  in camera request cmd!
 +
|-
 +
|File Source parameter incorrect in  the request command
 +
|File Source
 +
|-
 +
|Timestamp parameter incorrect in the  request command
 +
|Timestamp
 +
|-
 +
|Duration parameter incorrect in the  request command
 +
|Duration
 +
|-
 +
|Cannot proceed with the request,  ignition is off
 +
| colspan="3" |Error: Ignition not  detected!
 +
|-
 +
|Request command structure incorrect
 +
| colspan="3" |Error: Invalid camera  request command!
 +
|-
 +
|RS232 and DualCam mode is not  enabled
 +
| colspan="3" |Error: DualCam is not  configured!
 +
|-
 +
|Front or rear camera not found
 +
| colspan="3" |Error: Front / Rear  Camera not present
 +
|}
 +
<br>
 +
 
 +
==Camera ping transmission and TF status checking==
 +
Camera pinging was implemented to periodically check if a camera is connected to a device. This is done via “Get TF status” command for both front and rear camera every 20 seconds when ignition is on. The received result from this command is stored in two corresponding AVL elements “Front camera state” and “Rear camera state”. The following do not only store TF status, but also if response from the camera was received or not.
 +
{| class="wikitable"
 +
|+
 +
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" |'''Parameter name'''
 +
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" |'''Parameter AVL ID'''
 +
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" |'''Parameter values'''
 +
|-
 +
| rowspan="2" style="text-align: center; style=" width: 150px; background: white; color: black;" |Front camera state:
 +
| rowspan="2" style="text-align: center; style=" width: 150px; background: white; color: black;" |498
 +
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |0 - Camera not detected
 +
|-
 +
|-
 +
|-
 +
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |1 - No card
 +
|-
 +
| rowspan="4" style="text-align: center; style=" width: 150px; background: white; color: black;" |Rear camera state:
 +
| rowspan="4" style="text-align: center; style=" width: 150px; background: white; color: black;" |497
 +
|-
 +
|-
 +
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |2 - Card mount failed
 +
|-
 +
|-
 +
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |3 - Card mounted
 +
|-
 +
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |4 - Card faulty
 +
|-
 +
|}
 +
<br>
 +
 
 +
==Camera RTC synchronization==
 +
Camera RTC synchronization is done anytime the device itself is synchronized (via NTP, NITZ or GNSS).
 +
 
 +
After 03.27.07.Rev:364 firmware for FMX125 we added a feature to set camera time, same as device selecting time.
 +
 
 +
[[File:Zone.jpg|alt=|frameless]]
 +
 
 +
'''NOTE''':
 +
 
 +
That after changes of the time it can be that you can receive files which the old-time or just do not have any video/photo on this periodical time then you change time, but then it will be back to normal work.
 +
 
 +
Time zone changes the inside clock of the camera, not only the OSD displayed time but all recordings will be done according to that.
 +
 
 +
For example, if you request a video from, say, 9:00 AM GMT+0, and the camera time is GMT+0 (matches our device's time), it is all fine. But if you were to configure time zone later to, for instance, GMT+10, the camera time will be set according to that time zone (time forwarded by 10 hours in this case). Which means that time gets forwarded with no real continuation as the camera does not understand the concept of time zones, it just uses time that we set. For continuation reasons in our device, we continue using GMT+0 in the camreq and then compensate with time zone if needed. The result of that, if we send the same request command as before (when requesting 9:00 AM video) with time zone GMT+10 set, the camera will receive video request for 7 PM (19:00) and the videos were not recorded at that time which will result in "file doesn't exist".
 +
<br>
 +
 
 +
== How to read camera data from SD card ==
 +
The software for reading camera data can be downloaded [https://wiki.teltonika-gps.com/wikibase/images/e/ed/TF_CardVideoPlayer_v1.14.zip here]
 +
 
 +
Data reading steps:
 +
 
 +
# Double-click “VideoPlayer.exe” to open the player
 +
# When the software starts, first select the directory where the TF card files are located. Once located, click "OK". The software starts analyzing the pictures and videos existing in the TF card files.
 +
# Software will automatically detect the video and picture in the TF card files, which will last for a few seconds and then enter the software, as shown.,
 +
The upper part of the software is a calendar. You can choose to view whether there is a
 +
video in the current month according to the year and month. The number of the year/month can be entered by keyboard after selecting it, and then press the “Enter” key to jump to the entered year/month. You can press [[File:Button1.png|frameless|21x21px]] to view the previous year/month and [[File:Button2.png|frameless|21x21px]] to view the next year/month. The date of the recorded video in the current month will be marked in blue. The lower part of the software is the preview interface, divided into two parts: "'''Video''' '''View'''" and "'''Image View'''".
 +
 
 +
[[File:Tfimage.png|alt=|frameless|512x512px]]
 +
 
 +
===Video View===
 +
Video view shows the video information. Left click on the date of the video in the calendar, then the following "Video View" section will show which time period there is a video, as shown. For video recording, the time period during which the video is recorded will be marked in blue.
 +
 
 +
[[File:Vplayertime.png|alt=|frameless|506x506px]]
 +
 
 +
Click on the blue part of the timeline to get the time you clicked, and the video thumbnail of the current time will be displayed in the middle of the screen. The timeline length is 24 hours and it is difficult to locate the exact number of seconds. Hold down the timeline with the left mouse button and then swipe to the right to zoom in on the timeline. For example, we need to carefully view the video at 05:00-07:00. Then, the left mouse button is pressed at the 05:00 position and slide to the right to the position of 07:00, so that this part of time can be enlarged to the entire timeline.
 +
 
 +
'''Note''': ''If you need to restore, then left-click and hold the time axis to slide left.''
 +
 
 +
[[File:Vplayertime2.png|alt=|frameless|499x499px]]
 +
 
 +
=== Video Playback ===
 +
Left click on the timeline will view the video thumbnail of the clicked time point, and double click the left mouse button to start playing the video from the current time. By default, the video will be played for two minutes from the selected time. If you click to find the location you want to play, you don't need to move the mouse, double click again will pop up the play form.
 +
 
 +
[[File:Vplayback.png|frameless|494x494px]]
 +
{| class="wikitable"
 +
|+
 +
! colspan="4" |Video playback interface contains
 +
|-
 +
|[[File:Stopp.png|left|frameless]]
 +
|Stop button
 +
|[[File:Speediup.png|left|frameless]]
 +
|Speed up
 +
 
 +
play button
 +
|-
 +
|[[File:Pause.png|left|frameless]]
 +
|Pause button
 +
|[[File:Screenshot.png|left|frameless]]
 +
|Screenshot
 +
button
 +
|-
 +
|[[File:Slowdown.png|left|frameless]]
 +
|Slow down
 +
play button
 +
|[[File:Fullscreen.png|left|frameless]]
 +
|Full screen
 +
 
 +
button
 +
|}
 +
 
 +
'''Note''': ''Closing the current playback interface does not exit the player software.''
 +
 
 +
=== Image view ===
 +
"Image View" displays the image information (the camera saves the image in the TF card after the person takes the initiative to take the photo, here you can see the photo taken by the camera). We first click on "Image View" to switch the software to the image page.
 +
 
 +
After switching to the picture interface, you can view when the photo is taken according to the directory. As shown below, after expanding the index, we can see how many pictures in total were taken.
 +
[[File:Imageview1.png|left|frameless|564x564px]]
 +
[[File:Imageview2.png|right|frameless|566x566px]]
 +
 
 +
 
 +
 
 +
 
 +
 
 +
After the expansion, click the time of the image generation to see the preview on the left side. Clicking on the preview image will pop up the image viewing window. The size of the window is the size of the image itself. The scroll wheel zooms in and out of the picture. You can right click on the preview to save the original image to your hard disk.
 +
[[File:Imageviwe.png|frameless|436x436px]]
 +
 
 +
=== Export MP4 ===
 +
Click the "Convert" button [[File:Convert.png|frameless|27x27px]] to convert the video in the TF card to MP4 and export it.
 +
 
 +
Then first select the folder you want to export to, enter the MP4 start time and end time to be exported, and then click Export, if you need, cancel the export.
 +
[[File:Exporting.png|frameless|546x546px]]
 +
 
 +
Then wait for the export to complete. The time of export is not certain. Depending on the performance of the computer, it takes about 1 to 5 minutes for each 1-hour duration video.
 +
 
 +
==Other camera related functionality==
 +
Camera is configured if all of these conditions are met:
 +
 
 +
#'''RS232 mode is selected (DualCam)'''
 +
#'''Camera was not configured since startup or one of the related parameters were changed (compression, framerate or OSD)'''
 +
#'''Camera file transfer is not active'''
 +
 
 +
Active camera reconfiguration is accompanied by two consecutive camera shutter clicks.
 +
If camera is disconnected and later reconnected, a device will detect it by periodic camera ping packet. Once camera is detected, the device will reissue the reconfiguration procedure.
 +
<br>
 +
===Camera file transfer reconnection===
 +
If FMU1YX device has bad reception, server is not reachable or wrong server details are configured, then the device tries to open a link to a camera server few consecutive times. If no connection was possible to be established, then the connection is postponed for 30 minutes and tried again (or tried every configured sending interval if periodic image sending is enabled).
 +
<br>
 +
 
 +
==DualCam camera file transfer support==
 +
[[Image:CameraServerSettings.PNG|{{{general|size}}}|right]]
 +
Once camera has at least one file captured, it starts connection to a remote server, which is configured by parameters “Domain” and “Port” found in the “Camera Settings” tab.
 +
<br>
 +
 
 +
==Initialization packet==
 +
On connection, a device sends an initialization packet.
 +
{| class="wikitable"
 +
|+
 +
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" |'''Header(0x0000)'''
 +
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" |'''Protocol ID'''
 +
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" |'''IMEI'''
 +
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" |'''Settings'''
 +
|-
 +
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |2 bytes
 +
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |2 bytes
 +
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |8 bytes
 +
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |4 bytes
 +
|}
 +
Protocol ID – just a reference for the protocol version that is running on a device (for server cross compatibility with older versions). Firmware FMB.Ver.03.27.00.Rev.100 and up have protocol ID 5.
 +
Settings flag contains information on what is available for download. Structure is provided below:
 +
{| class="wikitable"
 +
|+
 +
! colspan="32" rowspan="1" style="width: 400px; background: #0054A6; color: white;" |'''Settings, 4 B'''
 +
|-
 +
! colspan="8" rowspan="1" style="width: 400px; background: #0054A6; color: white;" |'''Byte 3'''
 +
! colspan="8" rowspan="1" style="width: 400px; background: #0054A6; color: white;" |'''Byte 2'''
 +
! colspan="8" rowspan="1" style="width: 400px; background: #0054A6; color: white;" |'''Byte 1'''
 +
! colspan="8" rowspan="1" style="width: 400px; background: #0054A6; color: white;" |'''Byte 0'''
 +
|-
 +
! rowspan="1" style="width: 400px; background: background: white; color: black;" |
 +
! rowspan="1" style="width: 400px; background: background: white; color: black;" |
 +
! rowspan="1" style="width: 400px; background: background: white; color: black;" |1
 +
! rowspan="1" style="width: 400px; background: background: white; color: black;" |2
 +
! rowspan="1" style="width: 400px; background: background: white; color: black;" |3
 +
! rowspan="1" style="width: 400px; background: background: white; color: black;" |4
 +
! rowspan="1" style="width: 400px; background: background: white; color: black;" |
 +
! rowspan="1" style="width: 400px; background: background: white; color: black;" |
 +
! rowspan="1" style="width: 400px; background: background: white; color: black;" |
 +
! rowspan="1" style="width: 400px; background: background: white; color: black;" |
 +
! rowspan="1" style="width: 400px; background: background: white; color: black;" |
 +
! rowspan="1" style="width: 400px; background: background: white; color: black;" |
 +
! rowspan="1" style="width: 400px; background: background: white; color: black;" |
 +
! rowspan="1" style="width: 400px; background: background: white; color: black;" |
 +
! rowspan="1" style="width: 400px; background: background: white; color: black;" |
 +
! rowspan="1" style="width: 400px; background: background: white; color: black;" |
 +
! rowspan="1" style="width: 400px; background: background: white; color: black;" |
 +
! rowspan="1" style="width: 400px; background: background: white; color: black;" |
 +
! rowspan="1" style="width: 400px; background: background: white; color: black;" |
 +
! rowspan="1" style="width: 400px; background: background: white; color: black;" |
 +
! rowspan="1" style="width: 400px; background: background: white; color: black;" |
 +
! rowspan="1" style="width: 400px; background: background: white; color: black;" |
 +
! rowspan="1" style="width: 400px; background: background: white; color: black;" |
 +
! rowspan="1" style="width: 400px; background: background: white; color: black;" |
 +
! rowspan="1" style="width: 400px; background: background: white; color: black;" |
 +
! rowspan="1" style="width: 400px; background: background: white; color: black;" |
 +
! rowspan="1" style="width: 400px; background: background: white; color: black;" |
 +
! rowspan="1" style="width: 400px; background: background: white; color: black;" |
 +
! rowspan="1" style="width: 400px; background: background: white; color: black;" |
 +
! rowspan="1" style="width: 400px; background: background: white; color: black;" |
 +
! rowspan="1" style="width: 400px; background: background: white; color: black;" |
 +
! rowspan="1" style="width: 400px; background: background: white; color: black;" |
 +
|}
 +
 
 +
#Video, rear (%videor)
 +
#Video, front (%videof)
 +
#Photo, rear (%photor)
 +
#Photo, front (%photof)
 +
 
 +
If identifier sent to a server is not valid, device disconnects.
 +
<br>
 +
 
 +
==General command structure==
 +
General communication packet structure is as in the table bellow. It consist of CMD_ID (2 bytes), Data length of a command and a payload.
 +
{| class="wikitable"
 +
|+
 +
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" |'''Command ID'''
 +
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" |'''Data length'''
 +
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" |'''Data'''
 +
|-
 +
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |2 bytes
 +
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |2 bytes
 +
| rowspan="1" style="text-align: left; style=" width: 150px; background: white; color: black;" |[data length] bytes
 +
|}
 +
<br>
 +
==Communication protocol==
 +
'''Close a session command (CMD ID 0x0000)'''<br>
 +
In case when a device connects to a server, but the server does not expect it to connect, the server will respond by sending a CLOSE command after which the connection will be terminated. This command is also used when the device connects to a server for a custom file sending and the server finishes to send all custom files to the device.
 +
{| class="wikitable"
 +
|+
 +
! rowspan="1" style="width: 600px; background: #0054A6; color: white;" |'''Command ID'''
 +
! rowspan="1" style="width: 600px; background: #0054A6; color: white;" |'''Data length'''
 +
|-
 +
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |0x0000
 +
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |0x0000
 +
|}
 +
<br>
 +
'''Start file transfer command (CMD ID 0x0001)'''<br>
 +
After device received file request command from the server (0x0008) device sends START command with file data (packet count).
 +
{| class="wikitable"
 +
|+
 +
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" |'''Command ID'''
 +
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" |'''Data length'''
 +
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" |'''File Packets (4 bytes)'''
 +
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" |'''Blank field (2 bytes)'''
 +
|-
 +
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |0x0001
 +
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |0x0006
 +
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |0x12345678
 +
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |0x0000 (always same value)
 +
|}
 +
<br>
 +
'''File request command (CMD ID 0x0008)'''<br>
 +
After the device is connected for a file upload, the server initiates file transfer by sending a FILE REQ command.
 +
{| class="wikitable"
 +
|+
 +
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" |'''Command ID'''
 +
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" |'''Data length'''
 +
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" |'''File Identifier'''
 +
|-
 +
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |0x0008
 +
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |2 bytes
 +
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |''See the table below''
 +
|}
 +
The device should answer with a START command described above indicating the size and CRC of the requested file.
 +
{| class="wikitable"
 +
|+
 +
! rowspan="1" style="width: 600px; background: #0054A6; color: white;" |'''File source, type'''
 +
! rowspan="1" style="width: 600px; background: #0054A6; color: white;" |'''Identifier (ASCII chars)'''
 +
|-
 +
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |Photo from camera, rear
 +
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |%photor
 +
|-
 +
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |Photo from camera, front
 +
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |%photof
 +
|-
 +
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |Video from camera, rear
 +
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |%videor
 +
|-
 +
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |Video from camera, front
 +
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |%videof
 +
|}
 +
<br>
 +
'''Resume file transfer command (CMD ID 0x0002)'''<br>
 +
In a response to the START command a RESUME command must be sent from server.
 +
{| class="wikitable"
 +
|+
 +
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" |'''Command ID'''
 +
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" |'''Data length'''
 +
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" |'''Packet offset (4 bytes)'''
 +
|-
 +
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |0x0002
 +
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |0x0004
 +
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |0x00000001
 +
|}
 +
To begin file transfer from the start, offset should be set to 1 (4 bytes value). In case when the file transfer was interrupted, to resume file transfer, offset can be set to the desired value (1 ≤ [offset] ≤ [file packets]).
 +
<br>
 +
<br>
 +
'''Synchronize file transfer command (CMD ID 0x0003)'''<br>
 +
In a response to the RESUME command a SYNC command is sent from device.
 +
{| class="wikitable"
 +
|+
 +
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" |'''Command ID'''
 +
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" |'''Data length'''
 +
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" |'''File offset (4 bytes)'''
 +
|-
 +
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |0x0003
 +
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |0x0004
 +
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |0x00000001
 +
|}
 +
By sending the SYNC command it is ensured that the next data command will contain file data starting from the specified offset.
 +
<br>
 +
<br>
 +
'''File data transfer command (CMD ID 0x0004)'''<br>
 +
After sending a SYNC command, a file data transfer is started by sending DATA commands.
 +
{| class="wikitable"
 +
|+
 +
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" |'''Command ID'''
 +
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" |'''Data length'''
 +
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" |'''File data (up to 1024 bytes)'''
 +
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" |'''Data CRC (2 bytes)'''
 +
|-
 +
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |0x0004
 +
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |0x0402
 +
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |...
 +
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |...
 +
|}
 +
A File data is split into 1024 byte parts, each part wrapped into a DATA command and is sent. <br>
 +
Note: ''if a command with a bad CRC is received, RESUME command should be sent with the last valid file offset, after receiving a RESUME command, the server will stop sending DATA commands and continue communication from'' '''“Resume file transfer”''' ''step.''<br>
 +
CRC polynomial expression: 0x8408
 +
The initial value, when calculating CRC, is the previously received packet (CMD ID 0x0004) CRC value.
 +
<br>
 +
<br>
 +
'''File transfer status command (CMD ID 0x0005)'''<br>
 +
After a file transfer is completed and no more files are required from the device, a server should send a COMPLETED command to the device (this command does not work after executing repeat init command0 x0009 – in this case, the server should send a CLOSE SESSION 0x0000 command mentioned before).
 +
{| class="wikitable"
 +
|+
 +
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" |'''Command ID'''
 +
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" |'''Data length'''
 +
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" |'''Status (4 bytes)'''
 +
|-
 +
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |0x0005
 +
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |0x0004
 +
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |0x00000000
 +
|}
 +
In case of the server using invalid arguments, commands or not following the file request flow, the device will send this command with a Status field set to one of the few possible error codes. A list of possible ones is provided below.
 +
{| class="wikitable"
 +
|+
 +
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" |'''Status value (hexadecimal)'''
 +
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" |'''Description'''
 +
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" |'''Notes'''
 +
|-
 +
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |0x00000000
 +
| rowspan="1" style="text-align: left; style=" width: 150px; background: white; color: black;" |File transfer process completed
 +
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |Sent from server
 +
|-
 +
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |0x00000002
 +
| rowspan="1" style="text-align: left; style=" width: 150px; background: white; color: black;" |Failed to close GPRS
 +
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |Sent from device
 +
|-
 +
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |0x00000003
 +
| rowspan="1" style="text-align: left; style=" width: 150px; background: white; color: black;" |Failed to close socket
 +
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |Sent from device
 +
|-
 +
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |0x00000005
 +
| rowspan="1" style="text-align: left; style=" width: 150px; background: white; color: black;" |Invalid response from server to init packet
 +
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |Sent from device
 +
|-
 +
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |0x00000011
 +
| rowspan="1" style="text-align: left; style=" width: 150px; background: white; color: black;" |This error code forces the device to disconnect from server
 +
| rowspan="1" style="text-align: left; style=" width: 150px; background: white; color: black;" |Sent from device. Possible causes:
 +
 
 +
*Camera is not configured
 +
*The requested file is not available by camera
 +
|}
 +
After a COMPLETED command device should disconnect from the server.
 +
<br>
 +
<br>
 +
'''Initialization packet repeat command (CMD ID 0x0009)'''<br>
 +
When sent, the initialization packet is repeated. This is used, when all of the files are downloaded and an additional check is carried out for any additional files, that may have been captured during the download operation.
 +
<br>
 +
 
 +
'''Query file metadata request (CMD ID 0x000A)'''<br>
 +
This command is used for retrieving extra information about a selected file. A file identifier is used to determine which file’s information will be received. File identifiers are identical and used in the same way as in the File Request Command (0x0008).
 +
{| class="wikitable"
 +
|+
 +
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" |'''Command ID (2 bytes)'''
 +
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" |'''Data length (2 bytes)'''
 +
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" |'''File Identifier (7 bytes)'''
 +
|-
 +
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |0x000A
 +
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |0x0007
 +
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |0xFFFFFFFFFFFFFF
 +
|-
 +
|}
 +
 
 +
Can be sent after the initialization packet or after the file transfer is complete. It is not a mandatory command and doesn’t have to be used.
 +
The response for this command is 0x000B (more details below).
 +
 
 +
'''Note: 0x000A command was added since 03.27.04.Rev.104 firmware version and would not work with older versions.'''
 +
<br>
 +
 
 +
'''File metadata response  (CMD ID 0x000B)'''<br>
 +
0x000B is a response command to the request command 0x000A.
 +
 
 +
Response command returns information about a specified file: file type, timestamp, trigger, and video length. Complete command’s structure:
 +
{| class="wikitable"
 +
|+
 +
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" |'''Command ID (2 bytes)'''
 +
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" |'''Data length (2 bytes)'''
 +
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" |'''Command version (1 byte)'''
 +
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" |'''File type (1 byte)'''
 +
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" |'''Timestamp (8 bytes)'''
 +
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" |'''Trigger (1 byte)'''
 +
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" |'''Video length (2 bytes)'''
 +
|-
 +
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |0x000B
 +
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |0x000D
 +
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |0xFF
 +
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |0xFF
 +
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |0xFFFFFFFFFFFFFF
 +
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |0xFF
 +
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |0xFFFF
 +
|-
 +
|}
 +
 
 +
'''Note: 0x000B command was added since 03.27.04.Rev.104 firmware version and would not work with older versions.'''
 +
<br>
 +
 
 +
Response command meta data:
 +
{| class="wikitable"
 +
|+
 +
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" |'''Data'''
 +
! rowspan="1" style="width: 400px; background: #0054A6; color: white;" |'''Description'''
 +
|-
 +
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |Command  version
 +
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |Iteration  of the command itself to determine to parse of the data
 +
|-
 +
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |File  type
 +
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |Media type for confirming which file’s metadata is received. Byte structure is the  same as byte 3 in the initialization packet settings data
 +
|-
 +
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |Timestamp
 +
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |Timestamp at the time of the trigger. Same used in a corresponding SOS record
 +
|-
 +
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |Trigger
 +
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |Trigger values. Same values as video sending trigger in SOS record.
 +
|-
 +
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |Video  length
 +
| rowspan="1" style="text-align: center; style=" width: 150px; background: white; color: black;" |Duration of the video in seconds. If the file type is a photo, this value is 0x0000.
 +
|-
 +
|}
 +
 
 +
==File transfer visual flow==
 +
[[Image:FileTransferVisual.PNG|{{{general|size}}}|center]]
 +
[[Category:Accessories]]
 +
 
 +
==DualCam update procedure==
 +
 
 +
Firmware  download for FMX125 and DualCam:
 +
 
 +
Link: https://drive.teltonika.lt/d/e5c4b09a60b74fa5b6a0/
 +
 
 +
Password: 3RpOAf96
 +
 
 +
Before the update, FMx125 has to be updated first. The latest camera firmware requires 03.27.07.Rev.364 or newer firmware. After FMx125 update, update of the camera can start:
 +
 
 +
1 Connect the camera to the FMx125. Power up, wait for the configuration finish (about 30 seconds after power up).
 +
 
 +
2 Ensure, that power supply at all times has stable 14V and not less that 2.5A output. If update is performed with the camera, that is installed in the vehicle, it is strongly recommended to have the engine running for stable alternator power supply.
 +
 +
3 Make sure that the camera works and responds (for example, try getting an image or try sending “camgetver” and check whether for both front and rear camera firmware versions are returned).
 +
 
 +
4 Format the SD cards of both cameras using SMS command "'''camget_sdformat:<cam id>'''". Cam id is the same as in “'''camreq'''”: 1 - Front Camera, 2 - Rear Camera. For example:
 +
 
 +
'''camget_sdformat:1'''
 +
 
 +
'''camget_sdformat:2''' 
 +
 
 +
Our device will return success if the format goes well. The result returned of a successful SD card format:
 +
Camera front/rear SD Card format success
 +
 
 +
5 After the cards are formatted, power off everything, disconnect the camera from FMx125 and take out the SD cards. If disconnecting FMx125 from the DualCam is not possible, disable external UART mode from the configuration:
 +
 
 +
[[File:UART_MODE.jpg|alt=|frameless]]
 +
 
 +
6 After taking out SD cards, write the firmware file of V2.2.0 to the root of both (front/rear) SD cards. Do not rename the firmware file, it has to be as it is, "JPEG_IPC_APP".   
 +
 
 +
7 Put the cards back in, power the camera on. Do not reconnect the camera to the FMx125 or configure RS232 mode back yet.   
 +
 
 +
8 '''Wait 60-90s for 2.2.0 version (for 2.2.2 version wait 120s).'''  You should hear a click from the rear camera after the update succeeds. That click sound indicates restart of the rear camera which happens after successful firmware update.   
 +
 
 +
9 Even if you don't hear the clicking sound, reconnect the camera to the FMx125 (or reconfigure RS232 mode back to DualCam) after few minutes anyway and send SMS “camgetver” command to check the versions.   
 +
 
 +
At this point the command should return “Front/Rear camera camgetver failed.” If it does, it does not mean a problem, because V2.2.0 is a transitional firmware and it does not return version. Therefore, if the camera was returning V1.9.3/1.9.2 or other 1.9.X version, this means it has updated to the V2.2.0 successfully and update procedure can continue.   
 +
 
 +
10 Format SD  cards again as it is in step 4 and disconnect from the camera the FMx125. After that go with step 11. 
 +
 
 +
11 Take the cards out and write the firmware file of V2.2.2 to the root of both SD cards. The file name is “ALL222_IPC_BIN”. Again, do not rename it. 
 +
 
 +
12 Repeat steps 7, and 8. After that go with step 13.
 +
 
 +
'''Note:  Only for 2.2.2 version wait 120 second''' 
 +
 
 +
13 Now, if all went successfully, return to the '''“camgetver”''' should return this: 
 +
Front camera V2.2.2. Rear camera V2.2.2. 
 +
 
 +
If it does, that means the camera is updated to V2.2.2 successfully.
 +
 
 +
14 After the update, it would be advisable to format SD cards again.
 +
 
 +
===Potential issues and solutions===
 +
 
 +
Update is pretty straightforward most of the time. However, sometimes the update does not trigger. In case it doesn’t and the camera does not update, check whether it is really disconnected from FMx125 device. If it is, do not power off the camera at first. Keep it powered on and take out and put back in both SD cards. After this, wait 60-90s again and check the firmware version using “camgetver”.
 +
 
 +
If it still is not updated, disconnect from FMx125, power the camera off for at least 20 seconds and power it back on. Wait for a few minutes and then re-insert the cards again. Reconnect and check the firmware version using “camgetver”.
 +
 
 +
Can also note that if just one camera updates, only front or only rear, all mentioned solutions and steps could be done to only camera.
 +
 
 +
Reminder, that the rear camera is with IR LEDs and light sensor and the front one is without them.
 +
 
 +
==Troubleshoot==
 +
 
 +
===DualCam Checks===
 +
*Check RS232 configuration, baud rate, etc. Default values should be set for the DualCam.
 +
*See if both cameras are working. Try sending separate picture requests and check the result. “camreq:1:1” for the front camera and “camreq:1;2” for the rear camera. Possible responses to "camreq" command - [[Teltonika_DualCam#Camera_request_command|Camera request command]]
 +
Check camera IO values in the configurator.
 +
*See if the camera is physically enabled, gets power, and re-check the RS232 connections. You can also test if the camera is physically enabled by covering the light sensor on the rear camera '''(marked green in the picture below)'''. The rear camera’s IR LEDs should turn on by doing so in a dark environment.
 +
 
 +
[[image:DualCam_Reset.png]]
 +
 
 +
*If the camera seems to be enabled, check the SD card content. See if there are any files and review the footage using TF CardVideoPlayer v1.14. If there is some footage from the time the camera was turned on. The actual time in the camera might differ, therefore check older dates to see if there are any videos.
 +
 
 +
*If some recent video files were found, it means that the camera is working, but not responding to RS232 commands. Otherwise, the camera is either not working or not responding to commands and does not detect SD card.
 +
 
 +
===Possible solutions===
 +
 
 +
*Camera might have a problem detecting SD card. Format microSD card using FAT32 file system. Try different cards. Try re-inserting the cards while the camera is turned on. Also, keep in mind that the smallest supported card is 16 GB.
 +
*Physical camera restart. Disconnect the camera’s power supply and disconnect from the FMX125 device. Leave the camera for a few minutes like that and power it on but do not connect to the FMX125 for a few minutes. After some time, reconnect the device and check if the camera responds.
 +
*Try firmware update:
 +
**Upload firmware to both SD cards. The firmware file has to be the exact name “JPEG_IPC_APP” name without any extensions.
 +
**Disconnect the camera from the FMX125 device.
 +
**Power the camera off.
 +
**Put the SD cards in.
 +
**Turn the power on but do not connect to the FMX125.
 +
**Wait for 3-5 minutes.
 +
**Turn off the power and reconnect to the FMX125 device.
 +
**Power on the camera with the FMX125 device.
 +
**Check whether Codec8 Extended is enabled. Without Codec8 Extended, parameters of AVL ID 497, 498, 499 '''WILL''' not be sent.
 +
 
 +
[[Image:Data_protocol.gif|300px]]
 +
 
 +
If nothing helps and the camera is still not working or working incorrectly, log data using 2;3;9;1 filter and collect the log files.
 +
 
 +
== Integration on platforms ==
 +
[https://gurtam.com/ Wialon(Gurtam) ] support Video/Image [https://wiki.teltonika-gps.com/view/Wialon%2BDUAL_CAM_solution Wialon and Dual Cam configuration]
 +
 
 +
[https://www.gpswox.com/ GPSWOX] support only Images [https://www.gpswox.com/en/user-manual/tools-camera Tool Camera] [https://www.gpswox.com/en/supported-gps-trackers/teltonika/teltonika-dualcam DualCam IP Port]
 +
 
 +
[https://gpsgate.com/ GPSgate] support only Images
 +
 
 +
[https://docs.gps-server.net/ GPS-server] support only Images [https://www.gps-server.net/supported-devices/gps-trackers/teltonika Teltonika devices configuration domain/port], [https://docs.gps-server.net/user-manual/image-gallery Image gallery],[https://docs.gps-server.net/user-manual/object-control SMS command's send]
 +
 
 +
== Dual Cam Test time's ==
 +
 
 +
[https://wiki.teltonika-gps.com/view/Dual_cam_test_time Dual Cam Test time's]

Revision as of 09:37, 23 May 2022

Main Page > Video Solutions > Teltonika DualCam

Introduction to the product

Teltonika DualCam is connected to FMB125,FMC125 and FMB225, FMC225 devices using the RS232 interface.

DualCam1.png

How to insert microSD cards

Teltonika DualCam can hold 2 x microSD cards, which are inserted on both sides of the camera (front and rear).
When the card is inserted correctly, it locks in with a "click". How the cards are inserted is depicted in the photos.

NOTE: If you do not insert microSD cards, you will be only available to receive images, but you do not receive video if the trigger will happen or you will send SMS/GPRS command.

Dual camera MicroSD card insert 1.png Dual camera MicroSD card insert 2.png

Camera mounting recommendation

Camera location:

  • To maximize the field of view, the camera should be mounted in the middle of the front windshield so that an even field of view for the sides of the vehicle is recorded. We recommend you mount the Dual Cam near the rearview mirror area.
  • We always recommend angling the lens slightly upwards so that video footage displays about 60% road and 40% sky. This angle offers a good balance of exposure and details.
  • View footage from SD card while mounting the Dual Cam so you can select what position and angle you prefer the Dual Cam to be set at.

Rear camera adjusting:

Dual camera rotation 1.png Dual camera rotation 2.png Dual camera rotation 3.png Dual camera rotation 4.png

  • Gently remove the cover from the case of the top camera. After the cover is removed you will see the screw.
  • Unscrew it and rotate the rear camera to adjust the better view of the cabin. The rear camera contains infrareds on it.
  • Put the cover back on the camera.

Connecting power source:

  • Due to high camera power consumption we always recommend connecting the camera to the vehicle ignition. The camera start-up in 2-3 seconds when vehicle ignition goes ON.
  • Camera ground (Black cable) must be connected to the same (common) Ground wire as FMx125 device.
  • Ground wire is connected to the vehicle frame or metal parts that are fixed to the frame.

Please refer to FMx125 device mounting recommendation: https://wiki.teltonika-gps.com/view/FMC125_First_Start#Mounting_recommendations

Video file conversion

Video files and conversion

Videos downloaded from the camera are in the raw h265 format. By default, they could be viewed using the ZMVideoPlayer program in the h265 format. If the videos are needed in a more common format, they can be converted.

Video conversion example and settings

For converting DualCam h265 videos to a more popular mp4 video format, a free open-source converter FFmpeg is used in the example. Although any other converter from h265 would work as well.

To convert DualCam video properly, the converter has to know the frame rate of the video. The frame rate is configured as Config Id: 66003 and could be either 20, 25, or 30 FPS. That same value could be obtained by using the metadata command (see more details at File metadata response (CMD ID 0x000B)).

Recommended parameters using the FFmpeg for the conversion:

ffmpeg -r <fps> -i <input>.h265 -ss 00:00:0.9 -c:a copy -c:v libx264 <output>.mp4

<fps> - configured frame rate of the video;

<input> - file name of the video file from the camera;

<output> - file name of the video that will be converted to mp4.

Product Specification


Technical data Description
Supported by FMC125, FMB125, FMB225, FMC225
Day & Night Vision Effect Day (Color), Night (Black & White)
Angle of View Horizontal 120°, Vertical 70°
Dual Camera Front and Rear (equal characteristics)
Camera casing dimensions 126.2 x 36.6 x 36.6 mm
Camera mounting Sticky tape (3M) or screws
Supported microSD card sizes 16 GB, 32 GB, 64 GB


Electrical parameters Description
Input voltage range 9 ~ 36 V
Working temperature and humidity Temperature: -30 °C ~ 85 °C

Humidity: <90%

Power consumption 220 mA


Function parameters Description
Real time clock (RTC) synchronization Available over FM (via NTP, NITZ or GNSS)
Picture resolution 1280 x 720 (default) (50KB transfer period 18 sec), Configurable: 160 x 120; 320 x 240; 640 x 480; 1920 x 1080
IR Distance 2 Meters
Cable length RS232 (3.5 m)
Video compression H.265
Video resolution 720P (20 sec. – 6MB, transfer period ~ 320 sec.)
Video storage 2psc. MicroSD card (Max 64GB up to 72 hours of video)


Firmware Version

We are always improving our device's performance, stability, and reliability.
This document describes DualCAM platform and FMX125 devices' firmware improvements, changes, new features implementations as well as current firmware release version.

Firmware download for FMX125 and DualCam:

Link: https://drive.teltonika.lt/d/e5c4b09a60b74fa5b6a0/

Password: 3RpOAf96

FMX125 Firmware
FIRMWARE VERSION RELEASE DATE CHANGES
03.27.07.Rev.365
2022-03-17
  • Minor improvements
  • DualCam metadata timestamp mismatch
  • Increased timeout for video data pack request
  • CRC calculation mismatch after file upload resume
  • Periodic image sending
  • Add camera time zone parameter
  • Added periodic time check and sync for the camera
  • Adjusted DualCam command timeouts
  • Added fixes and workarounds for cam command fails
  • FPS parameter added to the meta data command
03.27.07.Rev.361
2021-09-17
  • Minor improvements
03.27.07.Rev.360
2021-08-30
  • Extended video and image sending configuration
  • Added Domain and Port parameters to “camreq” command
  • Extended “camreq” response
  • Added “camgetver” command
  • Fixed timestamp for video meta data
  • Improved system stability and fixed general bugs
03.27.03.Rev.104
2021-06-18
  • Added image sending trigger
  • Ability to configure multiple video triggers
  • Always enabled DualCam scenario support
  • Improved system stability and fixed general bugs
03.27.00.Rev.100
2021-02-19
  • Initial release


DualCam firmware
DUALCAM FIRMWARE VERSION RELEASE DATE CHANGES
V2.2.3
2022-05-20
  • Added watch dog for camera to restart it self if camera will stuck
V2.2.2
2022-01-06
  • Added video buffer pool,repair the write rate of the SD card
  • Solved the bug when 35min can not download video
  • Changed the logic of FPS setting and switching,the video saves the exact FPS of each video packet in the PTM_FRAME
  • Improved the picture and video quality,image edge trimming
  • Added flash upgrade mode
  • Modified command to get Image quality
  • Resolved the problem that the camera restarts after switching the OSD switch
  • Optimized setting video frame rate without restarting the camera
V1.9.3
2021-07-15
  • Improved stability and fixes of camera data packets
V1.9.2
2021-06-02
  • Fixed issue with front camera crash if picture size is too large
  • Added command to check the camera version
  • Improved system stability and fixed general bugs
V1.9.0
2021- 02-19
  • Initial release

Certifications & Approvals

Installation

To connect the DualCam to a supported device, you have to make sure to connect 4 PINs of the camera to the PINs of your device correctly.

NOTE: Dual Cam must be connected to the ignition source or another source, where then you turn off ignition camera will turn off in another case camera will drain the battery if you connect directly.

443035 Teltonika DualCam Wiki Knowledge Base Teltonika GPS 1.2.jpg

PIN NUMBER PIN NAME

DESCRIPTION

1 RS232-Tx DualCam output for data transmission through RS232
2 RS232-Rx DualCam input for data reception through RS232
3 VCC(9-36V) (+) Power supply for the DualCam
4 GND (-) Ground


Device configuration

How to set up Dual Cam

Data protocol.gif

  • Make sure to change I/O Camera state Priorities to Low

Io.gif

  • In RS232\RS485 settings change Mode to RS232 and in RS232 Mode select DualCam

232.gif

  • Do not forget to configure DualCam server information. In RS232\RS485 fill in DualCam Server Settings with Domain and Port entries.

Dualcamserver.png

  • NOTE: This is a base setup for the device to work properly. Other device configuration is made according to your needs.

DualCam RS232 camera support

DualCam camera support was introduced from firmware version 03.27.06.Rev.360. A new RS232 mode "DualCam" was added with parameters for setting control. The details of the RS232 mode parameter are provided in the table below.

Parameter name Parameter ID Parameter value
RS232 Mode 151 18
size

Configuration version 8.14.1.0 has to be used if configuration is being made in offline mode.


Camera Feature Settings

size

Once this mode is enabled, new tab “Camera Settings” appears on the left sidebar. This will contain the main parameters for configuring the camera settings The parameter IDs and values are provided in the table below. Once configuration is saved to device, these parameters are updated.

Parameter name Parameter ID Parameter values Default values
Camera Picture Resolution 66000
0 - 160 x 120 3
1 - 320 x 240
2 - 640 x 480
3 - 1280 x 720
4 - 1920 x 1080
Camera Picture Compression 66001 [0 - 100] (%) 50
OSD Display 66002 0 - Disabled 0
1 - Enabled
Video Frame Rate 66003 20, 25 and 30 (frames per second) 30

OSD display - On Screen Display feature displays date and time in the upper left corner of the photo. This feature can be enabled or disabled.

Camera Scenario Settings

size

"Camera settings" tab also contains scenario settings that trigger camera video/photo capture when specific condition is met.

Parameter name Parameter ID Parameter values Default values
Periodic Image sending 66006 0 - Disabled 0
1 - Front Camera
2 - Rear Camera
3 - Both Cameras
Sending interval 66007 [10-1800] (seconds) 600
Image Sending Trigger 66022
0 - None 0
2 - DIN1
4 - DIN2
8 - Crash
16 - Towing
32 - Idling
64 - Geofence
128 - Unplug
256 - Green Driving
Video sending trigger 66023
0 - None 0
2 - DIN1
4 - DIN2
8 - Crash
Video duration before trigger 66009 [1-10] (seconds) 5
Video duration after trigger 66010 [1-10] (seconds) 5
Camera Scenario Mode 66020
0 - On Ignition 0
1 - Always
Video source for trigger DIN1 66040
0 - None 0
1 - Front
2 - Rear
3 - Front and Rear
Video source for trigger DIN2 66041
0 - None 0
1 - Front
2 - Rear
3 - Front and Rear
Video source for trigger Crash 66042
0 - None 0
1 - Front
2 - Rear
3 - Front and Rear


Periodic image sending scenario

Periodic image sending triggers photo capture from a front camera, whenever the timeout is reached (sending interval parameter).

Update: Since 03.27.03.Rev.04 firmware, Periodic Image Sending Enable/Disable switch was replaced by a camera selection:

  • Both cameras deselected – periodic image sending is disabled (value 0)
  • Front camera selected – front camera’s pictures will be sent periodically (value 1)
  • Rear camera selected – rear camera’s pictures will be sent periodically (value 2)
  • Both cameras selected – both cameras’ pictures will be sent periodically (value 3)

If the camera has not finished uploading pictures to the server, then the photo capture is skipped.

Camera Scenario Mode

The options On Ignition and Always determine the working mode.

On Ignition means the camera scenarios will operate the way it was up to 03.27.03.Rev.105, that is it will work only when the ignition is detected.

Always mode means the camera scenarios will work all the time, including whenever the device is in sleep mode (excepting Ultra sleep mode during which scenario is disabled). During sleep footage requests (if the network is available), periodic image sending and triggers work as well.

Warning: using Always mode, depending on the configuration, the device might wake up from sleep very frequently. That has to be taken into consideration when configuring the scenarios.

Video sending by trigger

Video sending by trigger camera scenario monitors the selected trigger (video sending trigger parameter) and captures video from front, rear or both cameras before and after the event (video duration before trigger and video duration after trigger parameters). If the previously captured video has not finished downloading, then a new video capture is skipped until the old one has been sent. When this scenario is triggered, high priority eventual record is generated with the value corresponding to what triggered the scenario. See the table below.

Parameter name Parameter AVL ID Parameter value
SOS trigger 499 0 - Server request
1 - DIN1
2 - DIN2
3 - Crash

Image sending trigger

Added Image sending trigger option (works the same way as Video sending trigger just triggers image sending). Both front and rear images will be sent.

For selecting multiple options using SMS/GPRS commands, add values of every option and set that value for this parameter.

For example, to set DIN1 (2), Crash (8), and Unplug (128) scenarios as triggers, add their values (2 + 4 + 128 = 138) and set the sum as the parameter value

Parameter name Parameter AVL ID Parameter value
SOS trigger 499 0 - Server request
1 - DIN1
2 - DIN2
3 - Crash
4 - Towing
5 - Idling
6 - Geofence
7 - Unplug
8 - Green Driving

Camera firmware version

Additional SMS/GPRS command for cameras’ firmware checking. Since both cameras are separate, there are two versions returned.

Command Arguments Explanation
camgetver None Used to check firmware versions.

Returns version in the format: V<major>.<minor>.<revision>. For example, V1.9.3.

Because there are two cameras, two versions are returned. The complete response would look like this: Front camera V1.9.3. Rear camera V1.9.3.

If there are problems reading the version or if the camera is not responding/connected, the return would be this: The front camera camgetver failed. The rear camera camgetver failed.

Camera request command

A new camera request has been added, which allows the server to request files from a camera. The format is as provided below in the table:

Command Arguments Explanation
camreq: <file_type>,<file_source>,<timestamp>,<duration>

,<domain>,<port>

Captures appropriate file with the provided details. If the connection to server is opened, them files immediately become available for download. If not, then connection is tried to be made. If <domain> and <port> parameters are included, the device will send footage of the command to that address.

The arguments are as follows:

  • <file_type>
    • 0 - Video
    • 1 - Photo
  • <file_source>
    • 1 - Front camera
    • 2 - Rear camera
    • 3 - Both cameras
  • <timestamp>
    • Unix timestamps in decimal (not required for photo download)
  • <duration>
    • Video duration in seconds from provided timestamps (not required for photo download), (max 30 sec)

Structure examples:

camreq:<file type>,<file source>(if video, add ",<timestamp>,<duration>)

However, if there is a need to send to the specific server without configuring, you can add two extra parameters. The complete structure:

camreq:<file type>,<file source>(if video, add ",<timestamp>,<duration>),<domain>,port

For example: camreq:0,1,1624960616,5,212.59.13.226,7160


Conditions Command response
Request successful and server connection successful. Device is ready to send selected file Photo request from source <1-3>.

(If photo request)


Video request from source <1-3> for <1-255> seconds since YYYY-MM-DD HH:MM:SS.

(If video request)

Preparing to send file from timestamp <timestamp of the file>
Request successful but the device was already connected to the server. Device is ready to send selected file Already connected. Preparing to send file from timestamp <timestamp of the file>
Request received but the capture failed Error: capture failed
Request received but the device cannot proceed with the capture and sending because ignition is off Error: Cannot capture because ignition is off
Request received but the previously captured and prepared photo/video was not sent. New media is not captured. The device is ready to send the previous capture Warning: Photo / Video already captured previously, trying to send it
Request received but the device was already connected to the server. New media is not captured. The device is ready to send previous capture Already connected. Warning: Photo / Video already captured previously, trying to send it
Request received but the camera doesn’t acknowledge sent command. Nothing will be sent Error: DualCam NAK
Request received but the camera is not connected or not working Error: DualCam not present
Request received but the camera is not connected or not working Error: requested file does not exist
Request received but the device cannot connect to the server Error: connect to server
Request received but the modem is not ready for operation (network or modem issue) Error: modem not ready to start send
Request received but the device cannot proceed with the capture and sending because the camera is being reconfigured Cannot send, DualCam configuration is in progress
Request received but file capture time was exceeded. Error: Media request timeout
Request received but capture completed incorrectly Error: Media request problem
File type parameter incorrect in the request command Error: Invalid File Type argument in camera request cmd!
File Source parameter incorrect in the request command File Source
Timestamp parameter incorrect in the request command Timestamp
Duration parameter incorrect in the request command Duration
Cannot proceed with the request, ignition is off Error: Ignition not detected!
Request command structure incorrect Error: Invalid camera request command!
RS232 and DualCam mode is not enabled Error: DualCam is not configured!
Front or rear camera not found Error: Front / Rear Camera not present


Camera ping transmission and TF status checking

Camera pinging was implemented to periodically check if a camera is connected to a device. This is done via “Get TF status” command for both front and rear camera every 20 seconds when ignition is on. The received result from this command is stored in two corresponding AVL elements “Front camera state” and “Rear camera state”. The following do not only store TF status, but also if response from the camera was received or not.

Parameter name Parameter AVL ID Parameter values
Front camera state: 498 0 - Camera not detected
1 - No card
Rear camera state: 497
2 - Card mount failed
3 - Card mounted
4 - Card faulty


Camera RTC synchronization

Camera RTC synchronization is done anytime the device itself is synchronized (via NTP, NITZ or GNSS).

After 03.27.07.Rev:364 firmware for FMX125 we added a feature to set camera time, same as device selecting time.

NOTE:

That after changes of the time it can be that you can receive files which the old-time or just do not have any video/photo on this periodical time then you change time, but then it will be back to normal work.

Time zone changes the inside clock of the camera, not only the OSD displayed time but all recordings will be done according to that.

For example, if you request a video from, say, 9:00 AM GMT+0, and the camera time is GMT+0 (matches our device's time), it is all fine. But if you were to configure time zone later to, for instance, GMT+10, the camera time will be set according to that time zone (time forwarded by 10 hours in this case). Which means that time gets forwarded with no real continuation as the camera does not understand the concept of time zones, it just uses time that we set. For continuation reasons in our device, we continue using GMT+0 in the camreq and then compensate with time zone if needed. The result of that, if we send the same request command as before (when requesting 9:00 AM video) with time zone GMT+10 set, the camera will receive video request for 7 PM (19:00) and the videos were not recorded at that time which will result in "file doesn't exist".

How to read camera data from SD card

The software for reading camera data can be downloaded here

Data reading steps:

  1. Double-click “VideoPlayer.exe” to open the player
  2. When the software starts, first select the directory where the TF card files are located. Once located, click "OK". The software starts analyzing the pictures and videos existing in the TF card files.
  3. Software will automatically detect the video and picture in the TF card files, which will last for a few seconds and then enter the software, as shown.,

The upper part of the software is a calendar. You can choose to view whether there is a video in the current month according to the year and month. The number of the year/month can be entered by keyboard after selecting it, and then press the “Enter” key to jump to the entered year/month. You can press Button1.png to view the previous year/month and Button2.png to view the next year/month. The date of the recorded video in the current month will be marked in blue. The lower part of the software is the preview interface, divided into two parts: "Video View" and "Image View".

Video View

Video view shows the video information. Left click on the date of the video in the calendar, then the following "Video View" section will show which time period there is a video, as shown. For video recording, the time period during which the video is recorded will be marked in blue.

Click on the blue part of the timeline to get the time you clicked, and the video thumbnail of the current time will be displayed in the middle of the screen. The timeline length is 24 hours and it is difficult to locate the exact number of seconds. Hold down the timeline with the left mouse button and then swipe to the right to zoom in on the timeline. For example, we need to carefully view the video at 05:00-07:00. Then, the left mouse button is pressed at the 05:00 position and slide to the right to the position of 07:00, so that this part of time can be enlarged to the entire timeline.

Note: If you need to restore, then left-click and hold the time axis to slide left.

Video Playback

Left click on the timeline will view the video thumbnail of the clicked time point, and double click the left mouse button to start playing the video from the current time. By default, the video will be played for two minutes from the selected time. If you click to find the location you want to play, you don't need to move the mouse, double click again will pop up the play form.

Vplayback.png

Video playback interface contains
Stopp.png
Stop button
Speediup.png
Speed up

play button

Pause.png
Pause button
Screenshot.png
Screenshot

button

Slowdown.png
Slow down

play button

Fullscreen.png
Full screen

button

Note: Closing the current playback interface does not exit the player software.

Image view

"Image View" displays the image information (the camera saves the image in the TF card after the person takes the initiative to take the photo, here you can see the photo taken by the camera). We first click on "Image View" to switch the software to the image page.

After switching to the picture interface, you can view when the photo is taken according to the directory. As shown below, after expanding the index, we can see how many pictures in total were taken.

Imageview1.png
Imageview2.png



After the expansion, click the time of the image generation to see the preview on the left side. Clicking on the preview image will pop up the image viewing window. The size of the window is the size of the image itself. The scroll wheel zooms in and out of the picture. You can right click on the preview to save the original image to your hard disk. Imageviwe.png

Export MP4

Click the "Convert" button Convert.png to convert the video in the TF card to MP4 and export it.

Then first select the folder you want to export to, enter the MP4 start time and end time to be exported, and then click Export, if you need, cancel the export. Exporting.png

Then wait for the export to complete. The time of export is not certain. Depending on the performance of the computer, it takes about 1 to 5 minutes for each 1-hour duration video.

Other camera related functionality

Camera is configured if all of these conditions are met:

  1. RS232 mode is selected (DualCam)
  2. Camera was not configured since startup or one of the related parameters were changed (compression, framerate or OSD)
  3. Camera file transfer is not active

Active camera reconfiguration is accompanied by two consecutive camera shutter clicks. If camera is disconnected and later reconnected, a device will detect it by periodic camera ping packet. Once camera is detected, the device will reissue the reconfiguration procedure.

Camera file transfer reconnection

If FMU1YX device has bad reception, server is not reachable or wrong server details are configured, then the device tries to open a link to a camera server few consecutive times. If no connection was possible to be established, then the connection is postponed for 30 minutes and tried again (or tried every configured sending interval if periodic image sending is enabled).

DualCam camera file transfer support

size

Once camera has at least one file captured, it starts connection to a remote server, which is configured by parameters “Domain” and “Port” found in the “Camera Settings” tab.

Initialization packet

On connection, a device sends an initialization packet.

Header(0x0000) Protocol ID IMEI Settings
2 bytes 2 bytes 8 bytes 4 bytes

Protocol ID – just a reference for the protocol version that is running on a device (for server cross compatibility with older versions). Firmware FMB.Ver.03.27.00.Rev.100 and up have protocol ID 5. Settings flag contains information on what is available for download. Structure is provided below:

Settings, 4 B
Byte 3 Byte 2 Byte 1 Byte 0
1 2 3 4
  1. Video, rear (%videor)
  2. Video, front (%videof)
  3. Photo, rear (%photor)
  4. Photo, front (%photof)

If identifier sent to a server is not valid, device disconnects.

General command structure

General communication packet structure is as in the table bellow. It consist of CMD_ID (2 bytes), Data length of a command and a payload.

Command ID Data length Data
2 bytes 2 bytes [data length] bytes


Communication protocol

Close a session command (CMD ID 0x0000)
In case when a device connects to a server, but the server does not expect it to connect, the server will respond by sending a CLOSE command after which the connection will be terminated. This command is also used when the device connects to a server for a custom file sending and the server finishes to send all custom files to the device.

Command ID Data length
0x0000 0x0000


Start file transfer command (CMD ID 0x0001)
After device received file request command from the server (0x0008) device sends START command with file data (packet count).

Command ID Data length File Packets (4 bytes) Blank field (2 bytes)
0x0001 0x0006 0x12345678 0x0000 (always same value)


File request command (CMD ID 0x0008)
After the device is connected for a file upload, the server initiates file transfer by sending a FILE REQ command.

Command ID Data length File Identifier
0x0008 2 bytes See the table below

The device should answer with a START command described above indicating the size and CRC of the requested file.

File source, type Identifier (ASCII chars)
Photo from camera, rear %photor
Photo from camera, front %photof
Video from camera, rear %videor
Video from camera, front %videof


Resume file transfer command (CMD ID 0x0002)
In a response to the START command a RESUME command must be sent from server.

Command ID Data length Packet offset (4 bytes)
0x0002 0x0004 0x00000001

To begin file transfer from the start, offset should be set to 1 (4 bytes value). In case when the file transfer was interrupted, to resume file transfer, offset can be set to the desired value (1 ≤ [offset] ≤ [file packets]).

Synchronize file transfer command (CMD ID 0x0003)
In a response to the RESUME command a SYNC command is sent from device.

Command ID Data length File offset (4 bytes)
0x0003 0x0004 0x00000001

By sending the SYNC command it is ensured that the next data command will contain file data starting from the specified offset.

File data transfer command (CMD ID 0x0004)
After sending a SYNC command, a file data transfer is started by sending DATA commands.

Command ID Data length File data (up to 1024 bytes) Data CRC (2 bytes)
0x0004 0x0402 ... ...

A File data is split into 1024 byte parts, each part wrapped into a DATA command and is sent.
Note: if a command with a bad CRC is received, RESUME command should be sent with the last valid file offset, after receiving a RESUME command, the server will stop sending DATA commands and continue communication from “Resume file transfer” step.
CRC polynomial expression: 0x8408 The initial value, when calculating CRC, is the previously received packet (CMD ID 0x0004) CRC value.

File transfer status command (CMD ID 0x0005)
After a file transfer is completed and no more files are required from the device, a server should send a COMPLETED command to the device (this command does not work after executing repeat init command0 x0009 – in this case, the server should send a CLOSE SESSION 0x0000 command mentioned before).

Command ID Data length Status (4 bytes)
0x0005 0x0004 0x00000000

In case of the server using invalid arguments, commands or not following the file request flow, the device will send this command with a Status field set to one of the few possible error codes. A list of possible ones is provided below.

Status value (hexadecimal) Description Notes
0x00000000 File transfer process completed Sent from server
0x00000002 Failed to close GPRS Sent from device
0x00000003 Failed to close socket Sent from device
0x00000005 Invalid response from server to init packet Sent from device
0x00000011 This error code forces the device to disconnect from server Sent from device. Possible causes:
  • Camera is not configured
  • The requested file is not available by camera

After a COMPLETED command device should disconnect from the server.

Initialization packet repeat command (CMD ID 0x0009)
When sent, the initialization packet is repeated. This is used, when all of the files are downloaded and an additional check is carried out for any additional files, that may have been captured during the download operation.

Query file metadata request (CMD ID 0x000A)
This command is used for retrieving extra information about a selected file. A file identifier is used to determine which file’s information will be received. File identifiers are identical and used in the same way as in the File Request Command (0x0008).

Command ID (2 bytes) Data length (2 bytes) File Identifier (7 bytes)
0x000A 0x0007 0xFFFFFFFFFFFFFF

Can be sent after the initialization packet or after the file transfer is complete. It is not a mandatory command and doesn’t have to be used. The response for this command is 0x000B (more details below).

Note: 0x000A command was added since 03.27.04.Rev.104 firmware version and would not work with older versions.

File metadata response (CMD ID 0x000B)
0x000B is a response command to the request command 0x000A.

Response command returns information about a specified file: file type, timestamp, trigger, and video length. Complete command’s structure:

Command ID (2 bytes) Data length (2 bytes) Command version (1 byte) File type (1 byte) Timestamp (8 bytes) Trigger (1 byte) Video length (2 bytes)
0x000B 0x000D 0xFF 0xFF 0xFFFFFFFFFFFFFF 0xFF 0xFFFF

Note: 0x000B command was added since 03.27.04.Rev.104 firmware version and would not work with older versions.

Response command meta data:

Data Description
Command version Iteration of the command itself to determine to parse of the data
File type Media type for confirming which file’s metadata is received. Byte structure is the same as byte 3 in the initialization packet settings data
Timestamp Timestamp at the time of the trigger. Same used in a corresponding SOS record
Trigger Trigger values. Same values as video sending trigger in SOS record.
Video length Duration of the video in seconds. If the file type is a photo, this value is 0x0000.

File transfer visual flow

size

DualCam update procedure

Firmware download for FMX125 and DualCam:

Link: https://drive.teltonika.lt/d/e5c4b09a60b74fa5b6a0/

Password: 3RpOAf96

Before the update, FMx125 has to be updated first. The latest camera firmware requires 03.27.07.Rev.364 or newer firmware. After FMx125 update, update of the camera can start:

1 Connect the camera to the FMx125. Power up, wait for the configuration finish (about 30 seconds after power up).

2 Ensure, that power supply at all times has stable 14V and not less that 2.5A output. If update is performed with the camera, that is installed in the vehicle, it is strongly recommended to have the engine running for stable alternator power supply.

3 Make sure that the camera works and responds (for example, try getting an image or try sending “camgetver” and check whether for both front and rear camera firmware versions are returned).

4 Format the SD cards of both cameras using SMS command "camget_sdformat:<cam id>". Cam id is the same as in “camreq”: 1 - Front Camera, 2 - Rear Camera. For example:

camget_sdformat:1

camget_sdformat:2

Our device will return success if the format goes well. The result returned of a successful SD card format: Camera front/rear SD Card format success

5 After the cards are formatted, power off everything, disconnect the camera from FMx125 and take out the SD cards. If disconnecting FMx125 from the DualCam is not possible, disable external UART mode from the configuration:

6 After taking out SD cards, write the firmware file of V2.2.0 to the root of both (front/rear) SD cards. Do not rename the firmware file, it has to be as it is, "JPEG_IPC_APP".

7 Put the cards back in, power the camera on. Do not reconnect the camera to the FMx125 or configure RS232 mode back yet.

8 Wait 60-90s for 2.2.0 version (for 2.2.2 version wait 120s). You should hear a click from the rear camera after the update succeeds. That click sound indicates restart of the rear camera which happens after successful firmware update.

9 Even if you don't hear the clicking sound, reconnect the camera to the FMx125 (or reconfigure RS232 mode back to DualCam) after few minutes anyway and send SMS “camgetver” command to check the versions.

At this point the command should return “Front/Rear camera camgetver failed.” If it does, it does not mean a problem, because V2.2.0 is a transitional firmware and it does not return version. Therefore, if the camera was returning V1.9.3/1.9.2 or other 1.9.X version, this means it has updated to the V2.2.0 successfully and update procedure can continue.

10 Format SD cards again as it is in step 4 and disconnect from the camera the FMx125. After that go with step 11.

11 Take the cards out and write the firmware file of V2.2.2 to the root of both SD cards. The file name is “ALL222_IPC_BIN”. Again, do not rename it.

12 Repeat steps 7, and 8. After that go with step 13.

Note: Only for 2.2.2 version wait 120 second

13 Now, if all went successfully, return to the “camgetver” should return this: Front camera V2.2.2. Rear camera V2.2.2.

If it does, that means the camera is updated to V2.2.2 successfully.

14 After the update, it would be advisable to format SD cards again.

Potential issues and solutions

Update is pretty straightforward most of the time. However, sometimes the update does not trigger. In case it doesn’t and the camera does not update, check whether it is really disconnected from FMx125 device. If it is, do not power off the camera at first. Keep it powered on and take out and put back in both SD cards. After this, wait 60-90s again and check the firmware version using “camgetver”.

If it still is not updated, disconnect from FMx125, power the camera off for at least 20 seconds and power it back on. Wait for a few minutes and then re-insert the cards again. Reconnect and check the firmware version using “camgetver”.

Can also note that if just one camera updates, only front or only rear, all mentioned solutions and steps could be done to only camera.

Reminder, that the rear camera is with IR LEDs and light sensor and the front one is without them.

Troubleshoot

DualCam Checks

  • Check RS232 configuration, baud rate, etc. Default values should be set for the DualCam.
  • See if both cameras are working. Try sending separate picture requests and check the result. “camreq:1:1” for the front camera and “camreq:1;2” for the rear camera. Possible responses to "camreq" command - Camera request command

Check camera IO values in the configurator.

  • See if the camera is physically enabled, gets power, and re-check the RS232 connections. You can also test if the camera is physically enabled by covering the light sensor on the rear camera (marked green in the picture below). The rear camera’s IR LEDs should turn on by doing so in a dark environment.

DualCam Reset.png

  • If the camera seems to be enabled, check the SD card content. See if there are any files and review the footage using TF CardVideoPlayer v1.14. If there is some footage from the time the camera was turned on. The actual time in the camera might differ, therefore check older dates to see if there are any videos.
  • If some recent video files were found, it means that the camera is working, but not responding to RS232 commands. Otherwise, the camera is either not working or not responding to commands and does not detect SD card.

Possible solutions

  • Camera might have a problem detecting SD card. Format microSD card using FAT32 file system. Try different cards. Try re-inserting the cards while the camera is turned on. Also, keep in mind that the smallest supported card is 16 GB.
  • Physical camera restart. Disconnect the camera’s power supply and disconnect from the FMX125 device. Leave the camera for a few minutes like that and power it on but do not connect to the FMX125 for a few minutes. After some time, reconnect the device and check if the camera responds.
  • Try firmware update:
    • Upload firmware to both SD cards. The firmware file has to be the exact name “JPEG_IPC_APP” name without any extensions.
    • Disconnect the camera from the FMX125 device.
    • Power the camera off.
    • Put the SD cards in.
    • Turn the power on but do not connect to the FMX125.
    • Wait for 3-5 minutes.
    • Turn off the power and reconnect to the FMX125 device.
    • Power on the camera with the FMX125 device.
    • Check whether Codec8 Extended is enabled. Without Codec8 Extended, parameters of AVL ID 497, 498, 499 WILL not be sent.

Data protocol.gif

If nothing helps and the camera is still not working or working incorrectly, log data using 2;3;9;1 filter and collect the log files.

Integration on platforms

Wialon(Gurtam) support Video/Image Wialon and Dual Cam configuration

GPSWOX support only Images Tool Camera DualCam IP Port

GPSgate support only Images

GPS-server support only Images Teltonika devices configuration domain/port, Image gallery,SMS command's send

Dual Cam Test time's

Dual Cam Test time's