Handheld GPS Logger

a custom handheld GPS logger for mapping biodiversity in urban and suburban areas

Similar projects worth following
What if we could bring more unexpected moments of natural beauty to American urban and suburban areas? Is biodiversity a catalyst for these beautiful moments and can how can we measure it's presence?

The Handheld GPS Logger is a low-cost, hobbyist-accessible device for mapping and understanding biodiversity in urban and suburban areas.

This device was designed to help answer questions such as:
- What percentage of trees and bushes at the local public park are native to a different continent?
- What low traffic open spaces of mown grass at your local park could be converted to native grass to increase bird and insect habitat?
- Is there more biodiversity in a neglected patch of soil than an entire well maintained American suburban neighborhood?

The Handheld GPS Logger has three GPS position logging capabilities:

1. manual button click position logging for a single position
2. manual button click position logging for mapping borders and areas
3. automated position logging with user controlled logging frequency

The user is given the option to assign a custom name code to each set of position data collected. 

Comma separated name code, position, and time data is written to a micro SD card.

The data can be formatted as desired and uploaded to an free online applications to generate a map.

GPS Logger v1.0 Arduino Sketch

x-zip-compressed - 8.77 kB - 04/10/2021 at 03:07


GPS Logger v1.0 KiCad Project

x-zip-compressed - 297.21 kB - 04/10/2021 at 03:04



GPS Logger v1.0 Schematic

Adobe Portable Document Format - 36.02 kB - 04/10/2021 at 02:57



GPS Logger v1.0 Bill of Materials

sheet - 13.99 kB - 04/10/2021 at 01:56


  • 1 × See "GPS_Logger_BOM" in the files section of this project page for a bill of materials.

  • $53 USD prototype cost

    John Opsahl04/10/2021 at 02:52 0 comments

    The total material cost of a prototype Handheld GPS Logger is around $53 USD. The custom PCB being around 28% of total cost. The GPS module at about 20% of total cost.

  • First Test

    John Opsahl04/08/2021 at 03:39 0 comments

    Yesterday was the first test of the handheld GPS logger. It took about 30 seconds to get a GPS fix once the device was powered. I practiced with five logs around the perimeter of my 30x10m back yard. The plot of those five locations is shown in the image above. The level of positional accuracy achieved should be sufficient for the biodiversity survey purposes of this device.  

  • PCBs Arrived, First Prototype Complete

    John Opsahl04/01/2021 at 00:16 0 comments

    PCBs arrived this afternoon. Took about 15 minutes to solder all the header sockets. 

    Pulled all the components off the breadboard prototype, plugged them into the PCB assembly, and it worked!

    Looking forward to getting outside and putting it to use.

  • Prototype Code Complete

    John Opsahl03/31/2021 at 04:15 0 comments

    It has taken about a week to finalize the code for the prototype. About a quarter of this time was experimenting with the display to find the interface that I liked the most. 

    The "GPS Logger v1.0" world map screen shown above is displayed for two seconds after the device is turned on. The "Select Mode" screen is displayed next. 

    Mode descriptions are as follows:

    1. Point. Log a single GPS position.
    2. Line. Log a sequence of GPS positions.
    3. Area. Log a sequence of GPS positions that define the borders of a closed area.
    4. Track. Automatically log GPS position per user defined frequency.

    The user presses the number on the IR remote that corresponds to the mode in order to advance to the next screen. In this case, the user presses the "1" button to advance to the "Point" mode screen.

    While the cursor is on "Code:", the user can input and assign custom numeric code (up to five digits) to the log point. When ready to log the position, the user will need to navigate the cursor down to "Log" and press "ok" to write the current GPS position to the SD card and display the GPS information on the screen. 

    Once the user has commanded a "log" action, the log sequence number, latitude, longitude, GPS UTC date, and GPS UTC time are displayed. The log sequence number for "Point" mode will always be "0". The log sequence number increments each time a log occurs in the "Line", "Area", and "Track" modes. I blurred the latitude and longitude because I don't want to reveal exactly where I live, but usually six digits of precision are displayed here.

    The only issue I have not been able to solve so far is how to reduce the amount of time spent in the the software serial loop to collect serial data from the GPS module. It seems to spend so much time there that it often takes two button presses on the IR remote before the button press is registered. This annoyance goes away when the GPS module does not have a fix.

    Great challenge so far. I am looking forward to when the boards arrive this week.

  • Parts On Order

    John Opsahl03/21/2021 at 03:52 0 comments

    Boards on are on order from OSH Park.

    Header sockets are on order from Digi-Key.

    I already have proof-of-concept functionality using a breadboard prototype. I will be defining the user interface and developing the code over the next two weeks.

View all 5 project logs

Enjoy this project?



Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates