Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

v3.1.6 : add keys and flags for HPG 1.50 #61

Merged
merged 3 commits into from
Aug 1, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,10 @@
0x10110025
0x10110061
0x101100d7
0x101100dd
0x10170001
0x10170002
0x10170003
0x10220001
0x10220002
0x10220003
Expand Down Expand Up @@ -37,15 +39,16 @@
0x10310024
0x10310025
0x10340014
0x10350005
0x10350009
0x10360002
0x10360003
0x10360004
0x10360005
0x10360007
0x10370005
0x10370006
0x10370007
0x1041000d
0x10410013
0x10510002
0x10510003
0x10520005
Expand Down Expand Up @@ -120,9 +123,10 @@
0x10c70001
0x10c70002
0x10de0002
0x10de0003
0x10de0004
0x10f60009
0x10f60051
0x10f6005d
0x20030001
0x20030002
0x20030006
Expand Down Expand Up @@ -157,9 +161,7 @@
0x20240013
0x20240014
0x20250038
0x20410001
0x20410002
0x20410010
0x20350007
0x20510001
0x20520002
0x20520003
Expand Down Expand Up @@ -548,6 +550,11 @@
0x2091038d
0x2091038e
0x2091038f
0x209103a8
0x209103a9
0x209103aa
0x209103ab
0x209103ac
0x20910400
0x20910401
0x20910402
Expand Down Expand Up @@ -678,6 +685,11 @@
0x20910607
0x20910608
0x20910609
0x20910634
0x20910635
0x20910636
0x20910637
0x20910638
0x20910652
0x20910653
0x20910654
Expand Down Expand Up @@ -713,6 +725,11 @@
0x20910681
0x20910682
0x20910683
0x20910689
0x2091068a
0x2091068b
0x2091068c
0x2091068d
0x2091069d
0x2091069e
0x2091069f
Expand All @@ -723,6 +740,11 @@
0x209106b8
0x209106b9
0x209106ba
0x209106ca
0x209106cb
0x209106cc
0x209106cd
0x209106ce
0x20920001
0x20920002
0x20920003
Expand Down Expand Up @@ -757,15 +779,18 @@
0x301100b3
0x301100b4
0x301100b5
0x301100de
0x30210001
0x30210002
0x3025003b
0x30360008
0x30370008
0x3065000a
0x3065000b
0x3065000c
0x30930033
0x30a20004
0x30a3003c
0x30de0005
0x30de0006
0x30de0007
Expand Down
17 changes: 17 additions & 0 deletions keys/u-blox_config_keys_sorted.txt
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,10 @@
0x10110025
0x10110061
0x101100d7
0x101100dd
0x10170001
0x10170002
0x10170003
0x10220001
0x10220002
0x10220003
Expand Down Expand Up @@ -64,6 +66,8 @@
0x10310026
0x10310028
0x10340014
0x10350005
0x10350009
0x10360002
0x10360003
0x10360004
Expand Down Expand Up @@ -168,6 +172,7 @@
0x10de0004
0x10f60009
0x10f60051
0x10f6005d
0x20030001
0x20030002
0x20030006
Expand Down Expand Up @@ -213,6 +218,7 @@
0x20240013
0x20240014
0x20250038
0x20350007
0x20370020
0x20370030
0x20370050
Expand Down Expand Up @@ -682,6 +688,11 @@
0x2091038d
0x2091038e
0x2091038f
0x209103a8
0x209103a9
0x209103aa
0x209103ab
0x209103ac
0x20910400
0x20910401
0x20910402
Expand Down Expand Up @@ -902,6 +913,11 @@
0x209106b8
0x209106b9
0x209106ba
0x209106ca
0x209106cb
0x209106cc
0x209106cd
0x209106ce
0x20920001
0x20920002
0x20920003
Expand Down Expand Up @@ -950,6 +966,7 @@
0x301100b3
0x301100b4
0x301100b5
0x301100de
0x30210001
0x30210002
0x30230002
Expand Down
2 changes: 1 addition & 1 deletion library.properties
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
name=SparkFun u-blox GNSS v3
version=3.1.5
version=3.1.6
author=SparkFun Electronics <[email protected]>
maintainer=SparkFun Electronics <sparkfun.com>
sentence=Library for I2C, Serial and SPI Communication with u-blox GNSS modules<br/><br/>
Expand Down
2 changes: 1 addition & 1 deletion src/u-blox_GNSS.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -3474,7 +3474,7 @@ void DevUBLOXGNSS::processUBXpacket(ubxPacket *msg)
packetUBXNAVPVT->data.sAcc = extractLong(msg, 68);
packetUBXNAVPVT->data.headAcc = extractLong(msg, 72);
packetUBXNAVPVT->data.pDOP = extractInt(msg, 76);
packetUBXNAVPVT->data.flags3.all = extractByte(msg, 78);
packetUBXNAVPVT->data.flags3.all = extractInt(msg, 78);
packetUBXNAVPVT->data.headVeh = extractSignedLong(msg, 84);
packetUBXNAVPVT->data.magDec = extractSignedInt(msg, 88);
packetUBXNAVPVT->data.magAcc = extractInt(msg, 90);
Expand Down
24 changes: 22 additions & 2 deletions src/u-blox_config_keys.h
Original file line number Diff line number Diff line change
Expand Up @@ -132,6 +132,12 @@ const uint32_t UBLOX_CFG_BDS_USE_PRN_1_TO_5 = UBX_CFG_L | 0x10340014; // Use Bei
//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
const uint32_t UBLOX_CFG_CLOCK_OSC_FREQ = UBX_CFG_U4 | 0x40a4000d; // Oscillator speed

// CFG-GAL: Galileo system configuration
//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
const uint32_t UBLOX_CFG_GAL_USE_OSNMA = UBX_CFG_L | 0x10350005; // Enable using Galileo Open Service Navigation Message Authentication (OSNMA) protocol
const uint32_t UBLOX_CFG_GAL_OSNMA_MINTAGLENGTH = UBX_CFG_U1 | 0x20350007; // Minimum equivalent tag length
const uint32_t UBLOX_CFG_GAL_OSNMA_TIMESYNC = UBX_CFG_L | 0x10350009; // Apply the time synchronization requirement

// CFG-GEOFENCE: Geofencing configuration
//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
const uint32_t UBLOX_CFG_GEOFENCE_CONFLVL = UBX_CFG_E1 | 0x20240011; // Required confidence level for state evaluation
Expand Down Expand Up @@ -588,6 +594,11 @@ const uint32_t UBLOX_CFG_MSGOUT_UBX_NAV_TIMEQZSS_SPI = UBX_CFG_U1 | 0x2091038a;
const uint32_t UBLOX_CFG_MSGOUT_UBX_NAV_TIMEQZSS_UART1 = UBX_CFG_U1 | 0x20910387; // Output rate of the UBX-NAV-TIMEQZSSmessage on port UART1
const uint32_t UBLOX_CFG_MSGOUT_UBX_NAV_TIMEQZSS_UART2 = UBX_CFG_U1 | 0x20910388; // Output rate of the UBX-NAV-TIMEQZSSmessage on port UART2
const uint32_t UBLOX_CFG_MSGOUT_UBX_NAV_TIMEQZSS_USB = UBX_CFG_U1 | 0x20910389; // Output rate of the UBX-NAV-TIMEQZSSmessage on port USB
const uint32_t UBLOX_CFG_MSGOUT_UBX_NAV_TIMETRUSTED_I2C = UBX_CFG_U1 | 0x209103a8; // Output rate of the UBX-NAV-TIMETRUSTED message on port I2C
const uint32_t UBLOX_CFG_MSGOUT_UBX_NAV_TIMETRUSTED_SPI = UBX_CFG_U1 | 0x209103ac; // Output rate of the UBX-NAV-TIMETRUSTED message on port SPI
const uint32_t UBLOX_CFG_MSGOUT_UBX_NAV_TIMETRUSTED_UART1 = UBX_CFG_U1 | 0x209103a9; // Output rate of the UBX-NAV-TIMETRUSTED message on port UART1
const uint32_t UBLOX_CFG_MSGOUT_UBX_NAV_TIMETRUSTED_UART2 = UBX_CFG_U1 | 0x209103aa; // Output rate of the UBX-NAV-TIMETRUSTED message on port UART2
const uint32_t UBLOX_CFG_MSGOUT_UBX_NAV_TIMETRUSTED_USB = UBX_CFG_U1 | 0x209103ab; // Output rate of the UBX-NAV-TIMETRUSTED message on port USB
const uint32_t UBLOX_CFG_MSGOUT_UBX_NAV_TIMEUTC_I2C = UBX_CFG_U1 | 0x2091005b; // Output rate of the UBX-NAV-TIMEUTC message on port I2C
const uint32_t UBLOX_CFG_MSGOUT_UBX_NAV_TIMEUTC_SPI = UBX_CFG_U1 | 0x2091005f; // Output rate of the UBX-NAV-TIMEUTC message on port SPI
const uint32_t UBLOX_CFG_MSGOUT_UBX_NAV_TIMEUTC_UART1 = UBX_CFG_U1 | 0x2091005c; // Output rate of the UBX-NAV-TIMEUTC message on port UART1
Expand Down Expand Up @@ -643,6 +654,11 @@ const uint32_t UBLOX_CFG_MSGOUT_UBX_SEC_SIG_SPI = UBX_CFG_U1 | 0x20910638;
const uint32_t UBLOX_CFG_MSGOUT_UBX_SEC_SIG_UART1 = UBX_CFG_U1 | 0x20910635; // Output rate of the UBX-SEC-SIG message on port UART1
const uint32_t UBLOX_CFG_MSGOUT_UBX_SEC_SIG_UART2 = UBX_CFG_U1 | 0x20910636; // Output rate of the UBX-SEC-SIG message on port UART2
const uint32_t UBLOX_CFG_MSGOUT_UBX_SEC_SIG_USB = UBX_CFG_U1 | 0x20910637; // Output rate of the UBX-SEC-SIG message on port USB
const uint32_t UBLOX_CFG_MSGOUT_UBX_SEC_OSNMA_I2C = UBX_CFG_U1 | 0x209106ca; // Output rate of the UBX-SEC-OSNMA message on port I2C
const uint32_t UBLOX_CFG_MSGOUT_UBX_SEC_OSNMA_SPI = UBX_CFG_U1 | 0x209106ce; // Output rate of the UBX-SEC-OSNMA message on port SPI
const uint32_t UBLOX_CFG_MSGOUT_UBX_SEC_OSNMA_UART1 = UBX_CFG_U1 | 0x209106cb; // Output rate of the UBX-SEC-OSNMA message on port UART1
const uint32_t UBLOX_CFG_MSGOUT_UBX_SEC_OSNMA_UART2 = UBX_CFG_U1 | 0x209106cc; // Output rate of the UBX-SEC-OSNMA message on port UART2
const uint32_t UBLOX_CFG_MSGOUT_UBX_SEC_OSNMA_USB = UBX_CFG_U1 | 0x209106cd; // Output rate of the UBX-SEC-OSNMA message on port USB
const uint32_t UBLOX_CFG_MSGOUT_UBX_TIM_TM2_I2C = UBX_CFG_U1 | 0x20910178; // Output rate of the UBX-TIM-TM2 message on port I2C
const uint32_t UBLOX_CFG_MSGOUT_UBX_TIM_TM2_SPI = UBX_CFG_U1 | 0x2091017c; // Output rate of the UBX-TIM-TM2 message on port SPI
const uint32_t UBLOX_CFG_MSGOUT_UBX_TIM_TM2_UART1 = UBX_CFG_U1 | 0x20910179; // Output rate of the UBX-TIM-TM2 message on port UART1
Expand Down Expand Up @@ -934,8 +950,9 @@ const uint32_t UBLOX_CFG_MSGOUT_UBX_RXM_QZSSL6_USB = UBX_CFG_U1 | 0x2091033d;

// CFG-NAV2: Secondary output configuration
//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
const uint32_t UBLOX_CFG_NAV2_OUT_ENABLED = UBX_CFG_L | 0x10170001; // Enable secondary (NAV2) output
const uint32_t UBLOX_CFG_NAV2_SBAS_USE_INTEGRITY = UBX_CFG_L | 0x10170002; // Use SBAS integrity information in the secondary output
const uint32_t UBLOX_CFG_NAV2_OUT_ENABLED = UBX_CFG_L | 0x10170001; // Enable secondary (NAV2) output
const uint32_t UBLOX_CFG_NAV2_SBAS_USE_INTEGRITY = UBX_CFG_L | 0x10170002; // Use SBAS integrity information in the secondary output
const uint32_t UBLOX_CFG_NAV2_NAVSPG_ONLY_AUTHDATA = UBX_CFG_L | 0x10170003; // Enable using only signals with authenticated navigation data

// CFG-NAVHPG: High precision navigation configuration
//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Expand Down Expand Up @@ -1005,6 +1022,8 @@ const uint32_t UBLOX_CFG_NAVSPG_CONSTR_ALTVAR = UBX_CFG_U4 | 0x401100c2; // Fix
const uint32_t UBLOX_CFG_NAVSPG_CONSTR_DGNSSTO = UBX_CFG_U1 | 0x201100c4; // DGNSS timeout
const uint32_t UBLOX_CFG_NAVSPG_SIGATTCOMP = UBX_CFG_E1 | 0x201100d6; // Permanently attenuated signal compensation mode
const uint32_t UBLOX_CFG_NAVSPG_PL_ENA = UBX_CFG_L | 0x101100d7; // Enable Protection level. If enabled, protection level computing will be on.
const uint32_t UBLOX_CFG_NAVSPG_ONLY_AUTHDATA = UBX_CFG_L | 0x101100dd; // Enable using only signals with authenticated navigation data
const uint32_t UBLOX_CFG_NAVSPG_MAX_TIMETRUSTED_ACC = UBX_CFG_U2 | 0x301100de; // Maximum trusted time accuracy

