The following release note provides an overview of the features of the Firmware 1.0.14 version. Please refer to the ifm O3Rs website for further information.


Downgrading to older firmware versions is not possible!

Previous Releases

Previous firmware release is version 0.16.23.

Compatible software versions

It is required to use this firmware release with the following software package versions.

Software Version
ifmVisionAssistant >= 2.6.12
ifm3d-library >= 1.2.4
ifm3d-ros ROS(1) wrapper 1.1.1 (pre-release version)
ifm3d-ros2 ROS2 wrapper 1.1.0 (pre-release version)

Compatible Video Processing Platforms

This firmware release can be applied to the following ifm video processing platforms:

Article Description
OVP800 series product
M04239 pre-series sample including ODS license

Supported Camera Articles

This firmware release supports the following ifm camera articles:

Camera Article Description Available Modes Comment
O3R222 3D: 38k 224x172, 60°x45° IP50
2D: 1280x800, 127°x80°
`standard_range4m`, `standard_range2m`, `cyclic_4m_2m_4m_2m`, `extrinsic_calib`,
`standard_autoexposure2D`, `standard_manualexposure2D`
O3R225 AB 3D: 38k 224x172, 105°x78° IP50
2D: 1280x800, 127°x80°
`standard_range4m`, `standard_range2m`, `cyclic_4m_2m_4m_2m`, `extrinsic_calib`,
`standard_autoexposure2D`, `standard_manualexposure2D`
O3R225 AC 3D: 38k 224x172, 105°x78° IP50
2D: 1280x800, 127°x80°
standard_range4m, standard_range2m, cyclic_4m_2m_4m_2m, extrinsic_calib,
standard_autoexposure2D, standard_manualexposure2D
improved fish-eye model

Migration guide: update FW 0.16.23 to FW 1.0.14

For the initial update process from a firmware 0.16.23 to any firmware version >= 1.0.x, please follow the included migration guide closely. The steps outlined there are required to change the device from a A/B redundant partition setup to a recovery based system. This steps needs to be done once per device.

Warning: No downgrade will be possible after a successful update to a recovery based system!

New Features

Recovery system:

  • A/B redundant partition changed to a recovery system:

    • Increase in user space: up-to 8 GB OEM user space available


  • Docker container logs are included in systemD journal instead of separate files: less prone to deadlock systems with verbose logging inside containers, due to logs saving on device during runtime

  • Docker service is persistent over OEM user changes

Library: ifm3d

  • update API - ifm3d-library:

    • version >= 1.2.4, refer to the ifm3d changelogs

    • Please be aware of breaking changes (when updating from 0.93.0 to 1.x.y) - follow the migration guide for details on migrating existing code

  • Diagnosis handling updated: two functions

    • Diagnosis information available via get_diagnostic-function in the API module device.O3R

    • Diagnosis information available via on_async_error or on_async_notification functions in the API module framegrabber.FrameGrabber


  • Diagnosis data

    • accessible through ifm3d library

    • Camera specific diagnosis information

    • Example: temperature information for all system components

  • Application specific diagnosis information updated:

  • Timestamp included with diagnostic information

  • Changed: update of the JSON structure of the diagnostic information provided through the get_diagnostic-function


  • TensorRT (version tensorrt_version_7_1_3_0) runtime libraries are included by default

  • L4T Docker base version: r32.4.3

Application Concept

  • ODS - Obstacle Detection System (only licensed in article: M04239, refer to specific documentation)

Persistent Device Configuration

  • Init configuration JSON survives the firmware update

    • Migrate your Init configuration according to the new JSON schema

NTP timing

  • Improved NTP timing handling: timeouts due to backwards time jumps fixed

Default camera state

  • The camera default state is now RUN. No manual state change required at first startup

    • It is possible to define the camera state after boot-up in the init JSON, for example to save battery power

3D-Camera Features

  • New camera mode: extrinsic_calib mode specifically designed for extrinsic calibration processes with checkerboards

  • Changed meaning of confidence bit 15: previous meaning was ISOLATED_PIXEL, new meaning is CROSSTALK. Pixels, which are invalidated by the isolated pixel filter, are now marked in confidence mask bit 9 (EDGEPIXEL)

Factory Reset

  • Factory reset behavior allows two reset strategies: preserve or reset to default network settings

  • All OEM user settings and files are erased

  • All cached information regarding prev. connected hardware and hardware calibration are erased

    • Next boot-up process will take longer as all calibration files are downloaded again

  • All existing logs are deleted, systemD journal configuration reset to volatile

  • All docker containers are stopped and deleted. A Docker system prune is performed.

ODS Application specific release notes:


  • Improved robustness to false positive object detections:

    • Improved O3R inter camera crosstalk handling

    • Improved dust artifact handling

    • Fixed false positives due to motion artifacts

    • Fixed false positives due to ambient light

    • Improved multi path interference (MPI) TOF artifact handling

  • Improved ego motion estimation:

    • Re-initialization of ego motion in case of ERROR_ODSAPP_VELOCITY_UNAVAILABLE is now allowed, even if the vehicle is still moving

    • Add detection and treatment of ramp situations (this enables ego motion while the vehicle drives over ramps)

    • Improved Standstill detection robustness

  • Added overhanging load feature:

    • Feature for excluding overhanging load from the occupancy grid and zones introduced

  • Tools for extrinsic VPU calibration (extrinsicVPUToUser) are provided as part of the ODS application bundle:

    • Standalone (Python) applications have to be run on the customers PC, for example laptop.


  • Move maxHeight parameter from zone to grid section

  • Add support for 3 camera ODS application instances: 3 TOF camera streams are evaluated simultaneously

Known Issues: ODS application

  • False positives:

    • Stray light caused by retro-reflectors inside and outside the camera’s field of view might cause false positives

    • Dust particles might cause false positives

    • Direct sun light might lead to performance degradation, that is detection range might be limited, objects might be missed, false positives may be seen

    • Approaching or leaving ramps might cause false positive detections

  • Objects in the occupancy grid appear 1 grid cell larger than they are in reality

  • On floors with not enough visible structure, ego motion might not be available (visible with diagnostics VELOCTIY_UNAVAILABLE) This can lead to performance degradations, that is limited detection range, objects might be missed

  • Application conf parameter are not handled correctly

  • Initializing an ODS application instance with default extrinsic calibration parameters - ODS app with two heads:

    • Configuration description: One head with non-default extrinsic calibration and one with default extrinsic calibration parameters causes a instable non-recoverable app instance

    • Outcome: The ODS error state may not be propagated to a correct diagnostic error code (implausible extrinsic calibration), The camera streams for the respective camera heads may not be released after error state occurred


3D-Camera Features

  • Improved camera head error handling for undervoltage / overvoltage situations

  • Improved camera calibration file download handling: sporadic reboot was required after first camera head connection to VPU

  • Improved camera extrinsic calibration:

    • Fixed camera heads 3D TOF optical center offset parameters relative to the camera heads mechanical reference point

    • Fixed in calibration version >= 0.6.1

2D-Camera Features

  • 2D calibration file handling improved


  • Improved invalid configuration handling

  • Robust calibration file download

Known Issues

  • Connectivity: ports must be connected pairwise with the same head-type: [Port0,Port1] [Port2,Port3] [Port4,Port5]

  • Automatic channel selection per imager not yet implemented. It is advised to set all port acquisition channel values differently

    • Channel value difference of >=2 improves crosstalk mitigation

  • Downgrading to older firmware versions not possible!

  • The IPv4 discovery feature for discovering the device in complex networks is not working

  • The framerate of the 2D RGB image stream can not be configured: A parameter change via the JSON interface has no effect on the acquisition framerate.

  • Non supported camera heads, for example O3R prototype heads: start with a M0xxxx, cause boot-up issues and may result in a non-functional state.

  • Algo debug recording:

    • Algo-debug recording (receiving) may not be functional on customer PCs, for example laptops, with high loads / low processing power and result in missed information.

  • Configuring multiple applications at once can result in configuration times larger than the ifm3d API default timeout. A importlib._bootstrap.Error: Lib: XMLRPC Timeout - can you 'ping' the system error will be shown.

  • If no network connection can be established within 2 min during boot-up, following O3R system services such as imager streams may not be functional until rebooted.

  • Native data chunk type availability: AMPLITUDE_COMPRESSED buffer_id does not return valid data. Please use NORM_AMPLITUDE_IMAGE instead.

  • Slow receiver connections slow down the embedded O3R system: internally frames are not discarded as intended, but the system gets slowed down.

  • Repeated mechanical disconnects of Ethernet cables can result in refused data connections by the embedded devices.

  • Manually set date and time are not persistent over reboots.

  • Overvoltage and undervoltage status are not reset after the event.

  • The diagnostic message ERROR_DI_MOTION_COMP_EGA_DATA_TIMESTAMP_MISMATCH may become active for 3D heads used by an ODS application instance when switching the ODS instance from RUN to CONF states.

  • The embedded image processing algorithm is not re-initialized when performing RUN -> CONF -> RUN cycles

  • O3R camera filer related issues:

    • Defective pixel visible in amplitude matrix

    • Temporal filter:

      • Temporal filter creates long-term history dependence of point cloud

      • Temporal filter leads to distance drift over temperature

Look forward to these features in future releases

  • NEW ODS functionality: extended ODS applications functionality

    • Easier channel management: default exclusive channel parameter values

    • Easier port management: automatic port state changes

  • Extrinsic calibration applications will be moved to the embedded firmware as native non-licensed applications

  • NEW licensed applications:

    • PDS: pallet detection system

  • Increased camera head temperature limit

  • IMU data available to the user as its own port