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.
Header
| Field | Name | Description | Type |
|---|---|---|---|
| 5 | Method | Request a service to be perform an action Possible values:
| uint8 |
Payload
| Field | Name | Description | Type | Unit |
|---|---|---|---|---|
| 1 | Timestamp | Timestamp of when the position was taken May be invalid if the GPS has not locked in yet (when type is 'invalid') | uint64 | ms since epoch |
| 2 | Latitude | int32 | × 1e7 = degree | |
| 3 | Longitude | int32 | × 1e7 = degree | |
| 4 | Altitude | Altitude | int32 | × 1e3 = meter |
| 5 | Accuracy | Accuracy | uint16 | cm × 1e2 = meter |
| 6 | Course | Course over ground | uint16 | × 1e2 = degree |
| 7 | Speed | Speed | uint16 | × 1e2 = km/h |
| 8 | Satellites | uint8 | count | |
| 9 | CN0 | Average CN0. Carrier to noise density. Higher is better. | uint8 | dB-Hz |
| 10 | Type | Position type Possible values:
| uint8 | |
| 11 | Source | Position source Possible values:
| uint8 | |
| 12 | Correction Age | Age of the correction data (RTK or DGNSS) from NMEA GGA sentence | uint8 | × 10 = seconds |
Examples
RTK fix position (1cm accuracy)
📡 Real example from RV1 P1 v2287 on 2025-10-03This example is captured from an RV1 device as part of normal communications with the cloud, somewhere in California.
Subscription request
📡 Real example from Lightbug cloud forwarding system on 2025-10-24This is a real message recorded from the lightbug cloud forwarding system, sent to an RH2 device
Code
For convenience, the following constants can be used to reference this message type.