/* Set the static position of the receiver. By: SparkFun Electronics / Nathan Seidle Date: September 26th, 2020 License: MIT. See license file for more information but you can basically do whatever you want with this code. This example shows how to set the static position of a receiver using an Earth-Centered, Earth-Fixed (ECEF) location. This is the output from a long (24 hour+) survey-in. Setting the static position immediately causes the receiver to begin outputting RTCM data (if enabled), perfect for setting up your own RTCM NTRIP caster or CORS. 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 Hardware Connections: Plug a Qwiic cable into the GPS and a BlackBoard 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 */ #include //Needed for I2C to GPS #include "SparkFun_Ublox_Arduino_Library.h" //http://librarymanager/All#SparkFun_u-blox_GNSS SFE_UBLOX_GPS myGPS; void setup() { Serial.begin(115200); // You may need to increase this for high navigation rates! while (!Serial) ; //Wait for user to open terminal Serial.println(F("SparkFun u-blox Example")); Wire.begin(); //myGPS.enableDebugging(); // Uncomment this line to enable debug messages if (myGPS.begin() == false) //Connect to the u-blox module using Wire port { Serial.println(F("u-blox GPS not detected at default I2C address. Please check wiring. Freezing.")); while (1) ; } myGPS.setI2COutput(COM_TYPE_UBX); //Set the I2C port to output UBX only (turn off NMEA noise) //-1280208.308,-4716803.847,4086665.811 is SparkFun HQ so... //Units are cm so 1234 = 12.34m //myGPS.setStaticPosition(-128020831, -471680385, 408666581); //Units are cm with a high precision extension so -1234.5678 should be called: (-123456, -78) myGPS.setStaticPosition(-128020830, -80, -471680384, -70, 408666581, 10); //With high precision 0.1mm parts //We can also set via lat/long //40.09029751,-105.18507900,1560.238 //myGPS.setStaticPosition(400902975, -1051850790, 156024, true); //True at end enables lat/long input //myGPS.setStaticPosition(400902975, 10, -1051850790, 0, 156023, 80, true); //Now let's use getVals to read back the data //long ecefX = myGPS.getVal32(0x40030003); //Serial.print("ecefX: "); //Serial.println(ecefX); Serial.println(F("Done!")); } void loop() { }