Skip to main content

ProGlove documentation

Manual Firmware Update

The Standalone SDK supports manual firmware updates for ProGlove scanners, allowing integrators to update devices to the latest available firmware versions. Firmware updates are performed programmatically by providing the firmware file as binary data and initiating the update through the SDK.

Supported devices

The SDK supports firmware updates for the following device groups:

  • Generation 1 devices: MARK Display, MARK 2, MARK Basic

  • Generation 2 devices: LEO, MARK Basic 2, MARK 3

  • MAI

Each device group requires a specific firmware file. The latest firmware versions are available through the ProGlove Insight Webportal in the download section.

Prerequisites

Before starting a firmware update, ensure that all of the following conditions are met:

  • The scanner is connected to the mobile (connectivity) device.

  • The scanner remains close to the mobile device to ensure a stable BLE connection.

  • The correct firmware file is used for the target device group.

Failure to meet these prerequisites may result in errors before the update process begins.

Firmware update limitations

The SDK performs several validation checks before starting an update. The update will fail if any of the following conditions are detected:

  • Incompatible firmware update – Previous and target firmware versions are not compatible.

  • Incompatible device firmware – Attempting to update a Gen 1 device with Gen 2 firmware (or vice versa).

  • Firmware already installed – The same firmware version is already present on the device.

Although the SDK technically supports firmware downgrades, downgrading is not recommended.

Important

Major version upgrades or downgrades are not supported. For example, updating from firmware 1.x.x to 2.x.x (or vice versa) cannot be performed through the SDK.

Starting a firmware update

To initiate a firmware update, convert the firmware file into a ByteArray and call startFirmwareUpdate() on the PgManager.

Example:

PgManager.startFirmwareUpdate(
  fwData = ByteArray,
  callback = object : IPgFirmwareUpdateCallback {

    override fun onFirmwareEventChanged(fwUpdateEvent: PgFirmwareUpdateEvent) {
        // Handle firmware update progress and state changes
    }
    override fun onError(error: PgError) {
        // Handle firmware update error
    }
  }
)

where fwData represents ByteArray of the firmware file obtained from the integrator side.

Firmware update events

By implementing IPgFirmwareUpdateCallback, integrators receive real-time firmware update status through the onFirmwareEventChanged() callback.

The following firmware update states are reported via PgFirmwareUpdateEvent:

Table 33. Firmware Update States

State

Description

NotStarted

Initial firmware update state.

Preparing

Firmware update process is preparing to start.

Started

Firmware update process has started.

ProgressChanges

Ongoing update progress. Includes:

  • bytesSent – Number of bytes transmitted so far.

  • imageSize – Total firmware image size.

  • timestamp – Timestamp of the progress event.

Canceled

Firmware update was canceled before completion (typically due to disconnection or unstable connection).

Failed

Firmware update failed. Error details are provided for diagnosis.

Completed

Firmware image upload completed. This does not mean the update is fully applied. Includes isDeviceResetting flag.

UpdateApplied

Firmware update has been successfully applied to the device.

Rebooted

Device is rebooting after the firmware update.

Verified

Firmware update verification completed. If isFinalFirmwareVersion is true, verification succeeded.



Important

  • Do not disconnect the scanner or close the application during the firmware update process.

  • Interrupting an update may result in an incomplete firmware state and could render the scanner unusable.

  • Perform firmware updates in a controlled environment with minimal interference.

Automatic reconnection after a firmware update is not supported. After a successful update, the integrator must manually reconnect to the scanner.