no-OS
Loading...
Searching...
No Matches
nmea_ubx.h
Go to the documentation of this file.
1/***************************************************************************/
33#ifndef __NMEA_UBX_H__
34#define __NMEA_UBX_H__
35
36#include <stdbool.h>
37#include <stdint.h>
38#include <string.h>
39#include "no_os_util.h"
40#include "no_os_uart.h"
41#include "no_os_gpio.h"
42#include "no_os_irq.h"
43#include "no_os_delay.h"
44#include "no_os_alloc.h"
45#include "no_os_print_log.h"
46#include "no_os_error.h"
47#include <stdlib.h>
48#include <errno.h>
49
50/* UBX Protocol constants */
51#define UBX_SYNCH_1 0xB5
52#define UBX_SYNCH_2 0x62
53
54/* UBX Class IDs */
55#define UBX_CLASS_NAV 0x01
56#define UBX_CLASS_RXM 0x02
57#define UBX_CLASS_INF 0x04
58#define UBX_CLASS_ACK 0x05
59#define UBX_CLASS_CFG 0x06
60#define UBX_CLASS_UPD 0x09
61#define UBX_CLASS_MON 0x0A
62#define UBX_CLASS_TIM 0x0D
63#define UBX_CLASS_MGA 0x13
64#define UBX_CLASS_LOG 0x21
65#define UBX_CLASS_SEC 0x27
66#define UBX_CLASS_NMEA 0xF0
67#define UBX_CLASS_PUBX 0xF1
68
69/* UBX-CFG Message IDs */
70#define UBX_CFG_ANT 0x13
71#define UBX_CFG_BATCH 0x93
72#define UBX_CFG_CFG 0x09
73#define UBX_CFG_DAT 0x06
74#define UBX_CFG_DGNSS 0x70
75#define UBX_CFG_ESFALG 0x56
76#define UBX_CFG_ESFA 0x4C
77#define UBX_CFG_ESFG 0x4D
78#define UBX_CFG_GEOFENCE 0x69
79#define UBX_CFG_GNSS 0x3E
80#define UBX_CFG_HNR 0x5C
81#define UBX_CFG_INF 0x02
82#define UBX_CFG_ITFM 0x39
83#define UBX_CFG_LOGFILTER 0x47
84#define UBX_CFG_MSG 0x01
85#define UBX_CFG_NAV5 0x24
86#define UBX_CFG_NAVX5 0x23
87#define UBX_CFG_NMEA 0x17
88#define UBX_CFG_ODO 0x1E
89#define UBX_CFG_PM2 0x3B
90#define UBX_CFG_PMS 0x86
91#define UBX_CFG_PRT 0x00
92#define UBX_CFG_PWR 0x57
93#define UBX_CFG_RATE 0x08
94#define UBX_CFG_RINV 0x34
95#define UBX_CFG_RST 0x04
96#define UBX_CFG_RXM 0x11
97#define UBX_CFG_SBAS 0x16
98#define UBX_CFG_SMGR 0x62
99#define UBX_CFG_TMODE3 0x71
100#define UBX_CFG_TP5 0x31
101#define UBX_CFG_USB 0x1B
102#define UBX_CFG_VALDEL 0x8C
103#define UBX_CFG_VALGET 0x8B
104#define UBX_CFG_VALSET 0x8A
105
106/* Class: NAV */
107#define UBX_NAV_ATT 0x05
108#define UBX_NAV_CLOCK 0x22
109#define UBX_NAV_DOP 0x04
110#define UBX_NAV_EOE 0x61
111#define UBX_NAV_GEOFENCE 0x39
112#define UBX_NAV_HPPOSECEF 0x13
113#define UBX_NAV_HPPOSLLH 0x14
114#define UBX_NAV_ODO 0x09
115#define UBX_NAV_ORB 0x34
116#define UBX_NAV_PL 0x62
117#define UBX_NAV_POSECEF 0x01
118#define UBX_NAV_POSLLH 0x02
119#define UBX_NAV_PVT 0x07
120#define UBX_NAV_PVAT 0x17
121#define UBX_NAV_RELPOSNED 0x3C
122#define UBX_NAV_RESETODO 0x10
123#define UBX_NAV_SAT 0x35
124#define UBX_NAV_SIG 0x43
125#define UBX_NAV_STATUS 0x03
126#define UBX_NAV_SVIN 0x3B
127#define UBX_NAV_TIMEBDS 0x24
128#define UBX_NAV_TIMEGAL 0x25
129#define UBX_NAV_TIMEGLO 0x23
130#define UBX_NAV_TIMEGPS 0x20
131#define UBX_NAV_TIMELS 0x26
132#define UBX_NAV_TIMEUTC 0x21
133#define UBX_NAV_VELECEF 0x11
134#define UBX_NAV_VELNED 0x12
135#define UBX_NAV_AOPSTATUS 0x60
136
137/* Class: TIM */
138#define UBX_TIM_DOSC 0x11
139#define UBX_TIM_FCHG 0x16
140#define UBX_TIM_HOC 0x17
141#define UBX_TIM_SMEAS 0x13
142#define UBX_TIM_SVIN 0x04
143#define UBX_TIM_TM2 0x03
144#define UBX_TIM_TOS 0x12
145#define UBX_TIM_TP 0x01
146#define UBX_TIM_VCOCAL 0x15
147#define UBX_TIM_VRFY 0x06
148
149/* Class: ACK */
150#define UBX_ACK_NACK 0x00
151#define UBX_ACK_ACK 0x01
152#define UBX_ACK_NONE 0x02
153
154/* Value layer definitions for UBX-CFG-VALSET */
155#define VAL_LAYER_RAM 0x01
156#define VAL_LAYER_BBR 0x02
157#define VAL_LAYER_FLASH 0x04
158#define VAL_LAYER_ALL (VAL_LAYER_RAM | VAL_LAYER_BBR | VAL_LAYER_FLASH)
159
160/* Value layer definitions for UBX-CFG-VALGET */
161#define VALGET_LAYER_RAM 0x00
162#define VALGET_LAYER_BBR 0x01
163#define VALGET_LAYER_FLASH 0x02
164
165/* Value size definitions */
166#define VAL_SIZE_1 0x01
167#define VAL_SIZE_8 0x02
168#define VAL_SIZE_16 0x03
169#define VAL_SIZE_32 0x04
170#define VAL_SIZE_64 0x05
171
172/* Protocol IDs */
173#define VAL_ID_PROT_UBX 0x01
174#define VAL_ID_PROT_NMEA 0x02
175#define VAL_ID_PROT_RTCM3 0x04
176
177#define VAL_GROUP_I2C 0x51
178#define VAL_GROUP_I2COUTPROT 0x72
179#define VAL_GROUP_UART1INPROT 0x73
180#define VAL_GROUP_UART1OUTPROT 0x74
181#define VAL_GROUP_UART2INPROT 0x75
182#define VAL_GROUP_UART2OUTPROT 0x76
183#define VAL_GROUP_USBINPROT 0x77
184#define VAL_GROUP_USBOUTPROT 0x78
185
186/* U-BLOX config keys */
187#define UBLOX_CFG_BDS_USE_PRN_1_TO_5 0x10340014
188
189/* CFG-GEOFENCE: Geofencing configuration */
190#define UBLOX_CFG_GEOFENCE_CONFLVL 0x20240011
191#define UBLOX_CFG_GEOFENCE_USE_PIO 0x10240012
192#define UBLOX_CFG_GEOFENCE_PINPOL 0x20240013
193#define UBLOX_CFG_GEOFENCE_PIN 0x20240014
194#define UBLOX_CFG_GEOFENCE_USE_FENCE1 0x10240020
195#define UBLOX_CFG_GEOFENCE_FENCE1_LAT 0x40240021
196#define UBLOX_CFG_GEOFENCE_FENCE1_LON 0x40240022
197#define UBLOX_CFG_GEOFENCE_FENCE1_RAD 0x40240023
198#define UBLOX_CFG_GEOFENCE_USE_FENCE2 0x10240030
199#define UBLOX_CFG_GEOFENCE_FENCE2_LAT 0x40240031
200#define UBLOX_CFG_GEOFENCE_FENCE2_LON 0x40240032
201#define UBLOX_CFG_GEOFENCE_FENCE2_RAD 0x40240033
202#define UBLOX_CFG_GEOFENCE_USE_FENCE3 0x10240040
203#define UBLOX_CFG_GEOFENCE_FENCE3_LAT 0x40240041
204#define UBLOX_CFG_GEOFENCE_FENCE3_LON 0x40240042
205#define UBLOX_CFG_GEOFENCE_FENCE3_RAD 0x40240043
206#define UBLOX_CFG_GEOFENCE_USE_FENCE4 0x10240050
207#define UBLOX_CFG_GEOFENCE_FENCE4_LAT 0x40240051
208#define UBLOX_CFG_GEOFENCE_FENCE4_LON 0x40240052
209#define UBLOX_CFG_GEOFENCE_FENCE4_RAD 0x40240053
210
211/* CFG-HW: Hardware configuration */
212#define UBLOX_CFG_HW_ANT_CFG_VOLTCTRL 0x10a3002e
213#define UBLOX_CFG_HW_ANT_CFG_SHORTDET 0x10a3002f
214#define UBLOX_CFG_HW_ANT_CFG_SHORTDET_POL 0x10a30030
215#define UBLOX_CFG_HW_ANT_CFG_OPENDET 0x10a30031
216#define UBLOX_CFG_HW_ANT_CFG_OPENDET_POL 0x10a30032
217#define UBLOX_CFG_HW_ANT_CFG_PWRDOWN 0x10a30033
218#define UBLOX_CFG_HW_ANT_CFG_PWRDOWN_POL 0x10a30034
219#define UBLOX_CFG_HW_ANT_CFG_RECOVER 0x10a30035
220#define UBLOX_CFG_HW_ANT_SUP_SWITCH_PIN 0x20a30036
221#define UBLOX_CFG_HW_ANT_SUP_SHORT_PIN 0x20a30037
222#define UBLOX_CFG_HW_ANT_SUP_OPEN_PIN 0x20a30038
223#define UBLOX_CFG_HW_ANT_ON_SHORT_US 0x30a3003c
224#define UBLOX_CFG_HW_SENS_WOM_MODE 0x20a30063
225#define UBLOX_CFG_HW_SENS_WOM_THLD 0x20a30064
226#define UBLOX_CFG_HW_ANT_SUP_ENGINE 0x20a30054
227#define UBLOX_CFG_HW_ANT_SUP_SHORT_THR 0x20a30055
228#define UBLOX_CFG_HW_ANT_SUP_OPEN_THR 0x20a30056
229
230/* CFG-I2C: Configuration of the I2C interface */
231#define UBLOX_CFG_I2C_ADDRESS 0x20510001
232#define UBLOX_CFG_I2C_EXTENDEDTIMEOUT 0x10510002
233#define UBLOX_CFG_I2C_ENABLED 0x10510003
234
235/* CFG-I2CINPROT: Input protocol configuration of the I2C interface */
236#define UBLOX_CFG_I2CINPROT_UBX 0x10710001
237#define UBLOX_CFG_I2CINPROT_NMEA 0x10710002
238#define UBLOX_CFG_I2CINPROT_RTCM3X 0x10710004
239#define UBLOX_CFG_I2CINPROT_SPARTN 0x10710005
240
241/* CFG-I2COUTPROT: Output protocol configuration of the I2C interface */
242#define UBLOX_CFG_I2COUTPROT_UBX 0x10720001
243#define UBLOX_CFG_I2COUTPROT_NMEA 0x10720002
244#define UBLOX_CFG_I2COUTPROT_RTCM3X 0x10720004
245
246/* CFG-INFMSG: Information message configuration */
247#define UBLOX_CFG_INFMSG_UBX_I2C 0x20920001
248#define UBLOX_CFG_INFMSG_UBX_UART1 0x20920002
249#define UBLOX_CFG_INFMSG_UBX_UART2 0x20920003
250#define UBLOX_CFG_INFMSG_UBX_USB 0x20920004
251#define UBLOX_CFG_INFMSG_UBX_SPI 0x20920005
252#define UBLOX_CFG_INFMSG_NMEA_I2C 0x20920006
253#define UBLOX_CFG_INFMSG_NMEA_UART1 0x20920007
254#define UBLOX_CFG_INFMSG_NMEA_UART2 0x20920008
255#define UBLOX_CFG_INFMSG_NMEA_USB 0x20920009
256#define UBLOX_CFG_INFMSG_NMEA_SPI 0x2092000a
257
258/* CFG-ITFM: Jamming and interference monitor configuration */
259#define UBLOX_CFG_ITFM_BBTHRESHOLD 0x20410001
260#define UBLOX_CFG_ITFM_CWTHRESHOLD 0x20410002
261#define UBLOX_CFG_ITFM_ENABLE 0x1041000d
262#define UBLOX_CFG_ITFM_ANTSETTING 0x20410010
263#define UBLOX_CFG_ITFM_ENABLE_AUX 0x10410013
264
265/* CFG-LOGFILTER: Data logger configuration */
266#define UBLOX_CFG_LOGFILTER_RECORD_ENA 0x10de0002
267#define UBLOX_CFG_LOGFILTER_APPLY_ALL_FILTERS 0x10de0004
268#define UBLOX_CFG_LOGFILTER_MIN_INTERVAL 0x30de0005
269#define UBLOX_CFG_LOGFILTER_TIME_THRS 0x30de0006
270#define UBLOX_CFG_LOGFILTER_SPEED_THRS 0x30de0007
271#define UBLOX_CFG_LOGFILTER_POSITION_THRS 0x40de0008
272
273/* CFG-MOT: Motion detector configuration */
274#define UBLOX_CFG_MOT_GNSSSPEED_THRS 0x20250038
275#define UBLOX_CFG_MOT_GNSSDIST_THRS 0x3025003b
276#define UBLOX_CFG_MOT_IMU_FILT_WINDOW 0x30250016
277
278/* CFG-MSGOUT: Message output configuration */
279/* For each message and port a separate output rate (per second, per epoch) can be configured. */
280#define UBLOX_CFG_MSGOUT_NMEA_ID_DTM_I2C 0x209100a6
281#define UBLOX_CFG_MSGOUT_NMEA_ID_DTM_SPI 0x209100aa
282#define UBLOX_CFG_MSGOUT_NMEA_ID_DTM_UART1 0x209100a7
283#define UBLOX_CFG_MSGOUT_NMEA_ID_DTM_UART2 0x209100a8
284#define UBLOX_CFG_MSGOUT_NMEA_ID_DTM_USB 0x209100a9
285#define UBLOX_CFG_MSGOUT_NMEA_ID_GBS_I2C 0x209100dd
286#define UBLOX_CFG_MSGOUT_NMEA_ID_GBS_SPI 0x209100e1
287#define UBLOX_CFG_MSGOUT_NMEA_ID_GBS_UART1 0x209100de
288#define UBLOX_CFG_MSGOUT_NMEA_ID_GBS_UART2 0x209100df
289#define UBLOX_CFG_MSGOUT_NMEA_ID_GBS_USB 0x209100e0
290#define UBLOX_CFG_MSGOUT_NMEA_ID_GGA_I2C 0x209100ba
291#define UBLOX_CFG_MSGOUT_NMEA_ID_GGA_SPI 0x209100be
292#define UBLOX_CFG_MSGOUT_NMEA_ID_GGA_UART1 0x209100bb
293#define UBLOX_CFG_MSGOUT_NMEA_ID_GGA_UART2 0x209100bc
294#define UBLOX_CFG_MSGOUT_NMEA_ID_GGA_USB 0x209100bd
295#define UBLOX_CFG_MSGOUT_NMEA_ID_GLL_I2C 0x209100c9
296#define UBLOX_CFG_MSGOUT_NMEA_ID_GLL_SPI 0x209100cd
297#define UBLOX_CFG_MSGOUT_NMEA_ID_GLL_UART1 0x209100ca
298#define UBLOX_CFG_MSGOUT_NMEA_ID_GLL_UART2 0x209100cb
299#define UBLOX_CFG_MSGOUT_NMEA_ID_GLL_USB 0x209100cc
300#define UBLOX_CFG_MSGOUT_NMEA_ID_GNS_I2C 0x209100b5
301#define UBLOX_CFG_MSGOUT_NMEA_ID_GNS_SPI 0x209100b9
302#define UBLOX_CFG_MSGOUT_NMEA_ID_GNS_UART1 0x209100b6
303#define UBLOX_CFG_MSGOUT_NMEA_ID_GNS_UART2 0x209100b7
304#define UBLOX_CFG_MSGOUT_NMEA_ID_GNS_USB 0x209100b8
305#define UBLOX_CFG_MSGOUT_NMEA_ID_GRS_I2C 0x209100ce
306#define UBLOX_CFG_MSGOUT_NMEA_ID_GRS_SPI 0x209100d2
307#define UBLOX_CFG_MSGOUT_NMEA_ID_GRS_UART1 0x209100cf
308#define UBLOX_CFG_MSGOUT_NMEA_ID_GRS_UART2 0x209100d0
309#define UBLOX_CFG_MSGOUT_NMEA_ID_GRS_USB 0x209100d1
310#define UBLOX_CFG_MSGOUT_NMEA_ID_GSA_I2C 0x209100bf
311#define UBLOX_CFG_MSGOUT_NMEA_ID_GSA_SPI 0x209100c3
312#define UBLOX_CFG_MSGOUT_NMEA_ID_GSA_UART1 0x209100c0
313#define UBLOX_CFG_MSGOUT_NMEA_ID_GSA_UART2 0x209100c1
314#define UBLOX_CFG_MSGOUT_NMEA_ID_GSA_USB 0x209100c2
315#define UBLOX_CFG_MSGOUT_NMEA_ID_GST_I2C 0x209100d3
316#define UBLOX_CFG_MSGOUT_NMEA_ID_GST_SPI 0x209100d7
317#define UBLOX_CFG_MSGOUT_NMEA_ID_GST_UART1 0x209100d4
318#define UBLOX_CFG_MSGOUT_NMEA_ID_GST_UART2 0x209100d5
319#define UBLOX_CFG_MSGOUT_NMEA_ID_GST_USB 0x209100d6
320#define UBLOX_CFG_MSGOUT_NMEA_ID_GSV_I2C 0x209100c4
321#define UBLOX_CFG_MSGOUT_NMEA_ID_GSV_SPI 0x209100c8
322#define UBLOX_CFG_MSGOUT_NMEA_ID_GSV_UART1 0x209100c5
323#define UBLOX_CFG_MSGOUT_NMEA_ID_GSV_UART2 0x209100c6
324#define UBLOX_CFG_MSGOUT_NMEA_ID_GSV_USB 0x209100c7
325#define UBLOX_CFG_MSGOUT_NMEA_ID_RLM_I2C 0x20910400
326#define UBLOX_CFG_MSGOUT_NMEA_ID_RLM_SPI 0x20910404
327#define UBLOX_CFG_MSGOUT_NMEA_ID_RLM_UART1 0x20910401
328#define UBLOX_CFG_MSGOUT_NMEA_ID_RLM_UART2 0x20910402
329#define UBLOX_CFG_MSGOUT_NMEA_ID_RLM_USB 0x20910403
330#define UBLOX_CFG_MSGOUT_NMEA_ID_RMC_I2C 0x209100ab
331#define UBLOX_CFG_MSGOUT_NMEA_ID_RMC_SPI 0x209100af
332#define UBLOX_CFG_MSGOUT_NMEA_ID_RMC_UART1 0x209100ac
333#define UBLOX_CFG_MSGOUT_NMEA_ID_RMC_UART2 0x209100ad
334#define UBLOX_CFG_MSGOUT_NMEA_ID_RMC_USB 0x209100ae
335#define UBLOX_CFG_MSGOUT_NMEA_ID_VLW_I2C 0x209100e7
336#define UBLOX_CFG_MSGOUT_NMEA_ID_VLW_SPI 0x209100eb
337#define UBLOX_CFG_MSGOUT_NMEA_ID_VLW_UART1 0x209100e8
338#define UBLOX_CFG_MSGOUT_NMEA_ID_VLW_UART2 0x209100e9
339#define UBLOX_CFG_MSGOUT_NMEA_ID_VLW_USB 0x209100ea
340#define UBLOX_CFG_MSGOUT_NMEA_ID_VTG_I2C 0x209100b0
341#define UBLOX_CFG_MSGOUT_NMEA_ID_VTG_SPI 0x209100b4
342#define UBLOX_CFG_MSGOUT_NMEA_ID_VTG_UART1 0x209100b1
343#define UBLOX_CFG_MSGOUT_NMEA_ID_VTG_UART2 0x209100b2
344#define UBLOX_CFG_MSGOUT_NMEA_ID_VTG_USB 0x209100b3
345#define UBLOX_CFG_MSGOUT_NMEA_ID_ZDA_I2C 0x209100d8
346#define UBLOX_CFG_MSGOUT_NMEA_ID_ZDA_SPI 0x209100dc
347#define UBLOX_CFG_MSGOUT_NMEA_ID_ZDA_UART1 0x209100d9
348#define UBLOX_CFG_MSGOUT_NMEA_ID_ZDA_UART2 . 0x209100da
349#define UBLOX_CFG_MSGOUT_NMEA_ID_ZDA_USB 0x209100db
350#define UBLOX_CFG_MSGOUT_PUBX_ID_POLYP_I2C 0x209100ec
351#define UBLOX_CFG_MSGOUT_PUBX_ID_POLYP_SPI 0x209100f0
352#define UBLOX_CFG_MSGOUT_PUBX_ID_POLYP_UART1 0x209100ed
353#define UBLOX_CFG_MSGOUT_PUBX_ID_POLYP_UART2 0x209100ee
354#define UBLOX_CFG_MSGOUT_PUBX_ID_POLYP_USB 0x209100ef
355#define UBLOX_CFG_MSGOUT_PUBX_ID_POLYS_I2C 0x209100f1
356#define UBLOX_CFG_MSGOUT_PUBX_ID_POLYS_SPI 0x209100f5
357#define UBLOX_CFG_MSGOUT_PUBX_ID_POLYS_UART1 0x209100f2
358#define UBLOX_CFG_MSGOUT_PUBX_ID_POLYS_UART2 0x209100f3
359#define UBLOX_CFG_MSGOUT_PUBX_ID_POLYS_USB 0x209100f4
360#define UBLOX_CFG_MSGOUT_PUBX_ID_POLYT_I2C 0x209100f6
361#define UBLOX_CFG_MSGOUT_PUBX_ID_POLYT_SPI 0x209100fa
362#define UBLOX_CFG_MSGOUT_PUBX_ID_POLYT_UART1 0x209100f7
363#define UBLOX_CFG_MSGOUT_PUBX_ID_POLYT_UART2 0x209100f8
364#define UBLOX_CFG_MSGOUT_PUBX_ID_POLYT_USB 0x209100f9
365#define UBLOX_CFG_MSGOUT_RTCM_3X_TYPE1005_I2C 0x209102bd
366#define UBLOX_CFG_MSGOUT_RTCM_3X_TYPE1005_SPI 0x209102c1
367#define UBLOX_CFG_MSGOUT_RTCM_3X_TYPE1005_UART1 0x209102be
368#define UBLOX_CFG_MSGOUT_RTCM_3X_TYPE1005_UART2 0x209102bf
369#define UBLOX_CFG_MSGOUT_RTCM_3X_TYPE1005_USB 0x209102c0
370#define UBLOX_CFG_MSGOUT_RTCM_3X_TYPE1074_I2C 0x2091035e
371#define UBLOX_CFG_MSGOUT_RTCM_3X_TYPE1074_SPI 0x20910362
372#define UBLOX_CFG_MSGOUT_RTCM_3X_TYPE1074_UART1 0x2091035f
373#define UBLOX_CFG_MSGOUT_RTCM_3X_TYPE1074_UART2 0x20910360
374#define UBLOX_CFG_MSGOUT_RTCM_3X_TYPE1074_USB 0x20910361
375#define UBLOX_CFG_MSGOUT_RTCM_3X_TYPE1077_I2C 0x209102cc
376#define UBLOX_CFG_MSGOUT_RTCM_3X_TYPE1077_SPI 0x209102d0
377#define UBLOX_CFG_MSGOUT_RTCM_3X_TYPE1077_UART1 0x209102cd
378#define UBLOX_CFG_MSGOUT_RTCM_3X_TYPE1077_UART2 0x209102ce
379#define UBLOX_CFG_MSGOUT_RTCM_3X_TYPE1077_USB 0x209102cf
380#define UBLOX_CFG_MSGOUT_RTCM_3X_TYPE1084_I2C 0x20910363
381#define UBLOX_CFG_MSGOUT_RTCM_3X_TYPE1084_SPI 0x20910367
382#define UBLOX_CFG_MSGOUT_RTCM_3X_TYPE1084_UART1 0x20910364
383#define UBLOX_CFG_MSGOUT_RTCM_3X_TYPE1084_UART2 0x20910365
384#define UBLOX_CFG_MSGOUT_RTCM_3X_TYPE1084_USB 0x20910366
385#define UBLOX_CFG_MSGOUT_RTCM_3X_TYPE1087_I2C 0x209102d1
386#define UBLOX_CFG_MSGOUT_RTCM_3X_TYPE1087_SPI 0x209102d5
387#define UBLOX_CFG_MSGOUT_RTCM_3X_TYPE1087_UART1 0x209102d2
388#define UBLOX_CFG_MSGOUT_RTCM_3X_TYPE1087_UART2 0x209102d3
389#define UBLOX_CFG_MSGOUT_RTCM_3X_TYPE1087_USB 0x209102d4
390#define UBLOX_CFG_MSGOUT_RTCM_3X_TYPE1094_I2C 0x20910368
391#define UBLOX_CFG_MSGOUT_RTCM_3X_TYPE1094_SPI 0x2091036c
392#define UBLOX_CFG_MSGOUT_RTCM_3X_TYPE1094_UART1 0x20910369
393#define UBLOX_CFG_MSGOUT_RTCM_3X_TYPE1094_UART2 0x2091036a
394#define UBLOX_CFG_MSGOUT_RTCM_3X_TYPE1094_USB 0x2091036b
395#define UBLOX_CFG_MSGOUT_RTCM_3X_TYPE1097_I2C 0x20910318
396#define UBLOX_CFG_MSGOUT_RTCM_3X_TYPE1097_SPI 0x2091031c
397#define UBLOX_CFG_MSGOUT_RTCM_3X_TYPE1097_UART1 0x20910319
398#define UBLOX_CFG_MSGOUT_RTCM_3X_TYPE1097_UART2 0x2091031a
399#define UBLOX_CFG_MSGOUT_RTCM_3X_TYPE1097_USB 0x2091031b
400#define UBLOX_CFG_MSGOUT_RTCM_3X_TYPE1124_I2C 0x2091036d
401#define UBLOX_CFG_MSGOUT_RTCM_3X_TYPE1124_SPI 0x20910371
402#define UBLOX_CFG_MSGOUT_RTCM_3X_TYPE1124_UART1 0x2091036e
403#define UBLOX_CFG_MSGOUT_RTCM_3X_TYPE1124_UART2 0x2091036f
404#define UBLOX_CFG_MSGOUT_RTCM_3X_TYPE1124_USB 0x20910370
405#define UBLOX_CFG_MSGOUT_RTCM_3X_TYPE1127_I2C 0x209102d6
406#define UBLOX_CFG_MSGOUT_RTCM_3X_TYPE1127_SPI 0x209102da
407#define UBLOX_CFG_MSGOUT_RTCM_3X_TYPE1127_UART1 0x209102d7
408#define UBLOX_CFG_MSGOUT_RTCM_3X_TYPE1127_UART2 0x209102d8
409#define UBLOX_CFG_MSGOUT_RTCM_3X_TYPE1127_USB 0x209102d9
410#define UBLOX_CFG_MSGOUT_RTCM_3X_TYPE1230_I2C 0x20910303
411#define UBLOX_CFG_MSGOUT_RTCM_3X_TYPE1230_SPI 0x20910307
412#define UBLOX_CFG_MSGOUT_RTCM_3X_TYPE1230_UART1 0x20910304
413#define UBLOX_CFG_MSGOUT_RTCM_3X_TYPE1230_UART2 0x20910305
414#define UBLOX_CFG_MSGOUT_RTCM_3X_TYPE1230_USB 0x20910306
415#define UBLOX_CFG_MSGOUT_RTCM_3X_TYPE4072_0_I2C 0x209102fe
416#define UBLOX_CFG_MSGOUT_RTCM_3X_TYPE4072_0_SPI 0x20910302
417#define UBLOX_CFG_MSGOUT_RTCM_3X_TYPE4072_0_UART1 0x209102ff
418#define UBLOX_CFG_MSGOUT_RTCM_3X_TYPE4072_0_UART2 0x20910300
419#define UBLOX_CFG_MSGOUT_RTCM_3X_TYPE4072_0_USB 0x20910301
420#define UBLOX_CFG_MSGOUT_RTCM_3X_TYPE4072_1_I2C 0x20910381
421#define UBLOX_CFG_MSGOUT_RTCM_3X_TYPE4072_1_SPI 0x20910385
422#define UBLOX_CFG_MSGOUT_RTCM_3X_TYPE4072_1_UART1 0x20910382
423#define UBLOX_CFG_MSGOUT_RTCM_3X_TYPE4072_1_UART2 0x20910383
424#define UBLOX_CFG_MSGOUT_RTCM_3X_TYPE4072_1_USB 0x20910384
425#define UBLOX_CFG_MSGOUT_UBX_LOG_INFO_I2C 0x20910259
426#define UBLOX_CFG_MSGOUT_UBX_LOG_INFO_SPI 0x2091025d
427#define UBLOX_CFG_MSGOUT_UBX_LOG_INFO_UART1 0x2091025a
428#define UBLOX_CFG_MSGOUT_UBX_LOG_INFO_UART2 0x2091025b
429#define UBLOX_CFG_MSGOUT_UBX_LOG_INFO_USB 0x2091025c
430#define UBLOX_CFG_MSGOUT_UBX_MON_COMMS_I2C 0x2091034f
431#define UBLOX_CFG_MSGOUT_UBX_MON_COMMS_SPI 0x20910353
432#define UBLOX_CFG_MSGOUT_UBX_MON_COMMS_UART1 0x20910350
433#define UBLOX_CFG_MSGOUT_UBX_MON_COMMS_UART2 0x20910351
434#define UBLOX_CFG_MSGOUT_UBX_MON_COMMS_USB 0x20910352
435#define UBLOX_CFG_MSGOUT_UBX_MON_HW2_I2C 0x209101b9
436#define UBLOX_CFG_MSGOUT_UBX_MON_HW2_SPI 0x209101bd
437#define UBLOX_CFG_MSGOUT_UBX_MON_HW2_UART1 0x209101ba
438#define UBLOX_CFG_MSGOUT_UBX_MON_HW2_UART2 0x209101bb
439#define UBLOX_CFG_MSGOUT_UBX_MON_HW2_USB 0x209101bc
440#define UBLOX_CFG_MSGOUT_UBX_MON_HW3_I2C 0x20910354
441#define UBLOX_CFG_MSGOUT_UBX_MON_HW3_SPI 0x20910358
442#define UBLOX_CFG_MSGOUT_UBX_MON_HW3_UART1 0x20910355
443#define UBLOX_CFG_MSGOUT_UBX_MON_HW3_UART2 0x20910356
444#define UBLOX_CFG_MSGOUT_UBX_MON_HW3_USB 0x20910357
445#define UBLOX_CFG_MSGOUT_UBX_MON_HW_I2C 0x209101b4
446#define UBLOX_CFG_MSGOUT_UBX_MON_HW_SPI 0x209101b8
447#define UBLOX_CFG_MSGOUT_UBX_MON_HW_UART1 0x209101b5
448#define UBLOX_CFG_MSGOUT_UBX_MON_HW_UART2 0x209101b6
449#define UBLOX_CFG_MSGOUT_UBX_MON_HW_USB 0x209101b7
450#define UBLOX_CFG_MSGOUT_UBX_MON_IO_I2C 0x209101a5
451#define UBLOX_CFG_MSGOUT_UBX_MON_IO_SPI 0x209101a9
452#define UBLOX_CFG_MSGOUT_UBX_MON_IO_UART1 0x209101a6
453#define UBLOX_CFG_MSGOUT_UBX_MON_IO_UART2 0x209101a7
454#define UBLOX_CFG_MSGOUT_UBX_MON_IO_USB 0x209101a8
455#define UBLOX_CFG_MSGOUT_UBX_MON_MSGPP_I2C 0x20910196
456#define UBLOX_CFG_MSGOUT_UBX_MON_MSGPP_SPI 0x2091019a
457#define UBLOX_CFG_MSGOUT_UBX_MON_MSGPP_UART1 0x20910197
458#define UBLOX_CFG_MSGOUT_UBX_MON_MSGPP_UART2 0x20910198
459#define UBLOX_CFG_MSGOUT_UBX_MON_MSGPP_USB 0x20910199
460#define UBLOX_CFG_MSGOUT_UBX_MON_RF_I2C 0x20910359
461#define UBLOX_CFG_MSGOUT_UBX_MON_RF_SPI 0x2091035d
462#define UBLOX_CFG_MSGOUT_UBX_MON_RF_UART1 0x2091035a
463#define UBLOX_CFG_MSGOUT_UBX_MON_RF_UART2 0x2091035b
464#define UBLOX_CFG_MSGOUT_UBX_MON_RF_USB 0x2091035c
465#define UBLOX_CFG_MSGOUT_UBX_MON_RXBUF_I2C 0x209101a0
466#define UBLOX_CFG_MSGOUT_UBX_MON_RXBUF_SPI 0x209101a4
467#define UBLOX_CFG_MSGOUT_UBX_MON_RXBUF_UART1 0x209101a1
468#define UBLOX_CFG_MSGOUT_UBX_MON_RXBUF_UART2 0x209101a2
469#define UBLOX_CFG_MSGOUT_UBX_MON_RXBUF_USB 0x209101a3
470#define UBLOX_CFG_MSGOUT_UBX_MON_RXR_I2C 0x20910187
471#define UBLOX_CFG_MSGOUT_UBX_MON_RXR_SPI 0x2091018b
472#define UBLOX_CFG_MSGOUT_UBX_MON_RXR_UART1 0x20910188
473#define UBLOX_CFG_MSGOUT_UBX_MON_RXR_UART2 0x20910189
474#define UBLOX_CFG_MSGOUT_UBX_MON_RXR_USB 0x2091018a
475#define UBLOX_CFG_MSGOUT_UBX_MON_SPAN_I2C 0x2091038b
476#define UBLOX_CFG_MSGOUT_UBX_MON_SPAN_SPI 0x2091038f
477#define UBLOX_CFG_MSGOUT_UBX_MON_SPAN_UART1 0x2091038c
478#define UBLOX_CFG_MSGOUT_UBX_MON_SPAN_UART2 0x2091038d
479#define UBLOX_CFG_MSGOUT_UBX_MON_SPAN_USB 0x2091038e
480#define UBLOX_CFG_MSGOUT_UBX_MON_SYS_I2C 0x2091069d
481#define UBLOX_CFG_MSGOUT_UBX_MON_SYS_SPI 0x209106a1
482#define UBLOX_CFG_MSGOUT_UBX_MON_SYS_UART1 0x2091069e
483#define UBLOX_CFG_MSGOUT_UBX_MON_SYS_UART2 0x2091069f
484#define UBLOX_CFG_MSGOUT_UBX_MON_SYS_USB 0x209106a0
485#define UBLOX_CFG_MSGOUT_UBX_MON_TXBUF_I2C 0x2091019b
486#define UBLOX_CFG_MSGOUT_UBX_MON_TXBUF_SPI 0x2091019f
487#define UBLOX_CFG_MSGOUT_UBX_MON_TXBUF_UART1 0x2091019c
488#define UBLOX_CFG_MSGOUT_UBX_MON_TXBUF_UART2 0x2091019d
489#define UBLOX_CFG_MSGOUT_UBX_MON_TXBUF_USB 0x2091019e
490#define UBLOX_CFG_MSGOUT_UBX_NAV_ATT_I2C 0x2091001f
491#define UBLOX_CFG_MSGOUT_UBX_NAV_ATT_SPI 0x20910023
492#define UBLOX_CFG_MSGOUT_UBX_NAV_ATT_UART1 0x20910020
493#define UBLOX_CFG_MSGOUT_UBX_NAV_ATT_UART2 0x20910021
494#define UBLOX_CFG_MSGOUT_UBX_NAV_ATT_USB 0x20910022
495#define UBLOX_CFG_MSGOUT_UBX_NAV_CLOCK_I2C 0x20910065
496#define UBLOX_CFG_MSGOUT_UBX_NAV_CLOCK_SPI 0x20910069
497#define UBLOX_CFG_MSGOUT_UBX_NAV_CLOCK_UART1 0x20910066
498#define UBLOX_CFG_MSGOUT_UBX_NAV_CLOCK_UART2 0x20910067
499#define UBLOX_CFG_MSGOUT_UBX_NAV_CLOCK_USB 0x20910068
500#define UBLOX_CFG_MSGOUT_UBX_NAV_DOP_I2C 0x20910038
501#define UBLOX_CFG_MSGOUT_UBX_NAV_DOP_SPI 0x2091003c
502#define UBLOX_CFG_MSGOUT_UBX_NAV_DOP_UART1 0x20910039
503#define UBLOX_CFG_MSGOUT_UBX_NAV_DOP_UART2 0x2091003a
504#define UBLOX_CFG_MSGOUT_UBX_NAV_DOP_USB 0x2091003b
505#define UBLOX_CFG_MSGOUT_UBX_NAV_EOE_I2C 0x2091015f
506#define UBLOX_CFG_MSGOUT_UBX_NAV_EOE_SPI 0x20910163
507#define UBLOX_CFG_MSGOUT_UBX_NAV_EOE_UART1 0x20910160
508#define UBLOX_CFG_MSGOUT_UBX_NAV_EOE_UART2 0x20910161
509#define UBLOX_CFG_MSGOUT_UBX_NAV_EOE_USB 0x20910162
510#define UBLOX_CFG_MSGOUT_UBX_NAV_GEOFENCE_I2C 0x209100a1
511#define UBLOX_CFG_MSGOUT_UBX_NAV_GEOFENCE_SPI 0x209100a5
512#define UBLOX_CFG_MSGOUT_UBX_NAV_GEOFENCE_UART1 0x209100a2
513#define UBLOX_CFG_MSGOUT_UBX_NAV_GEOFENCE_UART2 0x209100a3
514#define UBLOX_CFG_MSGOUT_UBX_NAV_GEOFENCE_USB 0x209100a4
515#define UBLOX_CFG_MSGOUT_UBX_NAV_HPPOSECEF_I2C 0x2091002e
516#define UBLOX_CFG_MSGOUT_UBX_NAV_HPPOSECEF_SPI 0x20910032
517#define UBLOX_CFG_MSGOUT_UBX_NAV_HPPOSECEF_UART1 0x2091002f
518#define UBLOX_CFG_MSGOUT_UBX_NAV_HPPOSECEF_UART2 0x20910030
519#define UBLOX_CFG_MSGOUT_UBX_NAV_HPPOSECEF_USB 0x20910031
520#define UBLOX_CFG_MSGOUT_UBX_NAV_HPPOSLLH_I2C 0x20910033
521#define UBLOX_CFG_MSGOUT_UBX_NAV_HPPOSLLH_SPI 0x20910037
522#define UBLOX_CFG_MSGOUT_UBX_NAV_HPPOSLLH_UART1 0x20910034
523#define UBLOX_CFG_MSGOUT_UBX_NAV_HPPOSLLH_UART2 0x20910035
524#define UBLOX_CFG_MSGOUT_UBX_NAV_HPPOSLLH_USB 0x20910036
525#define UBLOX_CFG_MSGOUT_UBX_NAV_ODO_I2C 0x2091007e
526#define UBLOX_CFG_MSGOUT_UBX_NAV_ODO_SPI 0x20910082
527#define UBLOX_CFG_MSGOUT_UBX_NAV_ODO_UART1 0x2091007f
528#define UBLOX_CFG_MSGOUT_UBX_NAV_ODO_UART2 0x20910080
529#define UBLOX_CFG_MSGOUT_UBX_NAV_ODO_USB 0x20910081
530#define UBLOX_CFG_MSGOUT_UBX_NAV_ORB_I2C 0x20910010
531#define UBLOX_CFG_MSGOUT_UBX_NAV_ORB_SPI 0x20910014
532#define UBLOX_CFG_MSGOUT_UBX_NAV_ORB_UART1 0x20910011
533#define UBLOX_CFG_MSGOUT_UBX_NAV_ORB_UART2 0x20910012
534#define UBLOX_CFG_MSGOUT_UBX_NAV_ORB_USB 0x20910013
535#define UBLOX_CFG_MSGOUT_UBX_NAV_PL_I2C 0x20910415
536#define UBLOX_CFG_MSGOUT_UBX_NAV_PL_SPI 0x20910419
537#define UBLOX_CFG_MSGOUT_UBX_NAV_PL_UART1 0x20910416
538#define UBLOX_CFG_MSGOUT_UBX_NAV_PL_UART2 0x20910417
539#define UBLOX_CFG_MSGOUT_UBX_NAV_PL_USB 0x20910418
540#define UBLOX_CFG_MSGOUT_UBX_NAV_POSECEF_I2C 0x20910024
541#define UBLOX_CFG_MSGOUT_UBX_NAV_POSECEF_SPI 0x20910028
542#define UBLOX_CFG_MSGOUT_UBX_NAV_POSECEF_UART1 0x20910025
543#define UBLOX_CFG_MSGOUT_UBX_NAV_POSECEF_UART2 0x20910026
544#define UBLOX_CFG_MSGOUT_UBX_NAV_POSECEF_USB 0x20910027
545#define UBLOX_CFG_MSGOUT_UBX_NAV_POSLLH_I2C 0x20910029
546#define UBLOX_CFG_MSGOUT_UBX_NAV_POSLLH_SPI 0x2091002d
547#define UBLOX_CFG_MSGOUT_UBX_NAV_POSLLH_UART1 0x2091002a
548#define UBLOX_CFG_MSGOUT_UBX_NAV_POSLLH_UART2 0x2091002b
549#define UBLOX_CFG_MSGOUT_UBX_NAV_POSLLH_USB 0x2091002c
550#define UBLOX_CFG_MSGOUT_UBX_NAV_PVT_I2C 0x20910006
551#define UBLOX_CFG_MSGOUT_UBX_NAV_PVT_SPI 0x2091000a
552#define UBLOX_CFG_MSGOUT_UBX_NAV_PVT_UART1 0x20910007
553#define UBLOX_CFG_MSGOUT_UBX_NAV_PVT_UART2 0x20910008
554#define UBLOX_CFG_MSGOUT_UBX_NAV_PVT_USB 0x20910009
555#define UBLOX_CFG_MSGOUT_UBX_NAV_RELPOSNED_I2C 0x2091008d
556#define UBLOX_CFG_MSGOUT_UBX_NAV_RELPOSNED_SPI 0x20910091
557#define UBLOX_CFG_MSGOUT_UBX_NAV_RELPOSNED_UART1 0x2091008e
558#define UBLOX_CFG_MSGOUT_UBX_NAV_RELPOSNED_UART2 0x2091008f
559#define UBLOX_CFG_MSGOUT_UBX_NAV_RELPOSNED_USB 0x20910090
560#define UBLOX_CFG_MSGOUT_UBX_NAV_SAT_I2C 0x20910015
561#define UBLOX_CFG_MSGOUT_UBX_NAV_SAT_SPI 0x20910019
562#define UBLOX_CFG_MSGOUT_UBX_NAV_SAT_UART1 0x20910016
563#define UBLOX_CFG_MSGOUT_UBX_NAV_SAT_UART2 0x20910017
564#define UBLOX_CFG_MSGOUT_UBX_NAV_SAT_USB 0x20910018
565#define UBLOX_CFG_MSGOUT_UBX_NAV_SBAS_I2C 0x2091006a
566#define UBLOX_CFG_MSGOUT_UBX_NAV_SBAS_SPI 0x2091006e
567#define UBLOX_CFG_MSGOUT_UBX_NAV_SBAS_UART1 0x2091006b
568#define UBLOX_CFG_MSGOUT_UBX_NAV_SBAS_UART2 0x2091006c
569#define UBLOX_CFG_MSGOUT_UBX_NAV_SBAS_USB 0x2091006d
570#define UBLOX_CFG_MSGOUT_UBX_NAV_SIG_I2C 0x20910345
571#define UBLOX_CFG_MSGOUT_UBX_NAV_SIG_SPI 0x20910349
572#define UBLOX_CFG_MSGOUT_UBX_NAV_SIG_UART1 0x20910346
573#define UBLOX_CFG_MSGOUT_UBX_NAV_SIG_UART2 0x20910347
574#define UBLOX_CFG_MSGOUT_UBX_NAV_SIG_USB 0x20910348
575#define UBLOX_CFG_MSGOUT_UBX_NAV_SLAS_I2C 0x20910336
576#define UBLOX_CFG_MSGOUT_UBX_NAV_SLAS_SPI 0x2091033a
577#define UBLOX_CFG_MSGOUT_UBX_NAV_SLAS_UART1 0x20910337
578#define UBLOX_CFG_MSGOUT_UBX_NAV_SLAS_UART2 0x20910338
579#define UBLOX_CFG_MSGOUT_UBX_NAV_SLAS_USB 0x20910339
580#define UBLOX_CFG_MSGOUT_UBX_NAV_STATUS_I2C 0x2091001a
581#define UBLOX_CFG_MSGOUT_UBX_NAV_STATUS_SPI 0x2091001e
582#define UBLOX_CFG_MSGOUT_UBX_NAV_STATUS_UART1 0x2091001b
583#define UBLOX_CFG_MSGOUT_UBX_NAV_STATUS_UART2 0x2091001c
584#define UBLOX_CFG_MSGOUT_UBX_NAV_STATUS_USB 0x2091001d
585#define UBLOX_CFG_MSGOUT_UBX_NAV_SVIN_I2C 0x20910088
586#define UBLOX_CFG_MSGOUT_UBX_NAV_SVIN_SPI 0x2091008c
587#define UBLOX_CFG_MSGOUT_UBX_NAV_SVIN_UART1 0x20910089
588#define UBLOX_CFG_MSGOUT_UBX_NAV_SVIN_UART2 0x2091008a
589#define UBLOX_CFG_MSGOUT_UBX_NAV_SVIN_USB 0x2091008b
590#define UBLOX_CFG_MSGOUT_UBX_NAV_TIMEBDS_I2C 0x20910051
591#define UBLOX_CFG_MSGOUT_UBX_NAV_TIMEBDS_SPI 0x20910055
592#define UBLOX_CFG_MSGOUT_UBX_NAV_TIMEBDS_UART1 0x20910052
593#define UBLOX_CFG_MSGOUT_UBX_NAV_TIMEBDS_UART2 0x20910053
594#define UBLOX_CFG_MSGOUT_UBX_NAV_TIMEBDS_USB 0x20910054
595#define UBLOX_CFG_MSGOUT_UBX_NAV_TIMEGAL_I2C 0x20910056
596#define UBLOX_CFG_MSGOUT_UBX_NAV_TIMEGAL_SPI 0x2091005a
597#define UBLOX_CFG_MSGOUT_UBX_NAV_TIMEGAL_UART1 0x20910057
598#define UBLOX_CFG_MSGOUT_UBX_NAV_TIMEGAL_UART2 0x20910058
599#define UBLOX_CFG_MSGOUT_UBX_NAV_TIMEGAL_USB 0x20910059
600#define UBLOX_CFG_MSGOUT_UBX_NAV_TIMEGLO_I2C 0x2091004c
601#define UBLOX_CFG_MSGOUT_UBX_NAV_TIMEGLO_SPI 0x20910050
602#define UBLOX_CFG_MSGOUT_UBX_NAV_TIMEGLO_UART1 0x2091004d
603#define UBLOX_CFG_MSGOUT_UBX_NAV_TIMEGLO_UART2 0x2091004e
604#define UBLOX_CFG_MSGOUT_UBX_NAV_TIMEGLO_USB 0x2091004f
605#define UBLOX_CFG_MSGOUT_UBX_NAV_TIMEGPS_I2C 0x20910047
606#define UBLOX_CFG_MSGOUT_UBX_NAV_TIMEGPS_SPI 0x2091004b
607#define UBLOX_CFG_MSGOUT_UBX_NAV_TIMEGPS_UART1 0x20910048
608#define UBLOX_CFG_MSGOUT_UBX_NAV_TIMEGPS_UART2 0x20910049
609#define UBLOX_CFG_MSGOUT_UBX_NAV_TIMEGPS_USB 0x2091004a
610#define UBLOX_CFG_MSGOUT_UBX_NAV_TIMELS_I2C 0x20910060
611#define UBLOX_CFG_MSGOUT_UBX_NAV_TIMELS_SPI 0x20910064
612#define UBLOX_CFG_MSGOUT_UBX_NAV_TIMELS_UART1 0x20910061
613#define UBLOX_CFG_MSGOUT_UBX_NAV_TIMELS_UART2 0x20910062
614#define UBLOX_CFG_MSGOUT_UBX_NAV_TIMELS_USB 0x20910063
615#define UBLOX_CFG_MSGOUT_UBX_NAV_TIMEQZSS_I2C 0x20910386
616#define UBLOX_CFG_MSGOUT_UBX_NAV_TIMEQZSS_SPI 0x2091038a
617#define UBLOX_CFG_MSGOUT_UBX_NAV_TIMEQZSS_UART1 0x20910387
618#define UBLOX_CFG_MSGOUT_UBX_NAV_TIMEQZSS_UART2 0x20910388
619#define UBLOX_CFG_MSGOUT_UBX_NAV_TIMEQZSS_USB 0x20910389
620#define UBLOX_CFG_MSGOUT_UBX_NAV_TIMEUTC_I2C 0x2091005b
621#define UBLOX_CFG_MSGOUT_UBX_NAV_TIMEUTC_SPI 0x2091005f
622#define UBLOX_CFG_MSGOUT_UBX_NAV_TIMEUTC_UART1 0x2091005c
623#define UBLOX_CFG_MSGOUT_UBX_NAV_TIMEUTC_UART2 0x2091005d
624#define UBLOX_CFG_MSGOUT_UBX_NAV_TIMEUTC_USB 0x2091005e
625#define UBLOX_CFG_MSGOUT_UBX_NAV_VELECEF_I2C 0x2091003d
626#define UBLOX_CFG_MSGOUT_UBX_NAV_VELECEF_SPI 0x20910041
627#define UBLOX_CFG_MSGOUT_UBX_NAV_VELECEF_UART1 0x2091003e
628#define UBLOX_CFG_MSGOUT_UBX_NAV_VELECEF_UART2 0x2091003f
629#define UBLOX_CFG_MSGOUT_UBX_NAV_VELECEF_USB 0x20910040
630#define UBLOX_CFG_MSGOUT_UBX_NAV_VELNED_I2C 0x20910042
631#define UBLOX_CFG_MSGOUT_UBX_NAV_VELNED_SPI 0x20910046
632#define UBLOX_CFG_MSGOUT_UBX_NAV_VELNED_UART1 0x20910043
633#define UBLOX_CFG_MSGOUT_UBX_NAV_VELNED_UART2 0x20910044
634#define UBLOX_CFG_MSGOUT_UBX_NAV_VELNED_USB 0x20910045
635#define UBLOX_CFG_MSGOUT_UBX_RXM_COR_I2C 0x209106b6
636#define UBLOX_CFG_MSGOUT_UBX_RXM_COR_SPI 0x209106ba
637#define UBLOX_CFG_MSGOUT_UBX_RXM_COR_UART1 0x209106b7
638#define UBLOX_CFG_MSGOUT_UBX_RXM_COR_UART2 0x209106b8
639#define UBLOX_CFG_MSGOUT_UBX_RXM_COR_USB 0x209106b9
640#define UBLOX_CFG_MSGOUT_UBX_RXM_MEASX_I2C 0x20910204
641#define UBLOX_CFG_MSGOUT_UBX_RXM_MEASX_SPI 0x20910208
642#define UBLOX_CFG_MSGOUT_UBX_RXM_MEASX_UART1 0x20910205
643#define UBLOX_CFG_MSGOUT_UBX_RXM_MEASX_UART2 0x20910206
644#define UBLOX_CFG_MSGOUT_UBX_RXM_MEASX_USB 0x20910207
645#define UBLOX_CFG_MSGOUT_UBX_RXM_RAWX_I2C 0x209102a4
646#define UBLOX_CFG_MSGOUT_UBX_RXM_RAWX_SPI 0x209102a8
647#define UBLOX_CFG_MSGOUT_UBX_RXM_RAWX_UART1 0x209102a5
648#define UBLOX_CFG_MSGOUT_UBX_RXM_RAWX_UART2 0x209102a6
649#define UBLOX_CFG_MSGOUT_UBX_RXM_RAWX_USB 0x209102a7
650#define UBLOX_CFG_MSGOUT_UBX_RXM_RLM_I2C 0x2091025e
651#define UBLOX_CFG_MSGOUT_UBX_RXM_RLM_SPI 0x20910262
652#define UBLOX_CFG_MSGOUT_UBX_RXM_RLM_UART1 0x2091025f
653#define UBLOX_CFG_MSGOUT_UBX_RXM_RLM_UART2 0x20910260
654#define UBLOX_CFG_MSGOUT_UBX_RXM_RLM_USB 0x20910261
655#define UBLOX_CFG_MSGOUT_UBX_RXM_RTCM_I2C 0x20910268
656#define UBLOX_CFG_MSGOUT_UBX_RXM_RTCM_SPI 0x2091026c
657#define UBLOX_CFG_MSGOUT_UBX_RXM_RTCM_UART1 0x20910269
658#define UBLOX_CFG_MSGOUT_UBX_RXM_RTCM_UART2 0x2091026a
659#define UBLOX_CFG_MSGOUT_UBX_RXM_RTCM_USB 0x2091026b
660#define UBLOX_CFG_MSGOUT_UBX_RXM_SFRBX_I2C 0x20910231
661#define UBLOX_CFG_MSGOUT_UBX_RXM_SFRBX_SPI 0x20910235
662#define UBLOX_CFG_MSGOUT_UBX_RXM_SFRBX_UART1 0x20910232
663#define UBLOX_CFG_MSGOUT_UBX_RXM_SFRBX_UART2 0x20910233
664#define UBLOX_CFG_MSGOUT_UBX_RXM_SFRBX_USB 0x20910234
665#define UBLOX_CFG_MSGOUT_UBX_RXM_SPARTN_I2C 0x20910605
666#define UBLOX_CFG_MSGOUT_UBX_RXM_SPARTN_UART1 0x20910606
667#define UBLOX_CFG_MSGOUT_UBX_RXM_SPARTN_UART2 0x20910607
668#define UBLOX_CFG_MSGOUT_UBX_RXM_SPARTN_USB 0x20910608
669#define UBLOX_CFG_MSGOUT_UBX_RXM_SPARTN_SPI 0x20910609
670#define UBLOX_CFG_MSGOUT_UBX_SEC_SIG_I2C 0x20910634
671#define UBLOX_CFG_MSGOUT_UBX_SEC_SIG_SPI 0x20910638
672#define UBLOX_CFG_MSGOUT_UBX_SEC_SIG_UART1 0x20910635
673#define UBLOX_CFG_MSGOUT_UBX_SEC_SIG_UART2 0x20910636
674#define UBLOX_CFG_MSGOUT_UBX_SEC_SIG_USB 0x20910637
675#define UBLOX_CFG_MSGOUT_UBX_TIM_TM2_I2C 0x20910178
676#define UBLOX_CFG_MSGOUT_UBX_TIM_TM2_SPI 0x2091017c
677#define UBLOX_CFG_MSGOUT_UBX_TIM_TM2_UART1 0x20910179
678#define UBLOX_CFG_MSGOUT_UBX_TIM_TM2_UART2 0x2091017a
679#define UBLOX_CFG_MSGOUT_UBX_TIM_TM2_USB 0x2091017b
680#define UBLOX_CFG_MSGOUT_UBX_TIM_TP_I2C 0x2091017d
681#define UBLOX_CFG_MSGOUT_UBX_TIM_TP_SPI 0x20910181
682#define UBLOX_CFG_MSGOUT_UBX_TIM_TP_UART1 0x2091017e
683#define UBLOX_CFG_MSGOUT_UBX_TIM_TP_UART2 0x2091017f
684#define UBLOX_CFG_MSGOUT_UBX_TIM_TP_USB 0x20910180
685#define UBLOX_CFG_MSGOUT_UBX_TIM_VRFY_I2C 0x20910092
686#define UBLOX_CFG_MSGOUT_UBX_TIM_VRFY_SPI 0x20910096
687#define UBLOX_CFG_MSGOUT_UBX_TIM_VRFY_UART1 0x20910093
688#define UBLOX_CFG_MSGOUT_UBX_TIM_VRFY_UART2 0x20910094
689#define UBLOX_CFG_MSGOUT_UBX_TIM_VRFY_USB 0x20910095
690
691/* CFG-NAV2: Secondary output configuration */
692#define UBLOX_CFG_NAV2_OUT_ENABLED 0x10170001
693#define UBLOX_CFG_NAV2_SBAS_USE_INTEGRITY 0x10170002
694
695/* CFG-NAVHPG: High precision navigation configuration */
696#define UBLOX_CFG_NAVHPG_DGNSSMODE 0x20140011
697
698/* CFG-NAVSPG: Standard precision navigation configuration */
699#define UBLOX_CFG_NAVSPG_FIXMODE 0x20110011
700#define UBLOX_CFG_NAVSPG_INIFIX3D 0x10110013
701#define UBLOX_CFG_NAVSPG_WKNROLLOVER 0x30110017
702#define UBLOX_CFG_NAVSPG_USE_PPP 0x10110019
703#define UBLOX_CFG_NAVSPG_UTCSTANDARD 0x2011001c
704#define UBLOX_CFG_NAVSPG_DYNMODEL 0x20110021
705#define UBLOX_CFG_NAVSPG_ACKAIDING 0x10110025
706#define UBLOX_CFG_NAVSPG_USE_USRDAT 0x10110061
707#define UBLOX_CFG_NAVSPG_USRDAT_MAJA 0x50110062
708#define UBLOX_CFG_NAVSPG_USRDAT_FLAT 0x50110063
709#define UBLOX_CFG_NAVSPG_USRDAT_DX 0x40110064
710#define UBLOX_CFG_NAVSPG_USRDAT_DY 0x40110065
711#define UBLOX_CFG_NAVSPG_USRDAT_DZ 0x40110066
712#define UBLOX_CFG_NAVSPG_USRDAT_ROTX 0x40110067
713#define UBLOX_CFG_NAVSPG_USRDAT_ROTY 0x40110068
714#define UBLOX_CFG_NAVSPG_USRDAT_ROTZ 0x40110069
715#define UBLOX_CFG_NAVSPG_USRDAT_SCALE 0x4011006a
716#define UBLOX_CFG_NAVSPG_INFIL_MINSVS 0x201100a1
717#define UBLOX_CFG_NAVSPG_INFIL_MAXSVS 0x201100a2
718#define UBLOX_CFG_NAVSPG_INFIL_MINCNO 0x201100a3
719#define UBLOX_CFG_NAVSPG_INFIL_MINELEV 0x201100a4
720#define UBLOX_CFG_NAVSPG_INFIL_NCNOTHRS 0x201100aa
721#define UBLOX_CFG_NAVSPG_INFIL_CNOTHRS 0x201100ab
722#define UBLOX_CFG_NAVSPG_OUTFIL_PDOP 0x301100b1
723#define UBLOX_CFG_NAVSPG_OUTFIL_TDOP 0x301100b2
724#define UBLOX_CFG_NAVSPG_OUTFIL_PACC 0x301100b3
725#define UBLOX_CFG_NAVSPG_OUTFIL_TACC 0x301100b4
726#define UBLOX_CFG_NAVSPG_OUTFIL_FACC 0x301100b5
727#define UBLOX_CFG_NAVSPG_CONSTR_ALT 0x401100c1
728#define UBLOX_CFG_NAVSPG_CONSTR_ALTVAR 0x401100c2
729#define UBLOX_CFG_NAVSPG_CONSTR_DGNSSTO 0x201100c4
730#define UBLOX_CFG_NAVSPG_SIGATTCOMP 0x201100d6
731#define UBLOX_CFG_NAVSPG_PL_ENA 0x101100d7
732
733/* CFG-NMEA: NMEA protocol configuration */
734#define UBLOX_CFG_NMEA_PROTVER 0x20930001
735#define UBLOX_CFG_NMEA_MAXSVS 0x20930002
736#define UBLOX_CFG_NMEA_COMPAT 0x10930003
737#define UBLOX_CFG_NMEA_CONSIDER 0x10930004
738#define UBLOX_CFG_NMEA_LIMIT82 0x10930005
739#define UBLOX_CFG_NMEA_HIGHPREC 0x10930006
740#define UBLOX_CFG_NMEA_SVNUMBERING 0x20930007
741#define UBLOX_CFG_NMEA_FILT_GPS 0x10930011
742#define UBLOX_CFG_NMEA_FILT_SBAS 0x10930012
743#define UBLOX_CFG_NMEA_FILT_GAL 0x10930013
744#define UBLOX_CFG_NMEA_FILT_QZSS 0x10930015
745#define UBLOX_CFG_NMEA_FILT_GLO 0x10930016
746#define UBLOX_CFG_NMEA_FILT_BDS 0x10930017
747#define UBLOX_CFG_NMEA_OUT_INVFIX 0x10930021
748#define UBLOX_CFG_NMEA_OUT_MSKFIX 0x10930022
749#define UBLOX_CFG_NMEA_OUT_INVTIME 0x10930023
750#define UBLOX_CFG_NMEA_OUT_INVDATE 0x10930024
751#define UBLOX_CFG_NMEA_OUT_ONLYGPS 0x10930025
752#define UBLOX_CFG_NMEA_OUT_FROZENCOG 0x10930026
753#define UBLOX_CFG_NMEA_MAINTALKERID 0x20930031
754#define UBLOX_CFG_NMEA_GSVTALKERID 0x20930032
755#define UBLOX_CFG_NMEA_BDSTALKERID 0x30930033
756
757/* CFG-ODO: Odometer and low-speed course over ground filter configuration */
758#define UBLOX_CFG_ODO_USE_ODO 0x10220001
759#define UBLOX_CFG_ODO_USE_COG 0x10220002
760#define UBLOX_CFG_ODO_OUTLPVEL 0x10220003
761#define UBLOX_CFG_ODO_OUTLPCOG 0x10220004
762#define UBLOX_CFG_ODO_PROFILE 0x20220005
763#define UBLOX_CFG_ODO_COGMAXSPEED 0x20220021
764#define UBLOX_CFG_ODO_COGMAXPOSACC 0x20220022
765#define UBLOX_CFG_ODO_VELLPGAIN 0x20220031
766#define UBLOX_CFG_ODO_COGLPGAIN 0x20220032
767
768/* CFG-QZSS: QZSS system configuration */
769#define UBLOX_CFG_QZSS_USE_SLAS_DGNSS 0x10370005
770#define UBLOX_CFG_QZSS_USE_SLAS_TESTMODE 0x10370006
771#define UBLOX_CFG_QZSS_USE_SLAS_RAIM_UNCORR 0x10370007
772#define UBLOX_CFG_QZSS_SLAS_MAX_BASELINE 0x30370008
773
774/* CFG-RATE: Navigation and measurement rate configuration */
775#define UBLOX_CFG_RATE_MEAS 0x30210001
776#define UBLOX_CFG_RATE_NAV 0x30210002
777#define UBLOX_CFG_RATE_TIMEREF 0x20210003
778#define UBLOX_CFG_RATE_NAV_PRIO 0x20210004
779
780/* CFG-RINV: Remote inventory configuration */
781#define UBLOX_CFG_RINV_DUMP 0x10c70001
782#define UBLOX_CFG_RINV_BINARY 0x10c70002
783#define UBLOX_CFG_RINV_DATA_SIZE 0x20c70003
784#define UBLOX_CFG_RINV_CHUNK0 0x50c70004
785#define UBLOX_CFG_RINV_CHUNK1 0x50c70005
786#define UBLOX_CFG_RINV_CHUNK2 0x50c70006
787#define UBLOX_CFG_RINV_CHUNK3 0x50c70007
788
789/* CFG-RTCM: RTCM protocol configuration */
790#define UBLOX_CFG_RTCM_DF003_OUT 0x30090001
791#define UBLOX_CFG_RTCM_DF003_IN 0x30090008
792#define UBLOX_CFG_RTCM_DF003_IN_FILTER 0x20090009
793
794/* CFG-SBAS: SBAS configuration */
795#define UBLOX_CFG_SBAS_USE_TESTMODE 0x10360002
796#define UBLOX_CFG_SBAS_USE_RANGING 0x10360003
797#define UBLOX_CFG_SBAS_USE_DIFFCORR 0x10360004
798#define UBLOX_CFG_SBAS_USE_INTEGRITY 0x10360005
799#define UBLOX_CFG_SBS_ACCEPT_NOT_IN_PRNMASK 0x30360008
800#define UBLOX_CFG_SBAS_USE_IONOONLY 0x10360007
801#define UBLOX_CFG_SBAS_PRNSCANMASK 0x50360006
802
803/* CFG-SIGNAL: Satellite systems (GNSS) signal configuration */
804#define UBLOX_CFG_SIGNAL_GPS_ENA 0x1031001f
805#define UBLOX_CFG_SIGNAL_GPS_L1CA_ENA 0x10310001
806#define UBLOX_CFG_SIGNAL_GPS_L5_ENA 0x10310004
807#define UBLOX_CFG_SIGNAL_GPS_L2C_ENA 0x10310003
808#define UBLOX_CFG_SIGNAL_SBAS_ENA 0x10310020
809#define UBLOX_CFG_SIGNAL_SBAS_L1CA_ENA 0x10310005
810#define UBLOX_CFG_SIGNAL_GAL_ENA 0x10310021
811#define UBLOX_CFG_SIGNAL_GAL_E1_ENA 0x10310007
812#define UBLOX_CFG_SIGNAL_GAL_E5A_ENA 0x10310009
813#define UBLOX_CFG_SIGNAL_GAL_E5B_ENA 0x1031000a
814#define UBLOX_CFG_SIGNAL_BDS_ENA 0x10310022
815#define UBLOX_CFG_SIGNAL_BDS_B1_ENA 0x1031000d
816#define UBLOX_CFG_SIGNAL_BDS_B1C_ENA 0x1031000f
817#define UBLOX_CFG_SIGNAL_BDS_B2A_ENA 0x10310028
818#define UBLOX_CFG_SIGNAL_BDS_B2_ENA 0x1031000e
819#define UBLOX_CFG_SIGNAL_QZSS_ENA 0x10310024
820#define UBLOX_CFG_SIGNAL_QZSS_L1CA_ENA 0x10310012
821#define UBLOX_CFG_SIGNAL_QZSS_L5_ENA 0x10310017
822#define UBLOX_CFG_SIGNAL_QZSS_L1S_ENA 0x10310014
823#define UBLOX_CFG_SIGNAL_QZSS_L2C_ENA 0x10310015
824#define UBLOX_CFG_SIGNAL_GLO_ENA 0x10310025
825#define UBLOX_CFG_SIGNAL_GLO_L1_ENA 0x10310018
826#define UBLOX_CFG_SIGNAL_GLO_L2_ENA 0x1031001a
827
828/* CFG-SPARTN: Configuration of the SPARTN interface */
829#define UBLOX_CFG_SPARTN_USE_SOURCE 0x20a70001
830
831/* CFG-SPI: Configuration of the SPI interface */
832#define UBLOX_CFG_SPI_MAXFF 0x20640001
833#define UBLOX_CFG_SPI_CPOLARITY 0x10640002
834#define UBLOX_CFG_SPI_CPHASE 0x10640003
835#define UBLOX_CFG_SPI_EXTENDEDTIMEOUT 0x10640005
836#define UBLOX_CFG_SPI_ENABLED 0x10640006
837
838/* CFG-SPIINPROT: Input protocol configuration of the SPI interface */
839#define UBLOX_CFG_SPIINPROT_UBX 0x10790001
840#define UBLOX_CFG_SPIINPROT_NMEA 0x10790002
841#define UBLOX_CFG_SPIINPROT_RTCM3X 0x10790004
842#define UBLOX_CFG_SPIINPROT_SPARTN 0x10790005
843
844/* CFG-SPIOUTPROT: Output protocol configuration of the SPI interface */
845#define UBLOX_CFG_SPIOUTPROT_UBX 0x107a0001
846#define UBLOX_CFG_SPIOUTPROT_NMEA 0x107a0002
847#define UBLOX_CFG_SPIOUTPROT_RTCM3X 0x107a0004
848
849/* CFG-TMODE: Time mode configuration */
850#define UBLOX_CFG_TMODE_MODE 0x20030001
851#define UBLOX_CFG_TMODE_POS_TYPE 0x20030002
852#define UBLOX_CFG_TMODE_ECEF_X 0x40030003
853#define UBLOX_CFG_TMODE_ECEF_Y 0x40030004
854#define UBLOX_CFG_TMODE_ECEF_Z 0x40030005
855#define UBLOX_CFG_TMODE_ECEF_X_HP 0x20030006
856#define UBLOX_CFG_TMODE_ECEF_Y_HP 0x20030007
857#define UBLOX_CFG_TMODE_ECEF_Z_HP 0x20030008
858#define UBLOX_CFG_TMODE_LAT 0x40030009
859#define UBLOX_CFG_TMODE_LON 0x4003000a
860#define UBLOX_CFG_TMODE_HEIGHT 0x4003000b
861#define UBLOX_CFG_TMODE_LAT_HP 0x2003000c
862#define UBLOX_CFG_TMODE_LON_HP 0x2003000d
863#define UBLOX_CFG_TMODE_HEIGHT_HP 0x2003000e
864#define UBLOX_CFG_TMODE_FIXED_POS_ACC 0x4003000f
865#define UBLOX_CFG_TMODE_SVIN_MIN_DUR 0x40030010
866#define UBLOX_CFG_TMODE_SVIN_ACC_LIMIT 0x40030011
867
868/* CFG-TP: Timepulse configuration */
869#define UBLOX_CFG_TP_PULSE_DEF 0x20050023
870#define UBLOX_CFG_TP_PULSE_LENGTH_DEF 0x20050030
871#define UBLOX_CFG_TP_ANT_CABLEDELAY 0x30050001
872#define UBLOX_CFG_TP_PERIOD_TP1 0x40050002
873#define UBLOX_CFG_TP_PERIOD_LOCK_TP1 0x40050003
874#define UBLOX_CFG_TP_FREQ_TP1 0x40050024
875#define UBLOX_CFG_TP_FREQ_LOCK_TP1 0x40050025
876#define UBLOX_CFG_TP_LEN_TP1 0x40050004
877#define UBLOX_CFG_TP_LEN_LOCK_TP1 0x40050005
878#define UBLOX_CFG_TP_DUTY_TP1 0x5005002a
879#define UBLOX_CFG_TP_DUTY_LOCK_TP1 0x5005002b
880#define UBLOX_CFG_TP_USER_DELAY_TP1 0x40050006
881#define UBLOX_CFG_TP_TP1_ENA 0x10050007
882#define UBLOX_CFG_TP_SYNC_GNSS_TP1 0x10050008
883#define UBLOX_CFG_TP_USE_LOCKED_TP1 0x10050009
884#define UBLOX_CFG_TP_ALIGN_TO_TOW_TP1 0x1005000a
885#define UBLOX_CFG_TP_POL_TP1 0x1005000b
886#define UBLOX_CFG_TP_TIMEGRID_TP1 0x2005000c
887#define UBLOX_CFG_TP_PERIOD_TP2 0x4005000d
888#define UBLOX_CFG_TP_PERIOD_LOCK_TP2 0x4005000e
889#define UBLOX_CFG_TP_FREQ_TP2 0x40050026
890#define UBLOX_CFG_TP_FREQ_LOCK_TP2 0x40050027
891#define UBLOX_CFG_TP_LEN_TP2 0x4005000f
892#define UBLOX_CFG_TP_LEN_LOCK_TP2 0x40050010
893#define UBLOX_CFG_TP_DUTY_TP2 0x5005002c
894#define UBLOX_CFG_TP_DUTY_LOCK_TP2 0x5005002d
895#define UBLOX_CFG_TP_USER_DELAY_TP2 0x40050011
896#define UBLOX_CFG_TP_TP2_ENA 0x10050012
897#define UBLOX_CFG_TP_SYNC_GNSS_TP2 0x10050013
898#define UBLOX_CFG_TP_USE_LOCKED_TP2 0x10050014
899#define UBLOX_CFG_TP_ALIGN_TO_TOW_TP2 0x10050015
900#define UBLOX_CFG_TP_POL_TP2 0x10050016
901#define UBLOX_CFG_TP_TIMEGRID_TP2 0x20050017
902#define UBLOX_CFG_TP_DRSTR_TP1 0x20050035
903#define UBLOX_CFG_TP_DRSTR_TP2 0x20050036
904
905/* CFG-TXREADY: TX ready configuration */
906#define UBLOX_CFG_TXREADY_ENABLED 0x10a20001
907#define UBLOX_CFG_TXREADY_POLARITY 0x10a20002
908#define UBLOX_CFG_TXREADY_PIN 0x20a20003
909#define UBLOX_CFG_TXREADY_THRESHOLD 0x30a20004
910#define UBLOX_CFG_TXREADY_INTERFACE 0x20a20005
911
912/* CFG-UART1: Configuration of the UART1 interface */
913#define UBLOX_CFG_UART1_BAUDRATE 0x40520001
914#define UBLOX_CFG_UART1_STOPBITS 0x20520002
915#define UBLOX_CFG_UART1_DATABITS 0x20520003
916#define UBLOX_CFG_UART1_PARITY 0x20520004
917#define UBLOX_CFG_UART1_ENABLED 0x10520005
918
919/* CFG-UART1INPROT: Input protocol configuration of the UART1 interface */
920#define UBLOX_CFG_UART1INPROT_UBX 0x10730001
921#define UBLOX_CFG_UART1INPROT_NMEA 0x10730002
922#define UBLOX_CFG_UART1INPROT_RTCM3X 0x10730004
923#define UBLOX_CFG_UART1INPROT_SPARTN 0x10730005
924
925/* CFG-UART1OUTPROT: Output protocol configuration of the UART1 interface */
926#define UBLOX_CFG_UART1OUTPROT_UBX 0x10740001
927#define UBLOX_CFG_UART1OUTPROT_NMEA 0x10740002
928#define UBLOX_CFG_UART1OUTPROT_RTCM3X 0x10740004
929
930/* CFG-UART2: Configuration of the UART2 interface */
931#define UBLOX_CFG_UART2_BAUDRATE 0x40530001
932#define UBLOX_CFG_UART2_STOPBITS 0x20530002
933#define UBLOX_CFG_UART2_DATABITS 0x20530003
934#define UBLOX_CFG_UART2_PARITY 0x20530004
935#define UBLOX_CFG_UART2_ENABLED 0x10530005
936#define UBLOX_CFG_UART2_REMAP 0x10530006
937
938/* CFG-UART2INPROT: Input protocol configuration of the UART2 interface */
939#define UBLOX_CFG_UART2INPROT_UBX 0x10750001
940#define UBLOX_CFG_UART2INPROT_NMEA 0x10750002
941#define UBLOX_CFG_UART2INPROT_RTCM3X 0x10750004
942#define UBLOX_CFG_UART2INPROT_SPARTN 0x10750005
943
944/* CFG-UART2OUTPROT: Output protocol configuration of the UART2 interface */
945#define UBLOX_CFG_UART2OUTPROT_UBX 0x10760001
946#define UBLOX_CFG_UART2OUTPROT_NMEA 0x10760002
947#define UBLOX_CFG_UART2OUTPROT_RTCM3X 0x10760004
948
949/* CFG-USB: Configuration of the USB interface */
950#define UBLOX_CFG_USB_ENABLED 0x10650001
951#define UBLOX_CFG_USB_SELFPOW 0x10650002
952#define UBLOX_CFG_USB_VENDOR_ID 0x3065000a
953#define UBLOX_CFG_USB_PRODUCT_ID 0x3065000b
954#define UBLOX_CFG_USB_POWER 0x3065000c
955#define UBLOX_CFG_USB_VENDOR_STR0 0x5065000d
956#define UBLOX_CFG_USB_VENDOR_STR1 0x5065000e
957#define UBLOX_CFG_USB_VENDOR_STR2 0x5065000f
958#define UBLOX_CFG_USB_VENDOR_STR3 0x50650010
959#define UBLOX_CFG_USB_PRODUCT_STR0 0x50650011
960#define UBLOX_CFG_USB_PRODUCT_STR1 0x50650012
961#define UBLOX_CFG_USB_PRODUCT_STR2 0x50650013
962#define UBLOX_CFG_USB_PRODUCT_STR3 0x50650014
963#define UBLOX_CFG_USB_SERIAL_NO_STR0 0x50650015
964#define UBLOX_CFG_USB_SERIAL_NO_STR1 0x50650016
965#define UBLOX_CFG_USB_SERIAL_NO_STR2 0x50650017
966#define UBLOX_CFG_USB_SERIAL_NO_STR3 0x50650018
967
968/* CFG-USBINPROT: Input protocol configuration of the USB interface */
969#define UBLOX_CFG_USBINPROT_UBX 0x10770001
970#define UBLOX_CFG_USBINPROT_NMEA 0x10770002
971#define UBLOX_CFG_USBINPROT_RTCM3X 0x10770004
972#define UBLOX_CFG_USBINPROT_SPARTN 0x10770005
973
974/* CFG-USBOUTPROT: Output protocol configuration of the USB interface */
975#define UBLOX_CFG_USBOUTPROT_UBX 0x10780001
976#define UBLOX_CFG_USBOUTPROT_NMEA 0x10780002
977#define UBLOX_CFG_USBOUTPROT_RTCM3X 0x10780004
978
979/* Some key UBX configuration keys */
980#define UBLOX_CFG_UART1INPROT_UBX 0x10730001
981#define UBLOX_CFG_UART1INPROT_NMEA 0x10730002
982#define UBLOX_CFG_UART1INPROT_RTCM3X 0x10730004
983#define UBLOX_CFG_UART1OUTPROT_UBX 0x10740001
984#define UBLOX_CFG_UART1OUTPROT_NMEA 0x10740002
985#define UBLOX_CFG_UART1OUTPROT_RTCM3X 0x10740004
986
987#define UBLOX_CFG_UART2INPROT_UBX 0x10750001
988#define UBLOX_CFG_UART2INPROT_NMEA 0x10750002
989#define UBLOX_CFG_UART2INPROT_RTCM3X 0x10750004
990#define UBLOX_CFG_UART2OUTPROT_UBX 0x10760001
991#define UBLOX_CFG_UART2OUTPROT_NMEA 0x10760002
992#define UBLOX_CFG_UART2OUTPROT_RTCM3X 0x10760004
993
994/* CFG-USBINPROT: Input protocol configuration of the USB interface */
995#define UBLOX_CFG_USBINPROT_UBX 0x10770001
996#define UBLOX_CFG_USBINPROT_NMEA 0x10770002
997#define UBLOX_CFG_USBINPROT_RTCM3X 0x10770004
998#define UBLOX_CFG_USBINPROT_SPARTN 0x10770005
999
1000/* CFG-USBOUTPROT: Output protocol configuration of the USB interface */
1001#define UBLOX_CFG_USBOUTPROT_UBX 0x10780001
1002#define UBLOX_CFG_USBOUTPROT_NMEA 0x10780002
1003#define UBLOX_CFG_USBOUTPROT_RTCM3X 0x10780004
1004
1005#define UBLOX_CFG_MSGOUT_NAV_PVT_UART1 0x20910006
1006#define UBLOX_CFG_MSGOUT_NAV_TIMEUTC_UART1 0x2091005c
1007
1008/* Maximum packet sizes */
1009#define UBX_MAX_PACKET_SIZE 1024
1010#define UBX_HEADER_SIZE 6
1011#define UBX_CHECKSUM_SIZE 2
1012
1013/* ENABLE and DISABLE */
1014#define ENABLE 1u
1015#define DISABLE 0u
1016
1017/* Configuration save/load/clear masks */
1018#define UBLOX_SAVE_TO_FLASH 0x04
1019#define UBLOX_SAVE_TO_BBR 0x02
1020#define UBLOX_SAVE_TO_RAM 0x01
1021#define UBLOX_LOAD_FROM_FLASH 0x04
1022#define UBLOX_LOAD_FROM_BBR 0x02
1023#define UBLOX_CLEAR_ALL_LAYERS 0x07
1024
1025/* NMEA command templates */
1026#define NMEA_MAX_CMD_SIZE 100
1027
1028/* Time puls period 1 sec in us */
1029#define S_TO_US 1000000
1030/* Time puls length 1 ms in us */
1031#define MS_TO_US 1000
1032
1047
1060
1067 uint8_t sync1;
1069 uint8_t sync2;
1071 uint8_t cls;
1073 uint8_t id;
1075 uint16_t length;
1077 uint8_t *payload;
1079 uint8_t checksumA;
1081 uint8_t checksumB;
1082};
1083
1090 uint32_t iTOW;
1092 uint16_t year;
1094 uint8_t month;
1096 uint8_t day;
1098 uint8_t hour;
1100 uint8_t min;
1102 uint8_t sec;
1104 uint8_t valid;
1106 uint32_t tAcc;
1108 int32_t nano;
1110 uint8_t fixType;
1112 uint8_t flags;
1114 uint8_t flags2;
1116 uint8_t numSV;
1118 int32_t lon;
1120 int32_t lat;
1122 int32_t height;
1124 int32_t hMSL;
1126 uint32_t hAcc;
1128 uint32_t vAcc;
1130 int32_t velN;
1132 int32_t velE;
1134 int32_t velD;
1136 int32_t gSpeed;
1138 int32_t headMot;
1140 uint32_t sAcc;
1142 uint32_t headAcc;
1144 uint16_t pDOP;
1146 uint16_t flags3;
1148 uint8_t reserved0;
1150 uint8_t reserved1;
1152 uint8_t reserved2;
1154 uint8_t reserved3;
1156 int32_t headVeh;
1158 int16_t magDec;
1160 uint16_t magAcc;
1161};
1162
1169 uint32_t iTOW;
1171 uint32_t tAcc;
1173 int32_t nano;
1175 uint16_t year;
1177 uint8_t month;
1179 uint8_t day;
1181 uint8_t hour;
1183 uint8_t min;
1185 uint8_t sec;
1187 uint8_t valid;
1188};
1189
1196 uint32_t unix_epoch;
1208 uint16_t year;
1210 uint8_t month;
1212 uint8_t day;
1214 uint8_t hour;
1216 uint8_t minute;
1218 uint8_t second;
1219};
1220
1227 uint8_t hour;
1229 uint8_t minute;
1231 uint8_t second;
1235 uint8_t day;
1237 uint8_t month;
1239 uint16_t year;
1245 uint32_t unix_epoch;
1246};
1247
1270
1281
1292
1329
1372
1373/* Initialize the GNSS device and configure communication. */
1374int gnss_init(struct gnss_dev **device,
1376
1377/* Free the resources allocated by gnss_init(). */
1378int gnss_remove(struct gnss_dev *dev);
1379
1380/* Read raw data from the GNSS device. */
1381int gnss_read(struct gnss_dev *dev, uint8_t *data, uint16_t size);
1382
1383/* Write raw data to the GNSS device. */
1384int gnss_write(struct gnss_dev *dev, uint8_t *data, uint16_t size);
1385
1386/* Reset the device using hardware reset pin. */
1387int gnss_hw_reset(struct gnss_dev *dev);
1388
1389/* Reset the UBX-capable device using software reset command. */
1390int gnss_ubx_sw_reset(struct gnss_dev *dev);
1391
1392/* Send UBX binary protocol packet to device. */
1393int gnss_ubx_send_packet(struct gnss_dev *dev, uint8_t cls,
1394 uint8_t id, uint8_t *payload, uint16_t length);
1395
1396/* Receive UBX binary protocol packet from device. */
1397int gnss_ubx_receive_packet(struct gnss_dev *dev,
1398 struct gnss_ubx_packet *packet);
1399
1400/* Calculate UBX packet checksum. */
1401void gnss_calculate_checksum(uint8_t *data, uint16_t length,
1402 uint8_t *checksumA, uint8_t *checksumB);
1403
1404/* Verify UBX packet checksum. */
1405int gnss_verify_checksum(uint8_t *data, uint16_t length,
1406 uint8_t checksumA, uint8_t checksumB);
1407
1408/* Wait for UBX command acknowledgment with timeout. */
1409int gnss_ubx_wait_for_ack(struct gnss_dev *dev, uint8_t cls, uint8_t id);
1410
1411
1412/* Set UBX configuration value without waiting for acknowledgment. */
1413int gnss_ubx_set_val_no_ack(struct gnss_dev *dev, uint32_t key_id,
1414 uint64_t value, uint8_t value_size, uint8_t layer);
1415
1416/* Set UBX configuration value and wait for acknowledgment. */
1417int gnss_ubx_set_val(struct gnss_dev *dev, uint32_t key_id,
1418 uint64_t value, uint8_t value_size, uint8_t layer);
1419
1420
1421/* Get UBX configuration value by key. */
1422int gnss_ubx_get_val(struct gnss_dev *dev, uint32_t key_id,
1423 uint64_t *value, uint8_t value_size, uint8_t layer);
1424
1425/* Clear save load configuration from flash/BBR. */
1426int gnss_ubx_clr_save_load_config(struct gnss_dev *dev, uint8_t mask);
1427
1428/* Configure input protocol on UART1 */
1430 enum gnss_protocol protocol,
1431 uint8_t enable, uint8_t layer);
1432
1433/* Configure output protocol on UART1 */
1435 enum gnss_protocol protocol,
1436 uint8_t enable, uint8_t layer);
1437
1438/* Configure output protocol on USB */
1440 enum gnss_protocol protocol,
1441 uint8_t enable, uint8_t layer);
1442
1443/* Configure input protocol on UART2 */
1445 enum gnss_protocol protocol,
1446 uint8_t enable, uint8_t layer);
1447
1448/* Configure output protocol on UART2 */
1450 enum gnss_protocol protocol,
1451 uint8_t enable, uint8_t layer);
1452
1453/* Configure UBX device baudrate via UBX commands. */
1455 uint32_t baudrate);
1456
1457/* Poll navigation data (NAV-PVT) */
1458int gnss_ubx_poll_nav_pvt(struct gnss_dev *dev,
1459 struct gnss_ubx_nav_pvt *nav_data);
1460
1461/* Poll time data (NAV-TIMEUTC) */
1462int gnss_ubx_poll_nav_timeutc(struct gnss_dev *dev,
1463 struct gnss_ubx_nav_timeutc *time_data);
1464
1465/* Get latest navigation data */
1466int gnss_get_nav_data(struct gnss_dev *dev,
1467 struct gnss_ubx_nav_pvt *nav_data);
1468
1469/* Get latest time data */
1470int gnss_get_time_data(struct gnss_dev *dev,
1471 struct gnss_ubx_nav_timeutc *time_data);
1472
1473/* Convert coordinates from 1e-7 degrees to float degrees */
1474float gnss_coord_to_degrees(int32_t coord);
1475
1476/* Convert velocity from cm/s to m/s */
1477float gnss_velocity_to_ms(int32_t vel);
1478
1479/* Convert time accuracy from ns to ms */
1480float gnss_time_acc_to_ms(uint32_t acc);
1481
1482/* Convert position accuracy from mm to m */
1483float gnss_pos_acc_to_m(uint32_t acc);
1484
1485/* Get nanosecond fraction of current time from NAV-PVT data */
1486int32_t gnss_ubx_get_nanoseconds(struct gnss_dev *dev);
1487
1488/* Check if the current time is valid */
1489int gnss_ubx_get_time_valid(struct gnss_dev *dev, bool *valid);
1490
1491/* Check if the current time is fully resolved */
1492int gnss_ubx_get_time_fully_resolved(struct gnss_dev *dev, bool *resolved);
1493
1494/* Calculate Unix epoch from date/time components */
1495uint32_t gnss_calculate_unix_epoch(uint16_t year, uint8_t month,
1496 uint8_t day, uint8_t hour,
1497 uint8_t minute, uint8_t second);
1498
1499/* Get Unix epoch time with microsecond precision */
1501 uint32_t *epoch, uint32_t *microseconds);
1502
1503/* Get comprehensive precise time information */
1504int gnss_ubx_get_precise_time(struct gnss_dev *dev,
1505 struct gnss_precise_time *precise_time);
1506
1507/* Configure time pulse output for PPS (Pulse Per Second) */
1509 bool enable);
1510
1511/* Configure PPS output with optimal settings for timing sync */
1512int gnss_init_pps(struct gnss_dev *dev, bool enable);
1513
1514/* Check if time pulse is currently enabled */
1515int gnss_ubx_is_time_pulse_enabled(struct gnss_dev *dev, bool *enabled);
1516
1517/* Send NMEA command to enable UBX protocol */
1519
1520/* Calculate NMEA checksum */
1521uint8_t gnss_nmea_checksum(const char *data);
1522
1523/* Build PUBX command string programmatically */
1524int gnss_ubx_build_pubx_config(char *cmd_buffer, size_t cmd_buffer_size,
1525 uint8_t msgid, uint8_t port, uint16_t inprot,
1526 uint16_t outprot, uint32_t baudrate, uint8_t autobaud);
1527
1528/* Configure NMEA-only device for timing operation */
1529int gnss_configure_nmea_device(struct gnss_dev *dev,
1530 uint32_t baudrate, uint8_t message_rate_hz);
1531
1532/*Configure baudrate via standard NMEA command for NMEA-only devices */
1534 uint32_t baudrate);
1535
1536/* Enable GPRMC message and disable others for clean timing via NMEA commands */
1538 uint8_t rate_hz);
1539
1540/* Refresh timing data from device (unified API for both UBX and NMEA devices) */
1541int gnss_refresh_timing_data(struct gnss_dev *dev);
1542
1543/* Get comprehensive timing information (unified API for both device types) */
1544int gnss_get_unified_timing(struct gnss_dev *dev,
1545 struct gnss_precise_time *precise_time);
1546
1547/* Check if timing data is valid (unified API for both device types) */
1548int gnss_is_timing_valid(struct gnss_dev *dev, bool *valid);
1549
1550/* Get Unix epoch time with best available precision (unified API) */
1552 uint32_t *epoch, uint32_t *fractional_seconds);
1553
1554/* Parse GPGGA sentence for position and fix information */
1555int gnss_parse_gpgga_sentence(const char *sentence,
1556 struct gnss_nmea_position *position_data);
1557
1558/* Get GPS fix quality and position data (NMEA-only devices) */
1560 struct gnss_nmea_position *position_data);
1561
1562#endif /* __NMEA_UBX_H__ */
struct ad7616_init_param init_param
Definition ad7616_sdz.c:109
Error macro definition for ARM Compiler.
device_type
Definition ltc2312.h:66
int gnss_ubx_receive_packet(struct gnss_dev *dev, struct gnss_ubx_packet *packet)
UBX packet receive.
Definition nmea_ubx.c:401
int gnss_init_pps(struct gnss_dev *dev, bool enable)
Configure PPS output with optimal settings for timing sync.
Definition nmea_ubx.c:1478
int gnss_parse_gpgga_sentence(const char *sentence, struct gnss_nmea_position *position_data)
Parse GPGGA sentence for position and fix information.
Definition nmea_ubx.c:2289
nmea_constellation_support
NMEA constellation support for NMEA-only devices.
Definition nmea_ubx.h:1286
@ NMEA_GNSS_MULTI
Definition nmea_ubx.h:1290
@ NMEA_GPS_ONLY
Definition nmea_ubx.h:1288
int gnss_ubx_wait_for_ack(struct gnss_dev *dev, uint8_t cls, uint8_t id)
Wait for ACK/NAK.
Definition nmea_ubx.c:493
float gnss_velocity_to_ms(int32_t vel)
Convert velocity from cm/s to m/s.
Definition nmea_ubx.c:1181
int gnss_ubx_build_pubx_config(char *cmd_buffer, size_t cmd_buffer_size, uint8_t msgid, uint8_t port, uint16_t inprot, uint16_t outprot, uint32_t baudrate, uint8_t autobaud)
int gnss_verify_checksum(uint8_t *data, uint16_t length, uint8_t checksumA, uint8_t checksumB)
Verify UBX checksum.
Definition nmea_ubx.c:82
int gnss_get_nav_data(struct gnss_dev *dev, struct gnss_ubx_nav_pvt *nav_data)
Get latest navigation data.
Definition nmea_ubx.c:1140
int gnss_ubx_set_val_no_ack(struct gnss_dev *dev, uint32_t key_id, uint64_t value, uint8_t value_size, uint8_t layer)
Set configuration value by key (no ACK version)
Definition nmea_ubx.c:539
uint32_t gnss_calculate_unix_epoch(uint16_t year, uint8_t month, uint8_t day, uint8_t hour, uint8_t minute, uint8_t second)
Calculate Unix epoch from date/time components.
Definition nmea_ubx.c:1263
int gnss_is_timing_valid(struct gnss_dev *dev, bool *valid)
Check if timing data is valid (unified API for both device types)
Definition nmea_ubx.c:2209
float gnss_coord_to_degrees(int32_t coord)
Convert coordinates from 1e-7 degrees to float degrees.
Definition nmea_ubx.c:1171
int gnss_ubx_set_input_protocol_uart1(struct gnss_dev *dev, enum gnss_protocol protocol, uint8_t enable, uint8_t layer)
Configure input protocol on UART1.
Definition nmea_ubx.c:847
int gnss_ubx_poll_nav_timeutc(struct gnss_dev *dev, struct gnss_ubx_nav_timeutc *time_data)
Poll time data (NAV-TIMEUTC)
Definition nmea_ubx.c:1090
int gnss_ubx_configure_baudrate(struct gnss_dev *dev, uint32_t baudrate)
Configure UBX device baudrate via UBX commands.
Definition nmea_ubx.c:1015
int gnss_ubx_get_precise_time(struct gnss_dev *dev, struct gnss_precise_time *precise_time)
Get comprehensive precise time information.
Definition nmea_ubx.c:1327
int gnss_ubx_get_val(struct gnss_dev *dev, uint32_t key_id, uint64_t *value, uint8_t value_size, uint8_t layer)
Get configuration value by key.
Definition nmea_ubx.c:706
int gnss_write(struct gnss_dev *dev, uint8_t *data, uint16_t size)
Write data to the device.
Definition nmea_ubx.c:309
int gnss_ubx_send_packet(struct gnss_dev *dev, uint8_t cls, uint8_t id, uint8_t *payload, uint16_t length)
Send UBX binary protocol packet to the GNSS device.
Definition nmea_ubx.c:346
int gnss_configure_baudrate_via_nmea(struct gnss_dev *dev, uint32_t baudrate)
Configure baudrate via standard NMEA command for NMEA-only devices.
Definition nmea_ubx.c:1536
int gnss_get_time_data(struct gnss_dev *dev, struct gnss_ubx_nav_timeutc *time_data)
Get latest time data.
Definition nmea_ubx.c:1156
gnss_config_layer
GNSS configuration storage layers for UBX devices.
Definition nmea_ubx.h:1037
@ GNSS_CONFIG_LAYER_RAM
Definition nmea_ubx.h:1039
@ GNSS_CONFIG_LAYER_BBR
Definition nmea_ubx.h:1041
@ GNSS_CONFIG_LAYER_FLASH
Definition nmea_ubx.h:1043
@ GNSS_CONFIG_LAYER_ALL
Definition nmea_ubx.h:1045
int gnss_remove(struct gnss_dev *dev)
Remove the GNSS device and release allocated resources.
Definition nmea_ubx.c:229
int gnss_ubx_clr_save_load_config(struct gnss_dev *dev, uint8_t mask)
Clear save load configuration from flash/BBR.
Definition nmea_ubx.c:811
int gnss_hw_reset(struct gnss_dev *dev)
Reset the GNSS device using hardware reset pin.
Definition nmea_ubx.c:250
void gnss_calculate_checksum(uint8_t *data, uint16_t length, uint8_t *checksumA, uint8_t *checksumB)
Calculate UBX checksum.
Definition nmea_ubx.c:58
int gnss_ubx_enable_via_nmea(struct gnss_dev *dev)
int gnss_init(struct gnss_dev **device, struct gnss_init_param init_param)
Initialize the GNSS device and configure communication.
Definition nmea_ubx.c:102
int gnss_get_unified_timing(struct gnss_dev *dev, struct gnss_precise_time *precise_time)
Get comprehensive timing information (unified API for both device types)
Definition nmea_ubx.c:2138
int gnss_refresh_timing_data(struct gnss_dev *dev)
Refresh timing data from device (unified API for both UBX and NMEA devices)
Definition nmea_ubx.c:2071
int gnss_ubx_set_output_protocol_usb(struct gnss_dev *dev, enum gnss_protocol protocol, uint8_t enable, uint8_t layer)
Configure output protocol USB.
Definition nmea_ubx.c:915
int gnss_ubx_is_time_pulse_enabled(struct gnss_dev *dev, bool *enabled)
Check if time pulse is currently enabled.
Definition nmea_ubx.c:1498
gnss_protocol
GNSS communication protocol types.
Definition nmea_ubx.h:1052
@ GNSS_PROTOCOL_UBX
Definition nmea_ubx.h:1054
@ GNSS_PROTOCOL_RTCM3
Definition nmea_ubx.h:1058
@ GNSS_PROTOCOL_NMEA
Definition nmea_ubx.h:1056
int gnss_ubx_set_input_protocol_uart2(struct gnss_dev *dev, enum gnss_protocol protocol, uint8_t enable, uint8_t layer)
Configure input protocol on UART2.
Definition nmea_ubx.c:949
float gnss_time_acc_to_ms(uint32_t acc)
Convert time accuracy from ns to ms.
Definition nmea_ubx.c:1191
int gnss_ubx_set_output_protocol_uart1(struct gnss_dev *dev, enum gnss_protocol protocol, uint8_t enable, uint8_t layer)
Configure output protocol on UART1.
Definition nmea_ubx.c:881
int gnss_ubx_set_output_protocol_uart2(struct gnss_dev *dev, enum gnss_protocol protocol, uint8_t enable, uint8_t layer)
Configure output protocol on UART2.
Definition nmea_ubx.c:983
int gnss_ubx_poll_nav_pvt(struct gnss_dev *dev, struct gnss_ubx_nav_pvt *nav_data)
Poll navigation data (NAV-PVT)
Definition nmea_ubx.c:1043
int32_t gnss_ubx_get_nanoseconds(struct gnss_dev *dev)
Get nanosecond fraction of current time from NAV-PVT data.
Definition nmea_ubx.c:1211
uint8_t gnss_nmea_checksum(const char *data)
int gnss_configure_messages_via_nmea(struct gnss_dev *dev, uint8_t rate_hz)
Enable GPRMC/GNRMC message and disable others for clean timing via NMEA commands.
Definition nmea_ubx.c:1576
int gnss_ubx_get_time_fully_resolved(struct gnss_dev *dev, bool *resolved)
Check if the current time is fully resolved.
Definition nmea_ubx.c:1242
int gnss_get_nmea_position_data(struct gnss_dev *dev, struct gnss_nmea_position *position_data)
Get GPS fix quality and position data (NMEA-only devices)
Definition nmea_ubx.c:2400
int gnss_get_unix_epoch_unified(struct gnss_dev *dev, uint32_t *epoch, uint32_t *fractional_seconds)
Get Unix epoch time with best available precision (unified API)
Definition nmea_ubx.c:2237
float gnss_pos_acc_to_m(uint32_t acc)
Convert position accuracy from mm to m.
Definition nmea_ubx.c:1201
int gnss_ubx_set_val(struct gnss_dev *dev, uint32_t key_id, uint64_t value, uint8_t value_size, uint8_t layer)
Set configuration value by key.
Definition nmea_ubx.c:619
int gnss_configure_nmea_device(struct gnss_dev *dev, uint32_t baudrate, uint8_t message_rate_hz)
Configure NMEA-only device for timing operation.
Definition nmea_ubx.c:1708
int gnss_read(struct gnss_dev *dev, uint8_t *data, uint16_t size)
Read data from the device.
Definition nmea_ubx.c:326
int gnss_ubx_get_unix_epoch_with_micros(struct gnss_dev *dev, uint32_t *epoch, uint32_t *microseconds)
Get Unix epoch time with microsecond precision.
Definition nmea_ubx.c:1287
int gnss_ubx_get_time_valid(struct gnss_dev *dev, bool *valid)
Check if the current time is valid.
Definition nmea_ubx.c:1225
int gnss_ubx_configure_time_pulse(struct gnss_dev *dev, bool enable)
Configure time pulse output for PPS (Pulse Per Second)
Definition nmea_ubx.c:1372
@ GNSS_DEVICE_NMEA_ONLY
Definition nmea_ubx.h:1279
@ GNSS_DEVICE_UBX_CAPABLE
Definition nmea_ubx.h:1277
#define UBX_MAX_PACKET_SIZE
Definition nmea_ubx.h:1009
int gnss_ubx_sw_reset(struct gnss_dev *dev)
Reset the device using SW reset.
Definition nmea_ubx.c:284
Header file of Delay functions.
Error codes definition.
Header file of GPIO Interface.
Header file of IRQ interface.
Print messages helpers.
Header file of UART interface.
Header file of utility functions.
Definition ad9361_util.h:63
GNSS Device structure.
Definition nmea_ubx.h:1334
struct gnss_ubx_nav_pvt nav_data
Definition nmea_ubx.h:1356
struct no_os_irq_ctrl_desc * irq_ctrl
Definition nmea_ubx.h:1344
enum device_type device_type
Definition nmea_ubx.h:1346
uint8_t tx_buffer[UBX_MAX_PACKET_SIZE]
Definition nmea_ubx.h:1354
uint8_t rx_buffer[UBX_MAX_PACKET_SIZE]
Definition nmea_ubx.h:1352
uint8_t position_refresh_counter
Definition nmea_ubx.h:1364
struct no_os_gpio_desc * gpio_reset
Definition nmea_ubx.h:1338
struct no_os_gpio_desc * irq_gpio
Definition nmea_ubx.h:1340
uint32_t pps_pulse_length
Definition nmea_ubx.h:1368
struct no_os_gpio_desc * led_desc
Definition nmea_ubx.h:1342
struct no_os_uart_desc * uart_desc
Definition nmea_ubx.h:1336
enum nmea_constellation_support nmea_constellation_type
Definition nmea_ubx.h:1348
struct no_os_callback_desc irq_cb
Definition nmea_ubx.h:1350
uint8_t pps_enable
Definition nmea_ubx.h:1370
struct gnss_nmea_time nmea_timing_cache
Definition nmea_ubx.h:1360
struct gnss_nmea_position nmea_position_cache
Definition nmea_ubx.h:1362
struct gnss_ubx_nav_timeutc time_data
Definition nmea_ubx.h:1358
uint32_t pps_frequency
Definition nmea_ubx.h:1366
GNSS Device initialization parameters.
Definition nmea_ubx.h:1297
uint8_t nmea_output_enable
Definition nmea_ubx.h:1315
uint8_t ubx_output_enable
Definition nmea_ubx.h:1313
uint32_t pps_pulse_length
Definition nmea_ubx.h:1321
uint32_t baud_rate
Definition nmea_ubx.h:1317
struct no_os_uart_init_param * uart_init
Definition nmea_ubx.h:1299
struct no_os_irq_ctrl_desc * irq_ctrl
Definition nmea_ubx.h:1303
uint8_t pps_enable
Definition nmea_ubx.h:1323
struct no_os_gpio_desc * irq_gpio
Definition nmea_ubx.h:1325
enum device_type device_type
Definition nmea_ubx.h:1305
struct no_os_callback_desc * irq_cb
Definition nmea_ubx.h:1327
struct no_os_gpio_desc * gpio_reset
Definition nmea_ubx.h:1301
uint8_t nmea_input_enable
Definition nmea_ubx.h:1311
uint32_t pps_frequency
Definition nmea_ubx.h:1319
enum nmea_constellation_support nmea_constellation_type
Definition nmea_ubx.h:1307
uint8_t ubx_input_enable
Definition nmea_ubx.h:1309
GPGGA sentence position and fix data structure for NMEA-only devices.
Definition nmea_ubx.h:1252
uint8_t satellites_used
Definition nmea_ubx.h:1256
float longitude
Definition nmea_ubx.h:1264
bool position_valid
Definition nmea_ubx.h:1266
float altitude
Definition nmea_ubx.h:1260
uint8_t fix_quality
Definition nmea_ubx.h:1254
float hdop
Definition nmea_ubx.h:1258
bool fix_valid
Definition nmea_ubx.h:1268
float latitude
Definition nmea_ubx.h:1262
GPRMC sentence time data structure for NMEA-only devices.
Definition nmea_ubx.h:1225
uint16_t milliseconds
Definition nmea_ubx.h:1233
uint32_t unix_epoch
Definition nmea_ubx.h:1245
bool date_valid
Definition nmea_ubx.h:1243
uint16_t year
Definition nmea_ubx.h:1239
uint8_t minute
Definition nmea_ubx.h:1229
uint8_t month
Definition nmea_ubx.h:1237
bool time_valid
Definition nmea_ubx.h:1241
uint8_t second
Definition nmea_ubx.h:1231
uint8_t hour
Definition nmea_ubx.h:1227
uint8_t day
Definition nmea_ubx.h:1235
Precise time information with nanosecond resolution.
Definition nmea_ubx.h:1194
uint8_t second
Definition nmea_ubx.h:1218
uint8_t day
Definition nmea_ubx.h:1212
bool time_valid
Definition nmea_ubx.h:1202
uint8_t hour
Definition nmea_ubx.h:1214
bool time_fully_resolved
Definition nmea_ubx.h:1204
uint16_t year
Definition nmea_ubx.h:1208
int32_t nanoseconds
Definition nmea_ubx.h:1198
bool date_valid
Definition nmea_ubx.h:1206
uint32_t time_accuracy
Definition nmea_ubx.h:1200
uint32_t unix_epoch
Definition nmea_ubx.h:1196
uint8_t month
Definition nmea_ubx.h:1210
uint8_t minute
Definition nmea_ubx.h:1216
UBX-NAV-PVT (Position, Velocity, Time) solution message structure.
Definition nmea_ubx.h:1088
int32_t velE
Definition nmea_ubx.h:1132
int32_t nano
Definition nmea_ubx.h:1108
uint32_t hAcc
Definition nmea_ubx.h:1126
int32_t gSpeed
Definition nmea_ubx.h:1136
int16_t magDec
Definition nmea_ubx.h:1158
uint16_t magAcc
Definition nmea_ubx.h:1160
int32_t height
Definition nmea_ubx.h:1122
uint32_t vAcc
Definition nmea_ubx.h:1128
uint32_t sAcc
Definition nmea_ubx.h:1140
uint32_t iTOW
Definition nmea_ubx.h:1090
uint8_t sec
Definition nmea_ubx.h:1102
uint16_t flags3
Definition nmea_ubx.h:1146
int32_t lat
Definition nmea_ubx.h:1120
uint8_t reserved3
Definition nmea_ubx.h:1154
uint32_t tAcc
Definition nmea_ubx.h:1106
uint8_t hour
Definition nmea_ubx.h:1098
uint16_t year
Definition nmea_ubx.h:1092
int32_t hMSL
Definition nmea_ubx.h:1124
uint8_t day
Definition nmea_ubx.h:1096
int32_t lon
Definition nmea_ubx.h:1118
uint8_t numSV
Definition nmea_ubx.h:1116
uint8_t flags2
Definition nmea_ubx.h:1114
uint16_t pDOP
Definition nmea_ubx.h:1144
uint8_t valid
Definition nmea_ubx.h:1104
uint32_t headAcc
Definition nmea_ubx.h:1142
int32_t velD
Definition nmea_ubx.h:1134
uint8_t flags
Definition nmea_ubx.h:1112
uint8_t min
Definition nmea_ubx.h:1100
uint8_t reserved1
Definition nmea_ubx.h:1150
int32_t headMot
Definition nmea_ubx.h:1138
int32_t headVeh
Definition nmea_ubx.h:1156
uint8_t reserved2
Definition nmea_ubx.h:1152
int32_t velN
Definition nmea_ubx.h:1130
uint8_t reserved0
Definition nmea_ubx.h:1148
uint8_t month
Definition nmea_ubx.h:1094
uint8_t fixType
Definition nmea_ubx.h:1110
UBX-NAV-TIMEUTC (UTC time solution) message structure.
Definition nmea_ubx.h:1167
uint32_t tAcc
Definition nmea_ubx.h:1171
uint8_t hour
Definition nmea_ubx.h:1181
uint8_t day
Definition nmea_ubx.h:1179
uint8_t min
Definition nmea_ubx.h:1183
uint8_t sec
Definition nmea_ubx.h:1185
uint8_t month
Definition nmea_ubx.h:1177
uint8_t valid
Definition nmea_ubx.h:1187
uint32_t iTOW
Definition nmea_ubx.h:1169
int32_t nano
Definition nmea_ubx.h:1173
uint16_t year
Definition nmea_ubx.h:1175
UBX binary protocol packet structure.
Definition nmea_ubx.h:1065
uint8_t sync2
Definition nmea_ubx.h:1069
uint16_t length
Definition nmea_ubx.h:1075
uint8_t id
Definition nmea_ubx.h:1073
uint8_t cls
Definition nmea_ubx.h:1071
uint8_t checksumB
Definition nmea_ubx.h:1081
uint8_t sync1
Definition nmea_ubx.h:1067
uint8_t checksumA
Definition nmea_ubx.h:1079
uint8_t * payload
Definition nmea_ubx.h:1077
Structure describing a callback to be registered.
Definition no_os_irq.h:136
Structure holding the GPIO descriptor.
Definition no_os_gpio.h:84
Definition no_os_irq.h:117
Stucture holding the UART descriptor.
Definition no_os_uart.h:122
Structure holding the parameters for UART initialization.
Definition no_os_uart.h:98