Please help, what protocol is this

hariro10 months ago

My device, which is equipped with a Ublox Sara R412m chip, sends these messages to the server on port 5001.

INFO: [think this is the device ID location: gps103 < my ip adress] 1014294293b6b57000000000000000069fcd66578213304401c84154b0b7c000100000700

I tried to set it with the IMEI number and the identifier found in the log, but unfortunately it does not appear on the map.
Unfortunately, I'm new to the topic and I don't know what kind of protocol this is.

Anton Tananaev10 months ago

Do you have any protocol documentation?

hariro10 months ago

I tried to search on the internet and that's all I found.
The payload send by the software is in Little Endian.

From the device we have received "012EDB583C07DACE1E1F7E941803DFFF0000920601" on our server.

Timestamp
Take the first 4 bytes "012EDB58"
Change endianness
01 2E DB 58 -> 58 DB 2E 01
When you convert 58DB2E01 to decimal you will get: "1490759169"
Timestamp: 1490759169
Battery
Take the next byte, multiply by 10 and add 3000 to get the millivolts
Battery: 3600
Temperature
Take the next byte, and convert hex to decimal
Temperature: 7
GPS
Take the next 4 bytes for Latitude and another 4 for the Longitude, change endianness, convert hex to decimal and divide by 10000000
GPS: 52.211273,5.1942526
Altitude
Altitude: -32
Speed
speed: 0
Course
course: 146
Satellite
Satellite count: 6
Time to Fix
Time to fix: 1

Anton Tananaev10 months ago

The length of the message doesn't seem to match.

hariro10 months ago

I can see it too. The device is a Sodaq SARA SFF and, I run Universal Tracker on it.
https://support.sodaq.com/Boards/Sara_SFF/examples/universal_tracker/
That's all I could find about it on this site.

Anton Tananaev10 months ago

Wait. It's open source?

hariro10 months ago
Anton Tananaev10 months ago

Then it should be possible to find all the information from the code. But it seems like it would require a new protocol anyway.

hariro10 months ago

I found a topic here on the forum 5 years ago, this topic was discussed. According to them, there is no protocol for this yet.
https://www.traccar.org/forums/topic/sodaq-universal-tracker/

hariro10 months ago

I found a pattern, it might help you to decode it.

{
    "type": "object",
    "properties": {
        "latitude": {
            "type": "number"
        },
        "longitude": {
            "type": "number"
        }
    }
}
{
  "sense": [
    {
      "asset": "timestamp",
      "value": {
        "byte": 0,
        "bytelength": 4,
        "signed": false,
        "byteorder": "little",
        "type": "integer"
      }
    },
    {
      "asset": "v",
      "value": {
        "byte": 4,
        "bytelength": 1,
        "signed": false,
        "calculation": "val * 10 + 3000",
        "type": "integer"
      }
    },
    {
      "asset": "t",
      "value": {
        "byte": 5,
        "bytelength": 1,
        "signed": true,
        "type": "integer"
      }
    },
    {
      "asset": "g",
      "value": {
        "latitude": {
          "byte": 6,
          "bytelength": 4,
          "signed": true,
          "byteorder": "little",
          "calculation": "val / 10000000",
          "type": "integer"
        },
        "longitude": {
          "byte": 10,
          "bytelength": 4,
          "signed": true,
          "byteorder": "little",
          "calculation": "val / 10000000",
          "type": "integer"
        },
        "altitude": {
          "byte": 14,
          "bytelength": 2,
          "signed": true,
          "byteorder": "little",
          "type": "integer"
        }
      }
    },
    {
      "asset": "speed",
      "value": {
        "byte": 16,
        "bytelength": 2,
        "signed": false,
        "byteorder": "little",
        "type": "integer"
      }
    },
    {
      "asset": "sat",
      "value": {
        "byte": 19,
        "bytelength": 1,
        "signed": false,
        "type": "integer"
      }
    },
    {
      "asset": "ttf",
      "value": {
        "byte": 20,
        "bytelength": 1,
        "signed": false,
        "type": "integer"
      }
    }
  ]
}