VL53L1: Could you give some help on per-zone offset correction please?
My application requires scanning multiple zones (ROIs) and comparing the results. When I do this I see an offset that varies somewhat randomly based on the shape and position of the ROIs. I see in the UM2133 user manual that there is a calibration procedure to correct offset per zone:
VL53L1_SetOffsetCalibrationMode(Dev, VL53L1_OFFSETCALIBRATIONMODE_MULTI_ZONE);and to apply the correction per zone:
VL53L1_SetOffsetCorrectionMode(Dev, VL53L1_OFFSETCORRECTIONMODE_PERZONE);My question is: Could you explain how this multizone calibration and correction works and where the per-zone data is stored? The data structure in the following quote from the user manual is only for the overall offset calibration right? There would need to be offset data stored for each ROI right? Thanks, Martin
6.3.4 Offset correction options In multizone scanning mode, the offset correction can be improved by using a per zone calibration. If the calibration is made using this option, the user can apply a per zone calibration by calling: VL53L1_SetOffsetCorrectionMode(). The two possible options are: • VL53L1_OFFSETCORRECTIONMODE_STANDARD (default) • VL53L1_OFFSETCORRECTIONMODE_PERZONE
6.3.5 Getting offset calibration results The function VL53L1_GetCalibrationData() allows the reception of all calibration data. The returned structure VL53L1_CalibrationData_t contains another structure called VL53L1_customer_nvm_managed_t which contains the three offset calibration results: • algo__part_to_part_range_offset_mm • mm_config__inner_offset_mm • mm_config__outer_offset_mm
