Unable to update GPy modem firmware
-
@florianrdt said in Unable to update GPy modem firmware:
@combaindeft I can't try this because I can't initialize the LTE object. The comand freeze.
Step 1)
### ### STEP ONE ### import pycom print('LOG: pycom.lte_modem_en_on_boot() # to check, should be False') print(pycom.lte_modem_en_on_boot()) # to check, should be False print('LOG: pycom.lte_modem_en_on_boot(0) #set to False if above command is True') print(pycom.lte_modem_en_on_boot(0)) #set to False if above command is True print('LOG: pycom.lte_modem_en_on_boot() # to check again if change was made') print(pycom.lte_modem_en_on_boot()) # to check again if change was madeStep 2)
-
A) It is imperative that you do a "HARD" reset of the board!
DO NOT PRESS THE "RESET" BUTTON ON THE BOARD -
B) To do a "HARD" reset:
- Un-plug any battery source you might have attached!
- Un-plug the USB-mini cable from the board
- wait a few seconds
- Re-attach the USB-mini to power up the device
- continue to Step 3)
Step 3)
### ### STEP THREE ### from network import LTE lte = LTE() lte.reset() lte.disconnect() lte.dettach() # few AT commands to check if modem is alive and responsive lte.send_at_cmd('AT') lte.send_at_cmd('ATI') lte.send_at_cmd('ATZ')If you got back your LTE() ... done the "Reset", "Disconnect" and "Dettach" ... and could execute the AT commands... continue to Step 3a) or 3b) in https://forum.pycom.io/topic/4022/unable-to-update-gpy-modem-firmware/24
-
-
@combaindeft said in Unable to update GPy modem firmware:
STEP THREE
from network import LTE
lte = LTE()Thank you for your reply, but unfortunately the command freezes again.
import pycom print(pycom.lte_modem_en_on_boot())was already set to False.
-
@combaindeft Thanks a lot for the in-depth step-by-step walkthrough! I will try this tomorrow, when I get my NB-IoT SIM-card back and i will share if it works for me as well.
I really appreciate your help, thanks again!
-
@ktleh @wtrocel @Paul-Thornton @combaindeft
It works now for me as well!So following the steps @combaindeft suggested did indeed result in a successful upgrade of the firmware.
One slight change: if using the upgdiff-file the updater.elf is not needed as @Paul-Thornton said, so for me (using an SD card)sqnsupgrade.run('/sd/upgdiff_33080-to-40343.dup', debug=True)worked perfectly fine.
(Update paused at 96% for about 15 seconds as described in the guide at https://docs.pycom.io/tutorials/lte/firmware.html - whole upgrade took about 5-7 minutes)So the whole process was:
>>> from network import LTE >>> lte = LTE() >>> import pycom >>> print(pycom.lte_modem_en_on_boot()) False >>> lte.reset() >>> lte.disconnect() >>> lte.dettach() >>> >>> lte.send_at_cmd('AT') '\r\nOK\r\n' >>> lte.send_at_cmd('ATI') '\r\nSEQUANS Communications\r\nVZM20Q\r\n' >>> lte.send_at_cmd('ATZ') '\r\nOK\r\n' >>> lte.reset()Hard Reset
>>> from machine import SD >>> sd = SD() >>> os.mount(sd, '/sd') >>> os.listdir('/sd') ['NB1-40343.dup', 'updater.elf', 'upgdiff_33080-to-40343.dup', 'upgdiff_38729-to-40343.dup'] >>> import sqnsupgrade >>> sqnsupgrade.run('/sd/upgdiff_33080-to-40343.dup', debug=True)This first upgrade took about 3-5 minutes -> it resulted in:
SYSTEM VERSION ============== FIRMWARE VERSION Bootloader0 : 5.1.1.0 [33080] Bootloader1 : 6.0.0.0 [40343] Bootloader2* : 5.1.1.0 [38638] NV Info : 1.1,0,0 Software : 6.0.0.0 [40343] by robot-soft at 2018-11-07 13:57:00 UE : 6.0.0.0 COMPONENTS ZSP0 : 1.0.99-3171 ZSP1 : 1.0.98-3170I then did the full update without using the differential file:
>>> time.sleep(5) >>> sqnsupgrade.run('/sd/NB1-40343.dup', debug=True) >>> sqnsupgrade.info() <<< Welcome to the SQN3330 firmware updater [1.2.1] >>> >>> FiPy with firmware version 1.18.1.r7 Your modem is in application mode. Here is the current version: UE6.0.0.0 LR6.0.0.0-40343Thousand thanks to @combaindeft again for the great hint with the LTE.disconnect/reset/dettach
This hint should be added to the renewed version of the upgrade guide. -
@florianrdt said in Unable to update GPy modem firmware:
from network import LTE
lte = LTE()hmm, if you can't do that ... then I think there is an issue with our board / modem ...
What is our "main board?" ... a PySense, PyTrack or PyScan? ... you are using with your GPy?
And ...
- did you update the firmware on the "main board"?
- did you update the firmware on the GPy?
As it's most recommended that you
- 1st - update the firmware on the "main board" to the latest
- 2nd - update the firmware on the "Logic board" .. GPy in your case ... to the latest stable version.
-
You are welcomed :-)
-
Was given a FiPY which had failed a modem upgrade. I have now tried almost every trick in the book and cannot get any life signs from the modem:
>>> import pycom >>> print(pycom.lte_modem_en_on_boot()) False >>> os.uname() (sysname='FiPy', nodename='FiPy', release='1.18.1.r1', version='v1.8.6-849-b0520f1 on 2018-08-29', machine='FiPy with ESP32', lorawan='1.0.2', sigfox='1.0.1') >>> sqnsupgrade.run('/sd/CATM1-39529.dup', '/sd/updater.elf', debug=True) File /sd/updater.elf has size 429340 File /sd/CATM1-39529.dup has size 6059510 Modem state: None Resume: False Retry: False <<< Welcome to the SQN3330 firmware updater >>> mirror? False recover? False resume? False direct? False atneg_only? False bootrom? True Initial prepartion complete... Loading built-in recovery bootrom Attempting AT wakeup... b'' count=1 b'' count=2 b'' count=3 b'' count=4 b'' count=5 b'' count=6 b'' count=7 b'' count=8 b'' count=9 b'' count=10 b'' Unable to upgrade bootrom.It is not possible to create a LTE() instance, the board simply hangs. Any ideas?
-
A) Try the: Boot modes and safe boot

Hook it up to Board (PyTrack/PySense/Expansion/PyScan...) ... and shorten 3V3 + P12 with a wire for 7-9 sec ... and let go
B) Use the "upgdiff_33080-to*.dup" ... for the LTE-NB1 it is, and resp use the LTE-CATM1 version in the folder ...
sqnsupgrade.run('/sd/upgdiff_33080-to-40343.dup', debug=True)C) I haven't done this myself, but if I had the issue you have, I'd try to connect to the LTE-Modem by creating my own UART instance ...
https://docs.pycom.io/firmwareapi/pycom/machine/uart.html
Use the info from: https://github.com/pycom/pycom-micropython-sigfox/tree/master/esp32/lte
To figure out how to conf the UART instance ...
and lastly figure out how to send it the following AT_Command:
"AT!=\"setlpm airplane=1 enable=1\""This will shut the modem down ... and after a Hard-reset (unplug everything, battery and usb-cable!) ... try to:
from network import LTE lte = LTE()and then run the firmware process ...
-
@bqpd Thank you!! I've managed to un-brick a FiPy and a GPy by following these instructions. Very much appreciated!
-
@bqpd Thank you from the future.
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