// CFG-NMEA: NMEA protocol configuration
//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Expand Down Expand Up @@ -1128,6 +1147,7 @@ const uint32_t UBLOX_CFG_SBAS_PRNSCANMASK = UBX_CFG_X8 | 0x50360006; /
const uint32_t UBLOX_CFG_SEC_CFG_LOCK = UBX_CFG_L | 0x10f60009; // Configuration lockdown
const uint32_t UBLOX_CFG_SEC_CFG_LOCK_UNLOCKGRP1 = UBX_CFG_U2 | 0x30f6000a; // Configuration lockdown exempted group 1
const uint32_t UBLOX_CFG_SEC_CFG_LOCK_UNLOCKGRP2 = UBX_CFG_U2 | 0x30f6000b; // Configuration lockdown exempted group 2
const uint32_t UBLOX_CFG_SEC_SPOOFDET_SIM_SIG_DIS = UBX_CFG_L | 0x10f6005d; // Disabling the simulated signal spoofing detection
const uint32_t UBLOX_CFG_SEC_JAMDET_SENSITIVITY_HI = UBX_CFG_L | 0x10f60051; // go for a more sensitive jamming detection

// CFG-SFCORE: Sensor fusion (SF) core configuration (ZED-F9R)
Expand Down
18 changes: 14 additions & 4 deletions src/u-blox_structs.h
Original file line number Diff line number Diff line change
Expand Up @@ -428,11 +428,11 @@ typedef struct
uint16_t pDOP; // Position DOP * 0.01
union
{
uint8_t all;
uint16_t all;
struct
{
uint8_t invalidLlh : 1; // 1 = Invalid lon, lat, height and hMSL
uint8_t lastCorrectionAge : 4; // Age of the most recently received differential correction:
uint16_t invalidLlh : 1; // 1 = Invalid lon, lat, height and hMSL
uint16_t lastCorrectionAge : 4; // Age of the most recently received differential correction:
// 0: Not available
// 1: Age between 0 and 1 second
// 2: Age between 1 (inclusive) and 2 seconds
Expand All @@ -446,9 +446,16 @@ typedef struct
// 10: Age between 60 (inclusive) and 90 seconds
// 11: Age between 90 (inclusive) and 120 seconds
// >=12: Age greater or equal than 120 seconds
uint16_t reserved : 8;
uint16_t authTime : 1; // Flag that indicates if the output time has been validated
// against an external trusted time source
uint16_t nmaFixStatus : 1; // Flag assigned to a fix that has been computed
// mixing satellites with data authenticated through
// Navigation Message Authentication (NMA) methods
// and satellites using unauthenticated data.
} bits;
} flags3;
uint8_t reserved1[5];
uint8_t reserved0[4];
int32_t headVeh; // Heading of vehicle (2-D): deg * 1e-5
int16_t magDec; // Magnetic declination: deg * 1e-2
uint16_t magAcc; // Magnetic declination accuracy: deg * 1e-2
Expand Down Expand Up @@ -513,6 +520,9 @@ typedef struct
uint32_t pDOP : 1;

uint32_t invalidLlh : 1;
uint32_t lastCorrectionAge : 1;
uint32_t authTime : 1;
uint32_t nmaFixStatus : 1;

uint32_t headVeh : 1;
uint32_t magDec : 1;
Expand Down