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