GPy Skips LTE Code on First Run
I recently got my hands on a GPy for LTE development, and am having a difficult time with the LTE configuration. I am able to get the board attached and connected to the network, but every time I plug in the device and run the code for the first time, it skips all of the AT commands that are sent, and will only execute these after the initial run. This is making me unsure about the reliability of the network connection for the application I plan to use it for.
Right now I am using some of the example code provided by the LTE example on the Pycom website, as I am unable to find many other projects that use this configuration. The final goal is to read the incoming messages on the sim card, and execute specific responses and functions based on keywords sent to the card.
Thanks in advance.
from network import LTE import time import socket lte = LTE() def getLTE(): lte.attach(band=4, apn="MY_APN") print("attaching...\n",end='') while not lte.isattached(): time.sleep(1) print("not attached.") # get the System FSM print("attached!") lte.connect() print("connecting [##",end='') while not lte.isconnected(): time.sleep(0.5) print('#',end='') #print(lte.send_at_cmd('AT!="showphy"')) print("not connected.") print("] connected!") #print(socket.getaddrinfo('pybytes.pycom.io', 80)) try: getLTE() print(lte.send_at_cmd('AT+CMEE=1')) # Enable debugging ERROR codes print(lte.send_at_cmd('AT+CMGF=1')) # Set modem into TEXT mode (PDU Mode by default) lte.send_at_cmd('AT+CPMS="ME","SM","SR"') # Set parameters for send/store sent/store new #print(lte.send_at_cmd('AT+CMGL="ALL"')) # List messages that are available text = lte.send_at_cmd('AT+CMGR=4') # Read recent message text_split = text.split() # Split AT read into list if text_split == "Voltage": # Check if the message is asking for voltage print("Voltage received \n") # Print received message for verification # Function will then be executed except Exception: pass # do nothing on error lte.deinit()
@B-Taylor There are always problems with AT commands once you are connected() to LTE.
To resolve this, execute the AT commands before connecting and seek "data mode" in the modem documentation on how to exit and re-enter data mode.