Close Menu
  • Articles
    • Learn Electronics
    • Product Review
    • Tech Articles
  • Electronics Circuits
    • 555 Timer Projects
    • Op-Amp Circuits
    • Power Electronics
  • Microcontrollers
    • Arduino Projects
    • STM32 Projects
    • AMB82-Mini IoT AI Camera
    • BLE Projects
  • IoT Projects
    • ESP8266 Projects
    • ESP32 Projects
    • ESP32 MicroPython
    • ESP32-CAM Projects
    • LoRa/LoRaWAN Projects
  • Raspberry Pi
    • Raspberry Pi Projects
    • Raspberry Pi Pico Projects
    • Raspberry Pi Pico W Projects
  • Electronics Calculator
Facebook X (Twitter) Instagram
  • About Us
  • Disclaimer
  • Privacy Policy
  • Contact Us
  • Advertise With Us
Facebook X (Twitter) Instagram Pinterest YouTube LinkedIn
How To Electronics
  • Articles
    • Learn Electronics
    • Product Review
    • Tech Articles
  • Electronics Circuits
    • 555 Timer Projects
    • Op-Amp Circuits
    • Power Electronics
  • Microcontrollers
    • Arduino Projects
    • STM32 Projects
    • AMB82-Mini IoT AI Camera
    • BLE Projects
  • IoT Projects
    • ESP8266 Projects
    • ESP32 Projects
    • ESP32 MicroPython
    • ESP32-CAM Projects
    • LoRa/LoRaWAN Projects
  • Raspberry Pi
    • Raspberry Pi Projects
    • Raspberry Pi Pico Projects
    • Raspberry Pi Pico W Projects
  • Electronics Calculator
How To Electronics
Home » How to interface Quectel L80 GPS Module with Arduino
Arduino Projects

How to interface Quectel L80 GPS Module with Arduino

Mamtaz AlamBy Mamtaz AlamUpdated:May 29, 20237 Mins Read
Share Facebook Twitter LinkedIn Telegram Reddit WhatsApp
Quectel L80 GPS Module Arduino
Share
Facebook Twitter LinkedIn Pinterest Email Reddit Telegram WhatsApp

Overview

In this post, we will learn about the interfacing of the Quectel L80 GPS Module with Arduino. The L80 GPS Module from Quectel is the tiny, low cost and low-power-consuming GPS Module available in the market. The L80 GPS module with an embedded patch antenna and low-noise amplifier (LNA) brings the high performance of the positioning system in industrial applications.

It can achieve the industry’s highest level of sensitivity, accuracy, and TTFF with the lowest power consumption in a small-footprint leadless package. It acquires and tracks satellites in the shortest time even at the indoor signal level. Compared to NEO-6M GPS Module and RYS8830 GPS/GNSS Receiver, this module has the best performance.

Hence in this project, we will interface Quectel L80 GPS Module with Arduino & make our own GPS Receiver. The L80 GPS Module can give the value of Latitude, Longitude, Speed, Altitude, Date, and Time once it is synchronized with the satellite. First, we will hook up the L80 GPS with Arduino Nano Board and display the GPS parameters on Serial Monitor. Then we will use a 16×2 LCD Display to display the value of Latitude, Longitude, Speed, Altitude, Date, and Time.


Bill of Materials

You need to purchase the following components for building this project.

S.N.ComponentsQuantityPurchase Links
1Arduino Nano Board1Amazon | AliExpress
2Quectel L80 GPS Module1Amazon | AliExpress
316x2 LCD Display1Amazon | AliExpress
4Potentiometer1Amazon | AliExpress
5Jumper Wires20Amazon | AliExpress
6Breadboard1Amazon | AliExpress




Quectel L80 GPS Module

Quectel L80 GPS Module

The L80 is an ideal solution for wearable fitness devices due to its ultra-compact design and low power demands. Its Low Power feature enables GPS connectivity at around half the power consumption of normal mode while in static receiving mode. Combined with its precision and high sensitivity, this makes the L80 suitable also for a broad range of IoT applications such as portable devices, automotive, personal tracking, security, and industrial PDAs.

