Site Information

 Loading... Please wait...


Programming The u-blox NEO-7M-C UART GPS Module

Posted by Wilfried Voss on

UART GPS Module With Real-Time Clock

Our  UART GPS Module With Real-Time Clock features the NEO-7M-C chip onboard, a high-gain active antenna, an IPX interface for connecting different active, external antennas, and a chargeable backup battery, which keeps the ephemeris data when power down and supports hot starts.


  • TTL level, compatible with 3.3V/5V systems
  • Baud rate 9600 only
  • Operating voltage: 2.7V-5.0V (VCC input)
  • Operating current: 35mA
  • TXD/RXD impedance: 510Ω

However, the relatively low transmission rate of 9600 baud in combination with a considerable amount data, may cause performance restrictions for some embedded solutions, and that requires re-programming and thus adjusting the module.

The module outputs a number of so-called NMEA sentences, and it does so every one second (default):

These messages are GGA, GSA, GSV, RMC, VTG (all are being transmitted with a "$GP" prefix; for more information on the NMEA sentences see the information on Wikipedia, but also refer to the links below for more information).

Just lately, when working on a project, the module's default settings were close to prohibitive for a GPS application. The demands were to provide position information every one second, but also transmit the ground speed at a 200 millisecond frequency.

Firstly, that required an adjustment of the module's default frequency. Secondly, transmitting the amount of data every 200 milliseconds might have an impact on the system's overall performance (after all, my application included the transmission of data using our SAE J1939 protocol stack). That problem could be solved by adjusting the baud rate and deleting all those messages that were not relevant to the application.

All that can be accomplished fairly easily by using the u-blox u-center software for Windows. According to the u-blox website, "The u‑center GNSS evaluation software for automotive, mobile terminal and infrastructure applications provides a powerful tool for evaluation, performance analysis and configuration of u‑blox GNSS receivers. Its unique flexibility makes the u‑center GNSS evaluation software an invaluable tool for evaluation, analysis and configuration of u‑blox GNSS receivers. u‑blox GNSS receivers can be configured using the u‑center evaluation software."

Coming back to my application, I had to do the following:

  • Increase the baud rate, in this case to 115,200 baud
  • Change the update frequency
  • Remove the GGA, GSA, GSV, and VTG NMEA sentences

In my application, I use only the RMC (Recommended Minimum Navigation Information), since it provides dat asuch as UTC Time, Latitude, Longitude, and Speed over Ground. The following image shows the u-blox u-center software with the Text Console window opened. It shows effectively the amount of data coming from the module.

However, before you can start working with the software, you need to select the baud rate and select the COM port responsible for the GPS module.

The most important window, when it comes to re-programming the GPS module, is the Messages View (Click View->Messages View).

In the window on the left side, scroll down and open the UBX section and then CFG as indicated in the above screen shot. Under CFG you will find, among many others, the branches for:

  • PRT for changing the module's baud rate
  • RATE for changing the data transmission rate
  • MSG to configure (in our case, delete) messages
  • CFG to save the current configuration

In the PRT branch, select the desired baud rate and click on Send to transmit the setting, then switch to CFG to save the current configuration as shown below.

Here, too, you must click the Send button to make the changes permanent. Also, please be aware that you need to change the baud rate settings for the u-center software as show previously.

The following image shows the MSG branch.

In order to delete message frames, click on the item in the Message drop-down list, in this case the "F0-00 NMEA GxGGA" item to select the GGA NMEA sentence. Per default all items (I2C, UART1, UART2, USB, and SPI) are clicked and un-clicking them will remove the message from the data stream. You can verify the result by looking at the Text Console window (no need to close the Messages View; the Text Console runs in the background. 

After you have removed all un-needed messages, click Send again, and do the same in the CFG section as described previously.

Last, but not least, we will adjust the transmission rate by opening the RATE branch.

In the Measurement Period box enter the time in milliseconds, click the Send button again, and do the same in the CFG section as described previously.

And, of course, there is a ton more you can do to adjust the module's behavior, so I encourage you to read the u-center user guide for more information. 

More Resources

SAE J1939 - GPS Module With 9-Pin Deutsch Connection Cable

SAE J1939 - GPS Module With 9-Pin Deutsch Connection Cable

The jCOM.J1939.GPS device connects to an SAE J1939 network and reports the vehicle position (PGN 65267) with a five second frequency, according to the SAE J1939-71 Standard. The integrated J1939 protocol stack automatically negotiates a node address in the range of 128 to 247. The GPS data is broadcast by using the global destination address (255 = 0xFF). The device's firmware can be updated on-site per the integrated RS232 port, which also allows the loading of customer-specific features.

The content of delivery includes the jCOM.J1939.GPS module, the GPS antenna (preferred installation location is the driver cabin, i.e. close to the wind shield), and the SAE J1939 cable suited for a 9-pin Deutsch connection. 

More Information...

SAE J1939 GPS Application With Arduino Due Delivers PGN 65267 (Vehicle Position)

I am repeating myself over and over, but the Arduino Due is my preferred choice when it comes to quick prototyping of SAE J1939 and CAN Bus applications. It is the ease of programming and the great performance that makes it all possible. In fact, I created this application in only a few hours, mostly [...]

Read More »

How To Build A GPS To USB Interface, Including A Real-Time Clock, Within Minutes

Well, yes, it takes literally only minutes to assemble and test a GPS sensor plus real-time clock through the USB port on your computer, and that computer can be a Windows PC, Mac, any Linux system such as the Raspberry Pi, or even an Android system. All it takes is having the right components and [...]

Read More »

Electronic Logging Device (ELD) - GPS And Real-Time Clock (RTC) Breakout Board For The Arduino Due

Lately, I had looked into the topic of Electronic Logging Devices (ELD). An ELD is electronic hardware that is attached to a commercial motor vehicle engine to record driving hours. The driving hours of commercial drivers (truck and bus drivers) are regulated by a set of rules known as the hours of service (HOS). An ELD monitors a vehicle’s [...]

Read More »