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

    New LTE Firmware release v1.18.1.r3 & CAT-M1 firmware & modem updater

    Scheduled Pinned Locked Moved Announcements & News
    firmwarelte
    28 Posts 10 Posters 5.7k Views 12 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.
    • X Offline
      Xykon administrators
      last edited by Xykon

      Hello everyone,

      A new stable firmware is now available for the LTE modules (GPy, G01, FiPy). This update has a number of changes in the LTE stack and a new Sequans firmware updater that allows using "differential" upgrade packages that are significantly smaller than the full upgrade packages (see more details below).

      LTE class changes:

      • The module should no longer freeze when instantiating the LTE class multiple times or after a soft reset

      • New commands pppsuspend() and pppresume() allow pausing & resuming the LTE ppp connection to send AT commands (These commands are not available when using the firmware installed during production).

      • You can now specify the initial APN during attach() : lte.attach(apn="nb.inetd.gdsp")

      • dettach() has an option parameter lte.dettach(reset=True) that automatically resets the modem before switching off the radio. This may be helpful if the modem freezes after calling lte.dettach()

      • deinit() has two new parameters, lte.deinit(dettach=False) allows the modem to go into power saving mode (PSM, eDRX) without dettaching from the network. Edit: Additionally, deinit() also accepts lte.deinit(reset=True) if you call deinit() without calling dettach() first.

      • send_at_cmd() has an optional parameter lte.send_at_cmd('AT', delay=1000). The delay in milliseconds is the time the esp32 waits between sending the request to the modem and reading the response.

      sqnsupgrade class changes:

      • New info() command to check the modem state. (this command only works directly on the module). If the modem is in application mode, the current firmware version is displayed. This behaviour replaces the version() command which now is only available in uart() mode. Optional parameters are sqnsupgrade.info(verbose=False, debug=False)
        This command should definitively detect the modem after a power cycle as long as the boot.py and main.py are empty.

      • New optional command line option load_fff for the sqnsupgrade.run() command. This allows loading the new differential firmware upgrade packages into a special area of the modem. The upgrade is then applied automatically on the modem and the updater just needs to wait for the upgrade to finish. This option is enabled by default for all upgrade files that are 4MB or less in size.

      Sequans firmware packages:

      New firmware packages are now available at: http://software.pycom.io/downloads/sequans2.html

      Please note that existing packages have been updated to include additional files so even if you have downloaded a package previously please download it again.

      New CAT-M1 firmware 39529:

      New CAT-M1 firmware package 39529 is now available for download. The new firmware contains stability improvements and general bug fixes.

      To upgrade from the previous CAT-M1 firmware 38638 you can simply upload the upgdiff_38638-to-39529.dup file (452K) from the CATM1-39529.zip archive into the /flash directory on your module and run:

      import sqnsupgrade
      sqnsupgrade.run('upgdiff_38638-to-39529.dup')
      

      If you are updating the Sequans firmware on your module for the first time, please use instead the file upgdiff_33080-to-39529.dup (1.2M) from the same archive.

      Similar upgrade packages are available for the NB-IoT firmwares. We are currently waiting for Sequans to provide a new NB-IoT with working DNS. We're hoping the get the new version early next week.

      P.S. The sources for this release are currently available here: https://github.com/pycom/pycom-micropython-sigfox/tree/lte-xykon

      Christian Ehlers

      D P T 3 Replies Last reply Reply Quote 3
      • D Offline
        danielm @Xykon
        last edited by

        @xykon
        I am glad to find out that most of current issues should be fixed with this new release. We will start testing tomorrow as the devices are currently "frozen" at remote location.

        Regarding new NB-IoT modem firmware which should be available during next week - are there some other improvements on top of DNS fix, especially in regards to connection stability? My experience is that long-running NB-IoT connection fails in several hours.

        Differential upgrade of modem firmware seems to be very interesting feature. Do you think that something similar might be possible for ESP32 Pycom firmware as well?

        Btw, trying to download following package returns Unauthorized:
        https://software.pycom.io/downloads/CATM1-39529.zip

        I checked latest NB-IoT firmware package and it does not contain any differential upgrade files:
        https://software.pycom.io/downloads/NB1-38729.zip

        X 2 Replies Last reply Reply Quote 1
        • X Offline
          Xykon administrators @danielm
          last edited by

          @danielm Sorry the correct packages should now be on the software server ready for download.

          Christian Ehlers

          D 1 Reply Last reply Reply Quote 0
          • D Offline
            danielm @Xykon
            last edited by

            @xykon
            Thanks, the packages seem to be ok now.

            Maybe you could answer to questions from my previous post as well :) :

            Regarding new NB-IoT modem firmware which should be available during next week - are there some other improvements on top of DNS fix, especially in regards to connection stability? My experience is that long-running NB-IoT connection fails in several hours.

            Differential upgrade of modem firmware seems to be very interesting feature. Do you think that something similar might be possible for ESP32 Pycom firmware as well?

            R 1 Reply Last reply Reply Quote 0
            • R Offline
              rskoniec @danielm
              last edited by rskoniec

              @Xykon Just for sure, can I safely use SD card as source for differential update?

              sqnsupgrade.run('/sd/upgdiff_38638-to-39529.dup')
              

              The machine is working as good as it's code.

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

                @danielm said in New LTE Firmware release v1.18.1.r3 & CAT-M1 firmware & modem updater:

                Regarding new NB-IoT modem firmware which should be available during next week - are there some other improvements on top of DNS fix, especially in regards to connection stability? My experience is that long-running NB-IoT connection fails in several hours.

                Yes the new firmware will also contain stability improvements.

                Differential upgrade of modem firmware seems to be very interesting feature. Do you think that something similar might be possible for ESP32 Pycom firmware as well?

                We're looking into this but as the technology is very different I can't make any promises at this time.

                Christian Ehlers

                D 1 Reply Last reply Reply Quote 1
                • X Offline
                  Xykon administrators @rskoniec
                  last edited by

                  @rskoniec said in New LTE Firmware release v1.18.1.r3 & CAT-M1 firmware & modem updater:

                  @Xykon Just for sure, can I safely use SD card as source for differential update?

                  Yes the firmware can also be loaded from an SD card without problems.

                  Christian Ehlers

                  1 Reply Last reply Reply Quote 0
                  • P Offline
                    peekay123 @Xykon
                    last edited by peekay123

                    @xykon I haven't upgraded my FiPy yet, waiting on a failure-free process. To apply these upgrades do I apply BOTH the CAT-M1 and NB-Iot firmware upgrades or is it only one or the other?

                    Anyone?

                    1 Reply Last reply Reply Quote 0
                    • J Offline
                      JohnPiantanida
                      last edited by

                      I updated the Fipy just fine. But when I try to upgrade the modem I get "Exception when checking file upgdiff_38638-to-39529.dup... wrong file name?"

                      I placed the file in the root of /flash. Then:

                      import sqnsupgrade
                      sqnsupgrade.run('upgdiff_38638-to-39529.dup')

                      Also tried with upgdiff_33080-to-39529.dup with the same results.

                      Any ideas?

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

                        Never mind. It was hidden formatting in my copy/paste. Typed out, it worked just fine.

                        1 Reply Last reply Reply Quote 0
                        • T Offline
                          tlanier @Xykon
                          last edited by

                          @xykon

                          When I do an import sqnsupgrade I get an error ImportError: no module named 'sqnsupgrade'

                          I'm running Pycom MicroPython 1.19.0.b4 on 2018-07-13 which was flashed using the latest download from [https://pycom.io/downloads/]

                          How can I get the latest code on my GPy?

                          Do I need to download the code from GitHub to upgrade?

                          I've tried downloading and building the code from Ubuntu 18.04. I get an error on the last step when trying to flash the code to the GPy.

                          $ sudo make BOARD=GPY flash

                          make: *** No rule to make target '/components/esp32/ld/esp32.ld', needed by 'build/GPY/release/esp32_out.ld'

                          I will describe in detail my steps to download and build if that is necessary.

                          T 1 Reply Last reply Reply Quote 0
                          • T Offline
                            tlanier @tlanier
                            last edited by tlanier

                            @tlanier
                            Got the update to work!

                            Here's some things that might help other people getting started like me:

                            • The Pycom Firmware Update program (V1.15.1) is used to update the GPy firmware to the stable version 1.18.1 r3. The Hi Speed must be selected or the update will time out.
                              [https://pycom.io/downloads/]

                            • The upgdiff_38638-to-39529.dup file is placed in the /flash directory, which is the same directory python code is placed. I originally placed the file in a folder I created called flash thinking my code was in the root folder. In fact my code was already in the /flash folder; if you have your project open in Visual Studio Code pointing to the flash folder, you may not notice this.

                            • Even after changing global Pymakr.json to include .dup files (sync_file_types), Visual Studio Code will not upload the large file (times out). I had to use FTP instead.

                            Connect using WIFI
                            SSID: gpy-wlan-becc
                            FTP to 192.168.4.1
                            user: micro
                            password: python
                            FileZilla - must select passive + limit number of simultaneous connects to 1

                            • Don't forget to erase the file after the update to free up space.
                            1 Reply Last reply Reply Quote 1
                            • D Offline
                              danielm @Xykon
                              last edited by danielm

                              @xykon
                              Is v1.18.1.r3 supposed to work with NB1-38729?
                              I am testing on FiPy and calling network.LTE() throws OSError: the requested operation failed - not immediately but after some timeout.

                              Pycom MicroPython 1.18.1.r3 [v1.8.6-849-3aac0f3] on 2018-11-08; FiPy with ESP32
                              Type "help()" for more information.
                              >>> import sqnsupgrade
                              >>> sqnsupgrade.info()
                              <<< Welcome to the SQN3330 firmware updater [1.2.0] >>>
                              >>> FiPy with firmware version 1.18.1.r3
                              Your modem is in application mode. Here is the current version:
                              UE6.0.0.0
                              LR6.0.0.0-38729
                              >>> import network
                              >>> lte = network.LTE()
                              Traceback (most recent call last):
                                File "<stdin>", line 1, in <module>
                              OSError: the requested operation failed
                              
                              X 1 Reply Last reply Reply Quote 0
                              • X Offline
                                Xykon administrators @danielm
                                last edited by

                                @danielm said in New LTE Firmware release v1.18.1.r3 & CAT-M1 firmware & modem updater:

                                Is v1.18.1.r3 supposed to work with NB1-38729?
                                I am testing on FiPy and calling network.LTE() throws OSError: the requested operation failed - not immediately but after some timeout.

                                The sqnsupgrade scripts use the UART class to connect directly to the modem from MicroPython and sometimes it doesn't release the peripheral, which causes LTE.init() to hang (it's trying to send several commands to the modem but never gets a response). You can try to run del sqnsupgrade to force unload it otherwise a hard reset should fix it too.

                                If this happens even without loading sqnsupgrade, I'm currently testing NB1-40343 which fixes the DNS issue and a few other things. I'm expecting to release this within the next 24 hours and so far have not observed any issues during LTE.init() that are not related to sqnsupgrade.

                                Christian Ehlers

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

                                  @danielm I'm not quite sure why but it also makes a difference how you initialise the LTE class.

                                  Could you please try this instead:

                                  from network import LTE
                                  lte = LTE()
                                  

                                  Christian Ehlers

                                  D 1 Reply Last reply Reply Quote 0
                                  • D Offline
                                    danielm @Xykon
                                    last edited by danielm

                                    @xykon
                                    With v1.18.1.r3 suggested way to initialize LTE from REPL worked:

                                    from network import LTE
                                    lte = LTE()
                                    

                                    However it did not work in our application.
                                    Then I noticed v1.18.1.r4 pushed to the GitHub. I built it and tested LTE initialization which works both ways without any issues and in our application as well.

                                    The problem is that any socket communication is almost impossible. Maybe there are some timing issues on the UART interface of Sequans modem? Could it behave differently with NB1-40343?

                                    Edit: lte.isattached returns True even without calling lte.attach(). Snychro state of the modem is OFF.

                                    Pycom MicroPython 1.18.1.r4 [dfa1176] on 2018-11-12; FiPy with ESP32
                                    Type "help()" for more information.
                                    >>> from network import LTE
                                    >>> lte = LTE()
                                    >>> lte.isattached()
                                    True
                                    >>> lte.send_at_cmd('AT!="showphy"', delay = 100)
                                    '\r\nDL SYNCHRO STATISTICS\r\n=====================\r\n    Synchro state                         : OFF\r\n    PPU SIB1 ACQ watchdog                 : 0\r\n    Frequency Hypothesis RF  (Hz)         : 0\r\n    RSRP (dBm)                            : 0.00\r\n    RSRQ  (dB)                            : 0.00\r\n    Channel estimation state (Cell-spec.) : LOW CINR\r\n    Channel estimation state (UE-spec.)   : LOW CINR\r\n    Channel estimation state (MBSFN)      : LOW CINR\r\n    Channel estimation CINR               : 0.00\r\n    Channel length                        : SHORT\r\n  AGC\r\n    AGC RX gain (dB)                      : 0.00\r\n    RX PSD BO (dBFs)                      : 0.00\r\n    RX PSD (dBm)                          : 0.00\r\n    Noise level RS (dBm)                  : 0.00\r\n    Digital gain (dB)                     : 0.00\r\n    CINR RS (dB)                          : 0.00\r\n  NARROWBANDS\r\n    Last DL NB                            : 0\r\n    Last UL NB                            : 0\r\n  AFC\r\n    Frequency offset RF  (Hz)             : 0\r\n    Frequency offset BB  (Hz)             : 0\r\n  PBCH\r\n    MIB received quantity                 : 0\r\n    MIB timeout quantity                  : 0\r\n\r\nOK\r\n'
                                    

                                    Synchro state remains to be OFF even after calling lte.attach()

                                    1 Reply Last reply Reply Quote 0
                                    • P Offline
                                      panda
                                      last edited by

                                      I am seeing different behavior when connecting to CAT M1 with 1.18.1.r3 and 39529.

                                      Previously the following would work fine:

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

                                      ...

                                      lte.connect(cid=3)

                                      With the latest firmwares I get the following error:

                                      lte.connect(cid=3)
                                      Traceback (most recent call last):
                                      File "<stdin>", line 1, in <module>
                                      OSError: the requested operation failed

                                      I tried with other carrier and cid values and same result.

                                      If I remove the carrier on init and cid parameter I can connect successfully. Are there new rules about how to connect to various carriers?

                                      1 Reply Last reply Reply Quote 0
                                      • P Offline
                                        panda
                                        last edited by

                                        @danielm said in New LTE Firmware release v1.18.1.r3 & CAT-M1 firmware & modem updater:

                                        @xykon I see the same thing with 1.18.1.r3. I can init the LTE class form the REPL, but not in a py script. The init just hangs.

                                        I traced it to activity before the init. For example the following works:

                                        def initLTE():
                                            lte = LTE()
                                        

                                        And the following hangs on the init

                                        import logger
                                        def initLTE():
                                           logger.info("bla bla bla bla")
                                           lte = LTE()
                                        

                                        I don't think the issue is specific to the logger class, but something in the logger causes the issue.

                                        Again, No issues with 1.18.1.r1

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

                                          @danielm @panda

                                          As mentioned a fix for the init issue is already on GitHub and I will release this shortly. I'm also preparing the new NB-IoT firmware release for today.

                                          lte.isattached returns True even without calling lte.attach().

                                          Does this still happen with v1.18.1.r4? If it does, could you please check the two commands:

                                          print(lte.send_at_cmd('AT+CGATT?'))
                                          print(lte.send_at_cmd('AT+CEREG?'))

                                          According to Sequans, AT+CGATT? should be enough to detect if the modem is attached, however I found this is not always the case so I kept a mix of the "old" CEREG? and "new" CGATT method as the CEREG method doesn't always work correctly either.

                                          The problem is that any socket communication is almost impossible. Maybe there are some timing issues on the UART interface of Sequans modem? Could it behave differently with NB1-40343?

                                          Please check with the new firmware and let us know.

                                          I am seeing different behavior when connecting to CAT M1 with 1.18.1.r3 and 39529.

                                          I tested this with our Amarisoft LTE-M emulator but did not observe this issue so far.

                                          Christian Ehlers

                                          P 1 Reply Last reply Reply Quote 0
                                          • P Offline
                                            panda @Xykon
                                            last edited by

                                            @xykon sorry I missed the r4 post. I find this forum hard to follow. Can't put my finger on it, but the reverse order of posts is one thing non-intuitive for me.

                                            I'll try r4 in the AM. Thanks.

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

                                            Pycom on Twitter

                                            Pycom