Update Note: As mentioned the SD card should be 2GB or less and formatted as FAT16. Due to addressing restrictions the SD card should contain only one partition, created as PRIMARY PARTITION with no unallocated space before the partition. Please note that some SD cards come with partitions, created as logical partitions and need to have their partitions recreated as mentioned previously.

Few months ago I was asked if the ADC DATA LOGGER can be used as a GPS data logger – it can’t. Being intrigued by the question I decided it won’t be a bad idea to design such relatively simple GPS data logger that can be placed to track a rocket, a RC plane, car or something else. So I made the following schematic design:


The design has nothing special – SD card, GPS module, LDO power supply and PIC18F25J11 micro controller – all parts are easily obtainable from on-line sources like Ebay or Aliexpress.

Using the GPS data logger is also quite simple:

– Connect to at least 3.5v power supply, the maximum is 21 volts.
– Place the SD card with SETTINGS.TXT file on it in the socket
– Switch the GPS logger on
– Wait until the SD card is initialized and all data files are created – thus wait until the SD card LED stops blinking
– If the SD LED remains solid on, then there’s something wrong with settings file or the SD card – for the exact reason please check the LOG_x.TXT file on the card (the file structure is explained further down)
– Wait until the GPS LED start blinking, indicating that the GPS signal is found and correctly decoded
– Press and hold for 1 second the SMD button to start the GPS data logging
– The NMEA GPS data stream will be decoded and recorded in the corresponding text data files (the file structure is explained further down)
– Stop the GPS data logging press and hold the button again and wait until all files are closed, hence until the SD LED remains solid off

* To safely remove the SD card you need first to stop the data logging and make sure that the SD LED is off when you remove the card
** The power consumption is the sum of the SD card power consumption, the GPS module and the data logger power consumption. If the sampling time is 10sec or less, then the data logger, the GPS module and the SD card power supply will be always on. The SD cards can draw between 2mA and 200mA depending on the manufacturer and the model. The data logger’s own consumption is 8mA and the GPS uses about 30mA when fully powered. If the sampling time is more than 10sec, then depending on the sampling rate, different power schemes will be used and some parts will be switched off to conserve energy between each data point record.


Write the sampling time in the first line. The sampling time is expressed in seconds. The minimum sampling time is 2s and the maximum is 99999999s. Make sure that there is a semicolon after the sampling time. After the sampling time, write the number of points to be taken. 0 means no point limit. The minimum point number is 1 and the maximum is 99999999. Make sure that there is a semicolon at the end.

SETTINGS.TXT – this file contains the sampling rate and the number of data points to be recorded. This file has to be present on the SD card for the proper function of the GPS Logger

In total 7 files are created for each new GPS data logging. The name of each file indicates what information it will contain and “x” for the serial number of the record (not an absolute serial number but relative to the current number of files on the card)

LOG_x.TXT – contains the data logger system and status information
GGA_x.TXT – contains the $GPGGA message (Fix information)
GSA_x.TXT – contains the $GPGSA message (Overall Satellite data)
GSV_x.TXT – contains the $GPGSV message (Detailed Satellite data)
RMC_x.TXT –contains the $GPRMC message (Recommended minimum data for GPS)
VTG_x.TXT – contains the $GPVTG message (Vector track an Speed over the Ground)
GPS_x.KML – this file has all data points converted from DDDMM.MMM to DDD.DDDDDDDD and it is in the format used by Google Earth and Google Maps to display a path in 3D over the ground. To use this file, simply load it in Google Earth.


The overall dimensions of the printed circuit board and devise are very modest – 37x36mm and this is about the size of a SD card holder.



The PCB manufacturing files and the MCU firmware can be downloaded from here:


  1. Pingback: MINI PIC GPS DATA LOGGER WITH MICRO-SD CARD - Electronics-Lab

Leave a Reply

Your email address will not be published. Required fields are marked *