Add support for Position app #25

Closed
opened 2026-10-04 22:57:24 +02:00 by adam · 2 comments
Owner

Add support for Position app meshtastic modules broadcasting over LoRa

POSITION_APP → 60 packets

All contain lat/long, precision, sometimes altitude and time.

Many also have locationSource (external/manual/internal GPS), speed, track.

Some rare extras: satsInView (20 packets), PDOP (18 packets), one with timestamp.

Position:

Baseline: coordinates, precision.

Enriched with GPS fix data: number of satellites, PDOP (quality).

One node even provided a timestamp field → unusual.

Add support for Position app meshtastic modules broadcasting over LoRa POSITION_APP → 60 packets All contain lat/long, precision, sometimes altitude and time. Many also have locationSource (external/manual/internal GPS), speed, track. Some rare extras: satsInView (20 packets), PDOP (18 packets), one with timestamp. Position: Baseline: coordinates, precision. Enriched with GPS fix data: number of satellites, PDOP (quality). One node even provided a timestamp field → unusual. <!-- github-sync-id:3444860815 -->
adam closed this issue 2026-10-04 22:57:24 +02:00
Author
Owner

LOC INTERNAL


{
  "from": 2985962247,
  "to": 4294967295,
  "decoded": {
    "portnum": "POSITION_APP",
    "payload": {
      "__bytes_b64__": "DQDATR8VAMATCBjw//////////8BJb150mgoAljTAXgCgAEAmAEHuAER"
    },
    "bitfield": 1,
    "position": {
      "latitudeI": 525189120,
      "longitudeI": 135512064,
      "altitude": -16,
      "time": 1758624189,
      "locationSource": "LOC_INTERNAL",
      "PDOP": 211,
      "groundSpeed": 2,
      "groundTrack": 0,
      "satsInView": 7,
      "precisionBits": 17,
      "raw": {
        "latitude_i": 525189120,
        "longitude_i": 135512064,
        "altitude": -16,
        "time": 1758624189,
        "location_source": "LOC_INTERNAL",
        "PDOP": 211,
        "ground_speed": 2,
        "ground_track": 0,
        "sats_in_view": 7,
        "precision_bits": 17
      },
      "latitude": 52.518912,
      "longitude": 13.5512064
    }
  },
  "id": 200498337,
  "rxTime": 1758624186,
  "rxSnr": -9.5,
  "rxRssi": -104,
  "hopStart": 5,
  "relayNode": 231,
  "raw": {
    "from": 2985962247,
    "to": 4294967295,
    "decoded": {
      "portnum": "POSITION_APP",
      "payload": "DQDATR8VAMATCBjw//////////8BJb150mgoAljTAXgCgAEAmAEHuAER",
      "bitfield": 1
    },
    "id": 200498337,
    "rx_time": 1758624186,
    "rx_snr": -9.5,
    "rx_rssi": -104,
    "hop_start": 5,
    "relay_node": 231
  },
  "fromId": "!b1fa2b07",
  "toId": "^all"
},
LOC INTERNAL ``` { "from": 2985962247, "to": 4294967295, "decoded": { "portnum": "POSITION_APP", "payload": { "__bytes_b64__": "DQDATR8VAMATCBjw//////////8BJb150mgoAljTAXgCgAEAmAEHuAER" }, "bitfield": 1, "position": { "latitudeI": 525189120, "longitudeI": 135512064, "altitude": -16, "time": 1758624189, "locationSource": "LOC_INTERNAL", "PDOP": 211, "groundSpeed": 2, "groundTrack": 0, "satsInView": 7, "precisionBits": 17, "raw": { "latitude_i": 525189120, "longitude_i": 135512064, "altitude": -16, "time": 1758624189, "location_source": "LOC_INTERNAL", "PDOP": 211, "ground_speed": 2, "ground_track": 0, "sats_in_view": 7, "precision_bits": 17 }, "latitude": 52.518912, "longitude": 13.5512064 } }, "id": 200498337, "rxTime": 1758624186, "rxSnr": -9.5, "rxRssi": -104, "hopStart": 5, "relayNode": 231, "raw": { "from": 2985962247, "to": 4294967295, "decoded": { "portnum": "POSITION_APP", "payload": "DQDATR8VAMATCBjw//////////8BJb150mgoAljTAXgCgAEAmAEHuAER", "bitfield": 1 }, "id": 200498337, "rx_time": 1758624186, "rx_snr": -9.5, "rx_rssi": -104, "hop_start": 5, "relay_node": 231 }, "fromId": "!b1fa2b07", "toId": "^all" }, ``` <!-- github-comment-id:3323576073 -->
Author
Owner

LOC MANUAL

{
  "from": 3676940920,
  "to": 4294967295,
  "decoded": {
    "portnum": "POSITION_APP",
    "payload": {
      "__bytes_b64__": "DQAARB8VAAD0ByWsedJoKAG4AQ0="
    },
    "bitfield": 0,
    "position": {
      "latitudeI": 524550144,
      "longitudeI": 133431296,
      "time": 1758624172,
      "locationSource": "LOC_MANUAL",
      "precisionBits": 13,
      "raw": {
        "latitude_i": 524550144,
        "longitude_i": 133431296,
        "time": 1758624172,
        "location_source": "LOC_MANUAL",
        "precision_bits": 13
      },
      "latitude": 52.4550144,
      "longitude": 13.3431296
    }
  },
  "id": 2523156365,
  "rxTime": 1758624177,
  "rxSnr": -9.5,
  "hopLimit": 4,
  "rxRssi": -104,
  "hopStart": 7,
  "relayNode": 231,
  "raw": {
    "from": 3676940920,
    "to": 4294967295,
    "decoded": {
      "portnum": "POSITION_APP",
      "payload": "DQAARB8VAAD0ByWsedJoKAG4AQ0=",
      "bitfield": 0
    },
    "id": 2523156365,
    "rx_time": 1758624177,
    "rx_snr": -9.5,
    "hop_limit": 4,
    "rx_rssi": -104,
    "hop_start": 7,
    "relay_node": 231
  },
  "fromId": "!db29aa78",
  "toId": "^all"
},
LOC MANUAL ``` { "from": 3676940920, "to": 4294967295, "decoded": { "portnum": "POSITION_APP", "payload": { "__bytes_b64__": "DQAARB8VAAD0ByWsedJoKAG4AQ0=" }, "bitfield": 0, "position": { "latitudeI": 524550144, "longitudeI": 133431296, "time": 1758624172, "locationSource": "LOC_MANUAL", "precisionBits": 13, "raw": { "latitude_i": 524550144, "longitude_i": 133431296, "time": 1758624172, "location_source": "LOC_MANUAL", "precision_bits": 13 }, "latitude": 52.4550144, "longitude": 13.3431296 } }, "id": 2523156365, "rxTime": 1758624177, "rxSnr": -9.5, "hopLimit": 4, "rxRssi": -104, "hopStart": 7, "relayNode": 231, "raw": { "from": 3676940920, "to": 4294967295, "decoded": { "portnum": "POSITION_APP", "payload": "DQAARB8VAAD0ByWsedJoKAG4AQ0=", "bitfield": 0 }, "id": 2523156365, "rx_time": 1758624177, "rx_snr": -9.5, "hop_limit": 4, "rx_rssi": -104, "hop_start": 7, "relay_node": 231 }, "fromId": "!db29aa78", "toId": "^all" }, ``` <!-- github-comment-id:3323576825 -->
Sign in to join this conversation.
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: adam/potato-mesh#25