T1000-E hardware updates and GPS positioning accuracy optimisation (#6003)

* T1000-E button setting update

* T1000-E GNSS lock error fix

* T1000-E GNSS improve detection success

---------

Co-authored-by: WayenWeng <jinyuan.weng@seeed.cc>
This commit is contained in:
dylanli
2025-02-07 16:02:56 +08:00
committed by GitHub
parent 4a6a0efcfd
commit 4e8c4f0d55
2 changed files with 23 additions and 1 deletions

View File

@@ -449,7 +449,22 @@ bool GPS::setup()
if (!didSerialInit) { if (!didSerialInit) {
int msglen = 0; int msglen = 0;
if (tx_gpio && gnssModel == GNSS_MODEL_UNKNOWN) { if (tx_gpio && gnssModel == GNSS_MODEL_UNKNOWN) {
#ifdef TRACKER_T1000_E
// add power up/down strategy, improve ag3335 detection success
digitalWrite(PIN_GPS_EN, LOW);
delay(500);
digitalWrite(GPS_VRTC_EN, LOW);
delay(1000);
digitalWrite(GPS_VRTC_EN, HIGH);
delay(500);
digitalWrite(PIN_GPS_EN, HIGH);
delay(1000);
#endif
#ifdef TRACKER_T1000_E
if (probeTries < 5) {
#else
if (probeTries < 2) { if (probeTries < 2) {
#endif
LOG_DEBUG("Probe for GPS at %d", serialSpeeds[speedSelect]); LOG_DEBUG("Probe for GPS at %d", serialSpeeds[speedSelect]);
gnssModel = probe(serialSpeeds[speedSelect]); gnssModel = probe(serialSpeeds[speedSelect]);
if (gnssModel == GNSS_MODEL_UNKNOWN) { if (gnssModel == GNSS_MODEL_UNKNOWN) {
@@ -460,7 +475,11 @@ bool GPS::setup()
} }
} }
// Rare Serial Speeds // Rare Serial Speeds
#ifdef TRACKER_T1000_E
if (probeTries == 5) {
#else
if (probeTries == 2) { if (probeTries == 2) {
#endif
LOG_DEBUG("Probe for GPS at %d", rareSerialSpeeds[speedSelect]); LOG_DEBUG("Probe for GPS at %d", rareSerialSpeeds[speedSelect]);
gnssModel = probe(rareSerialSpeeds[speedSelect]); gnssModel = probe(rareSerialSpeeds[speedSelect]);
if (gnssModel == GNSS_MODEL_UNKNOWN) { if (gnssModel == GNSS_MODEL_UNKNOWN) {
@@ -772,6 +791,9 @@ void GPS::setPowerState(GPSPowerState newState, uint32_t sleepTime)
setPowerPMU(true); // Power (PMU): on setPowerPMU(true); // Power (PMU): on
writePinStandby(false); // Standby (pin): awake (not standby) writePinStandby(false); // Standby (pin): awake (not standby)
setPowerUBLOX(true); // Standby (UBLOX): awake setPowerUBLOX(true); // Standby (UBLOX): awake
#ifdef GNSS_AIROHA
lastFixStartMsec = 0;
#endif
break; break;
case GPS_SOFTSLEEP: case GPS_SOFTSLEEP:

View File

@@ -55,7 +55,7 @@ extern "C" {
#define BUTTON_PIN (0 + 6) // P0.06 #define BUTTON_PIN (0 + 6) // P0.06
#define BUTTON_ACTIVE_LOW false #define BUTTON_ACTIVE_LOW false
#define BUTTON_ACTIVE_PULLUP false #define BUTTON_ACTIVE_PULLUP false
#define BUTTON_SENSE_TYPE 0x6 #define BUTTON_SENSE_TYPE 0x5 // enable input pull-down
#define HAS_WIRE 1 #define HAS_WIRE 1