Cellular radio firmware release (SQN3330) for both Cat-M1 and NB-IoT


  • administrators

    Hello everyone,

    I know many of you were expecting this. We have made available 2 new firmware files for the Cellular radio in the FiPy, GPy and G01 modules. All the details and instructions can be found here:

    https://github.com/pycom/pycom-libraries/tree/master/lib/sqnsupgrade

    Cheers,
    Daniel



  • @danielm Thanks! Anything about band support?



  • @flo242
    No, I asked Daniel Campora specifically regarding NB-IoT firmware. I suggest to contact him by email.



  • @danielm Would you happen to have any changelog for the new Cat-M1 firmware as well?
    Thanks in advance!



  • @kevin hi! Same issue here. Did you manage to sort it out?
    Cheers!



  • @kevin
    I received this info from Daniel:
    New features compared to release LR6.0.0.0-ER9-36571
    • Support of standalone mode of operation
    • Support of Guard-band mode of operation
    • Non IP PDN data delivery (NIDD)
    • Support of 3.75KHz NPUSCH Format 1

    Did not try to update myself yet.



  • Is the new NB1 firmware at https://software.pycom.io/downloads/sequans.html ready to use? Are there release notes detailing new feature support?

    I tried to upgrade a GPY to FIPY_GPY_NB1-37365, but it stalled toward the end of the process. I waited about 30 minutes, then reset it. The previous NB1 firmware loads correctly. Any idea why it would hang at the final reset?

    >>> import sqnsupgrade
    >>> sqnsupgrade.run('/sd/FIPY_GPY_NB1-37365.dup', 921600)
    <<< Welcome to the SQN3330 firmware updater >>>
    Entering recovery mode
    Resetting..
    
    Starting STP (DO NOT DISCONNECT POWER!!!)
    STP started
    Session opened: version 1, max transfer 8192 bytes
    Sending 5050226 bytes: [########################################] 100%
    Code download done, returning to user mode
    Resetting (DO NOT DISCONNECT POWER!!!)..............................
    .......
    Deploying the upgrade (DO NOT DISCONNECT POWER!!!)...
    Resetting (DO NOT DISCONNECT POWER!!!)...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................
    


  • Hey Guys, I see this has been a problem for a few people and I have battled it for a few hours today. Initially, I was unable to get the firmware update to occur under any conditions. Always the same result:

    <<< Welcome to the SQN3330 firmware updater >>>
    Entering recovery mode
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
      File "/flash/lib/sqnsupgrade.py", line 100, in run
    OSError: AT+SMSWBOOT=3,0 failed!
    >>>
    

    I have now performed the upgrade three times successfully and each time under slightly different conditions. Here's my setup:

    • Pycom GPy (w/ firmware 1.17.5.b2)
    • LTE antenna attached
    • nano SIM for Telstra (Australia)
    • Expansion Board 2.0
    • SanDisk Ultra 16GB microSD card

    Procedure:

    • Remove all partitions from SD and format as single FAT32 partition
    • Copy to SD, FIPY_GPY_CATM1_33988.dup from https://software.pycom.io/downloads/sequans.html. Check file size 5,533KB.
    • Put SIM in GPy. Put SD card in Expansion Board 2.0. GPy on EB2.0
    • Power from USB. Join Wi-Fi AP provided by GPy with password www.pycom.io.
    • Create Atom IDE project folder. Use Settings - Project Settings to set Address: 192.168.4.1. Connect. Do not use Reset button: if reset is required, power down by unplugging, wait 10 seconds, reconnect.
    • Use REPL to check contents of SD card:
    >>> import os
    >>> from machine import SD
    >>> sd = SD()
    >>> os.mount(sd, '/sd')
    >>> os.listdir('/sd')
    ['System Volume Information', 'FIPY_GPY_CATM1_33988.dup']
    
    import sqnsupgrade
    sqnsupgrade.run('/sd/FIPY_GPY_CATM1_33988.dup', 921600)
    
    • If successful, expect:
    >>> import sqnsupgrade
    >>> sqnsupgrade.run('/sd/FIPY_GPY_CATM1_33988.dup', 921600)
    <<< Welcome to the SQN3330 firmware updater >>>
    Entering recovery mode
    Resetting.
    
    Starting STP (DO NOT DISCONNECT POWER!!!)
    STP started
    Session opened: version 1, max transfer 8192 bytes
    Sending 5665583 bytes: [#########################               ]  63%Sending 5665583 bytes: [#########################Sending 5665583 bytes: [########################################] 100%
    Code download done, returning to user mode
    Resetting (DO NOT DISCONNECT POWER!!!).
    .........
    Deploying the upgrade (DO NOT DISCONNECT POWER!!!)...
    Resetting (DO NOT DISCONNECT POWER!!!).
    ...
    Upgrade completed!
    Here's the current firmware version:
    UE5.0.0.0c
    LR5.1.1.0-33988
    OK
    >>>
    >>>
    

    Since the first update I also tried the above conditions with the following changes:

    • Serial connection instead of Wi-Fi ... OK
    • Expansion Board 3.0 instead of Expansion Board 2.0 ... OK

    Honestly I think one of two things made the difference: Getting all the libraries loaded and the firmware image on the SD card before powering down. On first power up everything seemed to work the first time. If I reset, or if I'd had a failed attempt, only powering down and restarting made it work again.

    The other option that might have had effect is doing the initial update using Expansion Board 2.0 (no firmware, FTDI only). Maybe once the first firmware update took hold subsequent updates were more likely to succeed.

    Hoping that helps anyone still stuck with this. Chris.



  • @danielm
    Could you shed some details on how you resolved the problem?? By manully mounting card-folder (/sd) using script via serial REPL?
    I am having similar similar ussue:
    https://forum.pycom.io/topic/3142/firmware-upgrade-tool-for-the-sequans-monarch-sqn3330
    Thanks a lot.



  • I successfully managed to upgrade my FiPy. I don't have any GPy but I have custom board with G01 ready. I am not able to try the upgrade, because there is no SD card slot on that board. About 10 days ago Daniel wrote me that they are working on scripts for upgrade through serial interface.

    There was no new firmware release for about a month already. I just hope that there is not any hardware flaw in boards equipped with Sequans LTE modem.



  • Hi everyone,

    Is there a reason why sequans cellular radio is not upgraded with the gpy last firmware?

    I ask this as the sequans upgrade method never work with our 3 gpy. ( Issue created on https://pycomiot.atlassian.net/servicedesk/ but no answer for now ).

    We waited months for the sequans upgrade so we could use Nb-IOT and progress in our R&D but now we're stucked with 3 pycom we can not use anymore...

    Is it normal people have so much problems with this upgrade?

    Thanks in advance



  • @flo242
    Please note the modem firmware update process takes quite some time to complete - possibly over the 5 minute mark.

    Please let it do it's thing. Unfortunately its hard to tell what's the state of your modem now without running some diagnostics through the test points.



  • @tealbrains Since I ran out of other options I even tried Safe-Boot but as expected it didn't revive the bricked modem (the FiPy itself works without any problem).



  • @flo242 Have you tried a "safe boot"?



  • @daniel

    I seem to have run into an unrecoverable problem while trying to upgrade the modem with the latest CAT-M1 firmware (it had the stock firmware, no previous upgrade yet). I wanted to try NB-IoT, so I followed the instructions to first upgrade to the latest CAT-M1 firmware before flashing the NB-IoT firmware. I was using Pysense (firmware pysense_0.0.8.dfu) and FiPy (firmware 1.17.3.b1), connected via serial. No SIM card was inserted, because in my first try it caused the modem to not accept the initial AT+SMSWBOOT=3,0 command to enter the recovery mode.

    >>> import sqnsupgrade
    >>> sqnsupgrade.run('/sd/FIPY_GPY_CATM1_33988.dup', 921600)
    <<< Welcome to the SQN3330 firmware updater >>>
    Entering recovery mode
    Resetting..
    ..
    Starting STP (DO NOT DISCONNECT POWER!!!)
    STP started
    Session opened: version 1, max transfer 8192 bytes
    Sending 5665583 bytes: [########################################] 100%
    Code download done, returning to user mode
    Resetting (DO NOT DISCONNECT POWER!!!).
    ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
      File "/flash/lib/sqnsupgrade.py", line 129, in run
      File "/flash/lib/sqnsupgrade.py", line 59, in wait_for_modem
    KeyboardInterrupt:
    >>>
    >>> from network import LTE
    >>> lte = LTE()
    >>> lte.send_at_cmd('AT')
    ''
    

    After waiting almost 5 minutes there was no hope that it would ever finish, and after CTRL-C the modem didn't reply anymore. After a hard-reset I also can no longer create an LTE object, it just sits there forever. Obviously I am unable to retry the firmware upgrade since the modem doesn't respond anymore, what other options are left?

    Thanks in advance!



  • @kevin Thanks, that fixed it.



  • @nathanh

    2 cents worth, used fileZilla and had a similar problem trying to transfer the upgrade ~5.4mb file. Would only transfer 786432 bytes (20 seconds ish) before timing out and closing the connection. So wrote part file only! - Fix for me was to mount card-folder (/sd) using script via serial REPL console, then use fileZilla (via wifi connection) to write entire 5.4mb file (to /sd path).

    0_1523513947902_FTP01.jpg

    ---- Script I used ----

    from machine import SD
    import os
    import time
    import gc

    sd = SD()
    os.mount(sd, '/sd')

    #check the content
    os.listdir('/sd')

    #found this helps with NOT SHUTTING down Link after 20-30 Seconds, used filezilla while this was running to upload file

    xx = 1
    while xx < 40:
    print('Going to sleep')
    time.sleep(5) # in seconds
    print('waking up')
    print(str(xx))
    xx += 1

    os.unmount('/sd')
    gc.collect()



  • @cssmacs01 Still looks like you got something odd happening there but interesting that it states your version to be the latest... Guess this is one for the @administrators to comment on.



  • @nathanh You think I'm good?

    0_1523413796777_939d93d5-5512-4a66-b422-20c019e00c51-image.png



  • @nathanh Yes sir! For so much of my night I wasn't able to mount the SD, so that's why I went that route. I just finally mounted and it's transferring 5.5megs. Cross fingers!

    0_1523412444484_0e12ca15-bd4b-4afa-84ce-141494ba2d94-image.png


 

Pycom on Twitter