Skip to content

Commit fe7205c

Browse files
authored
Merge pull request #271 from LeeLeahy2/no-lband
Add define for COMPILE_L_BAND, move L-Band related items into menuPP.ino
2 parents 4b24eeb + 3e94057 commit fe7205c

File tree

4 files changed

+264
-233
lines changed

4 files changed

+264
-233
lines changed

Firmware/RTK_Surveyor/Begin.ino

Lines changed: 0 additions & 85 deletions
Original file line numberDiff line numberDiff line change
@@ -703,91 +703,6 @@ bool beginExternalTriggers()
703703
return (response);
704704
}
705705

706-
//Check if NEO-D9S is connected. Configure if available.
707-
void beginLBand()
708-
{
709-
if (settings.enablePointPerfectCorrections == false) return; //If user has turned off PointPerfect, skip everything
710-
711-
if (i2cLBand.begin(Wire, 0x43) == false) //Connect to the u-blox NEO-D9S using Wire port. The D9S default I2C address is 0x43 (not 0x42)
712-
{
713-
log_d("L-Band not detected");
714-
return;
715-
}
716-
717-
//Check the firmware version of the NEO-D9S. Based on Example21_ModuleInfo.
718-
if (i2cLBand.getModuleInfo(1100) == true) // Try to get the module info
719-
{
720-
//i2cLBand.minfo.extension[1] looks like 'FWVER=HPG 1.12'
721-
strcpy(neoFirmwareVersion, i2cLBand.minfo.extension[1]);
722-
723-
//Remove 'FWVER='. It's extraneous and = causes settings file parsing issues
724-
char *ptr = strstr(neoFirmwareVersion, "FWVER=");
725-
if (ptr != NULL)
726-
strcpy(neoFirmwareVersion, ptr + strlen("FWVER="));
727-
728-
printNEOInfo(); //Print module firmware version
729-
}
730-
731-
if (online.gnss == true)
732-
{
733-
i2cGNSS.checkUblox(); //Regularly poll to get latest data and any RTCM
734-
i2cGNSS.checkCallbacks(); //Process any callbacks: ie, eventTriggerReceived
735-
}
736-
737-
//If we have a fix, check which frequency to use
738-
if (fixType == 2 || fixType == 3 || fixType == 4 || fixType == 5) //2D, 3D, 3D+DR, or Time
739-
{
740-
if ( (longitude > -125 && longitude < -67) && (latitude > -90 && latitude < 90))
741-
{
742-
log_d("Setting L-Band to US");
743-
settings.LBandFreq = 1556290000; //We are in US band
744-
}
745-
else if ( (longitude > -25 && longitude < 70) && (latitude > -90 && latitude < 90))
746-
{
747-
log_d("Setting L-Band to EU");
748-
settings.LBandFreq = 1545260000; //We are in EU band
749-
}
750-
else
751-
{
752-
Serial.println("Unknown band area");
753-
settings.LBandFreq = 1556290000; //Default to US
754-
}
755-
recordSystemSettings();
756-
}
757-
else
758-
log_d("No fix available for L-Band frequency determination");
759-
760-
bool response = true;
761-
response &= i2cLBand.setVal32(UBLOX_CFG_PMP_CENTER_FREQUENCY, settings.LBandFreq); // Default 1539812500 Hz
762-
response &= i2cLBand.setVal16(UBLOX_CFG_PMP_SEARCH_WINDOW, 2200); // Default 2200 Hz
763-
response &= i2cLBand.setVal8(UBLOX_CFG_PMP_USE_SERVICE_ID, 0); // Default 1
764-
response &= i2cLBand.setVal16(UBLOX_CFG_PMP_SERVICE_ID, 21845); // Default 50821
765-
response &= i2cLBand.setVal16(UBLOX_CFG_PMP_DATA_RATE, 2400); // Default 2400 bps
766-
response &= i2cLBand.setVal8(UBLOX_CFG_PMP_USE_DESCRAMBLER, 1); // Default 1
767-
response &= i2cLBand.setVal16(UBLOX_CFG_PMP_DESCRAMBLER_INIT, 26969); // Default 23560
768-
response &= i2cLBand.setVal8(UBLOX_CFG_PMP_USE_PRESCRAMBLING, 0); // Default 0
769-
response &= i2cLBand.setVal64(UBLOX_CFG_PMP_UNIQUE_WORD, 16238547128276412563ull);
770-
response &= i2cLBand.setVal(UBLOX_CFG_MSGOUT_UBX_RXM_PMP_I2C, 1); // Ensure UBX-RXM-PMP is enabled on the I2C port
771-
response &= i2cLBand.setVal(UBLOX_CFG_MSGOUT_UBX_RXM_PMP_UART1, 1); // Output UBX-RXM-PMP on UART1
772-
response &= i2cLBand.setVal(UBLOX_CFG_UART2OUTPROT_UBX, 1); // Enable UBX output on UART2
773-
response &= i2cLBand.setVal(UBLOX_CFG_MSGOUT_UBX_RXM_PMP_UART2, 1); // Output UBX-RXM-PMP on UART2
774-
response &= i2cLBand.setVal32(UBLOX_CFG_UART1_BAUDRATE, 38400); // match baudrate with ZED default
775-
response &= i2cLBand.setVal32(UBLOX_CFG_UART2_BAUDRATE, 38400); // match baudrate with ZED default
776-
777-
if (response == false)
778-
Serial.println("L-Band failed to configure");
779-
780-
i2cLBand.softwareResetGNSSOnly(); // Do a restart
781-
782-
i2cLBand.setRXMPMPmessageCallbackPtr(&pushRXMPMP); // Call pushRXMPMP when new PMP data arrives. Push it to the GNSS
783-
784-
i2cGNSS.setRXMCORcallbackPtr(&checkRXMCOR); // Check if the PMP data is being decrypted successfully
785-
786-
log_d("L-Band online");
787-
788-
online.lband = true;
789-
}
790-
791706
void beginIdleTasks()
792707
{
793708
if (settings.enablePrintIdleTime == true)

Firmware/RTK_Surveyor/RTK_Surveyor.ino

Lines changed: 1 addition & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ const int FIRMWARE_VERSION_MINOR = 4;
2828
#define COMPILE_WIFI //Comment out to remove WiFi functionality
2929
#define COMPILE_BT //Comment out to remove Bluetooth functionality
3030
#define COMPILE_AP //Comment out to remove Access Point functionality
31+
#define COMPILE_L_BAND //Comment out to remove L-Band functionality
3132
#define COMPILE_ESPNOW //Comment out to remove ESP-Now functionality
3233
#define ENABLE_DEVELOPER //Uncomment this line to enable special developer modes (don't check power button at startup)
3334

@@ -333,18 +334,6 @@ unsigned long timeSinceLastIncomingSetting = 0;
333334

334335
//PointPerfect Corrections
335336
//=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
336-
SFE_UBLOX_GNSS_ADD i2cLBand; // NEO-D9S
337-
const char* pointPerfectKeyTopic = "/pp/ubx/0236/Lb";
338-
339-
//The PointPerfect token is provided at compile time via build flags
340-
#ifndef POINTPERFECT_TOKEN
341-
#define POINTPERFECT_TOKEN 0xAA, 0xBB, 0xCC, 0xDD, 0x00, 0x11, 0x22, 0x33, 0x0A, 0x0B, 0x0C, 0x0D, 0x00, 0x01, 0x02, 0x03
342-
#endif
343-
344-
uint8_t pointPerfectTokenArray[16] = {POINTPERFECT_TOKEN}; //Token in HEX form
345-
346-
const char* pointPerfectAPI = "https://api.thingstream.io/ztp/pointperfect/credentials";
347-
void checkRXMCOR(UBX_RXM_COR_data_t *ubxDataStruct);
348337
float lBandEBNO = 0.0; //Used on system status menu
349338
//=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
350339

Firmware/RTK_Surveyor/States.ino

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -654,6 +654,7 @@ void updateSystemState()
654654
}
655655
break;
656656

