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: https://www.digikey.ca/product-detail/en/abracon-llc/APAMP-124/535-12916-ND/5226437

    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: http://i.imgur.com/8VuKUuD.png.

    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 Arduino.cc


    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.
  • @J_D_W could you please get advice about 10hz modulesa and may be few words about your project? 'suspensions sensor' sound attractive! have you allready done this feature?
  • @simionidze
    Sorry, havn't been back to this WWW in a while.

    Not sure what you would like to know. Teensy 3.6 as the microcontroller running code I wrote myself. For sensors I currently have the controller patched into my TPS so I can see my throttle on/off. The IMU I use for lean angle as well as accelerator and gyro readings. I don't have a brake pressure sensor but I do have it connected into my brake switch so I can see when I start and finish braking. I have has the suspension sensor on the bike forks at one time but then didn't like how it was mounted so removed it for now and need to build some better mounts. I am also curious if it affects the stiction feel of the forks. The sensor I am using is a KPM-150 from aliexpress. Search it and you will probably only get a few hits. I'd really like something more made for it but real kit suspension sensor are $$$. The KPM is small enough to fit but smaller cheap sensor would be even better.

    I have the options to add wheel speed sensors and RPM feed into the controller but neither got wired up this season. The RPM feed needs a 12V to 3.3V translation. Had a IC to help with it though didn't get to testing it. The wheel sensors I was just going to use a magnet and fast hall sensor for pulses.

    Like I said before, the GPS module I use will actually do 50Hz and I use it at 25Hz. I read sensors at 50Hz currently. I send the data to RaceChrono over BT but also log the raw data to SD Card on the Teensy.

    My biggest change this track season was to change where the antenna for the GPS is. Originally I had it inside the rear hump of my faring with signals going through the fiberglass. But I lost laps until I mounted the antenna external to the fairing.

    The readings helped me as well. I had a crash July 31 and the sensors told me how I messed up. Also this season I realized via TPS logging that I never got the throttle to 100% without regripping the throttle so I am working on mods to the throttle tube. I found my throttle around 88-91% down long straights often. I know it will read 99% when I am in the garage when I am standing there. So I can't get to 100% when in riding position.

    It worked rather well so not sure if I will make any code changes this winter to my controller. Would like to sort out the RPM though as would be handy when I look at logs.

Sign In or Register to comment.