Quectel L80 GPS Module Size

The L80 has a patch antenna on top measuring 16.0mm × 16.0mm × 6.45mm, with 66 acquisition channels and 22 tracking channels. It acquires and tracks satellites in the shortest time even at the indoor signal level. The module operates at 2.8V~4.3V with a typical power consumption of 20mA and in Standby mode power consumption is around 1.0mA.


Key Features

1. Power Consumption: Acquisition 25mA, Tracking 20mA, Standby 1.0mA, Backup: 7uA
2. Receiver Type: GPS L1 1575.42MHz C/A Code, 66 search channels, 22 simultaneous tracking channels
3. Sensitivity: Acquisition -148dBm, Re-acquisition -160dBm, Tracking -165dBm
4. Power Supply: 2.8V~4.3V
5. Update Rate: Up to 10Hz, 1Hz by default
6. Accuracy of 1PPS Signal: Typical accuracy: +/-10ns, Time pulse width 100ms
7. Acceleration Accuracy: Without aid 0.1m/s2
8. Dynamic Performance: Maximum altitude 18000m, Maximum velocity 515m/s, Acceleration 4G
9. UART Port: TXD1 & RXD1 Supports baud rate from 4800bps to 115200bps, 9600bps by default
10. Velocity Accuracy: 0.1m/s
11. Working Temperature Range: -40~85 C
12. Embedded patch antenna
13. Built-in LNA for better sensitivity


L80 Pinout

L80 Pinout

The Quectel L80 GPS Module has 12 pins as shown in the image above. The function of each pin is defined below.

S.N.Pin NameFunction
1RXD1UART Receiver
2TXD1UART Transmitter
3GNDGround Logic
4VCC2.8V~4.3V Supply, Typically 3.3V
5V_BCKPBackup power/Supply power for RTC
61PPSOne pulse per second, Synchronized at the rising edge, the pulse width is 100ms
7TIMEROpen-drain output signal used to control GPS module main power on/off
8AADET_NActive antenna detection
9NCNot Connected
10RESETSystem reset
11EX_ANTExternal active antenna RF input
12GNDGround Logic

To learn more about this module you can refer to L80 Datasheet


Soldering Header Pins to L80 Module

The L80 is a tiny SMD-type Module that doesn’t have any male/female header pins for testing. So you can use the male header pin with 2.54 spacing and solder them on the L80 PCB from the bottom.

Once, you solder all the 12 Pins on the L80 Module, the Module becomes breadboard friendly. You can now insert the module on the breadboard easily.



Interfacing Quectel L80 GPS Module with Arduino

Now let us interface L80 GPS Module with Arduino. You can connect the L80 GPS Module with Arduino Nano as per the circuit diagram below.

L80 GPS Arduino Connection

The connection is fairly simple. Connect the VCC/GND for the power supply & do not supply more than 3.3V. Similarly, connect the VCC backup (V_BCKP) with VCC or to an external battery. It won’t work if this pin is not powered.

Connect the RX/TX of L80 to the D2/D3 of the Arduino. This is for Serial Communication using Software Serial.

Arduino L80 Connection


Source Code/Program & Testing

The best part about the L80 GPS Module is, it supports Tiny GPS++ Library. Download the library and add it to the library folder.

Copy the following L80 Arduino Code and upload it to the Arduino Board.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#include <TinyGPS++.h>
#include <SoftwareSerial.h>
#define rxGPS 3
#define txGPS 2
 
long lat, lon;
SoftwareSerial gpsSerial(rxGPS, txGPS);
TinyGPSPlus gps;
 
void setup()
{
  Serial.begin(9600); // connect serial
  gpsSerial.begin(9600); // connect gps sensor
}
 
