meshtastic / firmware

Meshtastic device firmware
https://meshtastic.org
GNU General Public License v3.0
3.3k stars 800 forks source link

[Bug]: No GPS on Heltec wireless tracker #4429

Closed brloomis closed 2 hours ago

brloomis commented 1 month ago

Category

Other

Hardware

Heltec Wireless Tracker

Firmware Version

2.4.2.5b45303

Description

After #4319 my Heltec Wireless tracker v1.1 shows "No GPS", and the logs indicate that it could not probe the GPS unit.

Patching this line: https://github.com/meshtastic/firmware/pull/4319/files#diff-c9e9d981789c05f2633c8bc91527d5c33f714ea43d106684250598ec0d4487ccR1194 to look for "UM600" instead of "UC6580" works, and the GPS seems to work OK afterwards.

I'm not sure if this is an issue specific to my device (I tried two with the same issue).

Relevant log output

Originally I got these logs:

DEBUG | ??:??:?? 5 [GPS] Probing for GPS at 115200 
DEBUG | ??:??:?? 5 [GPS] Setting Baud to 115200
WARN  | ??:??:?? 10 [GPS] Failed to find UBlox & MTK GNSS Module using baudrate 115200

I added debug output and here is the full response from $PDTINFO:

$PDTINFO,FB2S UM600,G1B1L1E1,V2.0,R6.0.0.0Build1280,N/A,N/A*74
brloomis commented 1 month ago

For reference, my test patch is here: https://github.com/brloomis/meshtastic-firmware/commit/1f7242eeab381117f59936257cdfa0e5d2bc60d6 but there may be a better way to do it.

fifieldt commented 1 month ago

@brloomis I think that's worth sending in. Sorry for breaking your device!

fifieldt commented 1 month ago

@brloomis do you have time to send in the pull request? If not, let us know :D I'm just worried others may need this fix quickly :)

brloomis commented 1 month ago

I added one, I'm OK with this fix if it looks OK to you. There may be an optimization to send $PDTINFO only once but it seems like you'd need to check the output against multiple strings, which may be more trouble than it's worth.

I'm also curious about why my units (all three that I tested are Heltec Wireless Tracker v1.1 as far as I can tell, the bottom GPS module is marked "Heltec UC6580") seemingly identified differently than yours. Looking through the docs I could find on the UC5680 and the Unicore UFirebirdII, I couldn't find any reference to "UM600" at all.

fifieldt commented 1 month ago

Thanks @brloomis , yes -I think there's a decent amount of optimisation work that could be done on that probe method :)

I was curious about that too and also could not find a chip with that model. My best guess is that maybe UM600 was a 'series' marker and UC6580 is somehow related to eg UM620?