Skip to product information
1 of 2

Blue PCB Electronics

2A19 NEO-8M GPS Module

2A19 NEO-8M GPS Module

Regular price Dhs. 150.00
Regular price Sale price Dhs. 150.00
Sale Sold out
View full details


GY u-blox NEO-M8N GPS-GNSS Module is a standalone GPS module that is developed based on NEO-M8 u-blox M8 concurrent GNSS chip. This GPS chip is based on a superior performance 72-channel u-blox M8 engine (GPS, GLONASS, BeiDou, QZSS, SBAS, and Galileo-ready1) that can simultaneously receipt and track multiple GNSS systems of the GPS, GLONASS, Galileo-ready, BeiDou, and QZSS. This chip is upgraded of and compatible with NEO-7, NEO-6, and NEO-5 families, so the migration from these previous family to the NEO-M8N is a convenient and simple decision. The NEO-M8 family has a built-in flash memory to upgrade with simple firmware for achieving updated GNNS systems. This chip offers high sensitivity (–167 dBm navigation sensitivity to achieve position accuracy of 2.0 m CEP), minimal acquisition times, and high-performance instead of low power and low-cost consumption. This GPS module has a data-logger for recording the information of position, velocity, time, and odometer. So the NEO-M8 is a perfect solution for industrial and automation projects such as APM MWC flight control.



  • With a ceramic antenna, very strong signal
  • EEPROM power save function
  • With backup battery
  • With LED indicator lamp
  • Default baud rate: 9600
  • Input Voltage: 3V ~ 5V
  • Install hole: 3mm
  • Receiver type:
  1.       72-channel u-blox M8 engine
  2.                 GPS L1C/A
  3.                 SBAS L1C/A
  4.                 QZSS L1C/A
  5.                 GLONASS L1OF
  6.                 BeiDou B1 
  7.                 Galileo E1B/C2
  • Position accuracy: 2.5m
  • Cold start Time: 27s
  • Hot start Time: 1s
  • Tracking Sensitivity: –164 dBm
  • Cold start Sensitivity: –147 dBm
  • Hot start Sensitivity: –156 dBm
  • GPS update rate: 5Hz
  • Altitude: 50,000m
  • Speed: 500m/s
  • Acceleration: 4g
  • Antenna size: 25mm x 25mm
  • Module size: 25mm x 35mm

GY-NEO-8M GPS Module Pinout

This sensor has 4 pins:

  • VIN: Module power supply – 5 V
  • GND: Ground
  • RX: Receive data via serial protocol
  • TX: Sending data via serial protocol

You can see pinout of this module in the image below.

Required Materials

Arduino UNO R3 × 1
NEO-8M GPS Module × 1
Male to Female jumper wire × 1


The following circuit shows how you should connect Arduino to R305 module. Connect wires accordingly.

NEO-8M Module Arduino circuit

Step 2: Code

Install the following library on your Arduino.

Upload the following code to your Arduino.

#include <TinyGPS++.h>
#include <SoftwareSerial.h>

   This sample demonstrates TinyGPS++'s capacity for extracting custom
   fields from any NMEA sentence.  TinyGPS++ has built-in facilities for
   extracting latitude, longitude, altitude, etc., from the $GPGLL and
   $GPRMC sentences.  But with the TinyGPSCustom type, you can extract
   other NMEA fields, even from non-standard NMEA sentences.

   It requires the use of SoftwareSerial, and assumes that you have a
   9600-baud serial GPS device hooked up on pins 4(RX) and 3(TX).
static const int RXPin = 4, TXPin = 3;
static const uint32_t GPSBaud = 9600;

// The TinyGPS++ object
TinyGPSPlus gps;

// The serial connection to the GPS device
SoftwareSerial ss(RXPin, TXPin);

   By declaring TinyGPSCustom objects like this, we announce that we
   are interested in the 15th, 16th, and 17th fields in the $GPGSA
   sentence, respectively the PDOP (F("positional dilution of precision")),
   HDOP (F("horizontal...")), and VDOP (F("vertical...")).

   (Counting starts with the field immediately following the sentence name,
   i.e. $GPGSA.  For more information on NMEA sentences, consult your
   GPS module's documentation and/or

   If your GPS module doesn't support the $GPGSA sentence, then you
   won't get any output from this program.

TinyGPSCustom pdop(gps, "GNGLL", 1); // $GPGSA sentence, 15th element
TinyGPSCustom hdop(gps, "GNGLL", 3); // $GPGSA sentence, 16th element

void setup()

  Serial.println(F("Demonstrating how to extract any NMEA field using TinyGPSCustom"));
  Serial.print(F("Testing TinyGPS++ library v. ")); Serial.println(TinyGPSPlus::libraryVersion());
  Serial.println(F("by Mikal Hart"));

void loop()
  Serial.print(F(" LAT=")); Serial.print(atof(pdop.value())/100,7);
  Serial.print(F("\tLON=")); Serial.println(atof(hdop.value())/100,7);

  while (ss.available() > 0)

  Serial.print(F("  Date/Time: "));
  if (

  Serial.print(F(" "));
  if (gps.time.isValid())
    if (gps.time.hour() < 10) Serial.print(F("0"));
    if (gps.time.minute() < 10) Serial.print(F("0"));
    if (gps.time.second() < 10) Serial.print(F("0"));
    if (gps.time.centisecond() < 10) Serial.print(F("0"));


After uploading the code, you can see the output in the serial monitor.