Menu

Get_memory_dump

Anonymous
  • out: 0x60 0xb5 0x00 0x00 0x00 0x00 0x00
  • response: Memory Dump ...
  • response: “WP Update Over\0”

Structure of memory dump

  • The device sends the content of the entire flash ram (usually approx. 4 MB). The exact count on my device is 4 MB - 0x30000 (196608 bytes) = 249856 data points).
  • Each data set is 16 bytes long.
  • Unused positions are filled with 16x 0xff.
  • The data structure differs depending on the chip set.

Particularities when memory is full

  • If the memory is full, the oldest data is overwritten. (In this case, the record in position 0 is not the oldest one.)
  • Parts of the memory get cleared before new data is written into it. (In my experiment, 1096 points were overwritten at the beginning. However, the memory was cleared (0xff ...) up to memory position 0x10000. After that, the remaining old data were still intact).

SirfIII chipset

pos.
size
encoding
remarks

0-3
4 bytes unsigned integer

little endian

see below
longitude

4-7
4 bytes unsigned integer

little endian

see below
latitude

8-11
4 bytes unsigned

little endian

bit encoding, see below
date + time (UTC)

12-13
2 byte integer
m
altitude

14
byte
knots
speed

15
byte
tag (0xff = off)

Encoding of date + time

The date and time are encoded in a 32 bit value:

bit
remark

0-5
second

6-11
minute

12-16
hour

17-21
day

22-25
month

26-31
year (-2000)

Nemerix chipset

pos.
size
encoding
remarks

0-3
4 bytes unsigned

little endian

see below
longitude

4-7
4 bytes unsigned

little endian

see below
latitude

8
byte
year (-2000)

9
byte
month

10
byte
day

11
byte
hour

12
byte
minute

13
byte
second

14
byte
knots
speed

15
byte
tag (0xff = off)

Latitude/longitude encoding

* Bit 31 = 1: degree south/degree east (this needs to be confirmed)
* Bit 0-30: integer value DDDMMXXXX
 * where 
  * DDD is the degree value
  * MMXXXX means MM.XXXX minutes (exact 4 decimal places)

Example

* Stored value: 0xed 0x22 0x64 0x00 
* Hex value: 0x006422ed (little endian)
* Decimal value: 6562541
* Degrees: 6° 56.2541'

Notes

Requesting a bulk-in with 4096 bytes speeds up the transfer significantly (a 4 MB dump takes approx. 25 secs).

However, it does not work on slower laptops, which require a smaller block. This slows down the transfer takes (using a block size of 16 bytes the transfer takes over 10 minutes).


Related

Wiki: Main_Page

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.