Skip to content

Commit 02971b8

Browse files
committed
Merge branch 'release_candidate' into AddFlex
2 parents 8f4864d + 0b439d6 commit 02971b8

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

52 files changed

+6608
-4112
lines changed

.github/workflows/compile-rtk-everywhere.yml

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -89,14 +89,17 @@ jobs:
8989
"SparkFun u-blox GNSS v3"@3.1.8
9090
"SparkFun Qwiic OLED Arduino Library"@1.0.13
9191
92-
"SparkFun Extensible Message Parser"@1.0.2
92+
"SparkFun Extensible Message Parser"@1.0.4
9393
"SparkFun BQ40Z50 Battery Manager Arduino Library"@1.0.0
9494
"ArduinoMqttClient"@0.1.8
9595
"SparkFun u-blox PointPerfect Library"@1.11.4
9696
"SparkFun IM19 IMU Arduino Library"@1.0.1
97-
"SparkFun UM980 Triband RTK GNSS Arduino Library"@1.0.4
97+
"SparkFun UM980 Triband RTK GNSS Arduino Library"@1.0.5
9898
"SparkFun LG290P Quadband RTK GNSS Arduino Library"@1.0.8
9999
"SparkFun I2C Expander Arduino Library"@1.0.1
100+
"SparkFun Apple Accessory Arduino Library"@1.0.1
101+
"SparkFun Authentication Coprocessor Arduino Library"@1.0.0
102+
"SparkFun Toolkit"@1.0.6
100103

101104
- name: Patch libmbedtls
102105
run: |
@@ -111,6 +114,11 @@ jobs:
111114
cd Firmware/RTK_Everywhere/Patch/
112115
cp NetworkEvents.* /home/runner/.arduino15/packages/esp32/hardware/esp32/${{ env.CORE_VERSION }}/libraries/Network/src/
113116
117+
- name: Patch libbt
118+
run: |
119+
cd Firmware/RTK_Everywhere/Patch/
120+
cp libbt.a /home/runner/.arduino15/packages/esp32/tools/esp32-arduino-libs/${{ env.ESP_IDF }}/esp32/lib/libbt.a
121+
114122
- name: Setup Python
115123
uses: actions/setup-python@v4
116124
with:

.github/workflows/non-release-build.yml

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -88,14 +88,17 @@ jobs:
8888
"SparkFun u-blox GNSS v3"@3.1.8
8989
"SparkFun Qwiic OLED Arduino Library"@1.0.13
9090
91-
"SparkFun Extensible Message Parser"@1.0.2
91+
"SparkFun Extensible Message Parser"@1.0.4
9292
"SparkFun BQ40Z50 Battery Manager Arduino Library"@1.0.0
9393
"ArduinoMqttClient"@0.1.8
9494
"SparkFun u-blox PointPerfect Library"@1.11.4
9595
"SparkFun IM19 IMU Arduino Library"@1.0.1
96-
"SparkFun UM980 Triband RTK GNSS Arduino Library"@1.0.4
97-
"SparkFun LG290P Quadband RTK GNSS Arduino Library"@1.0.7
96+
"SparkFun UM980 Triband RTK GNSS Arduino Library"@1.0.5
97+
"SparkFun LG290P Quadband RTK GNSS Arduino Library"@1.0.8
9898
"SparkFun I2C Expander Arduino Library"@1.0.1
99+
"SparkFun Apple Accessory Arduino Library"@1.0.1
100+
"SparkFun Authentication Coprocessor Arduino Library"@1.0.0
101+
"SparkFun Toolkit"@1.0.6
99102

100103
- name: Patch libmbedtls
101104
run: |
@@ -110,6 +113,11 @@ jobs:
110113
cd Firmware/RTK_Everywhere/Patch/
111114
cp NetworkEvents.* /home/runner/.arduino15/packages/esp32/hardware/esp32/${{ env.CORE_VERSION }}/libraries/Network/src/
112115
116+
- name: Patch libbt
117+
run: |
118+
cd Firmware/RTK_Everywhere/Patch/
119+
cp libbt.a /home/runner/.arduino15/packages/esp32/tools/esp32-arduino-libs/${{ env.ESP_IDF }}/esp32/lib/libbt.a
120+
113121
- name: Setup Python
114122
uses: actions/setup-python@v4
115123
with:
@@ -161,7 +169,7 @@ jobs:
161169
mv RTK_Everywhere.ino.bin ${{ env.ARTIFACT }}
162170
163171
- name: Upload artifact directory to action - avoid double-zip
164-
uses: actions/upload-artifact@v3
172+
uses: actions/upload-artifact@v4
165173
with:
166174
name: ${{ env.ARTIFACT }}
167175
path: Firmware/RTK_Everywhere/build/esp32.esp32.esp32/${{ env.ARTIFACT }}

