Unable to update GPy Modem, Stuck at 0%



  • Hi All,

    Im stuck trying to update the GPy modem to the latest firmware. We just received a batch of these in and following upgrading the system firmware to 1.18.2.r7 im trying to update them to the latest LTE-M modem firmware 33080 to 41065...however.... whenever i try to run the upgrade it gets stuck at 0% and nothing happens even if it sits for hours. I have run the upgrade process in debug mode to get more information and ill post it here:

    <<< Welcome to the SQN3330 firmware updater [1.2.5] >>>
    File upgdiff_33080-to-41065.dup has size 1658508
    mirror? False  recover? False  resume? False  direct? False  atneg_only? False bootrom? False load_fff? True
    baudrate: 921600 target_baudrate: 921600
    Setting port COM9
    Setting baudrate to 921600
    Initial prepartion complete...
    Loading upgdiff_33080-to-41065.dup
    Attempting AT wakeup... [921600]
    b'\r\nERROR\r\n'
    count=1
    b'\r\nOK\r\n'
    AT+BIND=AT returned b'\r\nOK\r\n'
    ATE0 returned b'\r\nOK\r\n'
    Entering upgrade mode...
    Sending AT+SMLOG?
    AT+SMLOG? returned b'\r\n+SMLOG: LOG_INHERIT\r\nOK\r\n'
    AT+SMOD? returned 2
    Sending AT+FSRDFILE="/fs/crashdump"
    AT+FSRDFILE="/fs/crashdump" returned b'\r\n\r\nERROR\r\n'
    AT+SQNSUPGRADENTF="started" returned b'\r\nOK\r\n'
    Sending AT+SQNWL="sqndcc",2
    AT+SQNWL="sqndcc",2 returned b'\r\nERROR\r\n'
    Sending AT+CFUN=4
    AT+CFUN=4 returned b'\r\nOK\r\n'
    Starting STP [FFF]
    Sending AT+SMSTPU
    Starting STP code upload
    running m.wipe
    running m.reset
    magic=0x74736166, op=0x80, sid=0x0, plen=0x0, tid=0x0, hcrc=0x0, pcrc=0x0
    Correct SRSP signature: 0x74736166
    running m.open_session
    Session opened: version 1, max transfer 8192 bytes
    running push(m)
    Sending 1658508 bytes: [                                        ]   0%
    

    Any suggestions as to what is going on?
    Thanks,

    -NovJeef



  • @noviniumJeef : I am not sure if the modem firmware update problem that you have was caused by this, but it has been officially acknowledged by Pycom that some devices come with the modem File system in Read-Only state due to a bug in the modem firmware, and in this case, you will get the message Received ERROR from AT+SMSWBOOT=3,1! Aborting! when trying to upgrade the modem firmware, regardless of the method.

    If this is your case, you should contact Pycom to have the board replaced for you.

    ( Reference: GitHub - Fail to upgrade GPy LTE Modem #289 )



  • @noviniumJeef I don't have any experience in COM method, but AFAIK is quite unreliable (I think @robert-hh mentioned that in some other thread). Try to get SD card.



  • @rskoniec Thanks for the quick reply. I dont have an SD card connected to it so I cant update from an SD but I have tried doing the full procedure and it failed with the following:

    >>> import sqnsupgrade
    >>> sqnsupgrade.run('COM9','CATM1-41065.dup')
    <<< Welcome to the SQN3330 firmware updater [1.2.5] >>>
    Firmware file is too big to load via FFF method. Using ON_THE_FLY
    Attempting AT wakeup...
    Received ERROR from AT+SMSWBOOT=3,1! Aborting!
    

    If I use the the updater I get an unable to start error:

    >>> import sqnsupgrade
    >>> sqnsupgrade.run('COM9','CATM1-41065.dup','updater.elf')
    <<< Welcome to the SQN3330 firmware updater [1.2.5] >>>
    Failed to start STP mode!
    

    Is it always more stable to do the update via SD?
    Thanks,

    NovJeef



  • @noviniumJeef Did you try SD card update method? Example is here. You have the latest stable board f/w installed, so automatically you have the latest stable version of sqnsupgrade library. I'm always using full update method (not upgdiff dup file) and with pycom.lte_modem_en_on_boot(False). After fresh board start I'm doing the procedure like below on my FiPy:

    from machine import SD
    import sqnsupgrade
    
    sd = SD()
    os.mount(sd, '/sd')    # mount SD card
    os.listdir('/sd')      # list SD card content to verify that files are accessible
    sqnsupgrade.run('/sd/modem-file.dup', '/sd/updater.elf')      # start upgrade process
    

Log in to reply
 

Pycom on Twitter