657+
#ifdef COMPILE_L_BAND
657658
case (STATE_KEYS_STARTED):
658659
{
659660
if (rtcWaitTime == 0) rtcWaitTime = millis();
@@ -897,6 +898,7 @@ void updateSystemState()
897898
changeState(settings.lastState); //Go to either rover or base
898899
}
899900
break;
901+
#endif //COMPILE_L_BAND
900902

901903
case (STATE_ESPNOW_PAIR):
902904
{
@@ -1012,6 +1014,7 @@ void changeState(SystemState newState)
10121014
case (STATE_PROFILE):
10131015
Serial.print("State: Profile");
10141016
break;
1017+
#ifdef COMPILE_L_BAND
10151018
case (STATE_KEYS_STARTED):
10161019
Serial.print("State: Keys Started ");
10171020
break;
@@ -1048,6 +1051,7 @@ void changeState(SystemState newState)
10481051
case (STATE_KEYS_PROVISION_WIFI_TIMEOUT):
10491052
Serial.print("State: Keys Provision - WiFi Timeout");
10501053
break;
1054+
#endif //COMPILE_L_BAND
10511055

10521056
case (STATE_ESPNOW_PAIR):
10531057
Serial.print("State: ESP-Now Pair");

0 commit comments

Comments
 (0)