void loop()
{
  while (gpsSerial.available())     // check for gps data
  {
    if (gps.encode(gpsSerial.read()))   // encode gps data
    {
      Serial.print("SATS: ");
      Serial.println(gps.satellites.value());
      Serial.print("LAT: ");
      Serial.println(gps.location.lat(), 6);
      Serial.print("LONG: ");
      Serial.println(gps.location.lng(), 6);
      Serial.print("ALT: ");
      Serial.println(gps.altitude.meters());
      Serial.print("SPEED: ");
      Serial.println(gps.speed.mps());
 
      Serial.print("Date: ");
      Serial.print(gps.date.day()); Serial.print("/");
      Serial.print(gps.date.month()); Serial.print("/");
      Serial.println(gps.date.year());
 
      Serial.print("Hour: ");
      Serial.print(gps.time.hour()); Serial.print(":");
      Serial.print(gps.time.minute()); Serial.print(":");
      Serial.println(gps.time.second());
      Serial.println("---------------------------");
      delay(4000);
    }
  }
}

After uploading the code, open the Serial Monitor. Initially, it displays the wrong data as GPS Module is not synchronized with the Satellite.

For the first time, it might take 2-3 minutes to retrieve data. Next time onwards it retrieves location very quickly. In the Serial Monitor, you will be able to see the Latitude, Longitude, Altitude, Speed, Time, and Date.


L80 Arduino GPS Receiver with LCD Display

Instead of displaying the data on Serial Monitor, let us integrate 16X2 LCD Display to the above circuit as shown in the image below. So, let us interface Quectel L80 GPS Module with Arduino.

Arduino GPS LCD Display

The LCD works at 5V. To connect the rs, en, d4, d5, d6, d7 pins of LCD, you can choose any Arduino Pin and define them in the code. For example, we use A0, A1, A2, A3, A4, A5 Pin.

Quectel L80 GPS Arduino



Source Code/Program & Testing

Here is a code for Interfacing Quectel L80 GPS Module with Arduino and 16×2 LCD Display. Copy the code and upload it to the Arduino Board.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
#include <TinyGPS++.h>
#include <SoftwareSerial.h>
#include <LiquidCrystal.h>      // include the library code
const int rs = A0, en = A1, d4 = A2, d5 = A3, d6 = A4, d7 = A5;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
 
#define txGPS 2
#define rxGPS 3
 
long lat, lon;
//int counter = 0;
SoftwareSerial gpsSerial(rxGPS, txGPS);
TinyGPSPlus gps;
 
void setup()
{
  Serial.begin(9600); // connect serial
  gpsSerial.begin(9600); // connect gps sensor
  lcd.begin(16, 2);
}
 
void loop()
{
  while (gpsSerial.available())     // check for gps data
  {
    if (gps.encode(gpsSerial.read()))   // encode gps data
    {
      Serial.print("SATS: ");
      Serial.println(gps.satellites.value());
      Serial.print("LAT: ");
      Serial.println(gps.location.lat(), 6);
      Serial.print("LONG: ");
      Serial.println(gps.location.lng(), 6);
      Serial.print("ALT: ");
      Serial.println(gps.altitude.meters());
      Serial.print("SPEED: ");
      Serial.println(gps.speed.mps());
 
      Serial.print("Date: ");
      Serial.print(gps.date.day()); Serial.print("/");
      Serial.print(gps.date.month()); Serial.print("/");
      Serial.println(gps.date.year());
 
      Serial.print("Hour: ");
      Serial.print(gps.time.hour()); Serial.print(":");
      Serial.print(gps.time.minute()); Serial.print(":");
      Serial.println(gps.time.second());
      Serial.println("---------------------------");
 
      lcd.setCursor(0, 0);
      lcd.print("LAT: ");
      lcd.print(gps.location.lat(), 6);
 
      lcd.setCursor(0, 1);
      lcd.print("LON: ");
      lcd.print(gps.location.lng(), 6);
 
      delay(2000);
      lcd.clear();
 
      lcd.setCursor(0, 0);
      lcd.print("ALT: ");
      lcd.print(gps.altitude.meters());
      lcd.print(" m");
 
      lcd.setCursor(0, 1);
      lcd.print("SPD: ");
      lcd.print(gps.speed.mps());
      lcd.print(" mps");
 
      delay(2000);
      lcd.clear();
 
      lcd.setCursor(0, 0);
      lcd.print("Date: ");
      lcd.print(gps.date.day());
      lcd.print("/");
      lcd.print(gps.date.month());
      lcd.print("/");
      lcd.print(gps.date.year());
 
      lcd.setCursor(0, 1);
      lcd.print("Time: ");
      lcd.print(gps.time.hour());
      lcd.print(":");
      lcd.print(gps.time.minute());
      lcd.print(":");
      lcd.print(gps.time.second());
 
      delay(2000);
      lcd.clear();
    }
  }
}

