Arduino UNO with SparkFun GPS-RTK Board - NEO-M8P-2 (Qwiic) - Setup To Get GPS Data

Dear SparkFun Community:

I hope you’re all doing well. I have purchased the GPS RTK Board at the following link https://www.sparkfun.com/products/15005. Along with that, I have purchased the antenna and necessary cables and conversions to be able to use the module as follows: https://www.sparkfun.com/products/14986, https://www.sparkfun.com/products/14425, https://www.sparkfun.com/products/9145.

My ultimate goal is to be able to connect the GPS Module the an Arduino UNO Board and observe the data collected via UART, such as Longitude, Latitude, Speed, Height, etc. Unfortunately, I do not have a very strong background in coding, so I had to resort to available codes from the SparkFun community. One of the things I tried was the code at the following link https://github.com/sparkfun/SparkFun_Ub … seUart.ino. I connected the red wire to the power of the board and black wire to the ground. Then, pins 10 and 11 to UART Tx and Rx respectively. Unfortunately, all I was able to see was a continuous message in the serial monitor: “GPS: trying 9600 baud” then “GPS: trying 38400 baud” then again “GPS: trying 9600 baud” and so on…

I have connected the antenna and made sure all devices are on. The code compiled and uploaded, but the result was as mentioned above. I would greatly appreciate any input and help: setup guide with code and wiring, any advice, whatever you believe would direct me onto the right path. As far as I understand, each measurement from the module, regardless of connection type, is supposed to produce a sentence from each measurement, whether using I2C or UART, and I’d be glad if I could at least see that output from the GPS and move on with the SparkFun community from there.

This is a part of my time-sensitive college project, so any advice or help will be greatly appreciated. I was able to utilize the U-Center Software to obtain data from the GPS, such as coordinates and speed; however, my paramount goal is to be able to combine the module with Arduino UNO for data acquisition, since there will be more than one device used with UNO to collect various data.

Thank You Very Much,

Respectfully,

Lior A.

Hi Lior,

To just get NMEA sentences printing from the Arduino, I would recommend starting with the [Example 1-Basic NMEA. The example you are using is printing the values via the NEO-M8P’s UART pins and sending them to specific pins on your Arduino outlined in the note at the top of the code.

Example 1 just needs you to run a Qwiic cable from the NEO-M8P to the I2C connections on your Arduino or you could also use the I2C pins broken out on the side of the board. [The Hardware Overview section of our Hookup Guide will go into the various data ports on this board in more detail and the “SparkFun U-blox Arduino Library” section further down outlines a brief explanation of the primary examples from the library.

I hope this helps get you started with the project.](GPS-RTK Hookup Guide - SparkFun Learn)](SparkFun_Ublox_Arduino_Library/examples/Example1_BasicNMEARead/Example1_BasicNMEARead.ino at master · sparkfun/SparkFun_Ublox_Arduino_Library · GitHub)

Thank you very much for your response. However, that is not really what I requested assistance with. I will simplify it. I am working with an Arduino UNO board and a GPS RTK NEO-M8P 2 Board, along with the antenna. I am utilizing the code and trying to use the UART connection to obtain location and speed data from the GPS and display on my serial monitor.

Now, in terms of progress, I was finally able to get the code to work and the board to identify the GPS module, which is shown on the image below. However, if you look at it, while the code is executed successfully, and I see no more connection errors, the board GPS does not really provide any data to the UNO. I suspect that GPS RTK needs calibration, and, unfortunately, the website instructions are not very clear to me. I get conflicting ideas that I either need calibration or I need internet connection (for which I’ll have to buy a shield).

I just need to know, how do I get the UNO to see actual data from the RTK?

P.S. : When I use U-Center App, everything is working perfectly with direct connection of the GPS to the PC, confirming that the RTK works; however, I need to get data via UART on UNO. Please help. I greatly appreciate it.

Hi again Lior,

What specific data type are you trying to get from the NEO-M8P via UART1? The example you are using sends UBX data which will return latitude, longitude, altitude, and SIV (Satellites in View). Your photo of the serial terminal appears to be showing that data but without a GPS lock. In order to get a GPS lock, you need to have an external antenna connected to the NEO-M8P that has a clear view of the sky. Putting the antenna close to a window with a clear view can work but for the best results, you want it to be outdoors without any large obstructions (large buildings, etc.) nearby.

Dear Mark, thank you very much for your response, and I apologize for getting back so late.

Thanks to the assistance from the forum, I was finally able to get coordinate data from the GPS RTK module via Arduino UNO, and I am able to observe the data using the Serial Monitor. Finally, I have added code to the program as to calculate the distance between two consecutive GPS coordinate points. The goal was to observe how accurate the GPS measurements are, since I noticed the problem of coordinates changing significantly when neither the module nor the antenna are moving. As you can see on the image attached, the GPS at times shows displacements of up to 2 meters, when, in reality, the device is stationary and in clear outside area. The variations can be seen in coordinates themselves as well.

As far as I understand, in order to get centimeter precision, RTCM correction data is required, which can be implemented via the U-Blox U-Center software. However, I was wondering if you could please assist me in implementing such correction data via Arduino Board, so that I could get more accurate data. The ultimate goal of the entire project is to find potholes on the road and pin their locations, so a very high location accuracy is required. Please correct me if I am mistaken or misunderstanding something about the RTK.

As always, I thank you for all your help and assistance.

Thank You Very Much,

Respectfully,

Lior Agaronov.

Hi again Lior,

That’s great to hear you’re getting solid data from the NEO-M8P! As for the RTCM data, it is going to be easiest to pipe it directly to your NEO-M8P using the RX/MOSI pin. For testing, I would recommend doing something similar to what we outline in the [Hookup Guide using a USB to Serial converter. If you need to do it wirelessly, you can use a Bluetooth module like the [Bluetooth Mate. To get started with that board, I would recommend reading through its respective [Hookup Guide.](https://learn.sparkfun.com/tutorials/using-the-bluesmirf)](https://www.sparkfun.com/products/12576)](https://learn.sparkfun.com/tutorials/gps-rtk-hookup-guide#connecting-the-gps-rtk-to-a-correction-source)