/* Turn on/off various NMEA sentences. By: Nathan Seidle SparkFun Electronics Date: January 3rd, 2019 License: MIT. See license file for more information but you can basically do whatever you want with this code. This example shows how to turn on/off the NMEA sentences being output over UART1. We use the I2C interface on the Ublox module for configuration but you won't see any output from this sketch. You'll need to hook up a Serial Basic or other USB to Serial device to UART1 on your Ublox module to see the output. This example turns off all sentences except for the GPGGA and GPVTG sentences. Feel like supporting open source hardware? Buy a board from SparkFun! ZED-F9P RTK2: https://www.sparkfun.com/products/15136 NEO-M8P RTK: https://www.sparkfun.com/products/15005 SAM-M8Q: https://www.sparkfun.com/products/15106 Hardware Connections: Plug a Qwiic cable into the GPS and a RedBoard If you don't have a platform with a Qwiic connection use the SparkFun Qwiic Breadboard Jumper (https://www.sparkfun.com/products/14425) Open the serial monitor at 115200 baud to see the output Hookup a Serial Basic (https://www.sparkfun.com/products/15096) to UART1 on the Ublox module. Open a terminal at 57600bps and see GPGGA and GPVTG sentences. */ #include //Needed for I2C to GPS #include "SparkFun_Ublox_Arduino_Library.h" //http://librarymanager/All#SparkFun_u-blox_GNSS SFE_UBLOX_GPS myGPS; unsigned long lastGPSSend = 0; void setup() { Serial.begin(115200); // Serial debug output over USB visible from Arduino IDE Serial.println("Example showing how to enable/disable certain NMEA sentences"); Wire.begin(); if (myGPS.begin() == false) { Serial.println(F("Ublox GPS not detected at default I2C address. Please check wiring. Freezing.")); while (1) ; } //Disable or enable various NMEA sentences over the UART1 interface myGPS.disableNMEAMessage(UBX_NMEA_GLL, COM_PORT_UART1); //Several of these are on by default on virgin ublox board so let's disable them myGPS.disableNMEAMessage(UBX_NMEA_GSA, COM_PORT_UART1); myGPS.disableNMEAMessage(UBX_NMEA_GSV, COM_PORT_UART1); myGPS.disableNMEAMessage(UBX_NMEA_RMC, COM_PORT_UART1); myGPS.enableNMEAMessage(UBX_NMEA_GGA, COM_PORT_UART1); //Only leaving GGA/VTG enabled at current navigation rate myGPS.enableNMEAMessage(UBX_NMEA_VTG, COM_PORT_UART1); //Here's the advanced configure method //Some of the other examples in this library enable the PVT message so let's disable it myGPS.configureMessage(UBX_CLASS_NAV, UBX_NAV_PVT, COM_PORT_UART1, 0); //Message Class, ID, and port we want to configure, sendRate of 0 (disable). myGPS.setUART1Output(COM_TYPE_NMEA); //Turn off UBX and RTCM sentences on the UART1 interface myGPS.setSerialRate(57600); //Set UART1 to 57600bps. myGPS.saveConfiguration(); //Save these settings to NVM Serial.println(F("Messages configured. NMEA now being output over the UART1 port on the Ublox module at 57600bps.")); } void loop() { if (millis() - lastGPSSend > 200) { myGPS.checkUblox(); //See if new data is available, but we don't want to get NMEA here. Go check UART1. lastGPSSend = millis(); } }