Cannot recover from continuous boot even when reflashing device.



  • Hi,

    We are a charity developing a G01 based gardening sensor to teach kids STEM concepts.

    During brownout situations with low battery we are experiencing flash corruption, this has been raised as a seperate issue. When this occurs it leaves the device in a state we cannot recover from.

    When we use the Pycom Firmware Update tool we can happily reflash the unit after setting it to the download state but once complete we get the following repeating boot output:

    st:0x7 (TG0WDT_SYS_RESET),boot:0x17 (SPI_FAST_FLASH_BOOT)
    configsip: 0, SPIWP:0xee
    clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
    mode:DIO, clock div:1
    load:0x3fff8020,len:8
    load:0x3fff8028,len:2136
    load:0x4009fa00,len:19880
    entry 0x400a05d0
    ets Jun 8 2016 00:22:57

    rst:0x7 (TG0WDT_SYS_RESET),boot:0x17 (SPI_FAST_FLASH_BOOT)
    configsip: 0, SPIWP:0xee
    clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
    mode:DIO, clock div:1
    load:0x3fff8020,len:8
    load:0x3fff8028,len:2136
    load:0x4009fa00,len:19880
    entry 0x400a05d0
    ets Jun 8 2016 00:22:57

    etc. etc.

    Is there anyway to reflash the unit and bring it back to normal REPL operation? Have tried all options available in the update tool but no change. I understand there's some Windows command line tools available but I'm on a Mac.

    Appreciate any pointers you can provide.



  • Thanks for your help.

    We've been able to recover these continual reboot devices by using the command line tools.

    Doing further testing with version 1.18.1.r2 I found I cannot recreate the continual boot issue caused by brownout conditions. However with 1.20.2.rc7 I saw a two stage process, first under brownout the filesystem was blanked and reset, then under further brownout conditions the device entered the continual reboot state.

    I'll close this issue, thanks for your help, will also be moving to LittleFS to see if that makes things more robust.



  • Dear Scott,

    you might want to try to invoke the erase_all operation through the command line version of the Pycom Firmware Update Tool, see [1].

    On macOS, I usually make an alias to the command line version like

    alias pycom-fwtool-cli='/Applications/Pycom\ Firmware\ Update.app/Contents/Resources/pycom-fwtool-cli'
    

    in order to conveniently invoke

    pycom-fwtool-cli --port /dev/cu.usbmodemPy001711 erase_all
    

    With kind regards,
    Andreas.

    [1] https://community.hiveeyes.org/t/fipy-unter-macos-mit-erase-all-loschen/3097



  • I only ever see the line "ets Jun 8 2016 00:22:57" when uploading files. If i just do a regular boot using the reset button on my Pysense, i don't see that last line, i then stops at the "entry" line and starts printing:

    Pybytes configuration read from /flash/pybytes_config.json
    Not starting Pybytes as auto-start is disabled

    -before it starts running my code.

    So maybe it's stuck in a upload loop somehow. When i have that happening, i can usually just unplug my USB cable and try again. If that does not help, maybe you could try tapping ctrl+c when it starts booting to see if you can interrupt it.


Log in to reply
 

Pycom on Twitter