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 channel, 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, be sure to 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.

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 quite weak, my deviation reaches 10meters. 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 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 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.


  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