Basic data logging with simpleRTK2B ZED-F9P integrated memory

simpleRTK2B F9H

Dear followers,

Today we want to talk to you about an interesting feature of simpleRTK2B and simpleRTK2Blite ZED-F9P boards. The onboard flash memory can be used as a “black box” to record up to 50’000 positions, but only of some limited position fix data. The recorded data for a fix comprises:

  • The time and date of the fix recorded to a precision of one second.
  • Latitude and longitude to a precision of one millionth of a degree. Depending on position on Earth this is a precision in the order of 0.1 m.
  • Altitude (height above mean sea level) to a precision of 0.1 m.
  • Ground speed to a precision of 1 cm/s
  • Satellites used
  • Position accuracy value, but anything below 70cm will be shown as 70cm.
  • Position fix, but it only stores 3D fix, even if it’s a RTK FIX or FLOAT fix.

As you can see from above, is not really usable for RTK position storage, but it can useful as “black box” in case you need it.

Checking log function status

A starting point is to Poll UBX-LOG-INF. This message will give us information about the available memory, data stored, recording enabled/disabled. It’s just for your information, we will come to this message later.

Creating the log

First we need to allocate the space for a logfile. We can do this from UBX-LOG-CREATE:

 

  1. Define if you want a maximum file size or you want to define the size of the logfile. You might want to limit this size, otherwise it can get difficult to browse through the logfile (see section “Retrieving the log” below. It might be useful for you to know that each fix stored is around 15bytes.
  2. Remember to click circular so in case you fill in all available memory, the system deletes the oldest position.
  3. Click and the logfile is created.

Now that the file is created, we can activate the logging functionality to start adding entries. For this we can go to UBX-CFG-LOGFILER:

  1. Activate the flag “Recording Enabled”. If nothing else is pressed, the system will record one position per second.
  2. Activate the flag “Apply all filter settings” if you want to change some thresholds, e.g. if you want the system to only log positions when speed is about a certain threshold.
  3. You don’t need the flag “Log once per wake up”, this is for some power optimized modes not used in RTK systems.
  4. Now click send and the logging will start. You can go back to UBX-LOG-INFO and see how the logfile size increases.

Configure the system so it records also after next power up

If we want the receiver to start logging right after power-up, we need to store this configuration in the permanent flash memory. Go to UBX-CFG-CFG and “Store current configuration” in “FLASH”. Now you can remove the power.

Retrieving the log

At a certain point we want to retrieve log data. The first thing we need to do to access the log, is to stop logfile feature. This can be done going again to UBX-CFG-LOGFILTER, unselecting “Recording Enabled”, and click Send.

Now we can go to UBX-LOG-INFO to understand the content of the logfile:

  • “Oldest Time” that will be stored in position 0.
  • Entry count
  • “Newest time” that will be stored in position “Entry count -1”. In our example position 62.

Now we recommend to open 2 Message View windows: one with UBX-LOG-RETRIEVE and another one with UBX-LOG-RETRIEVEPOS. A big limitation of the log browser is that you can only retrieve 256 positions at a time.

In the UBX-LOG-RETRIEVE window, we need to select:

  • “First entry”: in our example above, from which entry 0 to 62 we want to start the data dump.
  • “Entry count”: how many positions we want the system to ouput. The maximum value is 256. In our example above, it would then output all positions from 0 to 62, and these position will appear in the other window with UBX-LOG-RETRIEVEPOS. We can then copy paste the table and export to Excel or our map tool.

That’s all folks! Best regards,
ArduSimple Team