Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Picking out GPS module for DIY logger

I'm in the process of making a data logger using an Arduino and wanted to get some feedback from you guys. My plan is to use an Arduino Uno coupled with a bluetooth module (HC-06) and GPS module. The data off of the GPS module, along with some other data from my bike would then get sent over bluetooth to the Racechrono app.

I wanted to find out what I should be looking for in a GPS module. I found a couple breakout GPS modules that supported 10Hz refresh rate, one being the Adafruit Ultimate GPS and the other being the Navspark-GL.

For the folks going the DIY route for the data logger/monitors, what are you guys looking at when choosing GPS modules?


  • Was there any reason besides the 50hz update that made you choose that gps vs the navspark-gl?

    How accurate are the readings at 50hz? Any particular antenna you recommend with that gps?
  • This is the antenna I have:

    I'll admit that at the time I thought the location update speed would matter but it was early in my project and I was thinking I would need GPS updates at the same speed as my data. If I had to do it again I might have used a cheaper 10 or 20 Hz GPS module. I get 10 sat lock usually with it at any speed and I think it returns 1.2m accuracy, not sure if you can get more accurate than that though either.

    I actually don't use it at 50Hz, I only use it at 25Hz as if I use GPS at 50Hz plus my data logging $RC3 strings (at 50Hz) then I find I overwhelm my BT to the Android. If I get my suspension sensors on the bike I might actually up my sensors to 75Hz and lower the GPS even more.

    I think accuracy is more important than refresh speed for GPS now that I am this far into the project.

  • Thanks for the information. I ended up going with the same GPS unit you had since all the different units were only +/- $10 from that unit anyways. I figure I can change the update rate to 10Hz-20Hz, depending on how the data looks for both conditions.

    I just got the thing delivered so I'm going to try to set it up and see how far I can get with this. I have it connected to my Arduino Uno now and I can read all the GPS NMEA messages. Now I just need to figure out how to send different commands to it to change the update rate and baud rate.
  • Looks like I've hit a roadblock with the GPS. I am able to get the default 1Hz updates at a baud of 9600. However, I can't get the update rate to change using my Arduino Uno. This is my connection setup:

    Using the application notes, I determined that in order to change the update rate to 2Hz (just using 2Hz for the time being to get stuff figured out), I should send the following hex values: A0 A1 00 03 0E 02 00 0C 0D 0A

    I calculated the 0C checksum by doing an XOR on 0E, 02, and 00.

    I pasted the code I uploaded onto the Arduino Uno below. Is there something that I'm not doing right with my setup? For reference, I'm using Arduino IDE 1.8.2 from


    SoftwareSerial gpsSerial(10, 11);

    void setup() {
    // put your setup code here, to run once:

    byte updateRate[] = {0xA0, 0xA1, 0x00, 0x03, 0x0E, 0x02, 0x00, 0x0C, 0x0D, 0x0A};
    gpsSerial.write(updateRate, sizeof(updateRate));

    void loop() {
    // put your main code here, to run repeatedly:
    if (gpsSerial.available()) {
    if (Serial.available()) {
  • Looks like i was able to update the gps update rate, so you can go ahead and ignore the last comment.

    In case someone else has this issue, i fixed this by using an ftdi serial to usb converter and used the gps utility for the venus8 chip.
Sign In or Register to comment.