GPS Tracker

Published Jun 14, 2026
 16 hours to build
 Intermediate

GPS Tracker using Arduino Nano — a compact, real-time location tracking system that combines a BN-220 GPS module with a SIM800L GSM module to pinpoint and share location via SMS. Simply send "GETLOC" to the device, and it instantly replies with a Google Maps link showing the exact position — no internet required. Ideal for vehicle tracking, personal safety, and asset monitoring at minimal cost.

display image

Components Used

Arduino Nano
Arduino Nano
1
BN-220 GPS Module
A GPS receiver module that connects to satellites to determine the device's geographical coordinates (latitude and longitude). It outputs location data in NMEA sentence format over a serial (UART) connection, which the Arduino reads and parses using the TinyGPS++ library.
1
SIM800L GSM Module
A GSM/GPRS module that enables the device to send and receive SMS messages over a cellular network. It communicates with the Arduino via AT commands over serial. In this project, it's used to receive command SMS (like "GETLOC") and send back the location link.
1
18650 Li-ion Battery (3.7V)
A rechargeable lithium-ion cell that powers the SIM800L module directly. The SIM800L requires a stable 3.4V–4.2V supply with high current capability (up to 2A during transmission bursts), which this battery provides reliably.
1
Description

GPS Tracker using Arduino Nano

In today's world, vehicle theft, missing assets, and personal safety are growing concerns. Traditional tracking systems rely on expensive hardware or dedicated apps. Our GPS Tracker provides a simple, low-cost, SMS-based real-time location tracking system that works anywhere there is a mobile network — no internet, no app, no subscription required.

What Makes This Project Different?

Instead of relying on internet connectivity or expensive GPS subscriptions, this system uses a BN-220 GPS module to capture live coordinates and a SIM800L GSM module to transmit location data directly to your phone via SMS. A simple text message is all it takes to know the exact location of your vehicle, asset, or person — instantly as a Google Maps link.

Why It Matters?

  • Vehicle Tracking — Know where your bike or car is at all times
  • Personal Safety — Track children, elderly, or hikers in real time
  • Asset Monitoring — Attach to valuables and locate them on demand
  • No Internet Required — Works purely over GSM mobile network
  • Minimal Cost — Built with affordable, easily available components

Components Used

ComponentQuantity
Arduino Nano (ATmega328P)1
Beitian BN-220 GPS Module1
SIM800L GSM Module1
EASTAR ICR18650 3.7V 2200mAh Li-ion Battery1
General Purpose PCB (Zero PCB / Perfboard)1
Connecting wire-

How It Works — System Overview

The system follows a simple but effective flow:

Your Phone
        ↓ SMS ("GETLOC")
SIM800L GSM Module
        ↓ Serial UART
Arduino Nano (Brain)
        ↓ Requests coordinates
BN-220 GPS Module (Satellites)
        ↓ Latitude + Longitude
Arduino Nano formats Google Maps link
        ↓ Sends SMS back
Your Phone receives location link 

Step 1: Gather the Components

Before starting, collect all the hardware components. The three main modules are the Arduino Nano, BN-220 GPS module, and SIM800L GSM module. You will also need an 18650 Li-ion battery to power the SIM800L and jumper wires for connections.

Step 2: Understand the Pin Connections

Before wiring, understand how each module connects to the Arduino Nano. Since the Nano has only one hardware UART (used for USB debugging), we use SoftwareSerial to create two virtual serial ports — one for GPS and one for GSM.

ModuleArduino Nano PinPurpose
BN-220 TXD7GPS data IN
BN-220 RXD8GPS data OUT
SIM800L TXD2GSM data IN
SIM800L RXD3GSM data OUT
BN-220 VCC3.3VGPS power
SIM800L VCCBattery (+) directlyGSM power
All GNDsCommon GNDGround

Step 3: Wire the BN-220 GPS Module

Connect the GPS module first since it is the simpler connection:

  • VCC → Arduino 3.3V
  • GND → Arduino GND
  • TX → Arduino D7
  • RX → Arduino D8

GPS module requires an open sky view to lock onto satellites. Keep it near a window or outdoors during testing.

Step 4: Wire the SIM800L GSM Module

Now connect the SIM800L. This is the most critical part due to its high current requirement:

  • TX → Arduino D2
  • RX → Arduino D3
  • GND → Common GND (shared with Arduino and battery negative)
  • VCC → Battery (+) directly — never use Arduino's 5V or 3.3V pin

SIM800L draws up to 2A peak current during SMS transmission. Powering it from Arduino's regulator will cause voltage drops and resets. Always connect it directly to the 18650 Li-ion battery.

Step 5: Common Ground — Most Important Step

Connect all GND pins together:

  • Arduino GND
  • BN-220 GND
  • SIM800L GND
  • Battery negative (−)

This is the most common cause of failure in beginners' builds. Without a common ground, modules cannot communicate properly.

Step 6: Insert SIM Card

Before powering on, insert an activated Micro SIM card into the SIM800L's card slot:

  • SIM card should be active with SMS balance
  • PIN lock must be disabled (Settings → Security → SIM lock → OFF on your phone)
  • Attach the GSM antenna to SIM800L's IPEX connector — without antenna, module won't register on network
  • Check SIM800L LED — slow blink every 3 seconds means network registered successfully

Step 7: Assemble on Perfboard

Mount all modules on a perfboard for a clean and durable build:

  • Place Arduino Nano at the top
  • Place SIM800L at the top right corner
  • Place BN-220 GPS at the bottom left
  • Place 18650 battery alongside the board
  • Solder all connections using appropriate wire colors (red = VCC, black = GND, green/yellow = data lines)

Step 8: Upload the Code

Connect Arduino Nano to your PC via USB cable and open Arduino IDE:

  1. Install TinyGPS++ library from Library Manager
  2. SoftwareSerial is built-in — no installation needed
  3. Paste the project code
  4. Replace the phone number in the code with your number:

    GSM.println("AT+CMGS=\"+91XXXXXXXXXX\"");
  5. Select Board → Arduino Nano
  6. Select correct COM Port
  7. Click Upload

Step 9: Power On and Test

After uploading, power the circuit with the battery and wait 30–60 seconds for SIM800L to register on the network:

SIM800L LED Status:

LED BlinkMeaning
Fast blink (every 1 sec)Searching for network
Slow blink (every 3 sec)Registered, ready
LED offPower issue

Step 10: Send SMS Commands and Test

From your phone, send an SMS to the SIM card number inserted in SIM800L:

CommandWhat Happens
GETLOCReplies with Google Maps link of current location
ONReplies "Bike set to ON"
OFFReplies "Bike set to OFF"

Expected Output

When you send "GETLOC" from your phone, you receive an SMS reply like:

Clicking this link opens Google Maps showing the exact location of the tracker — no app needed, no internet on the tracker side, just a simple SMS.

Applications

  1. Vehicle Tracking — Monitor bikes, cars, or school buses in real time
  2. Smart Helmet — Send rider's location during accidents via SMS
  3. Personal Safety Device — Track children, elderly people, or hikers
  4. Logistics & Fleet Management — Monitor truck locations and optimize routes
  5. Asset & Pet Tracking — Locate valuables or pets using GPS + GSM alerts

 

Codes

Downloads

GPS tracker report Download

Institute / Organization

Yeshwantrao Chavan College of Engineering (YCCE), Nagpur
Comments
Ad