Testing NEO-6M GPS receiver module

If your project requires a global positioning feature, then you should use one of many GSP modules. There are many receiver modules and expansion boards available for your choice. They vary in PCB size, functionality, antennas used, and price. In most cases, you are probably looking for a simple, small-in-one solution where GPS receiver and antenna would be on the same package.


Recently I have picked one that might fit most needs – GPS receiver NEO-6M module with ceramic antenna and TTL serial interface. It is a very compact GPS module with the most needed features:

  • – Working voltage: 3V / 5V
  • – Interface: TTL, compatible 3.3V / 5V
  • – Receiving features: 50 channels, GPS L1 ( 1575.42MHz ), C / A code, SBAS: WAAS / EGNOS / MSAS
  • – Positioning accuracy: 2.5m CEP ( SBAS: 2.0m CEP )
  • – Refresh rate: Max 5Hz
  • – Capture time: 1-27 seconds
  • – Capture tracking sensitivity: -161dBm
  • – Protocol: NMEA ( default ) / UBX binary
  • – Serial communication baud rate: 4800, 9600 (default), 19200, 38400, 57600, 115200, 230400

As you can see, it can accept 5V and 3.3V supply and signals. Those are most common in microcontrollers. They seem to be popular in Arduino and Raspberry Pi projects. GPS module comes with a built-in EEPROM where configuration information can be stored. It is also equipped with a small rechargeable battery, which ensures GPS receiver data backup for up to half an hour when the power supply drops.

The module comes with a TTL-level serial interface. It can be easily connected to the microcontroller serial port or PC using RS232 or TTL to USB (FTDI) adapter. You need only four wires (3 if you won’t do any configurations) connected as in the image below:


Since the ceramic antenna is intended to be used outdoors, put the receiver near the window if your reception is weak.

To give it a test, we will use u-box provided evaluation software u-center, which allows to connect GPS module directly to PC and test its capabilities.

U-center software to connect to GPS module

With u-center software, you can inspect lots of things. It can display the status of all satellites, including their signal strength and location in sky view. Then there is a rudimentary map to show your position on it, time, altitude, and speed if you are moving. The deviation map allows you to see how location detection deviates during the time. You can have a clue about how accurate this thing is. While I’m indoors and signals are pretty weak, my deviation reaches 10 meters. In a good signal, is the right quality deviation can be up to 2.5m. U-center can also display position on pre-calibrated maps where you can analyze your movement on the roads and so on.

GPS module’s default message format is NMEA. It is usually used in most applications.


When you decide to use a receiver with a microcontroller board, you need to write an application that will parse these messages into GPS data, time, and altitude. Other parameters, like speed, are derived from GPS and time data. In most cases, like in Arduino, you don’t have to be wary about parsing GPS messages as there are libraries for this. Interfacing the GPS module to your project is as easy as writing a couple of lines of code.

Alternatives to NEO-6M GPS receiver module

There are several alternatives to the NEO-6M GPS receiver module that offer similar functionality, including:

  1. Ublox NEO-7M: This module is similar to the NEO-6M but includes additional features such as support for GLONASS and other satellite systems. It also has lower power consumption and better accuracy, making it a good choice for applications that require precise positioning.
  2. Britain BN-220: This module is a low-cost alternative to the NEO-6M but offers comparable performance. It supports GPS and GLONASS and has a fast update rate and low power consumption. However, it may be less reliable in areas with poor signal strength.
  3. GlobalTop Gms-u1LP: This module is a high-sensitivity GPS receiver that offers improved performance in challenging environments. It has low power consumption and fast time-to-first-fix, making it a good choice for battery-powered applications.
  4. SkyTraq Venus838LPx-T: This module is a low-power GPS receiver with high sensitivity and fast acquisition times. It has a small form factor and supports GPS and GLONASS, making it a good choice for limited-space applications.

The main differences between these alternatives and the NEO-6M are in their performance, features, and cost. Some modules may offer better accuracy, faster acquisition times, or support for other satellite systems, while others may be more affordable or have lower power consumption. The best choice will depend on the specific requirements of the application.


  1. Anyway you could give me some basic lines of code to give date, time, and altitude in python? I’m still learning python and coding in general. Thanks if you can.

  2. It’s a great informative who want to make GPS receiver module. Easily update for better service.

Leave a Reply