# FIRMWARE 1.0.14 RELEASE NOTES The following release note provides an overview of the features of the Firmware 1.0.14 version. Please refer to the ifm O3Rs website [www.ifm3d.com](http://www.ifm3d.com) for further information. ```{admonition} Warning 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](FW_1.0.x_migration_guide.md) 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: + 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](https://github.com/ifm/ifm3d/releases) + **Please be aware of breaking changes (when updating from 0.93.0 to 1.x.y) - follow the [migration guide](https://api.ifm3d.com/html/content/migration_guide/index.html) 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 + Diagnosis data + accessible through [ifm3d library](https://www.ifm3d.com) + Camera specific diagnosis information + Example: temperature information for all system components + Application specific diagnosis information updated: + See available [diagnosis IDs](https://ifm3d.com/documentation/DeviceConfiguration/Troubleshooting/diagnosis.html#error-descriptions) + Timestamp included with diagnostic information + Changed: update of the JSON structure of the diagnostic information provided through the `get_diagnostic`-function ### TensorRT + 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: ### Features * 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. ### Fixes * 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 ## Fixes ### 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 ### General + 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