thinknode_m6: don't drive GPS REINIT pin (fixes GPS never detected)

The M6's L76K GPS streams NMEA at 9600 baud on its own, but the firmware
reported no GPS. Root cause: pin 29 (PIN_GPS_RESET / the module's REINIT
line) was driven HIGH, which holds the L76K silent so it never emits any
sentences and detection fails.

variant.cpp drove pin 29 HIGH at boot, and because PIN_GPS_RESET was
defined, MicroNMEALocationProvider also drove it HIGH in begin(). Bench
testing on a sealed M6 (passive NMEA capture, no logic analyzer) confirmed:
pin 29 driven HIGH = 0 bytes; pin 29 floating = full NMEA stream.

Define GPS_RESET (-1) so the location provider never touches pin 29, and
stop driving it in initVariant. This matches the Meshtastic M6 variant,
which leaves the same pin as a floating input.
This commit is contained in:
Jody Bentley
2026-06-29 14:49:11 -04:00
parent 3d4eec4a6a
commit 5c534c4399
2 changed files with 10 additions and 3 deletions
+4 -2
View File
@@ -30,6 +30,8 @@ void initVariant() {
digitalWrite(PIN_GPS_STANDBY, HIGH);
pinMode(PIN_GPS_EN, OUTPUT);
digitalWrite(PIN_GPS_EN, HIGH);
pinMode(PIN_GPS_RESET, OUTPUT);
digitalWrite(PIN_GPS_RESET, HIGH);
// PIN_GPS_RESET (pin 29 / REINIT) is intentionally left floating (input).
// Driving it HIGH holds the L76K silent, so it never streams NMEA and the
// firmware reports "no GPS". Letting it float lets the module run, matching
// the Meshtastic M6 variant. See GPS_RESET (-1) in variant.h.
}