Skip to content

Commit 4ce7aaa

Browse files
committed
Enable Galileo HAS/E6 configuration
1 parent ece54eb commit 4ce7aaa

File tree

3 files changed

+73
-2
lines changed

3 files changed

+73
-2
lines changed

Firmware/RTK_Everywhere/Begin.ino

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -141,6 +141,7 @@ void beginBoard()
141141
present.gnss_to_uart = true;
142142
present.antennaReferencePoint_mm = 115.7;
143143
present.needsExternalPpl = true; // Uses the PointPerfect Library
144+
present.galileoHasCapable = true;
144145

145146
#ifdef COMPILE_IM19_IMU
146147
present.imu_im19 = true; // Allow tiltUpdate() to run

Firmware/RTK_Everywhere/UM980.ino

Lines changed: 69 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -141,8 +141,65 @@ bool um980ConfigureOnce()
141141

142142
response &= um980SetConstellations();
143143

144-
// response &= um980->sendCommand("CONFIG SIGNALGROUP 2"); //Enable L1C
145-
// SIGNALGROUP causes the UM980 to automatically save and reset
144+
if (um980->isConfigurationPresent("CONFIG SIGNALGROUP 2") == false)
145+
{
146+
if (um980->sendCommand("CONFIG SIGNALGROUP 2") == false)
147+
systemPrintln("Signal group 2 command failed");
148+
else
149+
{
150+
systemPrintln("Enabling additional reception on UM980. This can take a few seconds.");
151+
152+
while (1)
153+
{
154+
delay(1000); // Wait for device to reboot
155+
if (um980->isConnected() == true)
156+
break;
157+
else
158+
systemPrintln("UM980 rebooting");
159+
}
160+
161+
systemPrintln("UM980 has completed reboot.");
162+
}
163+
}
164+
165+
// Enable E6 and PPP if enabled and possible
166+
if (settings.enableGalileoHas == true)
167+
{
168+
// E6 reception requires version 11833 or greater
169+
int um980Version = String(um980->getVersion()).toInt(); // Convert the string response to a value
170+
if (um980Version >= 11833)
171+
{
172+
if (um980->isConfigurationPresent("CONFIG PPP ENABLE E6-HAS") == false)
173+
{
174+
if (um980->sendCommand("CONFIG PPP ENABLE E6-HAS") == true)
175+
systemPrintln("E6 service enabled");
176+
else
177+
systemPrintln("E6 service config error");
178+
179+
if (um980->sendCommand("CONFIG PPP DATUM WGS84") == true)
180+
systemPrintln("WGS84 Datum applied");
181+
else
182+
systemPrintln("WGS84 Datum error");
183+
}
184+
}
185+
else
186+
{
187+
systemPrintf("Current UM980 firmware: v%d. Galileo E6 reception requires 11833 or newer. Please update the "
188+
"firmware on your UM980 to allow for HAS operation.\r\n",
189+
um980Version);
190+
}
191+
}
192+
else
193+
{
194+
// Turn off HAS/E6
195+
if (um980->isConfigurationPresent("CONFIG PPP ENABLE E6-HAS") == true)
196+
{
197+
if (um980->sendCommand("CONFIG PPP DISABLE") == true)
198+
systemPrintln("E6 service disabled");
199+
else
200+
systemPrintln("E6 service config error");
201+
}
202+
}
146203

147204
if (response == true)
148205
{
@@ -1059,6 +1116,12 @@ void um980MenuConstellations()
10591116
systemPrintln();
10601117
}
10611118

1119+
if (present.galileoHasCapable)
1120+
{
1121+
systemPrintf("%d) Galileo E6 Corrections: %s\r\n", MAX_UM980_CONSTELLATIONS + 1,
1122+
settings.enableGalileoHas ? "Enabled" : "Disabled");
1123+
}
1124+
10621125
systemPrintln("x) Exit");
10631126

10641127
int incoming = getUserInputNumber(); // Returns EXIT, TIMEOUT, or long
@@ -1069,6 +1132,10 @@ void um980MenuConstellations()
10691132

10701133
settings.um980Constellations[incoming] ^= 1;
10711134
}
1135+
else if (incoming == MAX_CONSTELLATIONS && present.galileoHasCapable)
1136+
{
1137+
settings.enableGalileoHas ^= 1;
1138+
}
10721139
else if (incoming == INPUT_RESPONSE_GETNUMBER_EXIT)
10731140
break;
10741141
else if (incoming == INPUT_RESPONSE_GETNUMBER_TIMEOUT)

Firmware/RTK_Everywhere/settings.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1322,6 +1322,7 @@ struct Settings
13221322
bool debugEspNow = false;
13231323
bool enableEspNow = false;
13241324
uint8_t wifiChannel = 1; //Valid channels are 1 to 14
1325+
bool enableGalileoHas = true; // Allow E6 corrections if possible
13251326

13261327
// Add new settings above <------------------------------------------------------------>
13271328
// Then also add to rtkSettingsEntries below
@@ -1624,6 +1625,7 @@ const RTK_Settings_Entry rtkSettingsEntries[] = {
16241625
{ & settings.debugEspNow, "debugEspNow", _bool, 0, false, true, true },
16251626
{ & settings.enableEspNow, "enableEspNow", _bool, 0, false, true, true },
16261627
{ & settings.wifiChannel, "wifiChannel", _uint8_t, 0, false, true, true },
1628+
{ & settings.enableGalileoHas, "enableGalileoHas", _bool, 0, false, true, true },
16271629

16281630
// Add new settings above <------------------------------------------------------------>
16291631
/*
@@ -1687,6 +1689,7 @@ struct struct_present
16871689
bool needsExternalPpl = false;
16881690

16891691
float antennaReferencePoint_mm = 0.0; //Used to setup tilt compensation
1692+
bool galileoHasCapable = false;
16901693
} present;
16911694

16921695
// Monitor which devices on the device are on or offline.

0 commit comments

Comments
 (0)