diff --git a/src/gps/GPS.cpp b/src/gps/GPS.cpp index b6cd6fbaf00..715b301336b 100644 --- a/src/gps/GPS.cpp +++ b/src/gps/GPS.cpp @@ -757,6 +757,11 @@ bool GPS::verifyCachedProbePresence() _serial_gps->write("$PDTINFO\r\n"); present = (getACK("CM121", 900) == GNSS_RESPONSE_OK); break; + case GNSS_MODEL_LC760CA: + cachedProbeModelName = "LC760CA"; + _serial_gps->write("$PDTINFO,*62\r\n"); + present = (getACK("$PDTINFO,CC1161W,", 900) == GNSS_RESPONSE_OK); + break; case GNSS_MODEL_UBLOX6: case GNSS_MODEL_UBLOX7: case GNSS_MODEL_UBLOX8: @@ -1130,7 +1135,7 @@ bool GPS::setup() } else { LOG_INFO("GNSS module configuration saved!"); } - } else if (gnssModel == GNSS_MODEL_CM121) { + } else if (IS_ONE_OF(gnssModel, GNSS_MODEL_CM121, GNSS_MODEL_LC760CA)) { // only ask for RMC and GGA // enable GGA _serial_gps->write("$CFGMSG,0,0,1,1*1B\r\n"); @@ -1690,8 +1695,10 @@ GnssModel_t GPS::probe(int serialSpeed) case 1: { // Unicore UFirebirdII Series: UC6580, UM620, UM621, UM670A, UM680A, or UM681A,or CM121 - std::vector unicore = { - {"UC6580", "UC6580", GNSS_MODEL_UC6580}, {"UM600", "UM600", GNSS_MODEL_UC6580}, {"CM121", "CM121", GNSS_MODEL_CM121}}; + std::vector unicore = {{"UC6580", "UC6580", GNSS_MODEL_UC6580}, + {"UM600", "UM600", GNSS_MODEL_UC6580}, + {"CM121", "CM121", GNSS_MODEL_CM121}, + {"LC760CA", "$PDTINFO,CC1161W,", GNSS_MODEL_LC760CA}}; PROBE_FAMILY("Unicore Family", "$PDTINFO", unicore, 500); currentDelay = 20; currentStep = 2; diff --git a/src/gps/GPS.h b/src/gps/GPS.h index 9924f73fc18..6cb539d9942 100644 --- a/src/gps/GPS.h +++ b/src/gps/GPS.h @@ -47,6 +47,7 @@ typedef enum { GNSS_MODEL_AG3352, GNSS_MODEL_LS20031, GNSS_MODEL_CM121, + GNSS_MODEL_LC760CA, GNSS_MODEL_GENERIC_NMEA // generic NMEA source (e.g. gpsd); skips chip-specific probe and init } GnssModel_t;