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


Caution: Do not remove power or reset your device during the firmware upgrade process.

Note: Upgrading to firmware v2.1 or newer requires firmware v2.0 (or newer). If running firmware v1.5 and prior, upgrade to v2.0 before upgrading to v2.1.


Overview

Swift Navigation provides new features and performance improvements to Piksi® Multi via device firmware updates. This article presents the process for updating the firmware on your device.


Prerequisites

Updating Firmware from USB Drive

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

  1. Connect the USB drive (included in the Evaluation Kit) to your computer and ensure it is empty.
  2. Click the Update tab on the Swift Console.
  3. Click the button (A) to select the path to the USB drive or type it in manually.
  4. Click the Download Latest Firmware button (B) to download latest firmware file to the USB drive; the latest firmware is also available from the Downloads section of the support site.
  5. Eject the USB drive from your computer.
  6. Connect the USB drive to the USB Host port on the Evaluation Board.
  7. Press the Reset (RST) button on the Evaluation Board.
  8. Piksi Multi restarts and messages regarding upgrading the firmware appear in the Console.
  9. After approximately 3 minutes when the upgrade completes, you are prompted to remove the USB drive from the Piksi Evaluation Board and reboot your Piksi Multi.


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 port. Using UART serial communication for update is not recommended as it'll take half an hour to transfer the file at 115,200 bps. Use direct micro-USB or Ethernet connection for a faster update.


Connected to the Piksi Multi, using the latest console:

  1. Click the Firmware Update tab on the Swift Console.

  2. Click on the folder icon (A) to select where to download the firmware.
  3. Click on the Download Latest Firmware bar (B); the latest firmware is also available from the downloads section of the support site.
  4. 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.
  5. Click on the Update Firmware button (D).
    The firmware upgrade status begins.

  6. Follow the progress of the upgrade process as described above. You will receive an “Upgrade completed successfully. Resetting Piksi…” message when the process is over.
  7. Wait for the Piksi to reboot and connect again to confirm the updated firmware version.


Updating the Firmware over Serial or Ethernet (Advanced)

Swift recommends using the USB drive upgrade procedure above for all testing and evaluation but it is not the only method for upgrading 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).

  1. 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”.
  2. 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.
  3. When the command completes, a MSG_COMMAND_RESP is sent, indicating the exit code of the upgrade process (0 indicates success).
  4. Piksi continues to operate normally, but the next time the system reboots it will initialize the firmware upgrade.


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.


For Additional Information

To continue working with the Piksi Multi, return to the Piksi Multi Getting Started Guide.