For performance, security, and future-proofing reasons, it is generally recommended to use a 64-bit operating system. IDS peak 2.17 is the last version that supports native 32-bit operating systems.
What does this mean for you?
Existing installations on 32-bit operating systems will continue to work, but will no longer receive updates or patches. Future versions of IDS peak will require a 64-bit operating system.
For Windows 64-bit setup, there is the option to run 32-bit applications via WoW64 (Windows 32-bit on Windows 64-bit).
For installing IDS peak, the following system requirements must be met:
Note: We recommend to use 64-bit applications. Depending on the use case and camera model, the resources of 32-bit applications may not be sufficient, e.g. for high memory requirements.
Note: In 64-bit compilers, the /LARGEADDRESSAWARE option is enabled by default (this means that an application can handle addresses larger than 2 gigabytes). In 32-bit compilers, the /LARGEADDRESSAWARE option can also be used.
Administrator privileges are required to install the software.
The Windows setup of IDS peak is available in different versions:
| 64-bit system architecture | 32-bit system architecture | |||
| IDS peak runtime setup | IDS peak standard setup | IDS peak extended setup | IDS peak standard setup | |
| USB3 Vision camera drivers | ||||
| GigE Vision camera drivers | ||||
| uEye camera drivers | ||||
| U3VK transport layer | ||||
| GEV transport layer | ||||
| GEVK transport layer | ||||
| uEye transport layer | ||||
| IDS peak Cockpit | ||||
| Command line tools | ||||
| IDS Camera Manager | ||||
| Development environment: libraries | ||||
| Development environment: samples | ||||
| Interface: DirectShow | ||||
Note: If you change the setup, components are automatically uninstalled during a downgrade.
Example: You have previously installed the standard setup and would now like to install the runtime setup. The runtime setup will automatically uninstall components that are not included in the setup. In the case of installation via the GUI, you will be notified. In the case of a silent installation, this takes place without any further notification.
Double-click on ids_peak_<version>.exe to run the setup. You have the following options for installation:
After the installation is finished, the PC must be restarted.
Note: If changes are required to an existing installation, you can use the "Modify" option of the corresponding setup.
The silent setup runs in the background and does not prompt the user for input. It gets its input from a silent response file (*.iss file) which you need to create in advance:
ids_peak_<version>.exe.ids_peak_<version>.exe /rYou have two options:
ids_peak_<version>.exe /s /f1".\setup.iss" via command line.ids_peak_<version>.exe /s /f1"d:\mySetup.iss"Note: When running a setup in silent mode no messages are displayed at all. You can review the Setup.log file for getting an installation summary including error log.
Note: It is necessary to reinstall the Python bindings after updating/reinstalling IDS peak.
To use the Python binding of IDS peak make sure that Python is installed on your PC. Note that Python version 3.7 and higher are supported.
You can use pip to install the IDS peak Python bindings from PyPI.
There are three packages to be installed:
To install the bindings, follow this order:
python -m pip install ids_peak_ipl
python -m pip install ids_peak
python -m pip install ids_peak_afl
Note: If you use a proxy, you must specify the proxy settings in the commands above directly after "pip install" with
--proxy <IP address>:<port number>
To open the IDS peak Cockpit, click on the icon of the IDS peak Cockpit on the desktop or click on "Start > Programs > IDS peak > IDS peak Cockpit".
The camera manager in IDS peak Cockpit shows you the IDS producers available on the host system. The available IDS cameras are listed below their interfaces. If the camera entry is grayed out, this camera is already open.
To open a camera in IDS peak Cockpit, you can select it via the camera manager or open the first available camera directly with the icon in the main toolbar.
For operating a GigE Vision or USB3 Vision camera, refer also to the Notes for GigE Vision cameras and Notes for USB3 Vision cameras.
The samples are available for IDS peak comfortSDK, IDS peak genericSDK, or for third parties, e.g. for HALCON.
You can find the binaries of the samples under "Start > Programs > IDS peak > comfortSDK Sample" or "Start > Programs > IDS peak > genericSDK Sample".
You can find the source code of the samples under "Start > Programs > IDS peak > comfortSDK Sample Source Code" or "Start > Programs > IDS peak > genericSDK Sample Source Code".
The samples were built and tested with the following Qt versions:
For the QML samples, it is recommended to use the latest Qt5 version. Qt6 is currently only supported for the IDS peak genericSDK samples.
For the C# samples, the following versions are required
When building the samples using the dotnet buildĀ command: The platform property must be set according to your target platform, e.g. when building on x86_64:
dotnet build -p:"Platform=x64" <.csproj file>
Python samples providing a GUI depend on the following packages:
| Sample | Content |
| chunks | Demonstrates how to use chunks which provide additional information about a frame. |
| configure_camera_gfa | Demonstrates the "generic feature access" which allows direct access to the camera's NodeMap. |
| firmware_update | Demonstrates how to update cameras using a GUF file and how to be informed about the update progress. To use this example, download a GUF file for your specific camera model. Start the example and pass the path to the GUF file as first argument. Then a list of updateable devices will be displayed. After a confirmation prompt, the compatible devices will be updated. The update progress is displayed in the terminal. |
| i2c | Demonstrates the use of I2C feature. To use this sample, you need a camera which supports I2C:
|
| inference | Demonstrates the inference feature in IDS peak:
<IDS peak installation>/cnn. |
| ipl_features_live_qtwidgets | Shows the use of IDS peak IPL functions for image manipulation in IDS peak comfortSDK. The example uses QtWidgets for this. |
| message_queue | Demonstrates the use of camera-based and host-based events in a simple GUI. The example uses QtWidgets for this.
|
| reconnect | Opens the first available uEye+ camera and starts image acquisition. If you disconnect the camera, this is detected and signaled. If you reconnect the camera, this will also be detected and image acquisition will start again. This example can also be used in combination with the uEye transport layer for uEye cameras (UI models). |
| record_video | Gets the camera list and opens a camera after user selection. After the user enters the path and the name of the video file, 100 images are acquired and the video is saved. Afterwards, the camera is closed again. |
| sequencer_qtwidgets | This example requires a camera that supports the Sequencer feature. The example allows to parameterize 4 sequencer sets and to execute them in trigger mode. The following parameters can be used:
|
| simple_live_mfc | Opens a camera and displays the live image. The example uses MFC for this. |
| simple_live_qtwidgets | Opens a camera and displays the live image. The example uses QtWidgets for this. |
| trigger_live_qtwidgets | Shows the use of triggered acquisition and setting trigger parameters like trigger delay etc. The example uses QtWidgets for this. |
| walkthrough | Gets the camera list and opens the first available camera. The frame rate is set to maximum and 100 images are acquired. Afterwards, the camera is closed again. |
| Sample | Content |
| afl_features_live_qtwidgets | Opens a camera and demonstrates the usage of the IDS peak AFL to control the host-sided autofocus features. This sample uses a QtWidgets GUI, which also provides a method of setting the autofocus ROI by drawing a bouding box on the image. |
| chunks_live_qml | Opens a camera and shows the use of chunk data via the IDS peak API. The example uses QML (Qt Meta-object Language) for this. |
| chunks_live_qtwidgets | Opens a camera and shows the use of chunk data via the IDS peak API. The example uses QtWidgets for this. |
| firmware_update | Demonstrates how to update cameras using a GUF file and how to be informed about the update progress. To use this example, download a GUF file for your specific camera model. Start the example and pass the path to the GUF file as first argument. Then a list of updateable devices will be displayed. After a confirmation prompt, the compatible devices will be updated. The update progress is displayed in the terminal. |
| device_tree | Create and update module tree and open a camera. |
| get_first_pixel | Starting image acquisition and accessing image pixel data. |
| host_auto_features_live_qtwidgets | Opens a camera and shows the use of automatic exposure, gain and white balance algorithms (host based). The example uses QtWidgets for this. |
| lego_trigger | Using triggered acquisition and setting trigger parameters. Note: When exiting the sample, the camera remains in trigger mode. If you want to use the camera in freerun mode afterwards, load the "Default" UserSet or set all TriggerMode entries to "Off". |
| linescan_live_qtwidgets | Opens a camera and configures it for linescan applications. The example uses QtWidgets for this. Note: When exiting the sample, the camera remains in linescan mode. If you want to use the camera in default mode afterwards, load the "Default" UserSet. |
| multi_camera_live_qtwidgets | Opens several cameras and displays the live image. In addition, different information per camera is displayed, e.g. number of acquired images. |
| open_camera | Simple creation and opening of a camera object. |
| open_camera_by_serno | Create and open a camera object by serial number. |
| open_camera_load_userset_default | Opens a camera. Then, the "Default" user set is loaded and activated. |
| open_camera_select_cti | Using a specific CTI to create and open a camera object. |
| reconnect_callbacks | Opens the first available uEye+ camera and starts image acquisition. If you disconnect the camera, this is detected and signaled. If you reconnect the camera, this will also be detected and image acquisition will start again. This example can also be used in combination with the uEye transport layer for uEye cameras (UI models). |
| remote_device_events | Demonstrates the usage of "RemoteDeviceEvents" by activating and displaying "ExposureStart" event during continuous image acquisition. Note: This sample requires firmware version 2.8 or higher. |
| save_images_live_qtwidgets | Simple GUI example using Qt to show images and save them to disk using the IDS peak IPL. |
| sequencer_live_qml | This example requires a camera that supports the Sequencer feature. The example allows to parameterize 4 sequencer sets and to execute them in trigger mode. The following parameters can be used:
|
| simple_live_qml | Simple example for usage with QML GUI to display images. |
| simple_live_qtwidgets | Simple example for usage with Qt widgets GUI to display images. |
| unicast | Detecting cameras across subnet boundaries: This example demonstrates how you can identify and operate cameras across subnet boundaries. You will be prompted to select a network interface and enter the unicast IP addresses of the target cameras. The transport layer is configured to use only unicast discovery. Broadcast discovery is explicitly disabled. The identified cameras are listed with detailed information. |
| walkthrough | Guided tour through module tree and opening of the first available camera. |
| Sample | Content |
| firmware_update | Demonstrates how to update cameras using a GUF file and how to be informed about the update progress. To use this example, download a GUF file for your specific camera model. Start the example and pass the path to the GUF file as first argument. Then a list of updateable devices will be displayed. After a confirmation prompt, the compatible devices will be updated. The update progress is displayed in the terminal. |
| open_camera | Simple creation and opening of a camera object. |
| reconnect_callbacks | Opens the first available uEye+ camera and starts image acquisition. If you disconnect the camera, this is detected and signaled. If you reconnect the camera, this will also be detected and image acquisition will start again. This example can also be used in combination with the uEye transport layer for uEye cameras (UI models). This sample is provided as Microsoft Visual Studio project file (*.csproj). |
| simple_live_windows_forms | Simple example for usage with Windows Forms to display images. |
| simple_live_wpf | Simple example for usage with Windows Presentation Foundation (WPF) to display images. |
| unicast | Detecting cameras across subnet boundaries: This example demonstrates how you can identify and operate cameras across subnet boundaries. You will be prompted to select a network interface and enter the unicast IP addresses of the target cameras. The transport layer is configured to use only unicast discovery. Broadcast discovery is explicitly disabled. The identified cameras are listed with detailed information. |
| Sample | Content |
| firmware_update | Demonstrates how to update cameras using a GUF file and how to be informed about the update progress. To use this example, download a GUF file for your specific camera model. Start the example and pass the path to the GUF file as first argument. Then a list of updateable devices will be displayed. After a confirmation prompt, the compatible devices will be updated. The update progress is displayed in the terminal. |
| open_camera | Simple creation and opening of a camera object. |
| reconnect_callbacks | Opens the first available uEye+ camera and starts image acquisition. If you disconnect the camera, this is detected and signaled. If you reconnect the camera, this will also be detected and image acquisition will start again. This example can also be used in combination with the uEye transport layer for uEye cameras (UI models). |
| record_video_and_change_parameter | Uses the IDS peak genericAPI to show you how to set camera parameters, start/stop image acquisition and capture a video with IDS peak IPL. |
| simple_live_qtwidgets | Simple example for usage with Qt widgets GUI to display images. |
| start_stop_acquisition_software_trigger | Shows how to start/stop image acquisition and how to capture images using a software trigger. |
| unicast | Detecting cameras across subnet boundaries: This example demonstrates how you can identify and operate cameras across subnet boundaries. You will be prompted to select a network interface and enter the unicast IP addresses of the target cameras. The transport layer is configured to use only unicast discovery. Broadcast discovery is explicitly disabled. The identified cameras are listed with detailed information. |
| Sample | Content |
| simple_live_halcon | Opening a camera and grabbing images. |
| triggered_live_halcon | Configuring and using triggered image acquisition. |
| Sample | Content |
| simple_live_mil | Opening a camera and grabbing images. |
| triggered_live_mil | Configuring and using triggered image acquisition. |
A valid IP address must be assigned to GigE Vision cameras before they can be used.
For optimal performance it is recommended to use Ethernet package sizes which are larger than 1500 bytes. Recommended package size is ~9000 bytes or higher depending on the support of the used network controller. Your whole network infrastructure e.g. switches should support this Ethernet package size if not the GenTL will use the largest possible size.
For operating GigE cameras, it is recommended to set the receive buffer size (so-called receive descriptors) of the network card to its maximum value. Note that not all network cards provide this option.
Modern network interface drivers try to avoid high CPU load by reducing the number of interrupts they generate. Although this is generally good, the default settings of this option are not optimal for fast 10GigE cameras. In this case, the "interrupt throttling rate" (depending on the card manufacturer also: interrupt moderation rate) should be disabled.
NOTICE! If you disable the interrupt throttling rate, the CPU load increases.
USB3 Vision cameras are limited usable under USB 2.0. Depending on the camera model, not all camera functions are available in USB 2.0 mode. USB3 cameras are optimized for USB 3.0 ports and are not tested by IDS Imaging Development Systems GmbH under USB 2.0.
Note that due to the high performance of modern sensors, some USB3 models are not supported in USB 2.0 mode anymore, as the USB 2.0 interface does not provide enough power.
How to integrate IDS industrial cameras with IDS peak in your own application is described in the further documentation of IDS peak which can be found in:
The software includes some parts that are copyright-protected from access by third parties, and which were published under Open Source licensing conditions, see either list on https://en.ids-imaging.com/open-source.html or "C:\Program Files\IDS\ids_peak\licenses". The Open Source parts may be used under the terms and conditions of their corresponding Open Source licenses. You will find the Open Source licenses in the "thirdparty_licenses.txt" file.
Use the control panel function of Windows to uninstall IDS peak. After uninstalling, the PC must be restarted. It is recommended to remove existing IDS peak installations before installing a new version.
| Issue | Details | Solution |
| During runtime, changes to the network configuration are not detected by the GenTL. | The GenTL cannot handle changes to the system's network configuration during runtime. | If you want to change the network configuration, first close the application and restart the application after you changed the network configuration. This behavior also affects the IDS peak cockpit. |
| It is not possible to operate a uEye XLE USB 3 camera on a USB 2.0 port. | USB 3 uEye cameras are optimized for use on USB 3.0 ports. In some cases, certain models can be used with restrictions on USB 2.0 ports. | uEye XLE USB 3 camera models does not support USB 2.0 operation. |
| LabVIEW and template functions | LabVIEW does not support template functions as they are used for FindNode() for example (IDS peak genericSDK). |
As a workaround, all possible templates of FindNode, FindInvalidatedNode, FindInvalidatingNode, FindSelectedNode, and FindSelectingNode are provided as separate functions in addition to the regular generic function. |
| Performance issue with Windows update KB5043145 and WindowsForms with C# | A performance issue was noticed when you use WindowsForms with C# after the Windows update KB5043145 was installed. | We recommend to install the latest Windows update KB5046633 from November 2024 to resolve this performance issue: Windows Update KB5046633. |
IDS Imaging Development Systems GmbH
Dimbacher Str. 10
74182 Obersulm/Germany
T: +49 7134 96196-0
E: info@ids-imaging.com
W: https://en.ids-imaging.com
© IDS Imaging Development Systems GmbH, August 2025