Firmware/RTK_Everywhere/AP-Config/index.html

Lines changed: 36 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -458,11 +458,11 @@
458458

459459
<div style="margin-bottom:5px;">
460460
<button type="button" id="nmeaDefaults" class="btn btn-primary"
461-
onClick="resetToSurveyingDefaults()">Reset to Surveying Defaults</button>
461+
onClick="resetToSurveyingDefaults()">Reset to Defaults</button>
462462
</div>
463463
<div style="margin-bottom:5px;">
464464
<button type="button" id="loggingDefaults" class="btn btn-primary"
465-
onClick="resetToLoggingDefaults()">Reset to Logging Defaults</button>
465+
onClick="resetToLoggingDefaults()">Reset to PPP Logging</button>
466466
</div>
467467
<br>
468468
<div id="mosaicNMEAStreamDropdowns">
@@ -1637,6 +1637,17 @@
16371637
<span class="icon-info-circle text-primary ms-2"></span>
16381638
</span>
16391639
</div>
1640+
<div id="tcpWiFiTypeDropdown" class="mt-3">
1641+
<label for="tcpOverWiFiStation">TCP Server Connection: </label>
1642+
<select name="tcpWiFiType" id="tcpOverWiFiStation" class="form-dropdown">
1643+
<option value="1">WiFi</option>
1644+
<option value="0">AP</option>
1645+
</select>
1646+
<span class="tt" data-bs-placement="right"
1647+
title="In WiFi mode, the device will attempt to connect to local WiFi to broadcast TCP packets. In AP mode, the device will become an Access Point that devices can connect to over WiFi.">
1648+
<span class="icon-info-circle text-primary ms-2"></span>
1649+
</span>
1650+
</div>
16401651
</div>
16411652
<div class="form-group row">
16421653
<p id="enableTcpServerError" class="inlineError"></p>
@@ -1661,24 +1672,22 @@
16611672
<input type="text" class="form-control" id="udpServerPort">
16621673
<p id="udpServerPortError" class="inlineError"></p>
16631674
</div>
1675+
<div id="udpWiFiTypeDropdown" class="mt-auto">
1676+
<label for="udpOverWiFiStation">UDP Server Connection: </label>
1677+
<select name="udpWiFiType" id="udpOverWiFiStation" class="form-dropdown">
1678+
<option value="1">WiFi</option>
1679+
<option value="0">AP</option>
1680+
</select>
1681+
<span class="tt" data-bs-placement="right"
1682+
title="In WiFi mode, the device will attempt to connect to local WiFi to broadcast UDP packets. In AP mode, the device will become an Access Point that devices can connect to over WiFi.">
1683+
<span class="icon-info-circle text-primary ms-2"></span>
1684+
</span>
1685+
</div>
16641686
</div>
16651687
</div>
16661688
<div class="form-group row">
16671689
<p id="enableUdpServerError" class="inlineError"></p>
16681690
</div>
1669-
1670-
<div id="tcpUdpWiFiTypeDropdown" class="mt-3">
1671-
<label for="tcpUdpOverWiFiStation">TCP/UDP Server Connection: </label>
1672-
<select name="tcpUdpWiFiType" id="tcpUdpOverWiFiStation" class="form-dropdown">
1673-
<option value="1">WiFi</option>
1674-
<option value="0">AP</option>
1675-
</select>
1676-
<span class="tt" data-bs-placement="right"
1677-
title="In WiFi mode, the device will attempt to connect to local WiFi to broadcast TCP/UDP packets. In AP mode, the device will become an Access Point that devices can connect to over WiFi.">
1678-
<span class="icon-info-circle text-primary ms-2"></span>
1679-
</span>
1680-
</div>
1681-
16821691
</div>
16831692
</div>
16841693

