Firmware upgrade troubleshooting - checklist/procedure



  • I've noticed that problems with xPy's firmware upgrade is quite regular issue on the forum, so maybe this kind of checklist/procedure would be helpful:

    Checklist:
    0. Check whether your PC has access to the Internet, because the firmware image is retrieved on-the-fly during update procedure.

    1. Make sure you are using full communication USB cable (4-wire) not just charging USB cable (2-wire).
    2. Check if xPy board is fitting Expansion Board in right position. For example: LoPy RGB LED should be above Expansion Board microUSB port.
    3. What kind of G23-GND connection is used? Male-male breadboard connector or just ordinary wire? The first one is preffered, I've experienced problems with UTP wire connection (was unstable causing connection errors).
    4. It's a good habit that G23-GND cross-wire connection should be the only one on the Expansion Board. Without Expansion Board make sure you have nothing connected to the xPy board other than the serial, power and GND-G23 connection.
    5. Uncheck "fast connection" option in f/w updater tool is helpful.
    6. Have a look at the jumpers on the Expansion Board (especially RX/TX). Generally they should be all in place (EB+WiPy picture below - borrowed from @bucknall).
      0_1487862576597_eb_jumpers.jpg

    Upgrade procedure:

    1. Unconnect (USB) xPy board from PC.
    2. Connect wire G23+GND.
    3. Connect the xPy board (USB) to PC by data USB cable.
    4. Use the RESET button on the xPy board. (issue confirmed for LoPy, not necessary for the WiPy2)
    5. Run the Update.
    6. After sucessfull update unconnect the xPy board (USB) from PC.
    7. Remove G23+GND wire.
    8. Connect the xPy board (USB) to PC.
    9. Check f/w release with os.uname() command.

    Linux Tips:

    1. From @Frida - Remember to update/place a file in: /etc/udev/rules.d
      I have these in my: 45-espruino.rules, then you don't have to use sudo su
    # To go in /etc/udev/rules.d/
    # Makes Espruino's serial port accessible to non-SU users, and stops the Modem Manager trying to enumerate it
    ATTRS{idProduct}=="5740", ATTRS{idVendor}=="0483", ENV{ID_MM_DEVICE_IGNORE}="1", MODE="0666", GROUP="plugdev"
    # Nordic kits
    ATTRS{idProduct}=="1015", ATTRS{idVendor}=="1366", ENV{ID_MM_DEVICE_IGNORE}="1", MODE="0666", GROUP="plugdev"
    # Microbit
    ATTRS{idProduct}=="0204", ATTRS{idVendor}=="0d28", ENV{ID_MM_DEVICE_IGNORE}="1", MODE="0666", GROUP="plugdev"
    # Propeller
    ATTRS{idProduct}=="6001", ATTRS{idVendor}=="0403", ENV{ID_MM_DEVICE_IGNORE}="1", MODE="0666", GROUP="plugdev"
    # Pycom
    ATTRS{idProduct}=="6015", ATTRS{idVendor}=="0403", ENV{ID_MM_DEVICE_IGNORE}="1", MODE="0666", GROUP="plugdev"
    

    Maybe I've missed something, so feel free to join in expanding this checklist and/or procedure. :o)



  • Unfortunately, this is currently not working for upgrading a module through either the Pysense or Pytrack boards using any GNU/Linux distribution.



  • I stress the need to reset LoPy boards after they have been connected to pc by data USB cable, and before you try to run the upgrade....



  • One should also check that all of the jumpers have tight connections. I couldn't get communication to work with my expansion board until I replaced the jumpers provided with new ones as the originals were quite loose.



  • I had issues trying to update my wipy 2.0 with a standard TTL serial programmer I use for Arduino. For some reason the low baud rate update in the software selects 38400 but the WiPy sold with old broken firmware has it set to 115200 which isn't even an option through the firmware update tool.

    To change this you can edit C:\Program Files (x86)\Pycom\Pycom Firmware Update\Upgrader\bin\updater.py and set "SLOW_BAUD_RATE=115200". Then the firmware updater works just fine.



  • Thank a lot.
    Reply just for feedback.

    Make sure your jumper at "TX"



  • @mmarkvoort @maamar You welcome. :o)



  • @rskoniec thank you
    I did my updated



  • @rskoniec

    Aah thanks for the update. Really fast!!

    Now that u mention that windows installs the update automatic, I remember that I disabled windows update on my windows 10... that explans a lot! How stupid...

    Sorry for wasting your time, but thanks for the fast answer and for trying it out.



  • @mmarkvoort said in Firmware upgrade troubleshooting - checklist/procedure:

    I don't know if it is relevant but when i wanted to update/connect through USB I had to install the USB driver manually. Mine called FTDI driver where VCP or D2XX are types of drivers. With one of the two it said it was installed but still i coudn't update/connect.

    OK, I took my notebook with Windows 10 Pro x64 with internet access and plug LoPy on Expansion Board to it for the very first time.
    Here is Device Manager just after connection:
    0_1487970349956_1st_plug.jpg
    After about 30 seconds Windows Auto Update mechanism has done all the job:
    0_1487970560498_1st_plug_wu.jpg
    As you can see it is pretty straightforward - at least on Windows 10.
    What OS are you using?



  • @Frida Thanx for sharing! Updated!



  • On linux remember to update/place a file in: /etc/udev/rules.d

    I have these in my: 45-espruino.rules, then you don't have to use sudo su

    # To go in /etc/udev/rules.d/
    # Makes Espruino's serial port accessible to non-SU users, and stops the Modem Manager trying to enumerate it
    ATTRS{idProduct}=="5740", ATTRS{idVendor}=="0483", ENV{ID_MM_DEVICE_IGNORE}="1", MODE="0666", GROUP="plugdev"
    # Nordic kits
    ATTRS{idProduct}=="1015", ATTRS{idVendor}=="1366", ENV{ID_MM_DEVICE_IGNORE}="1", MODE="0666", GROUP="plugdev"
    # Microbit
    ATTRS{idProduct}=="0204", ATTRS{idVendor}=="0d28", ENV{ID_MM_DEVICE_IGNORE}="1", MODE="0666", GROUP="plugdev"
    # Propeller
    ATTRS{idProduct}=="6001", ATTRS{idVendor}=="0403", ENV{ID_MM_DEVICE_IGNORE}="1", MODE="0666", GROUP="plugdev"
    # Pycom
    ATTRS{idProduct}=="6015", ATTRS{idVendor}=="0403", ENV{ID_MM_DEVICE_IGNORE}="1", MODE="0666", GROUP="plugdev"
    


  • @mmarkvoort said in Firmware upgrade troubleshooting - checklist:

    @rskoniec
    Update using Expansion Board USB.

    OK. In a free time (I hope this weekend) I'll grab a fresh install Windows machine and try to investigate FTDI driver issue.



  • @bucknall said in Firmware upgrade troubleshooting - checklist:

    @jmarcelino This is going into Docs with the next update :)

    Nice! :)



  • @jmarcelino This is going into Docs with the next update :)



  • @rskoniec
    Update using Expansion Board USB.



  • @dClaus One more time - thanx! It's already updated. :)



  • For Lopy "Connecting ......... Failure !"
    see post https://forum.pycom.io/post/4518

    between 3 and 4 : use the RESET buttom on the Lopy

    ;-)



  • @mmarkvoort said in Firmware upgrade troubleshooting - checklist:

    I don't know if it is relevant but when i wanted to update/connect through USB I had to install the USB driver manually. Mine called FTDI driver where VCP or D2XX are types of drivers. With one of the two it said it was installed but still i coudn't update/connect.

    But you were trying to update using Expansion Board USB or xPy board + USB2TTL serial converter?



  • @livius said in Firmware upgrade troubleshooting - checklist:

    @rskoniec
    you can somehow merge this post:
    https://forum.pycom.io/post/2655

    Good tip! Done! :)


Log in to reply
 

Pycom on Twitter