After uploading the code, wait for some time. When the GPS Module synchronizes with the satellite it will display the Latitude and Longitude Value on LCD Display.

Similarly, it will also display the local time and date on the LCD Screen.

And finally, it will also display the Altitude above sea level and the velocity with which the object is moving.


Battery Powered Portable GPS Receiver

Since the L80 GPS Module operates at 3.3V, we can easily make a Battery Powered GPS Receiver. The circuit can be powered via 3.7V Lithium-Ion Battery.

The circuit below is a simple circuit made using Atmega328 Microcontroller and only necessary components. You can assemble the components on a breadboard or use a PCB to assemble the component.

Portable GPS Receiver Circuit

The circuit has all the necessary components to run the Atmega328 microcontroller with Arduino Code. You can use a reset button to reset the entire circuit. A switch is used for turning ON/OFF the device. Similarly, there is a programming pin that is used to program the Atmega328 Microcontroller using the FTDI Module.

You can directly connect a 3.7V Lithium-Ion or a Lithium Polymer Battery to power the device. To read the output data you connect the device to your phone using the USB-to-TTL Module. Then open the Serial Monitor on Android/iPhone and there you can read the GPS Data.




Project PCB Gerber File & PCB Ordering Online

If you don’t want to assemble the circuit on a breadboard and you want PCB for the project, then here is the PCB for you. I used EasyEDA to design the PCB. The PCB Board for Interfacing L80 GPS Module Arduino Microcontroller looks something like below.

The Gerber File for the PCB is given below. You can simply download the Gerber File and order the PCB from ALLPCB at 1$ only.

Download Gerber File: Portable GPS Receiver

You can use this Gerber file to order high quality PCB for this project. To do that visit the ALLPCB official website by clicking here: https://www.allpcb.com/.

You can now upload the Gerber File by choosing the Quote Now option. From these options, you can choose the Material Type, Dimensions, Quantity, Thickness, Solder Mask Color and other required parameters.

After filling all details, select your country and shipping method. Finally you can place the order.

You can assemble the components on the PCB Board.


Video Tutorial & Guide

Share. Facebook Twitter Pinterest LinkedIn Tumblr Email Reddit Telegram WhatsApp
Previous ArticleMQTT Based Wind Weather Station using GSM & Arduino
Next Article GSM & Arduino Communication with Firebase or Thingspeak

Related Posts

DC Energy Meter using Arduino

Build a DC Energy Meter using Arduino – 32V/5A

Updated:August 26, 20252K
Interfacing ADXL375 Accelerometer with Arduino

Interfacing ADXL375 Accelerometer with Arduino (±200g)

Updated:June 28, 2025
PZEM-004T Arduino Energy Meter

DIY AC Energy Meter using PZEM-004T & Arduino

Updated:March 6, 20258K
Interfacing BMI160 Accelerometer & Gyroscope with Arduino

Interfacing BMI160 Accelerometer & Gyroscope with Arduino

Updated:February 2, 20259K
Password Based Door Lock Security System Using Arduino & Keypad

Password Based Door Lock Security System Using Arduino & Keypad

Updated:February 2, 20252436K
Earthquake Detector Alarm with with Accelerometer & Arduino

Earthquake Detector Alarm with Accelerometer & Arduino

Updated:February 2, 2025661K
Add A Comment

CommentsCancel reply

Latest Posts
IoT Based PM & Air Quality Monitoring System using ESP32

