How to recover EVK-8N that became unresponsive after a failed firmware update?

0 votes
I was attempting to update the firmware of my EVK-8N using u-center - the process had just begun when it apparently caused Windows 10 to crash (blue screen of death).  Unfortunately, this interrupted the firmware update process.  When I rebooted and attempted to reload the firmware, the EVK was no longer recognized by Windows, and its blue light was out even though power was connected.  Is there any way to force a reversion to factory firmware, or to force a manual load of the downloaded firmware, or is this something that needs to be RMA'd?
by dsmay4 asked Nov 9, 2018
0 votes

I think you need serial connectivity for SAFEBOOT to work, because that doesn't support USB connectivity.

With SAFEBOOT you can likely update at 9600 8N1 by sending the training pattern. I've done this with older versions of uCentre, can't say I've done it recently, check the command line options for ubxfwupdate.exe application

    ubxfwupdate.exe - u-blox GNSS receiver firmware update tool v2.20

    Perform flash firmware update of u-blox GNSS receivers (u-blox 5 and later).
    The tool can be also used to erase the whole flash content
    for reverting to factory firmware / defaults.

    ubxfwupdate.exe [--help] [--version] [-F flash.xml] [-f flash.txt] [--fis-only] [-p port]
    [-b baudcur[:baudsafe[:baudupd]]] [-s 1] [-v 0] [-a 0] [-E 1] [-R 0] [-t 1] [-C 0]

    0 on success
    1 if invalid arguments provided
    2 if update failed

    --help     display help
    --version  display version
    -f         define flash definition filename.
                 this parameter is not needed anymore because all the information
                 is compiled in. Use for custom flash definition files only.
    -F         define FIS (Flash Information Structure) filename
                 (default: flash.xml)
    --fis-only download only the FIS information without firmware (1).
                 (default: 0)
    -b         switch baudrate to specified value [bit/s]
                 first baudrate defines current baudrate
                 second baudrate after colon is used after safeboot
                 third baudrate after second colon is used during update
                  (defaults: 9600:9600:115200
    -p         choose port (default: \\.\COM1)
                 \\.\COMy      - serial (RS232) port y (Windows)
                 /dev/ttySy    - serial (RS232) port y (Linux)
                   remark: has to be a valid system device name,
                   windows maps names 'COM1..9' to '\\.\COM1..9',
                   for ports > 9 use \\.\COMy for device name
                 I2C[y[:0xaa]]   - Aardvark I2C device y (default 0),
                                   slave address aa (default 0x42)
                 SPI[y]          - Aardvark SPI device y (default 0),
                 U2C[y[:0xaa]]   - Diolan I2C device y (default 0),
                                   slave address aa (default 0x42)
                 SPU[y]          - Diolan SPI device y (default 0)
                 host:port       - network, e.g. through comtrol devicemaster,
                 STDIO           - communicate with receiver over stdin and stdout
    -s         enter safeboot before updating
                 (default: 1)
    -v         verbose mode on (1), including packet dump (2) or off (0)
                 (default: 0)
    -a         perform autobauding (1), no autobauding (0)
                 (default: 0)
    -E         erase only, don't write anything to flash (erases the first sector)
                 (default: 0)
    -R         reset after update completion
                 (default: 1)
    -t         send training sequence (when in safeboot) (not applicable over I2C or SPI)
                 (default: 1)
    -C         do chip erase instead of sector erases
                 (default: 0)
    --no-fis   don't merge the image with anything (1) or merge the FIS into the image (0)
                 (default: 0)
    --up-ram   download image to CODE-RAM (1) or flash (0)
                 (default: 0)

    erase whole flash content:
      ubxfwupdate.exe -p \\.\COM1 -b 9600 -E 1

    program image to flash (on first serial port under Linux):
      ubxfwupdate.exe -p /dev/ttyS0 -b 9600:9600:115200 -F flash.xml

    program image to flash (using I2C interface):
      ubxfwupdate.exe -p I2C0 -b 100000

    u-blox software development team (


by clive1 answered Nov 9, 2018
by dsmay4 selected Nov 9, 2018
Best answer
website banner