Service: Firmware

This API is officially released and maintained.

The firmware service offers methods to fetch the currently installed firmware, upgrade it, downgrade it and also configure auto-update mechanisms.

Table 1. Available methods
Method Request Response

Upload

FirmwareUploadRequestStream

FirmwareUploadResponse

Install

FirmwareInstallRequest

FirmwareInstallResponseStream

UploadAndInstall

FirmwareUploadAndInstallRequestStream

FirmwareUploadAndInstallResponseStream

GetStatus

google.protobuf.Empty

FirmwareGetStatusResponse

WatchStatus

google.protobuf.Empty

FirmwareWatchStatusResponseStream

Upload

Upload the firmware bundle from the client to the device. Fails if the uploaded firmware bundle is not valid.

Request Stream

This request is sent multiple times to upload a full complete bundle. End the stream with the last chunk of the bundle.

Table 2. Available fields in blickfeld.system.services.FirmwareUploadRequest
Field Type Default Unit

binary_chunk

bytes

-

-

Binary chunk of firmware bundle. The chunk size should not exceed 1 MB. For a firmware bundle with a size of 500 MB, at least 500 chunks / messages are required.

Response

The uploaded firmware bundle is validated after the upload and its firmware info is returned.

Table 3. Available fields in blickfeld.system.services.FirmwareUploadResponse
Field Type Default Unit

info

data.Firmware.Info

-

-

Firmware info with version and release information

Install

Trigger the installation process of an uploaded firmware. A status stream with the installation progress is returned and ends with installation completion.

Request

This request contains some optional configuration parameters for the install step.

Table 4. Available fields in blickfeld.system.services.FirmwareInstallRequest
Field Type Default Unit

Response Stream

Continous status message which reports the installation progress.

Table 5. Available fields in blickfeld.system.services.FirmwareInstallResponse
Field Type Default Unit

status

data.Firmware.Status

-

-

Progress is defined in Status.Installation.Progress.

UploadAndInstall

Combines the Upload and Install steps in a single method.

Request Stream

Please refer to FirmwareUploadRequest.

Table 6. Available fields in blickfeld.system.services.FirmwareUploadAndInstallRequest
Field Type Default Unit

binary_chunk

bytes

-

-

Please refer to FirmwareUploadRequest.

Response Stream

Please refer to FirmwareInstallResponse.

Table 7. Available fields in blickfeld.system.services.FirmwareUploadAndInstallResponse
Field Type Default Unit

status

data.Firmware.Status

-

-

Please refer to FirmwareInstallResponse.

GetStatus

Get the current firmware status which includes the currently installed firmware but also ongoing or failed installations.

Response

Response with snapshot of current status.

Table 8. Available fields in blickfeld.system.services.FirmwareGetStatusResponse
Field Type Default Unit

status

data.Firmware.Status

-

-

Current firmware status

WatchStatus

Continously watch the status stream and get updates on changes. This can be used to attach to an ongoing installation.

Response Stream

Continuous response with status

Table 9. Available fields in blickfeld.system.services.FirmwareWatchStatusResponse
Field Type Default Unit

status

data.Firmware.Status

-

-

Current firmware status