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
Example output when running ZividFirmwareUpdater
The ZividFirmwareUpdater source code can be found here.
The SDK provides functions for updating firmware on the camera.
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;
}
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;
}
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()