This can be done indoors and requires an Internet connection to download new firmware.


Caution: Avoid removing power or resetting your Piksi Multi during the upgrade process

Notice: Upgrading to Firmware Version 2.1 or newer requires Firmware Version 2.0 (or newer). If running Firmware Version 1.5 and prior, upgrade to 2.0 before upgrading to 2.1.


Overview

Swift Navigation provides new features and performance improvements to Piksi® Multi via device firmware updates. If your Piksi Multi firmware version is not the latest, update it to get the most recent features from Swift. This article details the process for updating the firmware on your device.


Prerequisites

USB to Serial Driver Installation Guide

Installing Swift Console

Powering Piksi Multi

Connecting to Piksi Multi - USB to Serial Adapter

Updating Firmware from USB Drive

With Piksi Multi connected via USB to RS-232 adapter (see above) and latest Swift Console running:

  • Connect the USB drive (included in the Evaluation Kit) to your computer and ensure it is empty
  • Click the Firmware Update tab on the Swift Console


  • Use the folder icon (A) to select the path to the USB drive or type it in manually
  • Click Download Latest Firmwarebutton (B) to download latest firmware file to the USB drive


  • Eject the USB drive from your computer
  • Connect the USB drive to the USB Host port on the Evaluation Board
  • Press the Reset (RST) button on the Evaluation Board
  • Piksi Multi will restart and following messages should be seen on the Console



  • After about 3 minutes when the upgrade completes you'll be prompted to remove the USB drive from the Piksi Evaluation Board and reboot your Piksi



Updating Firmware via Serial or Ethernet using Swift Console

Alternatively, you can also use the Swift console to upgrade your firmware over serial or Ethernet. Using serial communication over UART, this process can be very long so we recommend using USB or Ethernet instead.


Connected to the Piksi Multi, using the latest console:

  • Click the Firmware Update tab on the Swift Console


  • Click on the folder icon (A) to select where to download the firmware
  • Click on the Download Latest Firmwarebar (B)
  • Verify the path of the downloaded file (C). If you downloaded the firmware directly from the website, you can skip (A) and (B) and choose directly the file using the Local File field and the associated button.
  • Click on the Update FW button (D)





  • Follow the progress of the upgrade process as described above. You’ll get a “upgrade completed successfully. Resetting Piksi…” message when the process is over. Wait for the Piksi to reboot and connect again to check the firmware version.


Updating firmware over serial or Ethernet (Advanced)

The USB drive upgrade procedure above  is recommended for all testing and evaluation but It is not the only method to upgrade Piksi Multi.  Piksi Multi can be upgraded over any of the serial interfaces (UART and USB) and Ethernet.  Piksi was designed to allow over-the-air upgrades to occur in the background while the system operates normally.


The firmware upgrade process in production requires the high-level steps below.  Please refer to the Swift Binary Protocol (SBP) documentation for detailed about SBP.  Additionally, example python software performing the firmware upgrade, over serial, is available from the piksi_tools repository as bootload_v3.py and also distributed as a binary executable for windows (see user guide).

  • Transfer firmware file to Piksi
    • This can be accomplished through SBP file I/O messages or linux utilities like SCP
    • By convention the firmware goes to the root of the temporary file system with name “upgrade.image_set.bin”
  • Launch the firmware upgrade tool
    • This can be accomplished through the  SBP  message MSG_COMMAND_REQ with the command string below and a timeout of 300 seconds:
      • upgrade_tool upgrade.image_set.bin
    • This could equivalently be accomplished over SSH via the Ethernet interface if available
  • When the command completes, a MSG_COMMAND_RESP will be sent indicating the exit code of the upgrade process (0 indicates success)
  • Piksi will continue to operate normally, but the next time the system reboots it will initialize into the upgrade firmware.


Potential Troubleshooting

Q: I receive the message “error: detected boot image set is not valid” or “failed to perform upgrade(code=6) on the console when upgrading.

A: Make sure to restart your Piksi Multi after each upgrade.  The device is unable to perform two upgrades in a row without power cycling in between


Q: Upgrading through the console is not succeeding.

A: Make sure that you have loaded v2.0.0 firmware if you are running a pre v2.0.0 firmware build or a custom build from our SDK.  Try unplugging the antenna from the device to reduce traffic over the upgrade interface.


Q: The console prompts me that I need to change the ins “output_mode” setting on my Duro Inertial before upgrade but I have already changed the setting.

A: Update to v2.2.17 version of the console where this bug is fixed.