IoT Based PM & Air Quality Monitoring System using ESP32

May 31, 2026
DIY ESP32 MLX90640 IR Thermal Camera with Live Web Display

DIY ESP32 MLX90640 IR Thermal Camera with Live Web Display

May 10, 2026
IoT Activity Tracker with ESP32 & Accelerometer Gyroscope

IoT Activity Tracker with ESP32 & Accelerometer/Gyroscope

May 2, 2026
A Guide to Sourcing Obsolete ICs for Vintage Projects

Beyond AliExpress: A Guide to Sourcing Obsolete ICs for Vintage Projects

April 21, 2026

ESP32 IoT Vehicle Motion Analyzer with MPU6050 & LIS3MDL

April 27, 2026
Building a Smart Sensor Node with a BLE Microcontroller

Building a Smart Sensor Node with a BLE Microcontroller

February 26, 2026
High-Accuracy Pitch, Roll, Yaw with ESP32 & BNO08x IMU

High-Accuracy Pitch, Roll, Yaw with ESP32 & BNO08x IMU

April 27, 2026
DIY Colorimeter using AS7265x Spectroscopy Sensor & ESP32

DIY Colorimeter using AS7265x Spectroscopy Sensor & ESP32

February 1, 2026
Top Posts & Pages
  • Buck Converter: Basics, Working, Design & Application
    Buck Converter: Basics, Working, Design & Application
  • 12V DC to 220V AC Inverter Circuit & PCB
    12V DC to 220V AC Inverter Circuit & PCB
  • How to use INA226 DC Current Sensor with Arduino
    How to use INA226 DC Current Sensor with Arduino
  • ECG Graph Monitoring with AD8232 ECG Sensor & Arduino
    ECG Graph Monitoring with AD8232 ECG Sensor & Arduino
  • How to use Modbus RTU with ESP32 to read Sensor Data
    How to use Modbus RTU with ESP32 to read Sensor Data
  • IoT Based ECG Monitoring with AD8232 ECG Sensor & ESP32
    IoT Based ECG Monitoring with AD8232 ECG Sensor & ESP32
  • IoT Based Electricity Energy Meter using ESP32 & Blynk
    IoT Based Electricity Energy Meter using ESP32 & Blynk
  • Designing of MPPT Solar Charge Controller using Arduino
    Designing of MPPT Solar Charge Controller using Arduino
Categories
  • Arduino Projects (197)
  • Articles (60)
    • Learn Electronics (19)
    • Product Review (15)
    • Tech Articles (28)
  • Electronics Circuits (46)
    • 555 Timer Projects (21)
    • Op-Amp Circuits (7)
    • Power Electronics (13)
  • IoT Projects (204)
    • ESP32 MicroPython (7)
    • ESP32 Projects (81)
    • ESP32-CAM Projects (15)
    • ESP8266 Projects (76)
    • LoRa/LoRaWAN Projects (22)
  • Microcontrollers (38)
    • AMB82-Mini IoT AI Camera (4)
    • BLE Projects (18)
    • STM32 Projects (19)
  • Raspberry Pi (93)
    • Raspberry Pi Pico Projects (57)
    • Raspberry Pi Pico W Projects (12)
    • Raspberry Pi Projects (24)
Follow Us
  • Facebook
  • Twitter
  • Pinterest
  • Instagram
  • YouTube
About Us

“‘How to Electronics’ is a vibrant community for electronics enthusiasts and professionals. We deliver latest insights in areas such as Embedded Systems, Power Electronics, AI, IoT, and Robotics. Our goal is to stimulate innovation and provide practical solutions for students, organizations, and industries. Join us to transform learning into a joyful journey of discovery and innovation.

Copyright © How To Electronics. All rights reserved.
  • About Us
  • Disclaimer
  • Privacy Policy
  • Contact Us
  • Advertise With Us

Type above and press Enter to search. Press Esc to cancel.

Ad Blocker Enabled!
Ad Blocker Enabled!
Looks like you're using an ad blocker. Please allow ads on our site. We rely on advertising to help fund our site.