Firmware Upgrade#

The Firmware Upgrade feature was introduced in CameraSDK 3.0. It lets you transfer a firmware package file to the camera. This feature does not require any new firmware version to be present on the camera.

Firmware Packages#

There are two types of package files: .fwr and .fwp.

Traditionally, the packages with the .fwr extension contain only firmware for IQ4 digital back or the iXM camera itself. They did not contain any firmware that targets camera housing or lenses, like XF, XT, XC, RS, RSM, etc.

However, for the P5 camera, the .fwr packages contain all the needed firmware components, including the lenses.

Package files with the .fwp extension always contain firmware for the entire camera system. These are IQ4, XF, XT, XC, and stand-alone XShutter lenses for bespoke photography. For iXM systems, it is: iXM, iXM-GS, RSM & RS.

There are no .fwp packages for P5 cameras.

Upgrading the firmware using .fwp packages will also upgrade any connected lens or camera system. If you have an XF and an XT camera for your IQ4, you must run the firmware upgrade process twice, connecting one and the other afterward. The same is true if you have multiple lenses for your iXM.

Note

Firmware packages can be downloaded from our Support website, both for iXM and IQ4 cameras: www.phaseone.com/support/camera-firmware

Upgrading Firmware#

Beginning with CameraSDK 3.1, transferring a firmware package to the camera involves using the new UploadFile API.

To initiate an upgrade process, you call a single method on the Camera object:

bool success = camera.UploadFile(UploadFileId::FirmwareUpdate, "/path/to/fwr/or/fwp/file");
camera.UploadFile(UploadFileId.FirmwareUpdate, "/path/to/fwr/or/fwp/file");

The UploadFile method is a generic file upload function that could be used to send other files to the camera in the future. The UploadFileId-enum defines what type of file you are uploading.

The UploadFile method transfers the firmware package to the camera. CameraSDK makes no assumptions about the file; it is blindly forwarded to the camera. If the transfer is successful, the method will return true.

After the file has been transferred, the camera will begin to parse the file. Is it the correct format, contains valid firmware, is the firmware intended for the current camera model, etc? Just note that there could be many reasons for the camera to reject the firmware package.

Note

Cameras will either upgrade or downgrade firmwares. They will ignore a firmware package with the same version as the one currently installed.

CameraSDK does not receive any information on rejected or accepted firmware packages. There is no progress or status information relayed to the SDK. On IQ4, you can follow the update progress on the display, but on iXM and P5, you can only observe the flashing of an LED.

Diagnostics Logs#

Diagnostics Logs can be downloaded using the new DownloadFile method. This method is introduced in CameraSDK 3.1. It provides a better way of getting camera diagnostics used by Phase One Support to diagnose issues. This feature does not require any new firmware version to be present on the camera.

Before the previous CameraSDK 3.0, these logs could only be obtained by letting the camera write them to the local storage card. This meant the feature had to be enabled beforehand.

With this API, you can always download the latest diagnostics logs from the camera. Nothing has to be enabled beforehand.

Getting a log#

To download and save the diagnostics log to a file:

bool success = camera.DownloadFile(DownloadFileId::DiagnosticLog, "/path/to/log/file");
camera.DownloadFile(DownloadFileId.DiagnosticLog, "/path/to/log/file");

Caution

Even though FileTransfer* notifications exist, the DownloadFile API does not support them.

When downloading files, you will not receive any progress notifications. In contrast, the UploadFile API will provide these progress notifications!

This will create and write a file at /path/to/log/file and return true on success. This file can then be sent to Phase One Support.

The DownloadFile method uses an enum to define the file you wish to download. This approach allows us to add new files to the download API in future feature additions.

Note

Diagnostics Log files are not human readable text files. Their purpose is to be parsed by the Phase One Support Team.