Nanogateway uplink fails after 30minutes every time.
I am using a PyTrack with LoPy as a nanogateway. After successfully connecting to eduroam (WPA2 enterprise I believe) everything works fine for exactly 1900 seconds every time give or take a few milliseconds. I am wondering where to start with this problem, I have looked through the code for anything that might indicate something happening everything 30 minutes but no success.
I don't believe eduroam is the problem since I am using two laptops and a phone all connected by wifi with no problems. In the past I was connecting the nanogateway via mobile phone hotspot and having no troubles.
I was just wondering if anyone would have any ideas on where I start, or if I can at least find a way to determine whether its the nanogateway, or something to do with the eduroam, in which case I'll contact our IT guys.
The nano gateway uses the Semtech standard protocol which is uses UDP on port 1700, this is very different from your usual WiFi traffic and likely to be treated differently by your institution’s network policies.
I guess you can ask them what is their policy for long running UDP sessions on port 1700 but in my experience, unless you are able to talk to core networking staff, you might not get a straight answer.
Since UDP is a connectionless protocol the LoPy has no idea about the state of the connection either, by definition UDP is a “send packets and hope for the best” protocol.
What you can do is point the nanogateway at another server, maybe some server you control outside of your institution network and have something listen on UDP/1700 there, can be as simple as Netcat:
netcat -u -l 1700
Then wait that half an hour and see if the nanogateway messages still arrive there. Doing a packet capture (tcpdump) on port 1700 will probably help. If the packets stop arriving - the gateway will always send status packets even without LoRa traffic - you’ll know at least that you have a networking problem and nothing related to LoRa.
You should also monitor the nano gateway, ideally over Serial to see if no error messages pop up.