Hummingbird Flight Software
Flight software for the Hummingbird FCU quadcopter flight controller. Designed to run on the Teensy 4.1. Developed with VSCode+PlatformIO.
ubx_cfg_messages.h
Go to the documentation of this file.
1 
2 
3 #pragma once
4 
5 
6 #include <Arduino.h>
7 
8 // ----------------------------------------------------------------------------
9 // UBX -> CFG -> PRT
10 // ----------------------------------------------------------------------------
14 constexpr size_t UBX_CFG_PRTLEN = 28; // Length of baud rate messages
15 
16 
17 // UBX CFG message to set I2C poort to UBX+NMEA+RTCM2 in, NMEA out
18 constexpr uint8_t UBX_CFG_PRT_I2C[UBX_CFG_PRTLEN] = {
19  0xB5,0x62,0x06,0x00,0x14,0x00,0x00,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0x00,
20  0x00,0x00,0x00,0x07,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0xA7,0xCC
21 };
22 
23 
24 // // UBX CFG message to set UART1 baud to 9600, NMEA out
25 // constexpr uint8_t UBX_CFG_PRT_9600B[UBX_CFG_PRTLEN] = {
26 // 0xB5,0x62,0x06,0x00,0x14,0x00,0x01,0x00,0x00,0x00,0xD0,0x08,0x00,0x00,0x80,
27 // 0x25,0x00,0x00,0x07,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0xA1,0xAF
28 // };
29 
30 // // UBX CFG message to set UART1 baud to 38400, NMEA out
31 // constexpr uint8_t UBX_CFG_PRT_38400B[UBX_CFG_PRTLEN] = {
32 // 0xB5,0x62,0x06,0x00,0x14,0x00,0x01,0x00,0x00,0x00,0xD0,0x08,0x00,0x00,0x00,
33 // 0x96,0x00,0x00,0x07,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x92,0x8A
34 // };
35 
36 // // UBX CFG message to set UART1 baud to 115200, NMEA out
37 // constexpr uint8_t UBX_CFG_PRT_115200B[UBX_CFG_PRTLEN] = {
38 // 0xB5,0x62,0x06,0x00,0x14,0x00,0x01,0x00,0x00,0x00,0xD0,0x08,0x00,0x00,0x00,
39 // 0xC2,0x01,0x00,0x07,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0xBF,0x78
40 // };
41 
42 // // UBX CFG message to set UART1 baud to 230400, NMEA out
43 // constexpr uint8_t UBX_CFG_PRT_230400B[UBX_CFG_PRTLEN] = {
44 // 0xB5,0x62,0x06,0x00,0x14,0x00,0x01,0x00,0x00,0x00,0xD0,0x08,0x00,0x00,0x00,
45 // 0x84,0x03,0x00,0x07,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x83,0xE2
46 // };
47 
48 
49 // ----------------------------------------------------------------------------
50 // UBX -> CFG -> GNSS
51 // ----------------------------------------------------------------------------
56 constexpr size_t UBX_CFG_GNSSLEN = 68; // Length of GNSS config messages
57 
58 // UBX CFG message to configure and enable GPS, SBAS, and QZSS
59 constexpr uint8_t UBX_CFG_GNSS_GPS[UBX_CFG_GNSSLEN] = {
60  0xB5,0x62,0x06,0x3E,0x3C,0x00,0x00,0x00,0x20,0x07,0x00,0x08,0x10,0x00,0x01,
61  0x00,0x01,0x01,0x01,0x01,0x03,0x00,0x01,0x00,0x01,0x01,0x02,0x04,0x08,0x00,
62  0x00,0x00,0x01,0x01,0x03,0x08,0x10,0x00,0x00,0x00,0x01,0x01,0x04,0x00,0x08,
63  0x00,0x00,0x00,0x01,0x01,0x05,0x00,0x03,0x00,0x01,0x00,0x01,0x01,0x06,0x08,
64  0x0E,0x00,0x00,0x00,0x01,0x01,0x2E,0x85
65 };
66 
67 // UBX CFG message to configure and enable GLONASS, SBAS, and QZSS
68 constexpr uint8_t UBX_CFG_GNSS_GLONASS[UBX_CFG_GNSSLEN] = {
69  0xB5,0x62,0x06,0x3E,0x3C,0x00,0x00,0x00,0x20,0x07,0x00,0x08,0x10,0x00,0x00,
70  0x00,0x01,0x01,0x01,0x01,0x03,0x00,0x01,0x00,0x01,0x01,0x02,0x04,0x08,0x00,
71  0x00,0x00,0x01,0x01,0x03,0x08,0x10,0x00,0x00,0x00,0x01,0x01,0x04,0x00,0x08,
72  0x00,0x00,0x00,0x01,0x01,0x05,0x00,0x03,0x00,0x01,0x00,0x01,0x01,0x06,0x08,
73  0x0E,0x00,0x01,0x00,0x01,0x01,0x2E,0x55
74 };
75 
76 // UBX CFG message to configure and enable GPS, SBAS, QZSS, and GLONASS
78  0xB5,0x62,0x06,0x3E,0x3C,0x00,0x00,0x00,0x20,0x07,0x00,0x08,0x10,0x00,0x01,
79  0x00,0x01,0x01,0x01,0x01,0x03,0x00,0x01,0x00,0x01,0x01,0x02,0x04,0x08,0x00,
80  0x00,0x00,0x01,0x01,0x03,0x08,0x10,0x00,0x00,0x00,0x01,0x01,0x04,0x00,0x08,
81  0x00,0x00,0x00,0x01,0x01,0x05,0x00,0x03,0x00,0x01,0x00,0x01,0x01,0x06,0x08,
82  0x0E,0x00,0x01,0x00,0x01,0x01,0x2F,0x89
83 };
84 
85 
86 // ----------------------------------------------------------------------------
87 // UBX -> CFG -> NAV5
88 // ----------------------------------------------------------------------------
93 constexpr size_t UBX_CFG_NAV5LEN = 44; // Length of NAV5 config messages
94 
95 // UBX CFG message to set portable dynamic model and 3D fix only
97  0xB5,0x62,0x06,0x24,0x24,0x00,0xFF,0xFF,0x00,0x02,0x00,0x00,0x00,0x00,0x10,
98  0x27,0x00,0x00,0x05,0x00,0xFA,0x00,0xFA,0x00,0x64,0x00,0x5E,0x01,0x00,0x3C,
99  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7D,0x1B
100 };
101 
102 // UBX CFG message to set pedestrian dynamic model and 3D fix only
104  0xB5,0x62,0x06,0x24,0x24,0x00,0xFF,0xFF,0x03,0x02,0x00,0x00,0x00,0x00,0x10,
105  0x27,0x00,0x00,0x05,0x00,0xFA,0x00,0xFA,0x00,0x64,0x00,0x5E,0x01,0x00,0x3C,
106  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x81
107 };
108 
109 // UBX CFG message to set Airborne <1G dynamic model and 3D fix only
111  0xB5,0x62,0x06,0x24,0x24,0x00,0xFF,0xFF,0x06,0x02,0x00,0x00,0x00,0x00,0x10,
112  0x27,0x00,0x00,0x05,0x00,0xFA,0x00,0xFA,0x00,0x64,0x00,0x5E,0x01,0x00,0x3C,
113  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x83,0xE7
114 };
115 
116 
117 // ----------------------------------------------------------------------------
118 // UBX -> CFG -> RATE
119 // ----------------------------------------------------------------------------
124 constexpr size_t UBX_CFG_RATELEN = 14; // Length of RATE config messages
125 
126 // UBX CFG message to set nav. rate to 1Hz GPS time
127 // constexpr uint8_t UBX_CFG_RATE_1HZ[14] = {
128 // 0xB5,0x62,0x06,0x08,0x06,0x00,0xE8,0x03,0x01,0x00,0x01,0x00,0x01,0x39
129 // };
130 
131 // UBX CFG message to set nav. rate to 5Hz GPS time
132 constexpr uint8_t UBX_CFG_RATE_5HZ[UBX_CFG_RATELEN] = {
133  0xB5,0x62,0x06,0x08,0x06,0x00,0xC8,0x00,0x01,0x00,0x01,0x00,0xDE,0x6A
134 };
135 
136 // UBX CFG message to set nav. rate to 10Hz GPS time
137 constexpr uint8_t UBX_CFG_RATE_10HZ[UBX_CFG_RATELEN] = {
138  0xB5,0x62,0x06,0x08,0x06,0x00,0x64,0x00,0x01,0x00,0x01,0x00,0x7A,0x12
139 };
140 
141 
142 // ----------------------------------------------------------------------------
143 // UBX -> CFG -> MSG
144 // ----------------------------------------------------------------------------
149 constexpr size_t UBX_CFG_MSGLEN = 16; // Length of RATE config messages
150 
151 // UBX CFG message to disable GxGLL NMEA messagess
153  0xB5,0x62,0x06,0x01,0x08,0x00,0xF0,0x01,0x00,0x00,0x00,0x01,0x01,0x00,
154  0x02,0x2F
155 };
156 
157 // UBX CFG message to disable GxGSV NMEA messages
159  0xB5,0x62,0x06,0x01,0x08,0x00,0xF0,0x03,0x00,0x00,0x00,0x01,0x01,0x00,
160  0x04,0x3D
161 };
162 
163 // UBX CFG message to disable GxRMC NMEA messages
165  0xB5,0x62,0x06,0x01,0x08,0x00,0xF0,0x04,0x00,0x00,0x00,0x01,0x01,0x00,
166  0x05,0x44
167 };
constexpr size_t UBX_CFG_MSGLEN
Output message configuration.
Definition: ubx_cfg_messages.h:149
constexpr uint8_t UBX_CFG_NAV5_AIR1G_3D[UBX_CFG_NAV5LEN]
Definition: ubx_cfg_messages.h:110
constexpr size_t UBX_CFG_NAV5LEN
Dynamic model and fix type configuration.
Definition: ubx_cfg_messages.h:93
constexpr uint8_t UBX_CFG_NAV5_PORTABLE_3D[UBX_CFG_NAV5LEN]
Definition: ubx_cfg_messages.h:96
constexpr uint8_t UBX_CFG_MSG_DISABLE_RMC[UBX_CFG_MSGLEN]
Definition: ubx_cfg_messages.h:164
constexpr uint8_t UBX_CFG_GNSS_GPS[UBX_CFG_GNSSLEN]
Definition: ubx_cfg_messages.h:59
constexpr uint8_t UBX_CFG_MSG_DISABLE_GSV[UBX_CFG_MSGLEN]
Definition: ubx_cfg_messages.h:158
constexpr size_t UBX_CFG_RATELEN
Navigation rate configuration.
Definition: ubx_cfg_messages.h:124
constexpr uint8_t UBX_CFG_GNSS_GLONASS[UBX_CFG_GNSSLEN]
Definition: ubx_cfg_messages.h:68
constexpr size_t UBX_CFG_GNSSLEN
GNSS network configuration.
Definition: ubx_cfg_messages.h:56
constexpr uint8_t UBX_CFG_NAV5_PEDESTRIAN_3D[UBX_CFG_NAV5LEN]
Definition: ubx_cfg_messages.h:103
constexpr uint8_t UBX_CFG_MSG_DISABLE_GLL[UBX_CFG_MSGLEN]
Definition: ubx_cfg_messages.h:152
constexpr uint8_t UBX_CFG_RATE_5HZ[UBX_CFG_RATELEN]
Definition: ubx_cfg_messages.h:132
constexpr uint8_t UBX_CFG_RATE_10HZ[UBX_CFG_RATELEN]
Definition: ubx_cfg_messages.h:137
constexpr uint8_t UBX_CFG_PRT_I2C[UBX_CFG_PRTLEN]
Definition: ubx_cfg_messages.h:18
constexpr uint8_t UBX_CFG_GNSS_GPS_GLONASS[UBX_CFG_GNSSLEN]
Definition: ubx_cfg_messages.h:77
constexpr size_t UBX_CFG_PRTLEN
Baud rate and protocol settings.
Definition: ubx_cfg_messages.h:14