Skip to content

15: Position ​

When setting up of changing a SUBSCRIpition, particularly intervals <= 1000, the GNSS module may need to reboot to apply the changes, and it may take time to get a fix.

FieldNameDescriptionType
5MethodRequest a service to be perform an action
Possible values:
  • 1: SET— Set one or more values that are provided in the message payload.
  • 2: GET— Get values for the associated message type.
  • 3: SUBSCRIBE— Subscribe to values for the associated message type. Can be used in conjunction with other header fields to define the subscription parameters, such as Interval, Duration, Timeout, Storage Level and Message Level. If no interval is provided, messages will be sent as and when new data is available. Some data, such as GPS position, may require a set interval to be provided.
  • 5: UNSUBSCRIBE— Unsubscribe from a previous subscription.
uint8
This is an extract of header fields that are relevant to this message type, you can find them all documented in the Headers section.

Payload ​

FieldNameDescriptionTypeUnit
1TimestampTimestamp of when the position was taken
May be invalid if the GPS has not locked in yet (when type is 'invalid')
uint64ms since epoch
2Latitudeint32 × 1e7 = degree
3Longitudeint32 × 1e7 = degree
4AltitudeAltitudeint32 × 1e3 = meter
5AccuracyAccuracyuint16cm
× 1e2 = meter
6CourseCourse over grounduint16 × 1e2 = degree
7SpeedSpeeduint16 × 1e2 = km/h
8Satellitesuint8count
9CN0Average CN0. Carrier to noise density. Higher is better.uint8dB-Hz
10TypePosition type
Possible values:
  • 0: invalid
  • 1: fixed
  • 2: reserved— Can indicate a 2D fix, low accuracy, should be treated as invalid
  • 3: standalone— standalone 3d fix
  • 4: rtk-float
  • 5: rtk-fix
  • 10: wifi
  • 11: gsm
uint8
11SourcePosition source
Possible values:
  • 0: gps— Position has come from a GPS module.
  • 1: rtk— Position has come from an RTK module. This does not mean the position is RTK corrected.
  • 2: os— Position determined by OS-level location services.
  • 3: ip— Position inferred from public IP geolocation.
uint8
12Correction AgeAge of the correction data (RTK or DGNSS) from NMEA GGA sentenceuint8 × 10 = seconds
98Send ReasonSend reason code for this position.
uint8

Examples ​

RTK fix position (1cm accuracy)
Protocol
3
3
Length
820
82 bytes
Type
150
15 (Position)
Header Count
20
2
Header Types
21
2, 1
Client ID
87310218300000
12019273
Message ID
4101200
613
Payload Count
120
12
Payload Types
123456789101112
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12
Timestamp
81604936171153100
2025-10-03 17:35:00.000 UTC
Latitude
4184374522
37.2057528 Unit: degree
Longitude
410112695183
-121.8478491 Unit: degree
Altitude
419610310
92.1 Unit: meter
Accuracy
210
0.01 Unit: meter
Course
215258
150.0 Unit: degree
Speed
200
0.0 Unit: km/h
Satellites
158
58 Unit: count
CN0
143
43 Unit: dB-Hz
Type
15
5 (rtk-fix)
Source
11
1 (rtk)
Correction Age
120
2.0 Unit: seconds
Checksum
19351
13249
Subscription request
Protocol
3
3
Length
260
26 bytes
Type
150
15 (Position)
Header Count
40
4
Header Types
517615
5, 17, 6, 15
Method
13
3 (SUBSCRIBE)
Subscription ID
10
0
Interval
4232300
1000 Unit: ms
Storage Level
120
20 (NVM)
Payload Count
00
0
Checksum
217251
64473

Code ​

For convenience, the following constants can be used to reference this message type.