@@ -2016,7 +2025,7 @@
20162025
<label for="maxLogTime" class="box-margin40 col-sm-3 col-7 col-form-label">Max Logging
20172026
Time (min):
20182027
<span class="tt" data-bs-placement="right"
2019-
title="Once the max log time is achieved, logging will cease. This is useful for limiting long term, overnight, static surveys to a certain length of time. Default: 1440 minutes. Limits: 1 to 2880 minutes.">
2028+
title="Once the max log time is achieved, logging will cease. This is useful for limiting long term, overnight, static surveys to a certain length of time. Default: 1440 minutes. Limits: 0 to 1,051,200 minutes. 0 = no limit.">
20202029
<span class="icon-info-circle text-primary ms-2"></span>
20212030
</span>
20222031
</label>
@@ -2027,15 +2036,23 @@
20272036
<div class="form-group row">
20282037
<label for="maxLogLength" class="box-margin40 col-sm-3 col-7 col-form-label">Max Log
20292038
File Length (min):<span class="tt" data-bs-placement="right"
2030-
title="Once this length of time is achieved, a new log will be created. This is useful for creating multiple logs over a long survey. Default: 1440 minutes. Limits: 1 to 2880 minutes.">
2039+
title="Once this length of time is achieved, a new log will be created. This is useful for creating multiple logs over a long survey. Default: 1440 minutes. Limits: 0 to 2880 minutes. 0 = no limit.">
20312040
<span class="icon-info-circle text-primary ms-2"></span>
20322041
</span>
20332042
</label>
2034-
20352043
<input type="number" class="form-control box-small" id="maxLogLength">
20362044
<p id="maxLogLengthError" class="inlineError"></p>
20372045
</div>
20382046

2047+
<div class="form-check mt-1 box-margin20">
2048+
<label class="form-check-label" for="alignedLogFiles">Aligned Log Files</label>
2049+
<input class="form-check-input" type="checkbox" value="" id="alignedLogFiles" unchecked>
2050+
<span class="tt" data-bs-placement="right"
2051+
title="If enabled, log files will be aligned to the Max Log File Length. Only possible if the Max Log Length is an integral fraction of 24 hours.">
2052+
<span class="icon-info-circle text-primary ms-2"></span>
2053+
</span>
2054+
</div>
2055+
20392056
<div id="logFile" class="row">
20402057
<div class="mb-2">
20412058
<label for="logFile" class="form-group box-margin20">Log file name: <span
@@ -2069,7 +2086,7 @@
20692086
<label for="ARPLoggingInterval" class="box-margin40 col-sm-3 col-7 col-form-label">ARP
20702087
Logging Interval (s):
20712088
<span class="tt" data-bs-placement="right"
2072-
title="If ARP logging is enabled, the Antenna Reference Position will be logged at intervals of this many seconds.">
2089+
title="If ARP logging is enabled, the Antenna Reference Position will be logged at intervals of this many seconds. Min: 1. Max 600. Default: 10.">
20732090
<span class="icon-info-circle text-primary ms-2"></span>
20742091
</span>
20752092
</label>

Firmware/RTK_Everywhere/AP-Config/src/main.js

Lines changed: 45 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -648,7 +648,6 @@ function parseIncoming(msg) {
648648
ge("enableARPLogging").dispatchEvent(new CustomEvent('change'));
649649
ge("enableAutoFirmwareUpdate").dispatchEvent(new CustomEvent('change'));
650650
ge("enableAutoReset").dispatchEvent(new CustomEvent('change'));
651-
ge("useLocalizedDistribution").dispatchEvent(new CustomEvent('change'));
652651

653652
updateECEFList();
654653
updateGeodeticList();
@@ -1004,8 +1003,8 @@ function validateFields() {
10041003

10051004
//System Config
10061005
if (ge("enableLogging").checked == true) {
1007-
checkElementValue("maxLogTime", 1, 1051200, "Must be 1 to 1,051,200", "collapseSystemConfig");
1008-
checkElementValue("maxLogLength", 1, 1051200, "Must be 1 to 1,051,200", "collapseSystemConfig");
1006+
checkElementValue("maxLogTime", 0, 1051200, "Must be 0 to 1,051,200", "collapseSystemConfig");
1007+
checkElementValue("maxLogLength", 0, 2880, "Must be 0 to 2880", "collapseSystemConfig");
10091008
}
10101009
else {
10111010
clearElement("maxLogTime", 60 * 24);
@@ -1435,6 +1434,15 @@ function resetToSurveyingDefaults() {
14351434

14361435
ge("messageIntervalRTCMRover_RTCM1033").value = 10.0;
14371436
}
1437+
else if (platformPrefix == "Postcard") {
1438+
ge("messageRateNMEA_GPRMC").value = 1;
1439+
ge("messageRateNMEA_GPGGA").value = 1;
1440+
ge("messageRateNMEA_GPGSV").value = 1;
1441+
ge("messageRateNMEA_GPGSA").value = 1;
1442+
ge("messageRateNMEA_GPVTG").value = 1;
1443+
ge("messageRateNMEA_GPGLL").value = 1;
1444+
ge("messageRateNMEA_GPGST").value = 1; //Supported on >= v4
1445+
}
14381446
}
14391447
function resetToLoggingDefaults() {
14401448
zeroMessages();
@@ -1449,16 +1457,40 @@ function resetToLoggingDefaults() {
14491457
ge("ubxMessageRate_RXM_SFRBX").value = 1;
14501458
}
14511459
else if (platformPrefix == "Torch") {
1452-
ge("messageRateNMEA_GPGGA").value = 0.5;
1453-
ge("messageRateNMEA_GPGSA").value = 0.5;
1454-
ge("messageRateNMEA_GPGST").value = 0.5;
1455-
ge("messageRateNMEA_GPGSV").value = 1.0;
1456-
ge("messageRateNMEA_GPRMC").value = 0.5;
1457-
1458-
ge("messageRateRTCMRover_RTCM1019").value = 1.0;
1459-
ge("messageRateRTCMRover_RTCM1020").value = 1.0;
1460-
ge("messageRateRTCMRover_RTCM1042").value = 1.0;
1461-
ge("messageRateRTCMRover_RTCM1046").value = 1.0;
1460+
ge("messageRateNMEA_GPGGA").value = 1;
1461+
ge("messageRateNMEA_GPGSA").value = 1;
1462+
ge("messageRateNMEA_GPGST").value = 1;
1463+
ge("messageRateNMEA_GPGSV").value = 5; // Limit to 1 per 5 seconds
1464+
ge("messageRateNMEA_GPRMC").value = 1;
1465+
1466+
ge("messageRateRTCMRover_RTCM1019").value = 30;
1467+
ge("messageRateRTCMRover_RTCM1020").value = 30;
1468+
ge("messageRateRTCMRover_RTCM1042").value = 30;
1469+
ge("messageRateRTCMRover_RTCM1046").value = 30;
1470+
1471+
ge("messageRateRTCMRover_RTCM1074").value = 30;
1472+
ge("messageRateRTCMRover_RTCM1084").value = 30;
1473+
ge("messageRateRTCMRover_RTCM1094").value = 30;
1474+
ge("messageRateRTCMRover_RTCM1124").value = 30;
1475+
}
1476+
else if (platformPrefix == "Postcard") {
1477+
ge("messageRateNMEA_GPRMC").value = 1;
1478+
ge("messageRateNMEA_GPGGA").value = 1;
1479+
ge("messageRateNMEA_GPGSV").value = 1;
1480+
ge("messageRateNMEA_GPGSA").value = 1;
1481+
ge("messageRateNMEA_GPVTG").value = 1;
1482+
ge("messageRateNMEA_GPGLL").value = 1;
1483+
ge("messageRateNMEA_GPGST").value = 1; // Supported on >= v4
1484+
1485+
ge("messageRateRTCMRover_RTCM1019").value = 30;
1486+
ge("messageRateRTCMRover_RTCM1020").value = 30;
1487+
ge("messageRateRTCMRover_RTCM1042").value = 30;
1488+
ge("messageRateRTCMRover_RTCM1046").value = 30;
1489+
1490+
ge("messageRateRTCMRover_RTCM107X").value = 30;
1491+
ge("messageRateRTCMRover_RTCM108X").value = 30;
1492+
ge("messageRateRTCMRover_RTCM109X").value = 30;
1493+
ge("messageRateRTCMRover_RTCM112X").value = 30;
14621494
}
14631495
else if (platformPrefix == "Facet mosaicX5") {
14641496
ge("streamIntervalNMEA_0").value = 6; //msec500
@@ -1743,15 +1775,6 @@ document.addEventListener("DOMContentLoaded", (event) => {
17431775
}
17441776
});
17451777

1746-
ge("useLocalizedDistribution").addEventListener("change", function () {
1747-
if (ge("useLocalizedDistribution").checked) {
1748-
show("localizedDistributionTileLevelDropdown");
1749-
}
1750-
else {
1751-
hide("localizedDistributionTileLevelDropdown");
1752-
}
1753-
});
1754-
17551778
ge("enableExternalPulse").addEventListener("change", function () {
17561779
if (ge("enableExternalPulse").checked == true) {
17571780
show("externalPulseConfigDetails");

0 commit comments

Comments
 (0)