Introduce :

This function support only on 2.5.4 or higher and only for Rover (Client).

NMEA Logger can be understood as a travel data log. When activated, ESPrtk will collect NMEA sentences from RX_UART1 port and save it to the SD card as a text file (or log file). Users can then use those files for surveying and evaluating positioning.
NMEA Logger on ESPrtk supports a variety of file formats, update cycles, NMEA filters, recording styles, etc.
This function is integrated on the Rover (Client) and all connections such as NTRIP – MQTT – WIFI TCP-WIFI UDP.

ESPrtk can run this function in multitask , also no problem at highspeed output . ( (ESPrtk can run NTRIP/MQTT /RF Link +Send NMEA to Server + SD Card log NMEA realtime + Export IMU data realtime + ...other actions in the same time) .

Wiring ESPrtk with SD Card:

See more here : Connect ESPrtk with RTK Receiver and other modules.


File’s name:

Naming the file will store NMEA data. Maximum is 20 characters.

File format:

Supported file formats are “.log”, “.txt”, “.nmea”, “. nme”, “. gps”, “. ubx”, “. skt”, “. data”, “.dat”, “. bin”.

Recording type:

Suppose the file name is “my_test”. After restarting (by powering or pressing Reset button) ESPrtk will continue to write NMEA data.

  • If “Append to old file” is selected: NMEA data will be added to the file with the fixed name “my_test”.
  • If “Create and write on new file” is selected: ESPrtk will create a new file such as “my_test_2” and save the NMEA data into that file. On the next reboot, it will write to the file “my_test_3″…

Update cycle:

It is understandable that this is the NMEA Logger rest time.

Unit is seconds. Maximum is 100000000 second.

 For example, if Update cycle is 20 seconds. After 20 seconds, the NMEA Logger will be awakened, it will get enough NMEA messages before going to sleep. This process is repeated and calls it as an “Update Cycle”.

Enable / Disable type NMEA:

NMEA Logger will not save NMEA messages if it is not enabled.

How to use NMEA Logger on ESPrtk effectively ?

NMEA file storage path:

  • NMEA file will be stored in “SD://NMEA_LOGGER/” folder.

Is possible to using both SD Card and Ethernet ?

SD Card and Ethernet module (ENC28J60) use the same SPI port on ESPrtk. So you just can use one of them (SD Card or Ethernet). 

In special cases, if you enable both SD Card and Ethernet , ESPrtk will only select Ethernet and ignore SD Card. Also warn users that SD Card will not be used.

Using NMEA Logger in Basestation mode:
No, NMEA Logger is used for Rover. The mode for Basestation will be “RCTM Logger” but it is not supported on 2.5.4. You need to wait until the 2.7.5 release.

I want to store NMEA for a long time and just want save location data:

 Well, you need to save maximum storage space on the SD card.

Setting “Recording type” is “Append to old file” will help the messages to be stored in a single file.

Increase the Update cycle (sleep time) of NMEA Logger to 60 sencond or higher.You have to accept that some messages will be ignored when NMEA Logger is sleeping. This is the only way to ensure the SD card has enough memory for a long time.

Set “Max NMEA sentence” to 1 or 2.

And only select “GGA” (or just “RMC”) and do not select the remaining messages.
Of course the NMEA output on the GPS module needs to export GGA / RCM messages with a 1-hz cycle.

I have NMEA 10hz output with GGA-GSA-GSV-ZDA-DTM messages and a few messages are not listed in the enable table above, I want to store all NMEA messages and don’t want to lose any messages :

You need to speed up the performance of ESPrtk, which will help ESPrtk store at higher speeds.
Set “Recording type” is  “Append to old file”.
Set the update cycle to 0 s. (ESPrtk will understand that it is a high-speed save mode.)
Set “Max NMEA sentence” to 50 or even higher.
Tick ​​select all types of messages. select both “Other types”.
In the “Action Planning” tab, Rover’s “Other action” set is “Nothing” to allow ESPrtk to spend a lot of resources (time / RAM) for NMEA storage.

How do I know NMEA data has been saved to the SD card ? :

ESPrtk will report an error when communicating with a corrupted SD card:

  • The configuration file for NMEA Logger is corrupt or does not exist.
  •  SD card not yet add.
  •  Can’t write to SD card.
  •  Cannot use SPI port for SD card when using Ethernet.

While writing to SD card, if the connection is suddenly interrupted, ESPrtk will not be able to detect the error and will not return an error until it restarts.
So, to make sure the data is fully written to the SD card, make sure the connection is stable and SD Card is always available with enough memory for your needs.

What file formats should I choose “.log”, “.txt” , or other?

Imported NMEA files can have any file extension, but .nmea, .nme, .gps, .txt, and .log are the most common.  If you want a file to easily view internal data, select .log or .txt.

ESPrtk also supports some formats like .ubx, .stk, .log , .txt for Ublox Center and GNNSViewer. And some binary files like .dat, .data and .bin

I already have an NMEA file, what should I do with it?

You can open it with Notepad and see the raw messages it has saved. If you want to display those messages with a more intuitive look, you will need a NMEA log file viewer.

If it is a .ubx extension file, you can use Ublox Center software and open it. The software will read NMEA data and display the same information as how it receives data via the UART port. The only difference is that it is reading data from the file and you can change the read speed and playback.

If you want to display moving data, convert the file to .kml format and use Google Earth to view it.

There is an interesting tutorial here:


Performance management on ESPrtk when using NMEA / RTCM Logger:
For example, when using NTRIP as Rover (Client) , ESPrtk can perform 4 tasks at the same time:

  • Export RTCM data to TX port.
  • Send GGA to Server (or BLE Viewer).
  • Save NMEA data to SD card
  • Run the Event Log system recorder.

Don’t forget that the main work of ESPrtk now is to export RTCM data to TX2 port, any function running in parallel with it makes ESPrtk consume resources and processing time.
If you are interested in ESPrtk performance, turn off NMEA Logger mode by unchecking “Enable NMEA Logger”.
If required to use NMEA Logeer, the following values ​​will increase performance on ESPrtk :

  • Set the “Type write” is “Append to old file”.
  • Set “Update Cycle” as large as possible.
  • Set “Max NMEA sentence” as small as possible.
  • Uncheck  “enable NMEA sentences” as much as possible.