Extract the GPS tracks of Soloshot 3 base and tags of a session file as GPX file.
HTMLMIT
soloshot-session-to-gpx-converter
Extract the GPS tracks of Soloshot 3 base and tags of a session file as GPX file.
Try it out.
Session File Format
The session file is a binary file. The first 4 bytes represent the ASCII encoded string SOLO. They are followed by 12 bytes of as yet unknown information (probably contains file version number). They are followed by packages that start with a byte 0xAA (package separator), followed by the package type (1 byte), package data length (1 byte), package header (10 bytes) and the package data.
File Content
File Header
4 bytes (SOLO)
12 bytes
1. Package
1 byte (separator)
1 byte (type)
1 byte (data length)
10 byte (header)
n1 bytes (data)
2. Package
1 byte (separator)
1 byte (type)
1 byte (data length)
10 byte (header)
n2 bytes (data)
...
Packages
Type
Total Data Length
0xA0
11 bytes
0xA6
16 bytes
0xA5
21 bytes
0xA4
32 bytes
0x1D
43 bytes
0x08
44 bytes
0xA3
69 bytes
The content of the package header is unknown yet, as is the content of the package data of package type 0xA0 and 0xA6. The content of the other packages is partly figured out. The following tables show the structure of them. Byte order of numbers is big endian. Strings are ASCII encoded and zero terminated.
Type
0xA50C02
Length
10 bytes
12 bytes
Content
unknown
contains video resolution and FPS (zero right padded string)
Type
0xA41702
Length
9 bytes
7 bytes
8 bytes
8 bytes
Content
unknown
base firmware version (string)
unknown version number (string)
camera firmware version (string)
Type
0x1D2201
Length
9 bytes
34 bytes
Content
unknown
comma separated string: serial number, time stamp, tag number
Type
0x082301
Length
9 bytes
1 byte
12 bytes
12 bytes
10 bytes
Content
unknown
tag number
GPS position of base (see table below)
GPS position of tag (see table below)
unknown
GPS position
Length
4 bytes
4 bytes
4 bytes
Content
latitude (integer)
longitude (integer)
height in centimeters (integer)
Latitude and longitude values divided by 1,000,000 result in decimal degree values.