74 lines
2.6 KiB
C++
74 lines
2.6 KiB
C++
/*
|
|
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 <Wire.h> //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()
|
|
{
|
|
}
|