Welcome to the Pycom forum Forum
    • \[\[global:header.categories\]\]
    • \[\[global:header.recent\]\]
    • \[\[global:header.tags\]\]
    • \[\[global:header.popular\]\]
    • Login

    Explore Pybytes | Official Documentation | Report a Firmware Bug/Issue | GitHub

    FiPy LTE not connecting after Upgrade Firmware

    Scheduled Pinned Locked Moved FiPy
    fipyfirmwaremodemsequans
    32 Posts 10 Posters 5.2k Views 10 Watching
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • P Offline
      Paul Thornton @Steve Williams
      last edited by

      @steve-williams a change in how the firmware handles things could cause more power usage. That said I'm not aware of anything specific that would have caused this.

      I'd suggest giving the latest rc firmware for the fipy a test. We've had a bunch of lte/stability improvements in the last few rc builds that could help.

      S 1 Reply Last reply Reply Quote 0
      • S Offline
        Steve Williams @Paul Thornton
        last edited by

        @paul-thornton Thanks for that advice, I will try that. However I am trying to deliver a finished prototype for team review, so I would prefer to use release version software really. Downgrade is perhaps an option at this stage - previous version worked fine for a long time!

        S 1 Reply Last reply Reply Quote 0
        • A Offline
          akimmels
          last edited by

          I am wondering if I have a similar problem.

          Setup is FiPy on Pyscan module.
          FW version 1.18.2 and 39529 on the modem.
          When lte.attach() is called, and then quickly repeating AT+CFUN?, the modem first reports
          CFUN: 1. Shortly after it reports +SYSSTART and then CFUN: 0.
          As per Sequans AT manual, +SYSSTART is associated with modem reset/startup.
          Could this suggest that the modem reboots due to lte.attach() call?

          Below snap from terminal:
          0_1550501511327_snap.JPG

          A 1 Reply Last reply Reply Quote 0
          • J Offline
            Jordan Reyes
            last edited by

            My thought is that the Fipy Firmware is not the issue. but the Sequans firmware 39529 modem update was the issue. No problem running any Fipy Firmware old or new. Issues arise when using modem firmware 39529

            1 Reply Last reply Reply Quote 0
            • S Offline
              Steve Williams @Steve Williams
              last edited by

              @steve-williams I have been trying a number of different options and combinations of GPY and Sequans firmware and I have not found a solution to the problems I am experiencing. While I strongly suspected the Sequans firmware, downgrading to 33080, then up to 38638 and 39529 showed no real difference to the problem I am having getting LTE to attach properly.

              With each Sequans version I tried Pycom GPY Release F/W GPy-1.18.1.r3, r4, r7 and also GPy-1.18.2. I also tried release candidates GPy-1.20.0.rc2, rc3, rc4 and rc7 - no joy with any of them or any combination.

              I had no difficulty with any of the firmware installs and my code doesn't seem to mind which version/s are running. But I still can't get LTE to attach. But I least I have gone through previous versions which did work OK previously.

              From here I can only try and prove that either the Sequans module itself (processor or radios) or perhaps the Expansion Bd. 3.0 is the cause. More testing to do now I have eliminated some possibles.

              Anyone else having trouble or lucked onto a solution?

              1 Reply Last reply Reply Quote 0
              • A Offline
                akimmels @akimmels
                last edited by

                @akimmels I realized I should probably clarify this a bit.

                What this suggest to me is that when lte.attach()is called, the modem seems to reset itself, without lte.attach() returning or giving an error.
                So you think the modem is still trying to attach, but in fact it is reset....

                This can be seen from the CFUN returning 0 indicating that both RX adn TX of the modem are disabled. It can also be seen from the current the module is draining, which is much lower in the reset state than when the RX and TX are active.

                I flashed NB-IoT firmware (instead of LTE-M) into the modem, and was then able to attach and connect to a network and test connectivity. So this proves that the hardware is OK....

                1 Reply Last reply Reply Quote 0
                • X Offline
                  Xykon administrators
                  last edited by

                  I have discussed this with Sequans but before we can do any type of troubleshooting we need more details.

                  • The network operator being used

                  • The API commands used to setup the connection

                  • The LTE firmware version currently installed (print(lte.send_at_command('ATI1')))

                  • The MicroPython firmware currently used (os.uname())

                  • The output of print(lte.send_at_command('AT+CEREG?')) after trying to attach.

                  • The output of print(lte.send_at_command('AT+SQNMONI=9')) after trying to attach (might return ERROR)

                  @akimmels This is normal behaviour under certain circumstances. The lte.isattached() command should automatically re-enable the radio in this case. It is not advised to enable/disable the radio manually as this will cause the MicroPython task monitoring the LTE modem to fail.

                  Christian Ehlers

                  S A 3 Replies Last reply Reply Quote 0
                  • X Offline
                    Xykon administrators
                    last edited by

                    I have also uploaded a new firmware package for CAT-M1: https://software.pycom.io/downloads/sequans/CATM1-41065.zip

                    The password is the same as for other Sequans firmware downloads.

                    This is a pre-release that has not been fully tested yet. It should be used only for users who have issues with the latest official release.

                    Christian Ehlers

                    S J 2 Replies Last reply Reply Quote 1
                    • S Offline
                      Steve Williams @Xykon
                      last edited by

                      @xykon said in FiPy LTE not connecting after Upgrade Firmware:

                      It is not advised to enable/disable the radio manually as this will cause the MicroPython task monitoring the LTE modem to fail.

                      When you say don't manually enable/disable the radio, what commands that would be used to do this? I do use init/deinit in my code (to reduce power use between LTE use), is that OK?

                      I will try the new firmware you advised of, and also get the information you request, this is a vexing problem and I am keen to resolve it. As I posted earlier, I have tried a number of different Sequans and GPY firmwares to try and identify the problem but had no success yet.

                      1 Reply Last reply Reply Quote 0
                      • S Offline
                        Steve Williams @Xykon
                        last edited by

                        @xykon Just installed the 41065 firmware on my GPY, running 1.20.0.rc7. Sadly, my let.attach problem is NOT fixed..

                        1 Reply Last reply Reply Quote 0
                        • S Offline
                          Steve Williams @Xykon
                          last edited by

                          @xykon I am in Australi and use the Telstra service. The lte configuration I use is:

                          0_1550789676736_2887dba0-739e-45e8-a723-534f3b4f7b8f-image.png

                          0_1550789714282_34c72b01-bc62-405e-a78c-6f4a182f905c-image.png

                          0_1550789821383_2cf8e702-9750-419e-8fe4-4af34437e686-image.png

                          I have followed you instructions and taken snapshots of the command/result for each, Please note that the correct command to send AT commands is lte.send_at_cmd(instruction). as follows:
                          0_1550789901169_dcfb4774-c6fe-408a-890a-44060713eae4-image.png

                          0_1550789960202_05978310-11af-487c-acc8-07f0bd10af11-image.png

                          0_1550789987947_a43cb42c-6a62-4fab-ab67-7e716dd17be6-image.png

                          0_1550790017491_01ab6c3e-d723-46ed-b2c2-23bf8c2f1c69-image.png

                          After that I uploaded the new seqans firmware OK, but it hasn't fixed the issue..

                          0_1550790093115_90753662-08f1-49ab-9d13-0c2d647c8623-image.png

                          Hope the above helps to resolve the problems being encountered..

                          X 1 Reply Last reply Reply Quote 0
                          • X Offline
                            Xykon administrators @Steve Williams
                            last edited by

                            @steve-williams Can you please try with:

                            from network import LTE
                            lte = LTE(carrier="telstra")
                            lte.attach()
                            

                            Please do not send any commands starting with "AT!" to the modem unless expressly advised by Pycom. The command you are using has been discontinued in recent firmwares.

                            Christian Ehlers

                            S J 3 Replies Last reply Reply Quote 1
                            • S Offline
                              Steve Williams @Xykon
                              last edited by

                              @xykon OK, I wasn't aware of that.. the code I am using has that instruction included and has done for months, and worked fine until recently? Where was the information on this provided -( so I can look for any other useful information)?

                              1 Reply Last reply Reply Quote 1
                              • S Offline
                                Steve Williams @Xykon
                                last edited by

                                @xykon I tried that set of instructions - still doesn't attach.. :-(

                                1 Reply Last reply Reply Quote 1
                                • J Offline
                                  Jordan Reyes @Xykon
                                  last edited by

                                  @xykon do any of these updates location specific? Wouldn't think so but wanted to double check I am in the USA usually verizon. Tried the upgrade here and it still did not work.

                                  1 Reply Last reply Reply Quote 0
                                  • J Offline
                                    jason_gladen @Xykon
                                    last edited by

                                    @xykon I have also tried the "41065" firmware from your recent post

                                    I still get No attach.
                                    I'm in California this that an issue?.
                                    It was working before I tried the firmware update. (but was not very stable)
                                    I have two FiPy now that don't attach...
                                    Can I roll back? or is there some extra setup I need to do to make it work?

                                    Ran this:

                                    from network import LTE
                                    import utime, os
                                    
                                    print('instantiate the LTE object')
                                    lte = LTE()
                                    
                                    utime.sleep(4)
                                    print(lte.send_at_cmd('ATI1'))
                                    utime.sleep(5)
                                    print(os.uname())
                                    utime.sleep(4)
                                    print('attemting attach')
                                    lte.attach()
                                    utime.sleep(10)
                                    print(lte.send_at_cmd('AT+CEREG?'))
                                    utime.sleep(30)
                                    print(lte.send_at_cmd('AT+CEREG?'))
                                    utime.sleep(60)
                                    print(lte.send_at_cmd('AT+CEREG?'))
                                    utime.sleep(10)
                                    print(lte.send_at_cmd('AT+SQNMONI=9'))
                                    

                                    Got this:

                                    rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
                                    configsip: 0, SPIWP:0xee
                                    clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
                                    mode:DIO, clock div:1
                                    load:0x3fff8028,len:8
                                    load:0x3fff8030,len:2064
                                    load:0x4009fa00,len:0
                                    load:0x4009fa00,len:19208
                                    entry 0x400a05f8
                                    Initializing filesystem as FatFS!
                                    Pycom MicroPython 1.20.0.rc7 [v1.9.4-2833cf5] on 2019-02-08; FiPy with ESP32
                                    Type "help()" for more information.
                                    >>> Running ***************\test5.py
                                    
                                    >>>
                                    >>>
                                    instantiate the LTE object
                                    
                                    UE5.0.0.0d
                                    LR5.1.1.0-41065
                                    
                                    OK
                                    
                                    (sysname='FiPy', nodename='FiPy', release='1.20.0.rc7', version='v1.9.4-2833cf5 on 2019-02-08', machine='FiPy with ESP32', lorawan='1.0.2', sigfox='1.0.1')
                                    attemting attach
                                    
                                    +SYSSTART
                                    
                                    
                                    +CEREG: 2,0
                                    
                                    OK
                                    
                                    
                                    +CEREG: 2,0
                                    
                                    OK
                                    
                                    
                                    ERROR
                                    
                                    >
                                    Pycom MicroPython 1.20.0.rc7 [v1.9.4-2833cf5] on 2019-02-08; FiPy with ESP32
                                    Type "help()" for more information.
                                    >>>
                                    
                                    X 1 Reply Last reply Reply Quote 0
                                    • X Offline
                                      Xykon administrators @jason_gladen
                                      last edited by

                                      @jason_gladen If you are using Verizon, you should use lte = LTE(carrier='verizon') although the latest firmware should also detect this based on the SIM card.

                                      I see that the modem is restarting after attach, which should be because the modem is detecting a Verizon SIM card and restarts in "Verizon" mode. After that you need to run lte.isattached() at least once because we need to tell the modem to re-enable the radio after the restart.

                                      Can you please also check if the carrier was set correctly: print(lte.send_at_cmd('AT+SQNCTM?'))

                                      We have a large customer in the US who has been using the 41065 firmware successfully with Verizon for two weeks, so we know the firmware is working with Verizon.

                                      @Steve-Williams Could you please provide the output of print(lte.send_at_cmd('AT+CEREG?')) again after trying to attach with the new code I provided? You may also need to run lte.isattached() several times after the attach command as it's possible the modem restarted after running the attach() command.
                                      Can you please also confirm the carrier was set correctly: print(lte.send_at_cmd('AT+SQNCTM?'))

                                      I'm also reviewing this case with Sequans and will let you know once I have more feedback.

                                      Christian Ehlers

                                      J S 3 Replies Last reply Reply Quote 0
                                      • J Offline
                                        jason_gladen @Xykon
                                        last edited by

                                        @xykon said in FiPy LTE not connecting after Upgrade Firmware:

                                        lte.isattached()
                                        lte = LTE(carrier='verizon')

                                        from network import LTE
                                        import utime
                                        import sys
                                        
                                        utime.sleep(3)
                                        print( "{0}: lte=LTE()".format(utime.ticks_ms()) )
                                        lte = LTE()
                                        
                                        try:
                                          utime.sleep(3)
                                          print( "{0}: lte.attach()".format(utime.ticks_ms()) )
                                          lte.attach()
                                        
                                        except Exception as e:
                                          sys.print_exception(e)
                                        
                                        utime.sleep(3)
                                        print( "{0}: lte.isattached()".format(utime.ticks_ms()) )
                                        ret = lte.isattached()
                                        print( "{0}: Ret = {1}".format(utime.ticks_ms(),ret) )
                                        
                                        
                                        utime.sleep(10)
                                        print( "{0}: lte.isattached()".format(utime.ticks_ms()) )
                                        ret = lte.isattached()
                                        print( "{0}: Ret = {1}".format(utime.ticks_ms(),ret) )
                                        
                                        
                                        utime.sleep(10)
                                        print( "{0}: lte.isattached()".format(utime.ticks_ms()) )
                                        ret = lte.isattached()
                                        print( "{0}: Ret = {1}".format(utime.ticks_ms(),ret) )
                                        
                                        
                                        utime.sleep(10)
                                        print( "{0}: lte.send_at_cmd('AT+SQNCTM?')".format(utime.ticks_ms()) )
                                        ret = lte.send_at_cmd('AT+SQNCTM?')
                                        print( "{0}: Ret = {1}".format(utime.ticks_ms(),ret) )
                                        
                                        
                                        utime.sleep(10)
                                        print( "{0}: lte.isattached()".format(utime.ticks_ms()) )
                                        ret = lte.isattached()
                                        print( "{0}: Ret = {1}".format(utime.ticks_ms(),ret) )
                                        
                                        utime.sleep(10)
                                        print( "{0}: lte.send_at_cmd('AT+CEREG?')".format(utime.ticks_ms()) )
                                        ret = lte.send_at_cmd('AT+CEREG?')
                                        print( "{0}: Ret = {1}".format(utime.ticks_ms(),ret) )
                                        
                                        
                                        >>>
                                        6185: lte=LTE(carrier='verizon')
                                        24403: lte.attach()
                                        Traceback (most recent call last):
                                          File "<stdin>", line 13, in <module>
                                        OSError: the requested operation failed
                                        32385: lte.isattached()
                                        32635: Ret = False
                                        42638: lte.isattached()
                                        42818: Ret = False
                                        52821: lte.isattached()
                                        53001: Ret = False
                                        63004: lte.send_at_cmd('AT+SQNCTM?')
                                        63037: Ret =
                                        +SQNCTM: standard
                                        
                                        OK
                                        
                                        73040: lte.isattached()
                                        73221: Ret = False
                                        83224: lte.send_at_cmd('AT+CEREG?')
                                        83257: Ret =
                                        +CEREG: 2,0
                                        
                                        OK
                                        
                                        >
                                        
                                        

                                        Again with LTE(), this worked before I upgraded

                                        18250: lte=LTE()
                                        23112: lte.attach()
                                        26724: lte.isattached()
                                        26850: Ret = False
                                        36853: lte.isattached()
                                        37452: Ret = False
                                        47455: lte.isattached()
                                        47635: Ret = False
                                        57638: lte.send_at_cmd('AT+SQNCTM?')
                                        57671: Ret =
                                        +SQNCTM: standard
                                        
                                        OK
                                        
                                        67674: lte.isattached()
                                        67855: Ret = False
                                        77858: lte.send_at_cmd('AT+CEREG?')
                                        77891: Ret =
                                        +CEREG: 2,0
                                        
                                        OK
                                        
                                        >
                                        
                                        1 Reply Last reply Reply Quote 1
                                        • S Offline
                                          Steve Williams @Xykon
                                          last edited by Steve Williams

                                          @xykon Hi, so I put together this little routine, just so i can test various GPY and SEQUANS firmware combinations fairly quickly. I plan to test both CATM1 and NB modem firmware.

                                          # Testing LTE connection
                                          # Start with importing core modules for features, interfaces etc.
                                          import uos
                                          from network import LTE
                                          from utime import sleep
                                          
                                          print('Instantiate the LTE object to Telstra (AUS)')
                                          lteM = LTE(carrier="telstra")
                                          sleep(5)
                                          print(lteM.send_at_cmd('ATI1'))
                                          sleep(5)
                                          print(uos.uname())
                                          sleep(5)
                                          lteset = lteM.send_at_cmd('AT+SQNCTM?')
                                          print("LTE set to {}".format(lteset))
                                          lteM.attach()
                                          for l in range (0,10):
                                              lteM.isattached()
                                              sleep(1)
                                          noltcon = 0
                                          if not lteM.isattached():
                                              print("Attempting to attach to LTE ", end='')
                                              while(True):
                                                  noltcon += 1
                                                  if noltcon >= 50:
                                                      # If not attached in 50 sec, flash error then try again
                                                      print(" Failed after 50 attempts")
                                                      break
                                                  elif lteM.isattached():
                                                      print(" Success")
                                                      lteset = lteM.send_at_cmd('AT+SQNCTM?')
                                                      print("LTE attached to {}".format(lteset))
                                                      # Get the current LTE signal quality
                                                      squallteM = lteM.send_at_cmd('AT+CSQ').strip().split()
                                                      rquallteM = int(squallteM[1].split(',')[0])
                                                      # Evaluate the returned signal quality Data
                                                      rssilteM = 113 - ((rquallteM) * 2)
                                                      ltesqual = ("LTE RSSI: -{} dbM".format(rssilteM))
                                                      print(ltesqual)
                                                      break
                                                  print('.', end='')
                                                  sleep(1)
                                          sleep(10)
                                          print(lteM.send_at_cmd('AT+CEREG?'))
                                          sleep(10)
                                          print(lteM.send_at_cmd('AT+CEREG?'))
                                          sleep(10)
                                          print(lteM.send_at_cmd('AT+CEREG?'))
                                          sleep(10)
                                          print(lteM.send_at_cmd('AT+SQNMONI=9'))
                                          

                                          and get these results
                                          #################

                                          Running C:\AE Projects\Atom Projects\GPy Projects\JANNE\lib\LTE_Tests.py

                                          Instantiate the LTE object to Telstra (AUS)

                                          UE5.0.0.0d
                                          LR5.1.1.0-41065

                                          OK

                                          (sysname='GPy', nodename='GPy', release='1.20.0.rc7', version='v1.9.4-2833cf5 on 2019-02-08', machine='GPy with ESP32')
                                          LTE set to
                                          +SQNCTM: telstra

                                          OK

                                          Attempting to attach to LTE ................................................. Failed after 50 attempts

                                          +CEREG: 2,4

                                          OK

                                          +CEREG: 2,4

                                          OK

                                          +CEREG: 2,4

                                          OK

                                          ERROR
                                          ##################

                                          Is the code OK, even if the results aren't what I am hoping for?

                                          Question, is the carrier information for 'telstra' now embedded in the SEQUANS firmware? Used to use two AT commands
                                          'AT+CGDCONT=1,"IP","telstra.internet"'
                                          'AT!="RRC::addscanfreq band=28 dl-earfcn=9410"' (Note you advised NOT to use this)
                                          to set that information for the carrier.

                                          As my code stands, I have a common config file holding the information requires for different countries/carriers/locations, so I will have to revisit that - provided i can get LTE to actually attach!

                                          This is becoming a real concern for me as I am due to present a prototype for client review, but a prime requirement is the LTE capability. For me it is very strange that this has just recently stopped working, after trundling along 24/7 without a problem for more than 3 months (other than restarts from occasional code revisions). I haven't had any luck with reverting to previous firmwares either , which is strange?.

                                          I 1 Reply Last reply Reply Quote 1
                                          • S Offline
                                            Steve Williams @Xykon
                                            last edited by

                                            @xykon said in FiPy LTE not connecting after Upgrade Firmware:

                                            although the latest firmware should also detect this based on the SIM card.

                                            Does the new firmware detect all SIM's? If not, is there a way to do this in code - it would be a big help to me.

                                            Also, given other comments about AT! commands etc, is the "monarch_4g-ez_lr5110_atcommands_referencemanual_rev3_noconfidential" document still valid? Is there a more up to date document?

                                            1 Reply Last reply Reply Quote 1

                                            Hello! It looks like you're interested in this conversation, but you don't have an account yet.

                                            Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

                                            With your input, this post could be even better 💗

                                            Register Login
                                            • 1
                                            • 2
                                            • 1 / 2
                                            • First post
                                              Last post

                                            Pycom on Twitter

                                            Pycom