Testing NEO-6M GPS receiver module

If your project require 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 simple, small all in one solution where GPS receiver and antenna would be on same package.


Recently I have picked one that might fit for most needs – GPS receiver NEO-6M module with ceramic antenna and TTL serial interface. It is very compact GPS module with 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 built in EEPROM where configuration information can be stored. Also it is equipped with small rechargeable battery which ensures GPS receiver data backup for up to half an hour when power supply drop.

Module comes with TTL level serial interface so can be easily be directly connected to microcontroller serial port or to 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 image bellow:


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

In order to give it a test, we are going to use u-blox 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 are rudimentary map to display your location on it, time, altitude and speed if you are moving. Deviation map allows you to see how location detection deviates during time. You can have clue how accurate this thing is. While I’m indoors and signals are quite weak, my deviation reach 10meters. In good signal is good 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 normally used in most applications.


When you decide to use receiver with microcontroller board, you need to write application that will parse these messages in to 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 GPS module to your project is as easy as to write couple 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

Your email address will not be published. Required fields are marked *