Skip to content
This repository was archived by the owner on Jan 28, 2021. It is now read-only.

Commit 5102d9f

Browse files
committed
Add MSGOUT keys. Update examples to use defined keys.
1 parent 03a91e5 commit 5102d9f

File tree

4 files changed

+426
-39
lines changed

4 files changed

+426
-39
lines changed
Lines changed: 16 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
/*
2-
Send UBX binary commands to enable RTCM sentences on Ublox ZED-F9P module
2+
Send UBX binary commands to enable RTCM sentences on u-blox ZED-F9P module
33
By: Nathan Seidle
44
SparkFun Electronics
55
Date: January 9th, 2019
66
License: MIT. See license file for more information but you can
77
basically do whatever you want with this code.
88
9-
Ublox changed how to configure their modules in 2019. As of version 23 of the UBX protocol the
9+
u-blox changed how to configure their modules in 2019. As of version 23 of the UBX protocol the
1010
UBX-CFG commands are deprecated; they still work, they just recommend using VALSET, VALGET, and VALDEL
1111
commands instead. This example shows how to use this new command structure.
1212
@@ -27,49 +27,50 @@
2727
#include "SparkFun_Ublox_Arduino_Library.h" //http://librarymanager/All#SparkFun_Ublox_GPS
2828
SFE_UBLOX_GPS myGPS;
2929

30-
long lastTime = 0; //Simple local timer. Limits amount if I2C traffic to Ublox module.
30+
long lastTime = 0; //Simple local timer. Limits amount if I2C traffic to u-blox module.
3131

3232
void setup()
3333
{
3434
Serial.begin(115200);
35-
while (!Serial); //Wait for user to open terminal
36-
Serial.println("Ublox getVal example");
35+
while (!Serial)
36+
; //Wait for user to open terminal
37+
Serial.println("u-blox getVal example");
3738

3839
Wire.begin();
3940
Wire.setClock(400000); //Increase I2C clock speed to 400kHz
4041

41-
if (myGPS.begin() == false) //Connect to the Ublox module using Wire port
42+
if (myGPS.begin() == false) //Connect to the u-blox module using Wire port
4243
{
43-
Serial.println(F("Ublox GPS not detected at default I2C address. Please check wiring. Freezing."));
44-
while (1);
44+
Serial.println(F("u-blox GPS not detected at default I2C address. Please check wiring. Freezing."));
45+
while (1)
46+
;
4547
}
4648

4749
myGPS.enableDebugging(); //Enable debug messages over Serial (default)
4850
//myGPS.enableDebugging(SerialUSB); //Enable debug messages over Serial USB
4951

5052
bool setValueSuccess;
5153

52-
//These key values are hard coded. You can obtain them from the ZED-F9P interface description doc
54+
//These key values are hard coded and defined in u-blox_config_keys.h.
55+
//You can obtain them from the ZED-F9P interface description doc
5356
//or from u-center's Messages->CFG->VALSET window. Keys must be 32-bit.
54-
//setValueSuccess = myGPS.setVal(0x10930006, 0); //Enable high precision NMEA
55-
setValueSuccess = myGPS.setVal(0x30210001, 100); //Set measurement rate to 100ms (10Hz update rate)
56-
//setValueSuccess = myGPS.setVal(0x30210001, 1000); //Set measurement rate to 1000ms (1Hz update rate)
57+
//setValueSuccess = myGPS.setVal(UBLOX_CFG_NMEA_HIGHPREC, 0); //Enable high precision NMEA
58+
setValueSuccess = myGPS.setVal(UBLOX_CFG_RATE_MEAS, 100); //Set measurement rate to 100ms (10Hz update rate)
59+
//setValueSuccess = myGPS.setVal(UBLOX_CFG_RATE_MEAS, 1000); //Set measurement rate to 1000ms (1Hz update rate)
5760

5861
//Below is the original way we enabled the RTCM message on the I2C port. After that, we show how to do the same
5962
//but with setVal().
6063
//Original: myGPS.enableRTCMmessage(UBX_RTCM_1005, COM_PORT_I2C, 1); //Enable message 1005 to output through I2C port, message every second
6164
//setValueSuccess = myGPS.setVal(0x209102bd, 1); //Set output rate of msg 1005 over the I2C port to once per second
6265

63-
if(setValueSuccess == true)
66+
if (setValueSuccess == true)
6467
{
6568
Serial.println("Value was successfully set");
6669
}
6770
else
6871
Serial.println("Value set failed");
69-
7072
}
7173

7274
void loop()
7375
{
74-
7576
}

examples/ZED-F9P/Example8_GetSetPortSettings/Example8_GetSetPortSettings.ino

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
License: MIT. See license file for more information but you can
77
basically do whatever you want with this code.
88
9-
This example shows how to query a Ublox module for its UART1 settings and
9+
This example shows how to query a u-blox module for its UART1 settings and
1010
then change them if the settings aren't what we want.
1111
1212
Note: getVal/setVal/delVal are only support in u-blox protocol versions 27 and higher.
@@ -31,13 +31,13 @@ void setup()
3131
Serial.begin(115200);
3232
while (!Serial)
3333
; //Wait for user to open terminal
34-
Serial.println("SparkFun Ublox Example");
34+
Serial.println("SparkFun u-blox Example");
3535

3636
Wire.begin();
3737

38-
if (myGPS.begin() == false) //Connect to the Ublox module using Wire port
38+
if (myGPS.begin() == false) //Connect to the u-blox module using Wire port
3939
{
40-
Serial.println(F("Ublox GPS not detected at default I2C address. Please check wiring. Freezing."));
40+
Serial.println(F("u-blox GPS not detected at default I2C address. Please check wiring. Freezing."));
4141
while (1)
4242
;
4343
}

examples/ZED-F9P/Example9_multiSetVal/Example9_multiSetVal.ino

Lines changed: 20 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
/*
2-
Send UBX binary commands to enable RTCM sentences on Ublox ZED-F9P module
2+
Send UBX binary commands to enable RTCM sentences on u-blox ZED-F9P module
33
Based on Example7 By: Nathan Seidle
44
SparkFun Electronics
55
Updated by Paul Clark to demonstrate setVal8/16/32, newCfgValset8/16/32, addCfgValset8/16/32 and sendCfgValset8/16/32
66
Date: July 1st, 2019
77
License: MIT. See license file for more information but you can
88
basically do whatever you want with this code.
99
10-
Ublox changed how to configure their modules in 2019. As of version 23 of the UBX protocol the
10+
u-blox changed how to configure their modules in 2019. As of version 23 of the UBX protocol the
1111
UBX-CFG commands are deprecated; they still work, they just recommend using VALSET, VALGET, and VALDEL
1212
commands instead. This example shows how to use this new command structure.
1313
@@ -31,16 +31,18 @@ SFE_UBLOX_GPS myGPS;
3131
void setup()
3232
{
3333
Serial.begin(115200);
34-
while (!Serial); //Wait for user to open terminal
35-
Serial.println("Ublox multi setVal example");
34+
while (!Serial)
35+
; //Wait for user to open terminal
36+
Serial.println("u-blox multi setVal example");
3637

3738
Wire.begin();
3839
Wire.setClock(400000); //Increase I2C clock speed to 400kHz
3940

40-
if (myGPS.begin() == false) //Connect to the Ublox module using Wire port
41+
if (myGPS.begin() == false) //Connect to the u-blox module using Wire port
4142
{
42-
Serial.println(F("Ublox GPS not detected at default I2C address. Please check wiring. Freezing."));
43-
while (1);
43+
Serial.println(F("u-blox GPS not detected at default I2C address. Please check wiring. Freezing."));
44+
while (1)
45+
;
4446
}
4547

4648
myGPS.enableDebugging(); //Enable debug messages over Serial (default)
@@ -55,25 +57,25 @@ void setup()
5557
//U2, I2, E2 and X2 values are 16-bit
5658
//U4, I4, R4, E4, X4 values are 32-bit
5759

58-
setValueSuccess &= myGPS.setVal8(0x10930006, 0); //Enable high precision NMEA (value is 8-bit (L / U1))
59-
//setValueSuccess &= myGPS.setVal16(0x30210001, 200); //Set measurement rate to 100ms (10Hz update rate) (value is 16-bit (U2))
60-
//setValueSuccess &= myGPS.setVal16(0x30210001, 200, 1); //Set rate setting in RAM instead of BBR
61-
setValueSuccess &= myGPS.setVal16(0x30210001, 1000); //Set measurement rate to 1000ms (1Hz update rate) (value is 16-bit (U2))
60+
setValueSuccess &= myGPS.setVal8(UBLOX_CFG_NMEA_HIGHPREC, 0); //Enable high precision NMEA (value is 8-bit (L / U1))
61+
//setValueSuccess &= myGPS.setVal16(UBLOX_CFG_RATE_MEAS, 200); //Set measurement rate to 100ms (10Hz update rate) (value is 16-bit (U2))
62+
//setValueSuccess &= myGPS.setVal16(UBLOX_CFG_RATE_MEAS, 200, 1); //Set rate setting in RAM instead of BBR
63+
setValueSuccess &= myGPS.setVal16(UBLOX_CFG_RATE_MEAS, 1000); //Set measurement rate to 1000ms (1Hz update rate) (value is 16-bit (U2))
6264

6365
//Below is the original way we enabled a single RTCM message on the I2C port. After that, we show how to do the same
6466
//but with multiple messages all in one go using newCfgValset, addCfgValset and sendCfgValset.
6567
//Original: myGPS.enableRTCMmessage(UBX_RTCM_1005, COM_PORT_I2C, 1); //Enable message 1005 to output through I2C port, message every second
6668

6769
//Begin with newCfgValset8/16/32
68-
setValueSuccess &= myGPS.newCfgValset8(0x209102bd, 1); //Set output rate of msg 1005 over the I2C port to once per measurement (value is 8-bit (U1))
69-
//setValueSuccess &= myGPS.newCfgValset8(0x209102bd, 1, 7); //Set this and the following settings into Flash/RAM/BBR instead of BBR
70+
setValueSuccess &= myGPS.newCfgValset8(CFG_MSGOUT_RTCM_3X_TYPE1005_I2C, 1); //Set output rate of msg 1005 over the I2C port to once per measurement (value is 8-bit (U1))
71+
//setValueSuccess &= myGPS.newCfgValset8(CFG_MSGOUT_RTCM_3X_TYPE1005_I2C, 1, 7); //Set this and the following settings into Flash/RAM/BBR instead of BBR
7072
//Add extra keyIDs and values using addCfgValset8/16/32
71-
setValueSuccess &= myGPS.addCfgValset8(0x209102cc, 1); //Set output rate of msg 1077 over the I2C port to once per measurement (value is 8-bit (U1))
72-
setValueSuccess &= myGPS.addCfgValset8(0x209102d1, 1); //Set output rate of msg 1087 over the I2C port to once per measurement (value is 8-bit (U1))
73-
setValueSuccess &= myGPS.addCfgValset8(0x209102d6, 1); //Set output rate of msg 1127 over the I2C port to once per measurement (value is 8-bit (U1))
74-
setValueSuccess &= myGPS.addCfgValset8(0x20910318, 1); //Set output rate of msg 1097 over the I2C port to once per measurement (value is 8-bit (U1))
73+
setValueSuccess &= myGPS.addCfgValset8(CFG_MSGOUT_RTCM_3X_TYPE1077_I2C, 1); //Set output rate of msg 1077 over the I2C port to once per measurement (value is 8-bit (U1))
74+
setValueSuccess &= myGPS.addCfgValset8(CFG_MSGOUT_RTCM_3X_TYPE1087_I2C, 1); //Set output rate of msg 1087 over the I2C port to once per measurement (value is 8-bit (U1))
75+
setValueSuccess &= myGPS.addCfgValset8(CFG_MSGOUT_RTCM_3X_TYPE1127_I2C, 1); //Set output rate of msg 1127 over the I2C port to once per measurement (value is 8-bit (U1))
76+
setValueSuccess &= myGPS.addCfgValset8(CFG_MSGOUT_RTCM_3X_TYPE1097_I2C, 1); //Set output rate of msg 1097 over the I2C port to once per measurement (value is 8-bit (U1))
7577
// Add the final value and send the packet using sendCfgValset8/16/32
76-
setValueSuccess &= myGPS.sendCfgValset8(0x20910303, 10); //Set output rate of msg 1230 over the I2C port to once every 10 measurements (value is 8-bit (U1))
78+
setValueSuccess &= myGPS.sendCfgValset8(CFG_MSGOUT_RTCM_3X_TYPE1230_I2C, 10); //Set output rate of msg 1230 over the I2C port to once every 10 measurements (value is 8-bit (U1))
7779

7880
if (setValueSuccess == true)
7981
{
@@ -85,5 +87,4 @@ void setup()
8587

8688
void loop()
8789
{
88-
8990
}

0 commit comments

Comments
 (0)