GPy and LTE Modem Connection Stability



  • Using GPy and with the help of:

    GPy with Hologram.io SIM

    I am able connect successfully and consistently, however a few issue have presented:

    1. After some period of time (approx 1-2 hours) the connection becomes stale. What I mean to say is that the LTE connection appears to still be active (I can see this with Hologram), but I can not open sockets. Typically the error returned is:

    "OSError: the requested operation failed" or "Connection error"

    When in this state the modem can not be disconnected, detached or reset (LTE.reset) without crashing the GPy.

    1. The GPy will crash unexpectedly during socket operations (socket.open, socket.write) using the LTE modem. Not all the time, but regularly. Doing the same operations over WiFi have no issues and the GPy is otherwise quite stable. There seems to be a stability issue doing socket operations over LTE.


  • With the latest modem firmware "CATM1-38638" the connection stability has really improved. Also the data rate is better and the module is not putting off nearly as much heat. I would suggest based on my experience the modem update is a requirement.



  • With the latest firmware the crashing issues are resolved. I can now successfully disconnect/detach then attach/connect successfully.

    However, I still don't understand why after a period of time I can not create sockets even though the modem appears to still be attached and connected. And if the modem is no longer connected then why? I have a very strong signal and no issues connecting in the first place.

    Is there a debug mode I can enable to see the interaction with the modem or some indication of the modem status? Could there be something inherent to the provider that could terminate the modems connections at random intervals which in turn prevents sockets from being created?

    Any help would be appreciated. This is really the last piece of the LTE part of this project to sort out.



  • Just to follow on the stability issue...

    Should I not be able to call LTE.disconnect(), LTE.dettach() or LTE.reset() in an alarm callback? These functions will crash the GPy 100% of the time. How would I connect and disconnect an LTE session on a schedule if not with timers/alarms?

    I can call the above from the REPL with no issue.

    -AP


 

Pycom on Twitter