Available hardware and specifications.



Link to Hardware on ifm website


Series product without ODS License



Pre-Series product with ODS license

Contact Sales Engineer for availability


Opening angle of 60 by 45°



Opening angle of 105° by 78°


HFM Cable (Highspeed Fakra Mini)

Connecting camera heads to VPU


M12 Connector Cable

Connector cable for power supply/CAN to VPU


CAD drawings of VPU and camera heads

The following table includes the links to find the CAD files of mentioned hardware products which will be required during the mechanical installation of VPU and camera heads.


CAD Drawings




Camera Heads

The camera heads mentioned above differ in their field of view, which has to be considered when selecting the correct hardware. The operational conditions and application use case are the two important factors to be considered for choosing a camera head.

Operational Conditions

The O3R2XX camera heads are theoretically not limited by their capabilities to only indoor environments.

These camera heads fullfil IP54 rating standards which in the addition of regular maintenance and cleaning these can also be used partly for harsher environments, e.g. dusty conditions and mixed indoor - outdoor conditions. In all operation conditions, the cameras have to be cleaned regularly to avoid dust or particle accumulation over the camera head’s surface which will results in gradual deterioration of the camera’s measurement performance.

Please keep in mind that all O3R camera heads (O3R222 and O3R225) are designed with an indoor use case in mind. Outdoor conditions may work depending on the applications requirements, but have to be benchmarked by the customer. Mixed indoor - outdoor conditions are understood by ifm to be conditions which are mainly indoors but may include bright illumination pattern of overhead skylights and windows on the floor and objects.

Application use-case

Two application use cases can be differentiated depending on the O3R camera heads: The O3R222 has a narrow field of view which is ideal for applications focussing on detecting smaller objects and objects at longer ranges. Whereas, the O3R225 camera head has a wider field of view which is ideal for the applications focussing on perceiving the larger areas and minimizing dead zones due to non-adjacent or non-overlapping field of views.

Port(s) overview

Within the ODS configuration and reception of data, several kinds of ports are used.

  • There are the 6 hardware ports, where the O3R heads (e.g. O3R225) are connected

  • There are communication ports (TCP/IP), which are partly mapped to the hardware ports. Depending on the actual head to port configuration, it might be useful to get the communication ports from the config. (Head1 @ port2, Head2 @ Port3 -> Used TCP/IP ports: 50012 & 50013)

To retrieve the PCIC port number for a physical port, one can use ifm3dpy, for instance see below for port 0:

from ifm3dpy import O3R
o3r = O3R()
pcic_port = o3r.get(["/ports/port2/data/pcicTCPPort"])["ports"]["port2"]["data"]["pcicTCPPort"]


Note that the `o3r.get` command shown above is provided a subset of the json configuration.
We do this to optimize the `get` process: we only retrieve the information we need instead of the whole configuration.

While it is good practice to check the PCIC port directly for the requested hardware port, we list below the correspondence between hardware ports and PCIC ports for reference.

Hardware port

TCP/IP port

Port 0


Port 1


Port 2


Port 3


Port 4


Port 5


  • Additionally, running applications have their own dedicated communication ports too, which can be retrieved similarly as the PCIC ports:

from ifm3dpy import O3R
o3r = O3R()
app_port = o3r.get(["/applications/instances/app1/data/pcicTCPPort"])["applications"]["instances"]["app1"]["data"]["pcicTCPPort"]

For reference, below is the application number to PCIC port correspondence.

Application number

TCP/IP port

App 0


App 1


App ..



“Receive TCP/IP ports in config” With firmware versions 0.16.6 or higher, it is possible to receive the TCP/IP port bound to the hardware port or application. Use the ifm3d(py) helper function ports in python or c++.

flowchart TB
    subgraph M04239
        subgraph Default function
        subgraph App0
        subgraph App1
        subgraph AppX
    M04239 --port2--> p1[Port 50010]
    M04239 --Port1--> p2[Port 50011]
    M04239 --PortX--> p3[Port 5001X]
    App0 --> p4[Port 51010]
    App1 --> p5[Port 51011]
    AppX --> p6[Port 5101X]


The `IMU` of the system has its own hardware port `port6` and therefore also a TCP/IP communication port. You can extract the port from the config JSON.

from ifm3dpy import O3R
o3r = O3R()
config = o3r.get()

It is not possible to receive any data from the `IMU` at the moment.


The communication ports of the applications might change depending on the application itself. ODS has one communication port to forward ODS information.


It is possible to connect to application ports and the head ports at the same time. However, if your head connection is not fast enough in receiving data, it might slow down the framerate on the O3R device. This might lead to issues with running applications.


It is possible to change several parameters of ports who are referenced by an ODS application. This is meant for debugging and the user must not change this parameters.