A look at some GPS modules from eBay/AliExpress, or perhaps I should call then GNSS modules these days, as GPS, stands for Global Positioning System, is the navigation system made by the United States. As nowadays, there are multiple systems out there, run by different countries. The European Union has crated Galileo, Russia made GLONASS, China made BDS. As these are all natigation systems, the generic term to refer to them all is GNSS, short for Global Navigation Satellite System.

I will be looking at the GNSS modules sold on AliExpress these days. Some are GPS only, others support multiple systems, at the same time, or switch between them. I’ve been playing around with some and will tell you my findings here.

U-blox Neo 6M module

This module features the U-blox Neo 6M module. There are a red and a blue PCB variant for sale. The red PCB exposes the PPS signal (1 Hz pulse). Therefore I’ve obtained the red variant.

One of the problems I found, one of the PCBs I got had the module misaligned, causing it to short. So, I had to rework the thing. When applying the heat gun, the label got off. There was a plastic label over a paper label, it seems. However, both labels say it’s a u-blox Neo 6M, So I’m note sure what the deal is with re-labelling it with a label that says the same.

I noticed the PCB has a 3.3 Volt regulator on it. That means, I can’t connect the VCC pin to my 3.3 Volt line, as the LDO will drop some voltage. This means I’ll have to feed it, well… how much does a typical LDO drop? Let’s say, 0.2V? We can use the unregulated voltage from a LiPo battery. Fine, but then why label it VCC? My guess, the intention was to connect this thing to a 5 Volt system. I’m looking at you, Arduino! The rest of the world switched to 3.3 Volt years ago. When running at 3.3 Volt, the thing appears to operate but is unable to obtain a lock. So… I guess they need unregulated voltage (3.5 to 5.2 volt) to operate.

With this module, I haven’t been able to get a lock inside, not even on the windowsill. Only on my balcony it would lock. Furthermore, it depends on which antenna is connected. Only one model of antenna gave me a lock.

ATGM336 Module

This is a module from a Chinese manufacturer, featuring the ATGM336 chip by Hangzhou ZhongKe Microelectronics. There are several variants of the ATGM336 chip, featuring a set of GPS, BDS and GLONASS. It appears the variant I’ve obtained is 5N31, which offers GPS and BDS.

Like with the Neo 6M module, it has an LDO, meaning that it must be supplied with a higher voltage. I’ve been able to obtain a fix on my balcony, but not on the windowsill.

I have been looking at the datasheet, where it refers to a document with protocol specification. I’ve only been able to find the said document in Chinese, however, there is a document discussing an slightly different chip, the AT3340 timing module.

On the same PCB, there is also an option for a GT-U8 chip. This chip appears to be made by Goouuu Tech. However, I’ve not been able to locate that companies website, or fine a datasheet for this module. Therefore, configuring the chip will be a challenge. The NMEA sentences the modules report are standardised, but configuration is manufacturer-specific. All I could try is sending it commands intended for other chips and hope it understands. The “U8” suggests it might be U-Blox 8-series compatible.

V.KEL TTL

This is a module with integrated antenna. It comes with a 6 pin connector, and a cable that goes in. The module is based on a U-Blox chip.
It is based on either a U-Blox UBX-G7020-KT or U-Blox UBX-M8030-KT chip. At the moment I have the cheaper 7020 model in my possession.
So far, this module has the best performance of the modules I’ve tested. This is the only module that has been able to archive a lock on my windowsill, and once it has a lock, it retains the lock when sitting on my desk. Therefore, I’ve also ordered the more expensive 8030 model. It seems the difference is the 7020 model can switch between GPS and GLONASS, while the 8030 model can run both at once, as mentioned here.
In fact, it can run 3 systems at once, from GPS, Galileo, GLONASS, BDS, so all of them. With that information, the 8030 model seems interesting to investigate.

U-blox software

When reading about the U-Blox it mentions the software, u-center. TO be found at https://www.u-blox.com/en/product/u-center. When going there, it shows a “Download u-center 2” button. This is a Windows-only software. It doesn’t work well with wine. The installer hangs. Furthermore, it requires registering with their website to be used. But when you scroll down, there is a download link for “u-center for Windows, v.21.09”. That’s the one you need. No registration or other nonsense, and it runs fine on wine. So if you are looking for software, that is the one you will need.

NMEA protocol parsing

All the modules provide an UART interface (TTL level). It provides a data stream at 9600,8,N,1. The protocol it speaks is NMEA. It speaks so-called NMEA sentences. A sentence begins with a “$” and ends with “\r\n”. I dislike UART protocols, as it requires manually parsing. I have to scan through the data stream, find the “$” and “\r\n”, and cut it up into sentences before giving it to the parser. The parser I use is minmea.

Further notes

From the results of the Neo 6M module, I’ve concluded the attached antenna makes a difference in the performance. I may need to further investigate the antennas. The V.KEL module with an antenna mounted on the PCB gave the best results. May it be just a better antenna, or is the problem with the connector. Looking at the Neo 6M PCB, it may not be routed with antenna impedance in mind. It seems there are common footprint for the GNSS modules themselves. I might create my own PCBs, order some modules, and test them against each other, having a common PCB, and a fixed antenna mounted. This will also leave the LDO out, so it can be supplied from 3.3V directly. But hey, those may be for a later time, as I’m doing some other PCBs first.