Firmware Update

Zivid provides continuous updates for its cameras. This includes both what runs on the host computer and the camera itself. There are regular updates of the Zivid SDK, which improve image processing on the host computer. The SDK also includes the latest camera firmware. Camera firmware is updated less frequently than the host computer software. These updates improve stability, robustness and acquisition speed.

This tutorial will walk through how firmware updates are performed on the Zivid Camera.

Each SDK version is matched with camera firmware, and the SDK will make sure that the camera runs compatible firmware, including rolling back to an older firmware version if necessary.

When Zivid Studio connects to a camera, it will check whether the camera has matching firmware. If the firmware does not match you can update it directly from Zivid Studio.

Launch the Command Prompt by pressing Win + R keys on the keyboard, then type cmd and press Enter.

Navigate to the folder where you installed Zivid software:

cd C:/Program Files/Zivid/bin

Execute ZividFirmwareUpdater on your camera:

ZividFirmwareUpdater.exe

ZividFirmwareUpdater is part of the Zivid Tools package for Ubuntu. Follow the steps in Software Installation to install this, if you haven’t already.

Now you may execute the ZividFirmwareUpdater via:

ZividFirmwareUpdater

ZividFirmwareUpdater is part of the Zivid Tools package for Ubuntu. Follow the steps in Software Installation to install this, if you haven’t already.

Now you may execute the ZividFirmwareUpdater via:

ZividFirmwareUpdater

Update firmware from version 1.6.6 to version 1.6.7

Example output when running ZividFirmwareUpdater

The ZividFirmwareUpdater source code can be found here.

The SDK provides functions for updating firmware on the camera.

Go to source

source

int main()
{
    try
    {
        Zivid::Application zivid;

        auto cameras = zivid.cameras();
        for(auto &camera : cameras)
        {
            if(!Zivid::Firmware::isUpToDate(camera))
            {
                std::cout << "Firmware update required" << std::endl;
            }
            else
            {
                std::cout << "Skipping update of camera " << camera.info().serialNumber()
                          << ", model name: " << camera.info().modelName()
                          << ", firmware version: " << camera.info().firmwareVersion() << std::endl;
            }
        }
    }

    return EXIT_SUCCESS;
}
Go to source

source

static int Main()
{
    try
    {
        var zivid = new Zivid.NET.Application();

        var cameras = zivid.Cameras;
        foreach (var camera in cameras)
        {
            if (!Updater.IsUpToDate(camera))
            {
                Console.WriteLine("Firmware update required");
            }
            else
            {
                Console.WriteLine("Skipping update of camera {0}, model name: {1}, firmware version: {2}",
                    camera.Info.SerialNumber, camera.Info.ModelName, camera.Info.FirmwareVersion);
            }
        }
    }

    return 0;
}
Go to source

source

def _main() -> None:
    app = zivid.Application()

    cameras = app.cameras()
    for camera in cameras:
        if not zivid.firmware.is_up_to_date(camera):
            print("Firmware update required")
            )
        else:
            print(
                f"Skipping update of camera {camera.info.serial_number}, model name: {camera.info.model_name}, firmware version: {camera.info.firmware_version}"
            )


if __name__ == "__main__":
    _main()