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

    Couldn't connect to Modem (modem_state=disconnected)

    Scheduled Pinned Locked Moved FiPy
    15 Posts 4 Posters 424 Views 7 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.
    • G Offline
      Gijs
      last edited by Gijs

      Hi,
      Thanks for sending that through, I'll be testing your example, thanks a lot!

      You can re-enable the heartbeat (4s. flash) by using
      import pycom; pycom.heartbeat_on_boot(True).

      Im not familiar with the wifi issues you mention, we do sometimes have issues with our router though, where it stops broadcasting the 2.4GHz WiFi network, but other than that Im not aware of issues with devices and connecting. Perhaps you could elaborate? Though I have no clue where the issue would be, if there is one.

      K 1 Reply Last reply Reply Quote 0
      • K Offline
        kjm @Gijs
        last edited by

        @Gijs I'm perusing a hunch that maybe the fipy is deafer to wifi than our gpys because of the inability to switch off the lora radio, maybe caused by some local oscillator leakage? The fipy definitely reports lower wifi signal strengths than the gpys in the same location.

        1 Reply Last reply Reply Quote 0
        • G Offline
          Gijs
          last edited by Gijs

          That is quite a hunch you got there :). To be honest I'd have to check that in more detail (In my quick test here using this example code, I was not able to spot a noticeable difference over time between a Lopy4, Fipy or Gpy sitting right next to each other):

          from network import WLAN
          import time
          import machine
          wlan = WLAN(mode=WLAN.STA)
          
          while True:
            nets = wlan.scan()
            for net in nets:
              if(net.ssid == 'ssid'):
                print(net.ssid, net.rssi)
            time.sleep(10)
          

          Do you perhaps have different devices to test your hunch with?
          For the original issue, Im currently having some reception issues from within the office, but It's still on my list!

          1 Reply Last reply Reply Quote 0
          • K Offline
            kjm @Gijs
            last edited by

            @Gijs Got another uncommunicative sequans modem Gijs

            >>> import sqnsupgrade
            >>> sqnsupgrade.info(debug=1)
            <<< Welcome to the SQN3330 firmware updater [1.2.6] >>>
            >>> GPy with firmware version 1.20.1.r1
            The current delay is 1000
            Response (+++ #1): None
            Response (AT #1) None
            Response (AT #3) None
            Response (AT #4) None
            Response (AT #1 @ 115200) None
            Response (AT #2 @ 115200) None
            The current delay is 2000
            Response (+++ #1): None
            Response (AT #1) None
            Response (AT #3) None
            Response (AT #4) None
            Response (AT #1 @ 115200) None
            Response (AT #2 @ 115200) None
            The current delay is 3000
            Response (+++ #1): None
            Response (AT #1) None
            Response (AT #3) None
            Response (AT #4) None
            Response (AT #1 @ 115200) None
            Response (AT #2 @ 115200) None
            The current delay is 4000
            Response (+++ #1): None
            Response (AT #1) None
            Response (AT #3) None
            Response (AT #4) None
            Response (AT #1 @ 115200) None
            Response (AT #2 @ 115200) None
            The current delay is 5000
            Response (+++ #1): None
            Response (AT #1) None
            Response (AT #3) None
            Response (AT #4) None
            Response (AT #1 @ 115200) None
            Response (AT #2 @ 115200) None
            Modem state: None
            

            The lte.factory_reset() is not option since an uncommunicative modem means I can't create an lte. Any other ideas I can try?

            1 Reply Last reply Reply Quote 0
            • G Offline
              Gijs
              last edited by

              Either the modem is talking on a wrong baudrate, or wrong UART, or bootrom, or you have an issue with the communication pins (perhaps you attached some device to it, or an internal issue in the esp32), or you need a power cycle. As a last resort, the LTE modem could be fryed.

              To solve the first two cases, you can check different baudrates using:

              from machine import UART
              import time
              # Open serial connection to LTE modem
              serial = UART(1, baudrate=921600, pins=('P20', 'P18', 'P19', 'P17'), timeout_chars=1)
              # For example write AT to modem
              serial.write("AT" + '\r\n')
              # Read back the response from the modem
              time.sleep(3)
              print(serial.read())
               # Deinit uart to lte modem
              serial.deinit()
              

              Next to that, safebooting might help

              The wrong UART port is a bit more complicated (using testpads on the bottom of the Fipy), if needed I can elaborate.

              K 1 Reply Last reply Reply Quote 0
              • K Offline
                kjm @Gijs
                last edited by kjm

                @Gijs Response was None, no joy from safe booting. The only event suffered by this gpy is the lipo powering it went flat due failed solar panel, so hoping the modem is recoverable. Underside test pads is sounding fiddly, how likely is it that the modem would be on the wrong baud or port? Wouldn't the modem firmware have only 1 value for each, namely the value appropriate for the gpy? Maybe I should be writing code to deepsleep everything once the lipo hits 3.4v if permanent modem loss is going to be a by product of low battery voltage operation?

                Also your suggested code gives the same result (None) on a gpy with a working modem, what baud should the gpy & the sequans chat on?

                1 Reply Last reply Reply Quote 0
                • G Offline
                  Gijs
                  last edited by

                  I'm not sure what the chance is of the modem talking on a different UART, or whether that is what is the case here. Though there exist some AT commands that change the UART settings, and there is some recovery bootloader mode that uses a different UART that should always be accessible. If you send me a message over at support@pycom.io I can talk you through reading the other UART ports (it is indeed somewhat fiddly).

                  Also your suggested code gives the same result (None) on a gpy with a working modem, what baud should the gpy & the sequans chat on?

                  For a Gpy, the pins are different. I thought we were discussing the Fipy. For the Gpy, you should use ('P5', 'P98', 'P7', 'P99').

                  K 1 Reply Last reply Reply Quote 0
                  • K Offline
                    kjm @Gijs
                    last edited by

                    @Gijs said in Couldn't connect to Modem (modem_state=disconnected):

                    ('P5', 'P98', 'P7', 'P99')

                    Tnx for gpy appropriate pin nums Gijs. Sadly the gpy with the uncommunicative sequans has become obstinate itself

                    rst:0x1 (POWERON_RESET),boot:0x3 (DOWNLOAD_BOOT(UART0/UART1/SDIO_REI_REO_V2))
                    waiting for download
                    

                    is all I can get out of it now. Erased the flash & reloaded the firmware but no change. Any tips on recovering dead GPYs?

                    1 Reply Last reply Reply Quote 0
                    • P Offline
                      pottendo pottendo @Gijs
                      last edited by

                      @Gijs said in Couldn't connect to Modem (modem_state=disconnected):

                      To clarify, this did not happen during the update process right?

                      Im assuming you already tried to disconnect power and reconnect it again, and that lte.factory_reset() is also not working for you. Could you try sqnsupgrade.info(debug=True) and let me know of the output

                      hi,
                      I have the same problem - on a Gpy, running:
                      Pycom MicroPython 1.20.2.r4 [v1.11-ffb0e1c] on 2021-01-12; GPy with ESP32

                      Here's my output:

                      ets Jun  8 2016 00:22:57
                      
                      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:0x3fff8020,len:8
                      load:0x3fff8028,len:2128
                      load:0x4009fa00,len:19760
                      entry 0x400a05bc
                      Smart Provisioning started in the background
                      See https://docs.pycom.io/smart for details
                      Pycom MicroPython 1.20.2.r4 [v1.11-ffb0e1c] on 2021-01-12; GPy with ESP32
                      Pybytes Version: 1.6.1
                      Type "help()" for more information.
                      >>> import sqnsupgrade; sqnsupgrade.info()
                      <<< Welcome to the SQN3330 firmware updater [1.2.6] >>>
                      >>> GPy with firmware version 1.20.2.r4
                      Cannot determine modem state!
                      >>> sqnsupgrade.info(debug=True)
                      <<< Welcome to the SQN3330 firmware updater [1.2.6] >>>
                      >>> GPy with firmware version 1.20.2.r4
                      The current delay is 1000
                      Response (+++ #1): None
                      Response (AT #1) None
                      Response (AT #3) None
                      Response (AT #4) None
                      Response (AT #1 @ 115200) None
                      Response (AT #2 @ 115200) None
                      The current delay is 2000
                      Response (+++ #1): None
                      Response (AT #1) None
                      Response (AT #3) None
                      Response (AT #4) None
                      Response (AT #1 @ 115200) None
                      Response (AT #2 @ 115200) None
                      The current delay is 3000
                      Response (+++ #1): None
                      Response (AT #1) None
                      Response (AT #3) None
                      Response (AT #4) None
                      Response (AT #1 @ 115200) None
                      Response (AT #2 @ 115200) None
                      The current delay is 4000
                      Response (+++ #1): None
                      Response (AT #1) None
                      Response (AT #3) None
                      Response (AT #4) None
                      Response (AT #1 @ 115200) None
                      Response (AT #2 @ 115200) None
                      The current delay is 5000
                      Response (+++ #1): None
                      Response (AT #1) None
                      Response (AT #3) None
                      Response (AT #4) None
                      Response (AT #1 @ 115200) None
                      Response (AT #2 @ 115200) None
                      Modem state: None
                      Cannot determine modem state!
                      

                      This state was entered when using the Linux cmd-line to flash the CATM1 Firmware via USB after having the NB-IoT installed some weeks ago using the same method.

                      Python 3.9.5 (default, May 11 2021, 08:20:37) 
                      [GCC 10.3.0] on linux
                      Type "help", "copyright", "credits" or "license" for more information.
                      >>> import sqnsupgrade
                      >>> sqnsupgrade.run('/dev/ttyACM0', '/work/src/arduino-play/pycom/CATM1-5.2-48829/CATM1-5.2-48829-1.dup', load_fff=False)
                      <<< Welcome to the SQN3330 firmware updater [1.2.7] >>>
                      Attempting AT wakeup...
                      Session opened: version 1, max transfer 8192 bytes
                      Sending 416448 bytes: [########################################] 100%
                      Waiting for modem to finish the update...
                      <<<=== DO NOT DISCONNECT POWER ===>>>
                      Resetting.....................................................................................................................................................................................................................................................................................................................................................Traceback (most recent call last):
                        File "<stdin>", line 1, in <module>
                        File "/opt/work/src/arduino-play/pycom/pycom-libraries/lib/sqnsupgrade/sqnsupgrade.py", line 1076, in run
                          sqnup.upgrade_ext(port=port, ffile=ffile, mfile=mfile, resume=resume, debug=debug, pkgdebug=False, verbose=verbose, load_fff=load_fff, force_fff=force_fff)
                        File "/opt/work/src/arduino-play/pycom/pycom-libraries/lib/sqnsupgrade/sqnsupgrade.py", line 948, in upgrade_ext
                          if self.__run(file_path=ffile, resume=True if mfile is not None else resume, direct=False, port=port, debug=debug, pkgdebug=pkgdebug, verbose=verbose, load_fff=load_fff, fc=fc, force_fff=force_fff):
                        File "/opt/work/src/arduino-play/pycom/pycom-libraries/lib/sqnsupgrade/sqnsupgrade.py", line 719, in __run
                          self.wait_for_modem(send=False, echo_char='.', expected=b'+SYSSTART')
                        File "/opt/work/src/arduino-play/pycom/pycom-libraries/lib/sqnsupgrade/sqnsupgrade.py", line 150, in wait_for_modem
                          raise OSError('Timeout waiting for modem to respond!')
                      OSError: Timeout waiting for modem to respond!
                      
                      

                      I hope the modem can be somehow recovered.
                      If not I fear the Gpy is not suitable for our projects... :-(

                      thx, pottendo

                      1 Reply Last reply Reply Quote 0
                      • T Offline
                        Tarmo Saluste @Gijs
                        last edited by

                        @Gijs said in Couldn't connect to Modem (modem_state=disconnected):

                        sqnsupgrade.info(debug=True)

                        I have the same problem.

                        The current delay is 1000
                        Response (+++ #1): None
                        Response (AT #1) None
                        Response (AT #3) b'\x00'
                        Response (AT #4) None
                        Response (AT #1 @ 115200) None
                        Response (AT #2 @ 115200) b'\x00'
                        The current delay is 2000
                        Response (+++ #1): None
                        Response (AT #1) None
                        Response (AT #3) b'\x00'
                        Response (AT #4) b'\x00'
                        Response (AT #1 @ 115200) b'\x00'
                        Response (AT #2 @ 115200) b'\x00'
                        The current delay is 3000
                        Response (+++ #1): None
                        Response (AT #1) b'\x00'
                        Response (AT #2) None
                        Response (+++ #2): None
                        Response (AT #3) b'\x00'
                        Response (AT #4) b'\x00\x00'
                        Response (AT #1 @ 115200) b'\x00'
                        Response (AT #2 @ 115200) b'\x00'
                        The current delay is 4000
                        Response (+++ #1): b'\x00'
                        Response (AT #1) None
                        Response (AT #3) b'\x00\x00'
                        Response (AT #4) b'\x00'
                        Response (AT #1 @ 115200) b'\x00'
                        Response (AT #2 @ 115200) b'\x00\x00'
                        The current delay is 5000
                        Response (+++ #1): None
                        Response (AT #1) b'\x00'
                        Response (AT #2) None
                        Response (+++ #2): None
                        Response (AT #3) b'\x00\x00'
                        Response (AT #4) b'\x00\x00\x00'
                        Response (AT #1 @ 115200) b'\x00\x00'
                        Response (AT #2 @ 115200) b'\x00\x00'
                        Modem state: None
                        Cannot determine modem state!
                        
                        1 Reply Last reply Reply Quote 0

                        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 / 1
                        • First post
                          Last post

                        Pycom on Twitter

                        Pycom