Simple GPS Logger




Introduction: Simple GPS Logger

About: I build projects using arduino nano / esp32 / arduino micro and also arduino mkr1010

Let's make a gps logger with an arduino mini pro!

I made this project so I could easily record my track when i'm trekking.
I wanted something simple and cheap.

You just have to turn it on and it will record your track as soon as the gps founded the satellites.

In this tutorial, we will see

  • How to wired everything
  • How to upload the code
  • How to display and convert tracks

Feel free to ask any questions, all the code/video/documentation are MIT/CC Attribution licence
As always I tried to put everything in a github repository so you can modify/reuse/correct/translate anything.

Before I start a small trick on Windows to download my projects without even opening a web browser

  • Press : Windows Key
  • Type:

Step 1: Components

Here is the components I used for this gps.

  • Gps module ublox Aircraft model mwc: 8€
  • Micro sd card 2go : 4€
  • Batteries holder 4AAA on/off : 1€
  • Arduino mini pro 3.3V : 1,50€
  • Passive buzzer 3v: 1€
  • Total : 15.50€

Before you read the other steps, watch this short video, where I show all the steps to make this gps
As for all my videos, editing was done on Blender

Step 2: Wiring

Here is how to wired everything on an Arduino

  • You can use a sdcard module instead of an Micro SD card adapter.
  • Do not plug the GPS serial on the arduino serial or you won't be able to use serial to debug/upload code.
  • SD card works on 3V, use an arduino mini pro 3V

SD card Adapter

  • 1 --> X
  • 2 --> 12
  • 3 --> GND
  • 4 --> 13
  • 5 --> VCC
  • 6 --> GND
  • 7 --> 11
  • 8 --> 10 (Chip select)


  • RX --> 2
  • TX --> 3


  • + ---> 9
  • - ----> GND

Step 3: Upload Code

You will need an 3V FTDI cable to upload code on your Arduino

  • Copy the code / librairies into your arduino sketchbook (
  • Board: Arduino Mini Pro 3V
  • Processor : Atmega328 (3.3V, 8mhz)

At the beginning of the code

You can change the timezone:

const int timezone = 0;

You can also change how many times the gps saved the position

const int gps_interval = 15 * 1000;

Step 4: Read the GPS Track

The track is saved as a csv file, if you want to convert it or display it on a map, you will either need to use the website or the free software viking.

  • Go to
  • Click on Create a track
  • Import the csv file
  • Or click on convert to get a gpx track file


  • Add a map in layer
  • Use Open Street Map (Mapnick) or Bing Aerial
Design Now: 3D Design Contest 2016

Participated in the
Design Now: 3D Design Contest 2016

Circuits Contest 2016

Participated in the
Circuits Contest 2016

Be the First to Share


    • Puzzles Speed Challenge

      Puzzles Speed Challenge
    • "Can't Touch This" Family Contest

      "Can't Touch This" Family Contest
    • CNC Contest 2020

      CNC Contest 2020

    4 Discussions


    Question 1 year ago

    firstly, thank you for the code! than ... We actually have a problem with the speed value. It doesn't seem to update, we have the first value that is exact but it keeps the same value all along ... We checked with ".isUpdated()" and it returns a 0 for every values (even for longitude,latitude,..). Do you have any idea ?

    Thanks in advance!


    3 years ago

    Nice project.
    Moving forward, consider placing your battery pack beneath your GPS module. The antenna works best with an unobstructed view of the sky