LTE M1 cellular firmware updating to Gpy stucks, says, Waiting for updater to load

While updating the firmware of LTE CAT1 in my Gpy modem (that my lab recently purchased from core electronics) for the very first time, I am repeatedly stuck in that notification, ‘waiting for updater to load…’
I have loaded my SD card with the updater.elf file along with CATM1-39529.dup file.
Where I am making mistake? Anyone any insight please, much much appreciated.

>>> sqnsupgrade.run('/sd/CATM1-39529.dup', '/sd/updater.elf')
<<< Welcome to the SQN3330 firmware updater [1.2.3] >>>
>>> GPy with firmware version 1.18.2.r2
Attempting AT auto-negotiation...
Session opened: version 1, max transfer 2048 bytes
Sending 429340 bytes: [########################################] 100%
Waiting for updater to load...

In short, what I have done:

  1. Basically, I followed the guideline video by Chris as here, Pycom GPy & FiPy Cellular LTE Firmware Update, Core Electronics.

  2. So, I updated 3 firmware, as below:
    i. Firmware for the Expansion Board, following Expansion 3.1 Firmware Update. Outcome as,
    a) Device:
    Device%20Manager
    b) Firmware confirmation

     C:\Users\hasanf\Downloads\IoTresearch\pycom>dfu-util-static.exe -D pansion31_0.0.11.dfu
     dfu-util 0.9
     Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc.
     Copyright 2010-2016 Tormod Volden and Stefan Schmidt
     This program is Free Software and has ABSOLUTELY NO WARRANTY
     Please report bugs to http://sourceforge.net/p/dfu-util/tickets/
    
     Match vendor ID from file: 04d8
     Match product ID from file: ef99
     Opening DFU capable USB device...
     ID 04d8:ef99
     Run-time device DFU version 0100
     Claiming USB DFU Runtime Interface...
     Determining device status: state = dfuIDLE, status = 0
     WARNING: Runtime device already in DFU state ?!?
     Claiming USB DFU Interface...
     Setting Alternate Setting #0 ...
     Determining device status: state = dfuIDLE, status = 0
     dfuIDLE, continuing
     DFU mode device DFU version 0100
     Device returned transfer size 64
     Copying data from PC to DFU device
     Download        [=========================] 100%        16384 bytes
     Download done.
     state(2) = dfuIDLE, status(0) = No error condition is present
     Done!
    

ii. Following this link I updated Firmware Gpy Firmware update on Expansion 3.1, And the outcome is below:

iii) Then I follow this link Pycom GPy & FiPy Cellular LTE Firmware Update, Core Electronics to update the Cellular LTE M1 firmware. The only thing I made change is the following code.
sqnsupgrade.run('/sd/FIPY_GPY_CATM1_33988.dup', 921600)
This code gives an error:
<<< Welcome to the SQN3330 firmware updater [1.2.3] >>>
>>> GPy with firmware version 1.18.2.r2
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "sqnsupgrade.py", line 908, in run
File "sqnsupgrade.py", line 178, in check_files
File "sqnsupgrade.py", line 152, in __check_file
TypeError: 'int' object is not subscriptable

Thus I followed the README.md file and use the updater.elf as
sqnsupgrade.run('/sd/CATM1-39529.dup', '/sd/updater.elf')
However, this gives the final look likes,

>>> sqnsupgrade.run('/sd/CATM1-39529.dup', '/sd/updater.elf')
<<< Welcome to the SQN3330 firmware updater [1.2.3] >>>
>>> GPy with firmware version 1.18.2.r2
Attempting AT auto-negotiation...
Session opened: version 1, max transfer 2048 bytes
Sending 429340 bytes: [########################################] 100%
Waiting for updater to load...

Once I heating Clrt+C, gives,

>>> sqnsupgrade.run('/sd/CATM1-39529.dup', '/sd/updater.elf')
<<< Welcome to the SQN3330 firmware updater [1.2.3] >>>
>>> GPy with firmware version 1.18.2.r2
Attempting AT auto-negotiation...
Session opened: version 1, max transfer 2048 bytes
Sending 429340 bytes: [########################################] 100%
Waiting for updater to load...
Code download failed, aborting!
Unable to load updater from /sd/updater.elf

Extra look: My SD card snap:

Hi,

It might be best to engage Pycom for support on this, as our guide does/did work from end-to-end as demonstrated by Chris in the video.

You may have missed a command (or something simply went wrong) and ended up in a scenario outside the normal

Hi Graham,
I have edited my post and gave every details with it. I would really appreciate if you or anyone (maybe chris) to have a look and say me where is the problem. If it is problem with the hardware then I have to replace it. I don’t have any spare one to check whether there is a problem with hardware.
I marked every move and it’s output so far with this post regarding the firmware update. Thanks.

Hi Khondokar,

You can try the firmware update instructions here:
https://docs.pycom.io/gettingstarted/installation/firmwaretool.html#second

Pycom has a great new firmware update tool that you should use to update the firmware on the Gpy.

As for the expansion board, we generally don’t recommend updating the firmware unless you need to. Pycom has a guide for that too, but it should be the same as what we have on the website: https://docs.pycom.io/pytrackpysense/installation/firmware.html

Hi Stephen,
Basically, I have done both of them and followed the link you have provided. I am having a problem with the 3rd Firmware. The Cellular LTE M1 firmware following this pycom Celluar LTE M1. This part particularly giving me the error. I believe, if anyone has gone through this process successfully can be able to locate the issue. If there is a problem with hardware, I have to order another one for my project.

Khondokar,

Are you using the Pycom Firware update tool to update the Gpy?

The uSD card process is a bit different (which is where the issue is) - it’s for updating the cellular radio (SQN3330).

The Pycom Firmware Update Tool only does the GPy ESP32 chip - which is usually “enough” to get going with Pycom hardware these days.

Hi Stephen,
I understand that, I need to update 3 firmware.
1 for the expansion board 3.1, used Pycom Expansion Board
1 for the Gpy used This set of instruction and
1 for the LTE cat M1 as described LTE Cat M1 Gpy. The Readme.md file associated with Pycom libraries is also guide that I have followed.

Is that what you wanted to know, please?

There are similar sort of issues are posted in different forum without having any solution. An user has tested 3 GPys from new batch experienced the same. He claimed it here, under the problem I have described in the Pycom forum. Just wondering, since core-electronics is sort of distributor, whether you can directly communicate them regarding this issue. If this is the issue, then GPy will only disappoint your customer and need to take action.
Thanks.

@Stephen @Graham

Hi Khondokar,

I checked out that thread on Pycom’s forum, it looks like he as documented the issue very well. This post was just put up a few days ago, I suggest we wait to see what Pycom’s response is, as that is their official support channel.

Hi @Stephen
I borrowed a Fipy and Expansion board 3 from a colleague and terribly experiencing the same thing. I tried to give it a look here,

This time all I have noticed as:
for the very first attempt of Cellular Firmware up-gradation outcome,

>>> import sqnsupgrade
>>> sqnsupgrade.run('/sd/CATM1-39529.dup', '/sd/updater.elf')
<<< Welcome to the SQN3330 firmware updater [1.2.3] >>>
>>> FiPy with firmware version 1.18.2.r2
Attempting AT wakeup...
Session opened: version 1, max transfer 8192 bytes
Sending 55570 bytes: [########################################] 100%
Attempting AT auto-negotiation...
ERROR sending AT command... no response? b''
AT auto-negotiation failed! Exiting.
Unable to load updater from /sd/updater.elf

It dealt with, transfer 8192 bytes and sends 55570 bytes before crashing.
I can ensure that the updater.elf was in the SD card,

>>> from machine import SD
>>> sd = SD()
>>> os.mount(sd,'/sd')
>>> os.listdir('/sd')
['System Volume Information', 'CATM1-39529.dup', 'updater.elf', 'upgdiff_33080-to-39529.dup', 'upgdiff_38638-to-39529.dup', 'test.txt']

Following on, every other attempts gives the result as,

>>> import sqnsupgrade
>>> sqnsupgrade.run('/sd/CATM1-39529.dup', '/sd/updater.elf')
<<< Welcome to the SQN3330 firmware updater [1.2.3] >>>
>>> FiPy with firmware version 1.18.2.r2
Attempting AT auto-negotiation...
Session opened: version 1, max transfer 2048 bytes
Sending 429340 bytes: [########################################] 100%
Waiting for updater to load...

Waiting for updater to load… that I am dealing with!
Important here that, the transferring byte size is small, 2048 bytes always and sends 429340 bytes. with respect to the very first attempt of transfer 8192 bytes and sends 55570 bytes !

So, what’s going on?
How can I erase and clean the Firmware for redoing again, since it is started to upload 2048 not 8192 bytes?

Hi Khondokar,

I’m sorry but you’ve moved outside of my sphere of understanding with this one. I’m not sure what’s going on here. My best advice is to raise this issue with Pycom support. If you don’t hear back on the forum try contacting them directly here: