GPS

当前显示英文原文,切换到「中文」可查看译文。

This page documents GPS configuration and monitoring in MikroTik RouterOS, covering properties like channel selection, coordinate formats, GPS initialization strings, and monitoring commands with parameters such as date-and-time, latitude/longitude, altitude, satellites, and data age.

GPS

This section covers GPS tracking examples. Use it to send RouterOS GPS data to HTTP endpoints, MQTT brokers, and IoT platforms.

Summary

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

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

Configuration Properties

PropertyDescription
channel (integer [0..4294967295]; Default: 0)Port channel used by the device
coordinate-format (dd | dms | ddmm; Default: dms)Which coordinate format to use, "Decimal Degrees", "Degrees Minutes Seconds" or "NMEA format DDDMM.MM[MM]"
enabled (yes | no; Default: no)Whether GPS is enabled
gps-antenna-select (external | internal; Default: internal)Depending on the model. The internal antenna can be selected, if the device has one installed.
init-channel (integer [0..4294967295]; Default: )Channel for init-string execution
init-string (string; Default: )AT init string for GPS initialization
port (string; Default: )Name of the USB/Serial port where the GPS receiver is connected
set-system-time (yes | no; Default: no)Whether to set the router's date and time to the one received from GPS.

Monitoring Status

Command: /system/gps/monitor

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

Parameters:

警告

Starting with the 7.1rc3 firmware release, a new parameter was added, called "data-age" (measured in seconds). This parameter displays the time that has passed since the device received the last NMEA message. | Property | Description | | :-- | :-- | | date-and-time (date) | Date and time received from GPS | | latitude (none | string) | Latitude in DM (Degrees Minutes decimal) format | | longitude (none | string) | Longitude in DM (Degrees Minutes decimal) format | | altitude (none | string) | Altitude based on GPS data | | speed (none | string) | The current moving speed of the GPS unit | | destination-bearing (none | string) | The bearing from the current position toward a configured destination waypoint | | true-bearing (none | string) | Current heading relative to true north | | magnetic-bearing (none | string) | Current heading relative to magnetic north | | valid (yes | no) | | | satellites (integer) | Number of satellites seen by the device. | | fix-quality (integer) | Quality of the signal | | horizontal-dilution (decimal) | Horizontal dilution of precision (HDOP); | | data-age (integer) | The time that has passed since the device received the last NMEA message |

Basic examples

Check port usage, as only one instance can use the serial port simultaneously:

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

In case there is one port and it is used by the console, release it from the console menu:

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

[admin@MikroTik] > /system/console/disable 0   

Adjust port settings specifically for your device (leave "auto" for LtAP mini):

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

Enable GPS:

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

Monitor status:

[admin@MikroTik] /system/gps> monitor  
        date-and-time: 2021-09-07 08:26:26
             latitude: 56.969689
            longitude: 24.162471
              altitude: 25.799999 m
                speed: 0.759320 km/h
  destination-bearing: none
         true-bearing: 185.500000 deg. True
     magnetic-bearing: 0.000000 deg. Mag
                valid: yes
           satellites: 6
          fix-quality: 1
  horizontal-dilution: 1.3

Port and GPS settings for LtAP

/port/set serial1 baud-rate=115200
/system/gps/set port=serial1 channel=0 enabled=yes

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

Troubleshooting

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

LtAP mini has a low-gain GPS antenna built-in, and for a better experience, we suggest using an additional external antenna.

Switch between internal and external antennas under the GPS menu:

[admin@MikroTik] > /system/gps/set gps-antenna-select=external

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