Reading location from Helium network instead of GPS

Hi

Is it possible, to estimate a location based on LoRa network (triangulation based on anthenas/locations of closest anthenas?) instead of reading it from GPS and only sending by LoRa?

If so, is there any example of that?

Regards

Or a possibility of reading/listening for antennas in the range?

I don’t think so.

LoRaWan nodes are mainly sending and only receiving if the LNS initiated a packet.
So the nodes barely get any packet from the gateways.

And the nodes do not know from which gateway they received a packet, so even you get RSSI and SNR, you still do not know from which gateway the packet came.

1 Like

But this could be used the other way around: Node could send data, gateways would pass them, then in Helium Console I can see gateways that passed the data, together with SRRI. I could estimate location server-side.

But this would require some version of lmh_send() that would force every gateway that receives the data to pass it to the helium console.

Is my logic correct? I’m still learning this stuff…

That’s not how LoRaWAN works. Gateways are connected to specific LoRaWAN servers (LNS). That can be Helium Console, TheThingsNetwork (TTN) or a private Chirpstack installed somewhere.

  • Node sends
  • any gateway in reach forwards the data to the LoRaWAN network server it is connected to
  • if APPEUI and DEVEUI exist in the LNS the packet is processed, otherwise it is thrown away. Same if a packet comes in twice, the LNS does the sorting out of double packets.

Example

Node is in range of three gateways, G1 is sending to Helium Console, G2 is sending to TTN V3, G3 is sending to a Chirpstack LNS

Now it depends where the node is registered.

For example, if the node is registered in the Helium Console, the data is processed there and TTN and Chirpstack just ignore the packet.

Another example

Your node is registered in the Helium Console
But it is only in range of two gateways connected to TTN
Your data packets are lost and never arrive in the Helium Console

1 Like

Thank you, I’ve learned a lot from your response.

Still, based on what you wrote and what I checked, it should be possible to estimate location based on locations of antennas. After sending any package every gateway passes It to LNS, so if there are more than 1 antenna in the range they will all pass the information on the node, this should be enough. As an example I investigated a join package:

This is something you can try to work on @p4vv37 , but I am not really that optimistic.

SNR values can vary a lot depending on several factors. If you have no control on your surroundings like on the gateway, deployed environment, etc. I am afraid you might not be able to use SNR as a good indicator where your device is. How much margin of accuracy is acceptable to you? A reading of -7.2 SNR can mean 10 meters up to 1000 meters depending the location of the device and the gateway and the obstruction.

If you have a fix environment though, your idea of the SNR might be possible as long as you are sure you will only communicate to only one GW. Lets say your device will move only in a fix location for a fix time. You can probably create a look up table of SNR which correspond to a certain point. But if the device is moving anywhere and can switch Helium GW/hotspot connectivity, your idea is nearly impossible.

1 Like