Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Verify that message for Helium network can be received overseas #455

Open
MedadRufus opened this issue Aug 27, 2022 · 5 comments
Open

Verify that message for Helium network can be received overseas #455

MedadRufus opened this issue Aug 27, 2022 · 5 comments

Comments

@MedadRufus
Copy link
Member

MedadRufus commented Aug 27, 2022

Currently, all helium devices credentials are OTAA connected in the EU. Then the keys are cached. Will it still work in other geographical regions? US, Asia etc? The source code for helium router may be able to inform us: https://github.com/helium/router

@MedadRufus
Copy link
Member Author

This issue on helium suggests that the backend handles all regions together: helium/helium-packet-router#47

@MedadRufus
Copy link
Member Author

Most obvious way to test this is:

  1. do an OTAA connection in the EU
  2. Travel to America, switch the frequency of the lora node to US frequencies and transmit packets.
    To pass, the packets must be received also in the US.

This test can be tested between any 2 regions. Travelling not mandatory - just need to do an OTAA connection in one region, store the long term keys, send a firmware image over to a friend in another region - it needs to connect with ABP + hard-coded keys and on the right local frequencies.

@MedadRufus
Copy link
Member Author

Alternatively, do an OTAA connection from the air in every region of the world. This will simulate having a new device connecting for the first time in every region. The drawback is that OTAA is very hard to complete from the air, as it requires 2 way messaging with no packet loss(one from tracker to gateway and next transmission from gateway to tracker must be successful).

Arguably this is the safest way as backend systems would definately have been designed to handle this scenario - OTAA connecting and usage within the same region.

@MedadRufus
Copy link
Member Author

MedadRufus commented Jan 19, 2023

Useful reference - how to simulate a virtual LoRaWAN device: https://docs.helium.com/use-the-network/run-a-network-server/debug-with-sniffer/

The virtual LoraWAN device repo is here: https://github.com/helium/virtual-lorawan-device
When creating the virtual device, we have to define the region, as shown in this example: https://github.com/helium/virtual-lorawan-device/blob/8e4b498709acf046129cd0a0b953642c90e84cf4/README.md?plain=1#L50. It makes me think that the whole system needs to know the region to work. I trace the region parameter down to this repo: https://github.com/ivajloip/rust-lorawan.

@MedadRufus
Copy link
Member Author

Acceptable solution:

  1. Register a virtual lorawan device in US region, then do a join and tx a few times. Then extract all abp keys.
  2. Load the abp keys into a real endnode, and tx in EU region on EU frequencies. It must be in ABP mode.
  3. Confirm that packets are received in EU.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant