Questions about full calibration of VL53L1CB (SPADS, XTALK & Offset)
Hi ST team !
I am developing a program allowing indoor / outdoor distance reading with a fixed and static VL53L1CB. I would like, just to test, to carry out a general calibration of the sensor using a cover glass. Have you developed or is there a general sensor calibration sequence program?
A general calibration, in the order, concerning: SPADS -> XTalk -> Offset (created by XTalk)
Is a SPADS calibration really useful for the efficiency of the sensor?
When I execute the "VL53L1_PerformRefSpadManagement ()" function, the sensor subsequently returns false values (Status: 255) and I must therefore perform a complete reboot.
In the following program, what is really useful or unnecessary?
Knowing that this desired calibration will be done without test precautions (impossibility of placing a target at 140mm or 600mm in the dark etc ...)
I need more details, thank you!
LM
void calibration_sensor() // Function use is the setup using the C++ API
{
// delay(5000);
synchro_init_sensor(); //WaitDeviceBooted, DataInit and StaticInit
status = sensor_vl53l1_sat->VL53L1_PerformRefSpadManagement();
SerialPort.print("Status Calibration SPADs : ");
get_status(status); // return sensor status
status = sensor_vl53l1_sat->VL53L1_SetXTalkCompensationEnable(1); // 0 = disabled or 1 = enabled
SerialPort.print("Status Enable Calibration XTalk : ");
get_status(status);
status = sensor_vl53l1_sat->VL53L1_PerformXTalkCalibration(VL53L1_XTALKCALIBRATIONMODE_NO_TARGET);
SerialPort.print("Status Calibration XTalk : ");
get_status(status);
// set_preset();
status = sensor_vl53l1_sat->VL53L1_SetPresetMode(VL53L1_PRESETMODE_MULTIZONES_SCANNING);
// config_full_roi();
roiConfig.UserRois[0].TopLeftX = 0;
roiConfig.UserRois[0].TopLeftY = 15;
roiConfig.UserRois[0].BotRightX = 15;
roiConfig.UserRois[0].BotRightY = 0;
status = sensor_vl53l1_sat->VL53L1_SetROI(&roiConfig);
status = sensor_vl53l1_sat->VL53L1_SetOffsetCalibrationMode(VL53L1_OFFSETCALIBRATIONMODE_MULTI_ZONE);
SerialPort.print("Status Offset Calibration Mode : ");
get_status(status);
status = sensor_vl53l1_sat->VL53L1_SetOffsetCorrectionMode(VL53L1_OFFSETCORRECTIONMODE_PERZONE);
SerialPort.print("Status Offset Corection Mode : ");
get_status(status);
status = sensor_vl53l1_sat->VL53L1_PerformOffsetSimpleCalibration(140); // I can't place a target at 140mm
SerialPort.print("Status Calibration Offset : ");
get_status(status);
get_pal_error(status);
}