Heltec LoRa 32 Issue

Hardware: Heltec LoRa 32 v2

Firmware: firmware-heltec-v2.1-1.2.45.b674054.bin

Android: v 1.2.45

I’m having an issue with both Heltec boards not pushing location data to the rest of my devices.

Both T-beams (internal GPS) are working fine, and the Heltec boards are receiving and showing the T-beams locations on the map, but neither Heltec board is publishing their own location, nor are the T-beams receiving it.

I have the “Share location with mesh” setting active, and the boards are showing a valid time on the last page on the display, which is presumably coming from my phone’s GPS data, and they are able to send and receive messages with no problems.

Location services are properly enabled on my phone and I it looks like the board is requesting the location data periodically based on my notification bar.

Any ideas?

the phone’s GPS sat lock and the position broadcast (default every 900s) have to align, so if you don’t see GPS coordinates under the device name (Users/Nodes tab) right after connecting bluetooth, it can take a while.

let it sit for some time and let me know.

1 Like

Thanks. I thought that might be the case, so I let both sit while connected to two different phones with valid GPS locks for two hours.

They continued to receive valid position updates from the T-Beam devices, but never sent their own updates.

I checked the debug panel, and it LOOKS like the Heltec devices are sending their scheduled check ins with battery life, but the location section is just empty.

NodeInfo

num: 3520886688
user {
id: “!d1 dc77a0”
long_name: “H1”
short_name: “H1”
macaddr: "\360\b\321 \334w\ 240
hw_model: HELTEC_V2_1
}

position {
battery_ level: 25
last_heard: 16389 201 78
}

Snr: 9.75

do you see your GPS coordinates under the device name on the Users tab (second tab left to right, image below)?

No, not for the Heltec devices. Only for the T-beams.

To clarify: That screenshot is just based on cached data from last night. I’m not currently connected to any devices.

not having the coordinates under the node you are connected to means the the phone is not passing GPS data to the app.

make sure the GPS is enabled and has a lock. sometimes a reboot helps.

It is. Every other app on both phones is able to read and use the GPS.

It appears this is specific to either the Meshtastic app not passing location data to the Heltec devices, or the Heltec devices not accepting it.

This is from the debug panel. It looks like only partial location data is being sent to the Heltec device.

I also have just put meshtastic on two Heltec Lora, and I’m in the same situation. Despite GPS works correctly for any app, it is never transferred to the device (I’be been trying everything for three days).
I’ve pressed the “file a bug” (or similar - it’s translated in Italian language), i cannot understand where it is filed, and how to get debug information - Debug Panel gives no clue, except not showing any sign of GPS position exchanged. Android tells me that the app did request GPS position. It seems there is some problem in sending it to Heltec.

clicking on “report bug” sends logs and data of recent app activity to Crashlytics, where we can analyse if something went wrong. I can’t see anything recent, when did you send it? also what phone and Android version are you using?

if you also can’t see GPS coordinates under the device name, this means the app is not able to receive location data from Android. “provide location to mesh” requires Google Services, so any OS version without GApps (or when it doesn’t behave like we expect) it will not work, unfortunately.

Just wanna add that I’m having this issue with TTGO’s Lora32 as well. Over 100 hours of runtime and they’ve never got a location from phone. Phone GPS has solid lock, and I have over a dozen apps getting location just fine. Yes, full bg permissions given.

Android 11
App 1.2.45 - 52

if you also can’t see GPS coordinates under the device name, this means the app is not able to receive location data from Android

So it actually is an Android, not device issue. Good to know. The phone is a Samsung M31 (Android 11) with stock firmware and full Google bells and whistles (Maps and Location Services). I revoked locatization permission to see what happened; when opening the app, Android asked me to grant it just this time or while using the app. Choose “just this time”. Closed and reopened app: same thing. “Send location to the mesh” was unticked; when I clicked it, app told me that I had to give location permission all the time, a system box opened, I gave the permission, but coming back to app no position is shown.

As I never used the app before, I didn’t know there shoud be GPS coordinates under device name - I suggest to always show a box, or a “cannot obtain position” toaster to pinpoint issues more easily.

Yes, I’ve rebooted the phone.

It would be important to know if any error is given when the app accesses position. Is there such a log? Maybe it should be in automated bug report?

when did you send?

A few minutes before posting my previous post, and again a few minutes ago. However clicking “send” and “cancel” acted exactly the same.

can’t say for sure, without hands on I’m considering all possibilities.

next release will have a few sanity checks on this feature to make it easier to troubleshoot. only crashes, non-fatals and ANRs reports are automated.

good news. found in the bug reports from the info you provided: Node has fixed position, therefore not overriding position

there are two device settings that prevent the app sending position packets: fixed_position true & location_share LocDisabled

check if that is the case, make sure fixed_position is set to false, and try again. you may need to disconnect & reconnect Bluetooth to restart the location service.

thanks for posting.

@snake0073 @jaykayenn if you send a bug report and let me know app version, android version, phone brand & model and aprox. date and time, I can check for any info on the logs.

I noticed that everyone who’s had this issue is running Android 11. I dug up an old Android 9 phone and, lo and behold, the app is getting phone location now.

1 Like

awesome observation!

I’ve checked; fixed_position is False, location_share is 0 (=LocUnset). I’ve tried setting location_share to 1 (=LocEnabled), but there was no change. As as you said, disconnected and reconnected BT.
Anyway, I’d have bet that “location_share” was the variable controlled by “send your position to the mesh”…

After jaykayenn’s observation, I’ve tried resuming an 8.1 phone to test; still the same.
I’ve sent a bug report again a few minutes ago, maybe you can have a look?

I can confirm reports now have: Not sending position - the local node has sent one recently...

no checks are made for valid Position packets, meaning even battery info (example) from devices with no GPS (with empty lat, lon, alt) will count as “the local node has sent one recently”.

that needs to be fixed.

github issue: No GPS position is ever trasmitted to Heltec Lora 32 by Android app · Issue #339 · meshtastic/Meshtastic-Android · GitHub
related information: Feature: Acquire GPS location from phone first · Issue #337 · meshtastic/Meshtastic-Android · GitHub