From MikroTik Wiki
Jump to navigation Jump to search

Applies to RouterOS: v3, v4, v5, v6 +


Package requirement: gps
Sub-menu: /system gps
Standards: GPS, NMEA 0183, Simple Text Output Protocol

Global Positioning System (GPS) is used for determining precise location of a GPS receiver.

Configuration Properties

Property Description
enabled (yes | no; Default: no) Whether GPS is enabled
port (string; Default: ) Name of the USB/Serial port where GPS receiver is connected
channel (integer [0..4294967295]; Default: 0) Port channel used by device
init-channel (integer [0..4294967295]; Default: ) Channel for init-string execution
init-string (string; Default: ) AT init string for GPS initialization
set-system-time (yes | no; Default: no) Whether to set router's date and time to one received from GPS.

Monitoring Status

Command: /system gps monitor

This command is used for monitoring the data received from a GPS receiver


Property Description
date-and-time (date) Date and time received from GPS
latitude (none | string) Latitude in DM (Degrees Minute decimal) format
longitude (none | string) Longitude in DM (Degrees Minute decimal) format
speed (none | string) Current moving speed of the GPS unit
bearing (none | string) The compass direction toward which a GPS is moving
valid (yes | no)
satellites (integer) Number of satellites seen by the device.

Note: The time is not stratum 1 as RouterBOARD devices do not have PPS implemented

Basic examples

Check port usage, only one instance can use serial port simultaneously

[admin@MikroTik] /port print
Flags: I - inactive 
 #   DEVICE NAME                     CHANNELS USED-BY                   BAUD-RATE
 0          serial0                         1 Serial Console            auto   

in this case port is used by console, release it from console menu:

[admin@MikroTik] > /system console print 
Flags: X - disabled, U - used, F - free
 #   PORT                                                                       TERM                                                                     
 0 F serial0                                                                    vt102 

[admin@MikroTik] > /system console disable 0  

Adjust port settings specific for your device

[admin@MikroTik] /port> set 0 baud-rate=4800 parity=odd
[admin@MikroTik] /port> print detail 
Flags: I - inactive 
 0   name="usb1" used-by="GPS" channels=1 baud-rate=4800 data-bits=8 parity=odd stop-bits=1 flow-control=none

Enable GPS

[admin@MikroTik] /system gps> set enable=yes port=usb1
[admin@MikroTik] /system gps> print 
          enabled: yes
             port: usb1
          channel: 0
     init-channel: 0
  set-system-time: no

Monitor status

[admin@MikroTik] /system gps> monitor  
  date-and-time: jul/02/2015 14:36:08
             latitude: N 56 57' 32.262''
            longitude: E 24 9' 7.262''
             altitude: 36.700001m
                speed: 0.000000 km/h
  destination-bearing: none
         true-bearing: 0.000000 deg. True
     magnetic-bearing: 0.000000 deg. Mag
                valid: yes
           satellites: 7

We have also created an in-depth article about live GPS tracking, using scripting and a web server: Manual:GPS-tracking.


Note that sometimes in order to make GPS module to be recognized under RouterOS you need to change the baud-rate setting in the '/port' menu.

On some modems with GPS support you need to send multiple init commands for the continuous GPS monitoring, for example, for Huawei cards you need to send "AT^WPDST=1,AT^WPDGP" init string to get continuous monitoring.

[ Top | Back to Content ]