< Return to Writings
A note on GPS receiver modules
A common GPS receiver in the hobbyist space is the GY-NEO6MV2.
The labelling on the central chip and sales listings claim that these modules contain a Ublox NEO-6M chip, but it has been found that these are widely counterfeited. I have personally encountered two
pieces like this, pictured below:
These counterfeit chips do actually function as GPS receivers, outputting NMEA-0183 messages over a UART interface, and are able to provide a reasonably accurate position and a precise PPS pulse, but
their start-up $GPTXT messages are suspiciously nondescript, and they do not react to any configuration messages sent to them at all. They also do not have a PPS pin on the pin header, which is the
entire basis of precise timekeeping with GPS (this signal pulses once per second, synchronised to UTC time).
Both of these modules produce this start-up message:
$GNTXT,02,01,01,HED*1A
$GNTXT,02,02,02,ANT_OK*53
Because these modules have no response to any config message, the Rx pin is functionally useless, so I have modified one of these modules to repurpose the Rx pin to a PPS output by cutting the trace
leading to the Rx pin, and soldering a wire between the pin and the resistor at the chip's PPS output. I also removed the LED. This is the extent of the modifications on the right module in the photo.
As I have mentioned, these modules do work for positioning and timing, and they could be a good fit for many projects, but their lack of configurability could be a bottleneck if, for example,
a project needs a higher baud rate on the UART interface, or more frequent position data. These counterfeit modules might also present problems when the next GPS week number rollover occurs. Potential
experiment for ~13 years from now (2025)?
Around the start of the gregorian calendar year 2025, I bought two more GPS modules as I wanted PPS outputs and to try a different chipset. These modules were both 5 pin (power, UART and PPS),
and one was an ATGM336H and the other a NEO-6M.
I noticed the chip on the NEO-6M module was relabelled, with a new label placed over the original, and that the metal shielding is aged. The label
underneath was also visible through the new one, so I removed the top:
It became evident that the chip on this NEO-6M module is actually genuine, probably reclaimed or recycled.
I connected each of these two modules to my PC through a UART to USB bridge, and analysing their output using Ublox's u-center program. The UART to USB bridge presents itself as a serial device,
which can be selected in u-center. u-center will then receive the GPS chip's talkings and visualise the data. It also allows generating Ublox-specific UBX configuration messages and sending them to
the receiver.
The black NEO-6M produced this start-up message:
$GPTXT,01,01,02,u-blox ag - www.u-blox.com*50
$GPTXT,01,01,02,HW UBX-G60xx 00040007 FF7FFFFFp*53
$GPTXT,01,01,02,ROM CORE 6.02 (36023) Oct 15 2009 16:52:08*56
$GPTXT,01,01,02,ANTSUPERV=AC SD PDoS SR*20
$GPTXT,01,01,02,ANTSTATUS=DONTKNOW*33
I tried to configure the black NEO-6M board and the changes took place immediately. I was able to change the baud rate, which messages were output, and frequency of the PPS pulse, all with
success, as expected from a genuine chip.
The u-center interface is not exactly intuitive, so the instructions for configuration are:
- Enter "Messages View" from the View menu (Alt+V), or press F9
- Expand "UBX", then "CFG"
- Select a category and make whatever changes you need to
- To commit changes, press "Send" at the bottom of the Messages view window
The ATGM336H produced this start-up message:
$GPTXT,01,01,02,MA=CASIC*27
$GPTXT,01,01,02,IC=AT6558F-5N-32-1C580900*06
$GPTXT,01,01,02,SW=URANUS5,V5.3.0.0*1D
$GPTXT,01,01,02,TB=2020-03-26,13:25:12*4B
$GPTXT,01,01,02,MO=GB*77
From this descriptive message, it seems that the label on the chip is dishonest, but I attempted configuring the baud rate and message output in this way, and it worked as expected. PPS pulse settings had no
effect.
The discovery from this is to look for 5 pin GPS receiver modules (these seem more likely to have genuine U-blox chips), or an ATGM336H which seems to have guaranteed comfigurability.
Written 08APR2025
Last modified: 08APR2025