FiPy firmware upgrade failed - Cat M1



  • @arnaudp OK, perfect. If you try:

    from machine import SD
    sd = SD()
    os.mount(sd, '/sd')
    os.listdir('/sd') 
    

    do you get your modem upgrade files listed?



  • @rskoniec Yup, I had checked it, here's the update :

    (sysname='FiPy', nodename='FiPy', release='1.18.1.r4', version='v1.8.6-849-dfa1176 on 2018-11-12', machine='FiPy with ESP32', lorawan='1.0.2', sigfox='1.0.1')
    

    1.18.1.r4 seems on it.
    Thank you, that's very kind of you. I you can read this message, it'll mean it succeeded to post ;).

    I'm going to try to format my sd card again. Could that be an issue with it or is it necessarily on the side of the fipy firmware itself?



  • @arnaudp Did you verify your FiPy f/w version after the update?

    import os
    os.uname()
    

    Btw, I've upvoted your posts so maybe your posts delay has gone - check it out.



  • @rskoniec Oh thank you ! I was able to safe boot into it. I was afraid I had bricked my device.
    So now I'm trying your commands. And here what I giet for :

    >>> os.mount(sd, '/sd')
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    OSError: the requested operation failed
    

    Sorry for the delay between the messages, I'm allowed only one message every 10 minutes on thsi forum.



  • @arnaudp Did you try anything after you start upgrade (reset button)? How long is it going now? Do you have WiFi connectivity in your boot.py/main.py files to try telnet connection? There is also something like Safe Boot.



  • @rskoniec Indeed, it seems it may have been a bad idea. I had uploaded this (and forgot a boot.py) and now I can't get a REPL console.
    I hope I did not brick it....

    Do you know by any chance how I can reset the board so I can connect to it and upload the correct files ?
    Sorry and thank you for helping me.



  • @arnaudp Do not do this by main.py please - you should use USB UART REPL. Connect your PC to the FiPy through the microUSB of PyTrack module and use for example PuTTY to connect to VCP (Virtual COM Port) and execute my instructions one by one.

    Be sure that your boot.py have these lines:

    from machine import UART
    import os
    uart = UART(0, 115200)
    os.dupterm(uart)
    

    Your main.py for safety should be empty or renamed (main_off.py).

    With heartbeat when pycom.heartbeat_on_boot(0) is set then it won't work after FiPy restarts.



  • @rskoniec Okay, I've done as instructed and upgraded the FiPy. I've put your code in main.py, copied the necesarry files on a SD card and began the update process. Maybe putting it in main rather than typing the commands myself was a bad idea because I have no idea if the update process is running. I guess something is happening since I can't connonect on the pycom console.
    So I guess I'll wait and see if something is happening.

    Is the heartbeat suppose to resume once the update process is over? If not, how I'll know when I can remove the power?



  • @arnaudp So you MUST update FiPy f/w first (you've got pretty one year old version 1.10.0.b1, now stable is 1.18.1.r4 with sqnsupgradeclass integrated within f/w). Download Pycom Firmware Update for your platform (Windows, macOS, Linux) and make a FiPy f/w update to the newest stable version. After that you should be able to upgrade FiPy modem f/w with my procedure and be patient, because it'll take a while.



  • @rskoniec Thanks for your reply.
    I get this when I make a os.uname() :
    (sysname='FiPy', nodename='FiPy', release='1.10.0.b1', version='v1.8.6-834-g5677703c on 2017-11-13', machine='FiPy with ESP32', lorawan='1.0.0')

    Is that the information you were asking?
    As for

    sqnsupgrade.run('/sd/CATM1-39529.dup', '/sd/updater.elf')         # for CAT-M1
    

    The system tells me that it doesn't know a method by the name "run". Which is odd since it's in the code of sqnsupgrade.py
    I've been issuing these commands from the Pycom Console. Is it ok or should it be in main.py ?

    Once again, thanks for your reply.



  • @ArnaudP I've recently successfully updated my FiPy modem f/w with the newest CATM1-39529 and NB1-40343:

    • FiPy (v1.18.1.r3) + PyTrack (v0.0.8) upgrade modem f/w to CATM1-39529
    • FiPy (v1.18.1.r4) + PyTrack (v0.0.8) upgrade modem f/w to NB1-40343

    I've put .dup and .elf files on the SD card root folder and use below instructions:

    from machine import SD
    sd = SD()
    os.mount(sd, '/sd')
    os.listdir('/sd')         # to check if the files exist on SD card
    
    import sqnsupgrade
    sqnsupgrade.run('/sd/CATM1-39529.dup', '/sd/updater.elf')         # for CAT-M1
    sqnsupgrade.run('/sd/NB1-40343.dup', '/sd/updater.elf')             # for CAT-NB1
    

    Which version of f/w do you have on your FiPy?



  • A little update. It's still not working but digging into the GitHub repo, it seems that the commands that are described in the tutorial : https://docs.pycom.io/tutorials/lte/firmware uses methods (sqnsupgrade.uart , sqnsupgrade.run , ...) that worked only with an older version of the code. Can anyone confirm ?

    Has anyone attempted to upgrade its modem recently?

    Thanks in advance.



Pycom on Twitter