diff --git a/LICENSE b/LICENSE
index 341e06b..7df19fd 100644
--- a/LICENSE
+++ b/LICENSE
@@ -1,6 +1,6 @@
BSD 3-Clause License
-Copyright (c) 2023, STM32duino
+Copyright (c) 2024, STM32duino
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
diff --git a/README.md b/README.md
index 4291a2d..26585e2 100644
--- a/README.md
+++ b/README.md
@@ -3,7 +3,7 @@ Arduino library to support the VL53L8CX Time-of-Flight 8x8 multizone ranging sen
## API
-This sensor uses I2C to communicate. And I2C instance is required to access to the sensor.
+This sensor uses I2C/SPI to communicate. And I2C/SPI instance is required to access to the sensor.
The APIs provide simple distance measure and multizone detection in both polling and interrupt modes.
## Examples
diff --git a/examples/VL53L8CX_HelloWorld_I2C/VL53L8CX_HelloWorld_I2C.ino b/examples/VL53L8CX_HelloWorld_I2C/VL53L8CX_HelloWorld_I2C.ino
index 8aa5689..5aa66ab 100644
--- a/examples/VL53L8CX_HelloWorld_I2C/VL53L8CX_HelloWorld_I2C.ino
+++ b/examples/VL53L8CX_HelloWorld_I2C/VL53L8CX_HelloWorld_I2C.ino
@@ -1,45 +1,45 @@
- /**
- ******************************************************************************
- * @file VL53L8CX_HelloWorld_I2C.ino
- * @author STMicroelectronics
- * @version V1.0.0
- * @date 12 June 2023
- * @brief Arduino test application for STMicroelectronics VL53L8CX
- * proximity sensor satellite based on FlightSense.
- * This application makes use of C++ classes obtained from the C
- * components' drivers.
- ******************************************************************************
- * @attention
- *
- *
© COPYRIGHT(c) 2021 STMicroelectronics
- *
- * Redistribution and use in source and binary forms, with or without modification,
- * are permitted provided that the following conditions are met:
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * 3. Neither the name of STMicroelectronics nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
- * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- ******************************************************************************
- */
+/**
+******************************************************************************
+* @file VL53L8CX_HelloWorld_I2C.ino
+* @author STMicroelectronics
+* @version V2.0.0
+* @date 27 June 2024
+* @brief Arduino test application for STMicroelectronics VL53L8CX
+* proximity sensor satellite based on FlightSense.
+* This application makes use of C++ classes obtained from the C
+* components' drivers.
+******************************************************************************
+* @attention
+*
+* © COPYRIGHT(c) 2024 STMicroelectronics
+*
+* Redistribution and use in source and binary forms, with or without modification,
+* are permitted provided that the following conditions are met:
+* 1. Redistributions of source code must retain the above copyright notice,
+* this list of conditions and the following disclaimer.
+* 2. Redistributions in binary form must reproduce the above copyright notice,
+* this list of conditions and the following disclaimer in the documentation
+* and/or other materials provided with the distribution.
+* 3. Neither the name of STMicroelectronics nor the names of its contributors
+* may be used to endorse or promote products derived from this software
+* without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*
+******************************************************************************
+*/
/*
* To use these examples you need to connect the VL53L8CX satellite sensor directly to the Nucleo board with wires as explained below:
- * pin 1 (SPI_I2C_n) of the VL53L8CX satellite connected to pin GND of the Nucleo board
+ * pin 1 (SPI_I2C_N) of the VL53L8CX satellite connected to pin GND of the Nucleo board
* pin 2 (LPn) of the VL53L8CX satellite connected to pin A3 of the Nucleo board
* pin 3 (NCS) not connected
* pin 4 (MISO) not connected
@@ -49,15 +49,14 @@
* pin 8 (I0VDD) of the VL53L8CX satellite not connected
* pin 9 (3V3) of the VL53L8CX satellite connected to 3V3 of the Nucleo board
* pin 10 (1V8) of the VL53L8CX satellite not connected
- * pin 11 (5V) of the VL53L8CX satellite not connected
+ * pin 11 (5V) of the VL53L8CX satellite not connected
* GPIO1 of VL53L8CX satellite connected to A2 pin of the Nucleo board (not used)
* GND of the VL53L8CX satellite connected to GND of the Nucleo board
*/
-
+
/* Includes ------------------------------------------------------------------*/
-#include
-#include
-#include
+
+#include
#ifdef ARDUINO_SAM_DUE
@@ -68,7 +67,6 @@
#define SerialPort Serial
#define LPN_PIN A3
-#define I2C_RST_PIN -1
#define PWREN_PIN 11
void print_result(VL53L8CX_ResultsData *Result);
@@ -77,12 +75,13 @@ void handle_cmd(uint8_t cmd);
void display_commands_banner(void);
// Components.
-VL53L8CX sensor_vl53l8cx_top(&DEV_I2C, LPN_PIN, I2C_RST_PIN);
+VL53L8CX sensor_vl53l8cx_top(&DEV_I2C, LPN_PIN);
bool EnableAmbient = false;
bool EnableSignal = false;
uint8_t res = VL53L8CX_RESOLUTION_4X4;
char report[256];
+uint8_t status;
/* Setup ---------------------------------------------------------------------*/
void setup()
@@ -100,32 +99,30 @@ void setup()
// Initialize I2C bus.
DEV_I2C.begin();
-
+
// Configure VL53L8CX component.
sensor_vl53l8cx_top.begin();
- sensor_vl53l8cx_top.init_sensor();
-
+ status = sensor_vl53l8cx_top.init();
+
// Start Measurements
- sensor_vl53l8cx_top.vl53l8cx_start_ranging();
+ status = sensor_vl53l8cx_top.start_ranging();
}
void loop()
{
VL53L8CX_ResultsData Results;
uint8_t NewDataReady = 0;
- uint8_t status;
do {
- status = sensor_vl53l8cx_top.vl53l8cx_check_data_ready(&NewDataReady);
+ status = sensor_vl53l8cx_top.check_data_ready(&NewDataReady);
} while (!NewDataReady);
if ((!status) && (NewDataReady != 0)) {
- status = sensor_vl53l8cx_top.vl53l8cx_get_ranging_data(&Results);
+ status = sensor_vl53l8cx_top.get_ranging_data(&Results);
print_result(&Results);
}
- if (Serial.available()>0)
- {
+ if (Serial.available() > 0) {
handle_cmd(Serial.read());
}
delay(100);
@@ -142,82 +139,65 @@ void print_result(VL53L8CX_ResultsData *Result)
display_commands_banner();
SerialPort.print("Cell Format :\n\n");
-
- for (l = 0; l < VL53L8CX_NB_TARGET_PER_ZONE; l++)
- {
- snprintf(report, sizeof(report)," \033[38;5;10m%20s\033[0m : %20s\n", "Distance [mm]", "Status");
+
+ for (l = 0; l < VL53L8CX_NB_TARGET_PER_ZONE; l++) {
+ snprintf(report, sizeof(report), " \033[38;5;10m%20s\033[0m : %20s\n", "Distance [mm]", "Status");
SerialPort.print(report);
- if(EnableAmbient || EnableSignal)
- {
- snprintf(report, sizeof(report)," %20s : %20s\n", "Signal [kcps/spad]", "Ambient [kcps/spad]");
+ if (EnableAmbient || EnableSignal) {
+ snprintf(report, sizeof(report), " %20s : %20s\n", "Signal [kcps/spad]", "Ambient [kcps/spad]");
SerialPort.print(report);
}
}
SerialPort.print("\n\n");
- for (j = 0; j < number_of_zones; j += zones_per_line)
- {
- for (i = 0; i < zones_per_line; i++)
+ for (j = 0; j < number_of_zones; j += zones_per_line) {
+ for (i = 0; i < zones_per_line; i++) {
SerialPort.print(" -----------------");
+ }
SerialPort.print("\n");
-
- for (i = 0; i < zones_per_line; i++)
+
+ for (i = 0; i < zones_per_line; i++) {
SerialPort.print("| ");
+ }
SerialPort.print("|\n");
-
- for (l = 0; l < VL53L8CX_NB_TARGET_PER_ZONE; l++)
- {
- // Print distance and status
- for (k = (zones_per_line - 1); k >= 0; k--)
- {
- if (Result->nb_target_detected[j+k]>0)
- {
- snprintf(report, sizeof(report),"| \033[38;5;10m%5ld\033[0m : %5ld ",
- (long)Result->distance_mm[(VL53L8CX_NB_TARGET_PER_ZONE * (j+k)) + l],
- (long)Result->target_status[(VL53L8CX_NB_TARGET_PER_ZONE * (j+k)) + l]);
- SerialPort.print(report);
- }
- else
- {
- snprintf(report, sizeof(report),"| %5s : %5s ", "X", "X");
+
+ for (l = 0; l < VL53L8CX_NB_TARGET_PER_ZONE; l++) {
+ // Print distance and status
+ for (k = (zones_per_line - 1); k >= 0; k--) {
+ if (Result->nb_target_detected[j + k] > 0) {
+ snprintf(report, sizeof(report), "| \033[38;5;10m%5ld\033[0m : %5ld ",
+ (long)Result->distance_mm[(VL53L8CX_NB_TARGET_PER_ZONE * (j + k)) + l],
+ (long)Result->target_status[(VL53L8CX_NB_TARGET_PER_ZONE * (j + k)) + l]);
+ SerialPort.print(report);
+ } else {
+ snprintf(report, sizeof(report), "| %5s : %5s ", "X", "X");
SerialPort.print(report);
}
}
SerialPort.print("|\n");
- if (EnableAmbient || EnableSignal )
- {
- // Print Signal and Ambient
- for (k = (zones_per_line - 1); k >= 0; k--)
- {
- if (Result->nb_target_detected[j+k]>0)
- {
- if (EnableSignal)
- {
- snprintf(report, sizeof(report),"| %5ld : ", (long)Result->signal_per_spad[(VL53L8CX_NB_TARGET_PER_ZONE * (j+k)) + l]);
+ if (EnableAmbient || EnableSignal) {
+ // Print Signal and Ambient
+ for (k = (zones_per_line - 1); k >= 0; k--) {
+ if (Result->nb_target_detected[j + k] > 0) {
+ if (EnableSignal) {
+ snprintf(report, sizeof(report), "| %5ld : ", (long)Result->signal_per_spad[(VL53L8CX_NB_TARGET_PER_ZONE * (j + k)) + l]);
SerialPort.print(report);
- }
- else
- {
- snprintf(report, sizeof(report),"| %5s : ", "X");
+ } else {
+ snprintf(report, sizeof(report), "| %5s : ", "X");
SerialPort.print(report);
}
- if (EnableAmbient)
- {
- snprintf(report, sizeof(report),"%5ld ", (long)Result->ambient_per_spad[j+k]);
+ if (EnableAmbient) {
+ snprintf(report, sizeof(report), "%5ld ", (long)Result->ambient_per_spad[j + k]);
SerialPort.print(report);
- }
- else
- {
- snprintf(report, sizeof(report),"%5s ", "X");
+ } else {
+ snprintf(report, sizeof(report), "%5s ", "X");
SerialPort.print(report);
}
- }
- else
- {
- snprintf(report, sizeof(report),"| %5s : %5s ", "X", "X");
+ } else {
+ snprintf(report, sizeof(report), "| %5s : %5s ", "X", "X");
SerialPort.print(report);
}
}
@@ -225,17 +205,17 @@ void print_result(VL53L8CX_ResultsData *Result)
}
}
}
- for (i = 0; i < zones_per_line; i++)
- SerialPort.print(" -----------------");
+ for (i = 0; i < zones_per_line; i++) {
+ SerialPort.print(" -----------------");
+ }
SerialPort.print("\n");
}
void toggle_resolution(void)
{
- sensor_vl53l8cx_top.vl53l8cx_stop_ranging();
+ status = sensor_vl53l8cx_top.stop_ranging();
- switch (res)
- {
+ switch (res) {
case VL53L8CX_RESOLUTION_4X4:
res = VL53L8CX_RESOLUTION_8X8;
break;
@@ -247,8 +227,8 @@ void toggle_resolution(void)
default:
break;
}
- sensor_vl53l8cx_top.vl53l8cx_set_resolution(res);
- sensor_vl53l8cx_top.vl53l8cx_start_ranging();
+ status = sensor_vl53l8cx_top.set_resolution(res);
+ status = sensor_vl53l8cx_top.start_ranging();
}
void toggle_signal_and_ambient(void)
@@ -259,13 +239,13 @@ void toggle_signal_and_ambient(void)
void clear_screen(void)
{
- snprintf(report, sizeof(report),"%c[2J", 27); /* 27 is ESC command */
+ snprintf(report, sizeof(report), "%c[2J", 27); /* 27 is ESC command */
SerialPort.print(report);
}
void display_commands_banner(void)
{
- snprintf(report, sizeof(report),"%c[2H", 27); /* 27 is ESC command */
+ snprintf(report, sizeof(report), "%c[2H", 27); /* 27 is ESC command */
SerialPort.print(report);
Serial.print("53L8A1 Simple Ranging demo application\n");
@@ -280,8 +260,7 @@ void display_commands_banner(void)
void handle_cmd(uint8_t cmd)
{
- switch (cmd)
- {
+ switch (cmd) {
case 'r':
toggle_resolution();
clear_screen();
diff --git a/examples/VL53L8CX_HelloWorld_SPI/VL53L8CX_HelloWorld_SPI.ino b/examples/VL53L8CX_HelloWorld_SPI/VL53L8CX_HelloWorld_SPI.ino
index aea9918..a65f344 100644
--- a/examples/VL53L8CX_HelloWorld_SPI/VL53L8CX_HelloWorld_SPI.ino
+++ b/examples/VL53L8CX_HelloWorld_SPI/VL53L8CX_HelloWorld_SPI.ino
@@ -2,8 +2,8 @@
******************************************************************************
* @file VL53L8CX_HelloWorld_SPI.ino
* @author STMicroelectronics
- * @version V1.0.0
- * @date 12 June 2023
+ * @version V2.0.0
+ * @date 27 June 2024
* @brief Arduino test application for the X-NUCLEO-53L8A1 based on VL53L8CX
* proximity sensor.
* This application makes use of C++ classes obtained from the C
@@ -11,7 +11,7 @@
******************************************************************************
* @attention
*
- * © COPYRIGHT(c) 2021 STMicroelectronics
+ * © COPYRIGHT(c) 2024 STMicroelectronics
*
* Redistribution and use in source and binary forms, with or without modification,
* are permitted provided that the following conditions are met:
@@ -55,10 +55,9 @@
*/
/* Includes ------------------------------------------------------------------*/
-#include
-#include
+
#include
-#include
+#include
#define SerialPort Serial
@@ -101,29 +100,26 @@ void setup()
// Configure VL53L8CX component.
sensor_vl53l8cx_top.begin();
- sensor_vl53l8cx_top.init_sensor();
+ status = sensor_vl53l8cx_top.init();
// Start Measurements
- sensor_vl53l8cx_top.vl53l8cx_start_ranging();
+ status = sensor_vl53l8cx_top.start_ranging();
}
void loop()
{
VL53L8CX_ResultsData Results;
uint8_t NewDataReady = 0;
- uint8_t status;
-
do {
- status = sensor_vl53l8cx_top.vl53l8cx_check_data_ready(&NewDataReady);
+ status = sensor_vl53l8cx_top.check_data_ready(&NewDataReady);
} while (!NewDataReady);
if ((!status) && (NewDataReady != 0)) {
- status = sensor_vl53l8cx_top.vl53l8cx_get_ranging_data(&Results);
+ status = sensor_vl53l8cx_top.get_ranging_data(&Results);
print_result(&Results);
}
- if (Serial.available()>0)
- {
+ if (Serial.available() > 0) {
handle_cmd(Serial.read());
}
delay(50);
@@ -140,82 +136,65 @@ void print_result(VL53L8CX_ResultsData *Result)
display_commands_banner();
SerialPort.print("Cell Format :\n\n");
-
- for (l = 0; l < VL53L8CX_NB_TARGET_PER_ZONE; l++)
- {
- snprintf(report, sizeof(report)," \033[38;5;10m%20s\033[0m : %20s\n", "Distance [mm]", "Status");
+
+ for (l = 0; l < VL53L8CX_NB_TARGET_PER_ZONE; l++) {
+ snprintf(report, sizeof(report), " \033[38;5;10m%20s\033[0m : %20s\n", "Distance [mm]", "Status");
SerialPort.print(report);
- if(EnableAmbient || EnableSignal)
- {
- snprintf(report, sizeof(report)," %20s : %20s\n", "Signal [kcps/spad]", "Ambient [kcps/spad]");
+ if (EnableAmbient || EnableSignal) {
+ snprintf(report, sizeof(report), " %20s : %20s\n", "Signal [kcps/spad]", "Ambient [kcps/spad]");
SerialPort.print(report);
}
}
SerialPort.print("\n\n");
- for (j = 0; j < number_of_zones; j += zones_per_line)
- {
- for (i = 0; i < zones_per_line; i++)
+ for (j = 0; j < number_of_zones; j += zones_per_line) {
+ for (i = 0; i < zones_per_line; i++) {
SerialPort.print(" -----------------");
+ }
SerialPort.print("\n");
-
- for (i = 0; i < zones_per_line; i++)
+
+ for (i = 0; i < zones_per_line; i++) {
SerialPort.print("| ");
+ }
SerialPort.print("|\n");
-
- for (l = 0; l < VL53L8CX_NB_TARGET_PER_ZONE; l++)
- {
- // Print distance and status
- for (k = (zones_per_line - 1); k >= 0; k--)
- {
- if (Result->nb_target_detected[j+k]>0)
- {
- snprintf(report, sizeof(report),"| \033[38;5;10m%5ld\033[0m : %5ld ",
- (long)Result->distance_mm[(VL53L8CX_NB_TARGET_PER_ZONE * (j+k)) + l],
- (long)Result->target_status[(VL53L8CX_NB_TARGET_PER_ZONE * (j+k)) + l]);
- SerialPort.print(report);
- }
- else
- {
- snprintf(report, sizeof(report),"| %5s : %5s ", "X", "X");
+
+ for (l = 0; l < VL53L8CX_NB_TARGET_PER_ZONE; l++) {
+ // Print distance and status
+ for (k = (zones_per_line - 1); k >= 0; k--) {
+ if (Result->nb_target_detected[j + k] > 0) {
+ snprintf(report, sizeof(report), "| \033[38;5;10m%5ld\033[0m : %5ld ",
+ (long)Result->distance_mm[(VL53L8CX_NB_TARGET_PER_ZONE * (j + k)) + l],
+ (long)Result->target_status[(VL53L8CX_NB_TARGET_PER_ZONE * (j + k)) + l]);
+ SerialPort.print(report);
+ } else {
+ snprintf(report, sizeof(report), "| %5s : %5s ", "X", "X");
SerialPort.print(report);
}
}
SerialPort.print("|\n");
- if (EnableAmbient || EnableSignal )
- {
- // Print Signal and Ambient
- for (k = (zones_per_line - 1); k >= 0; k--)
- {
- if (Result->nb_target_detected[j+k]>0)
- {
- if (EnableSignal)
- {
- snprintf(report, sizeof(report),"| %5ld : ", (long)Result->signal_per_spad[(VL53L8CX_NB_TARGET_PER_ZONE * (j+k)) + l]);
+ if (EnableAmbient || EnableSignal) {
+ // Print Signal and Ambient
+ for (k = (zones_per_line - 1); k >= 0; k--) {
+ if (Result->nb_target_detected[j + k] > 0) {
+ if (EnableSignal) {
+ snprintf(report, sizeof(report), "| %5ld : ", (long)Result->signal_per_spad[(VL53L8CX_NB_TARGET_PER_ZONE * (j + k)) + l]);
SerialPort.print(report);
- }
- else
- {
- snprintf(report, sizeof(report),"| %5s : ", "X");
+ } else {
+ snprintf(report, sizeof(report), "| %5s : ", "X");
SerialPort.print(report);
}
- if (EnableAmbient)
- {
- snprintf(report, sizeof(report),"%5ld ", (long)Result->ambient_per_spad[j+k]);
+ if (EnableAmbient) {
+ snprintf(report, sizeof(report), "%5ld ", (long)Result->ambient_per_spad[j + k]);
SerialPort.print(report);
- }
- else
- {
- snprintf(report, sizeof(report),"%5s ", "X");
+ } else {
+ snprintf(report, sizeof(report), "%5s ", "X");
SerialPort.print(report);
}
- }
- else
- {
- snprintf(report, sizeof(report),"| %5s : %5s ", "X", "X");
+ } else {
+ snprintf(report, sizeof(report), "| %5s : %5s ", "X", "X");
SerialPort.print(report);
}
}
@@ -223,17 +202,17 @@ void print_result(VL53L8CX_ResultsData *Result)
}
}
}
- for (i = 0; i < zones_per_line; i++)
- SerialPort.print(" -----------------");
+ for (i = 0; i < zones_per_line; i++) {
+ SerialPort.print(" -----------------");
+ }
SerialPort.print("\n");
}
void toggle_resolution(void)
{
- sensor_vl53l8cx_top.vl53l8cx_stop_ranging();
+ status = sensor_vl53l8cx_top.stop_ranging();
- switch (res)
- {
+ switch (res) {
case VL53L8CX_RESOLUTION_4X4:
res = VL53L8CX_RESOLUTION_8X8;
break;
@@ -245,8 +224,8 @@ void toggle_resolution(void)
default:
break;
}
- sensor_vl53l8cx_top.vl53l8cx_set_resolution(res);
- sensor_vl53l8cx_top.vl53l8cx_start_ranging();
+ status = sensor_vl53l8cx_top.set_resolution(res);
+ status = sensor_vl53l8cx_top.start_ranging();
}
void toggle_signal_and_ambient(void)
@@ -257,13 +236,13 @@ void toggle_signal_and_ambient(void)
void clear_screen(void)
{
- snprintf(report, sizeof(report),"%c[2J", 27); /* 27 is ESC command */
+ snprintf(report, sizeof(report), "%c[2J", 27); /* 27 is ESC command */
SerialPort.print(report);
}
void display_commands_banner(void)
{
- snprintf(report, sizeof(report),"%c[2H", 27); /* 27 is ESC command */
+ snprintf(report, sizeof(report), "%c[2H", 27); /* 27 is ESC command */
SerialPort.print(report);
Serial.print("53L8A1 Simple Ranging demo application\n");
@@ -278,8 +257,7 @@ void display_commands_banner(void)
void handle_cmd(uint8_t cmd)
{
- switch (cmd)
- {
+ switch (cmd) {
case 'r':
toggle_resolution();
clear_screen();
diff --git a/examples/VL53L8CX_ThresholdDetection/VL53L8CX_ThresholdDetection.ino b/examples/VL53L8CX_ThresholdDetection/VL53L8CX_ThresholdDetection.ino
index f798617..27adeea 100644
--- a/examples/VL53L8CX_ThresholdDetection/VL53L8CX_ThresholdDetection.ino
+++ b/examples/VL53L8CX_ThresholdDetection/VL53L8CX_ThresholdDetection.ino
@@ -2,8 +2,8 @@
******************************************************************************
* @file VL53L8CX_ThresholdDetection.ino
* @author STMicroelectronics
- * @version V1.0.0
- * @date 12 June 2023
+ * @version V2.0.0
+ * @date 27 June 2024
* @brief Arduino test application for the STMicrolectronics VL53L8CX
* proximity sensor satellite based on FlightSense.
* This application makes use of C++ classes obtained from the C
@@ -11,7 +11,7 @@
******************************************************************************
* @attention
*
- * © COPYRIGHT(c) 2021 STMicroelectronics
+ * © COPYRIGHT(c) 2024 STMicroelectronics
*
* Redistribution and use in source and binary forms, with or without modification,
* are permitted provided that the following conditions are met:
@@ -49,15 +49,14 @@
* pin 8 (I0VDD) of the VL53L8CX satellite not connected
* pin 9 (3V3) of the VL53L8CX satellite connected to 3V3 of the Nucleo board
* pin 10 (1V8) of the VL53L8CX satellite not connected
- * pin 11 (5V) of the VL53L8CX satellite not connected
+ * pin 11 (5V) of the VL53L8CX satellite not connected
* GPIO1 of VL53L8CX satellite connected to A2 pin of the Nucleo board (not used)
* GND of the VL53L8CX satellite connected to GND of the Nucleo board
*/
/* Includes ------------------------------------------------------------------*/
-#include
-#include
-#include
+
+#include
#ifdef ARDUINO_SAM_DUE
#define DEV_I2C Wire1
@@ -67,15 +66,14 @@
#define SerialPort Serial
#define LPN_PIN A3
-#define I2C_RST_PIN -1
#define PWREN_PIN 11
-#define INT_PIN A2
+#define INT_PIN A2
void measure(void);
void print_result(VL53L8CX_ResultsData *Result);
// Component.
-VL53L8CX sensor_VL53L8CX_top(&DEV_I2C, LPN_PIN, I2C_RST_PIN);
+VL53L8CX sensor_VL53L8CX_top(&DEV_I2C, LPN_PIN);
bool EnableAmbient = false;
bool EnableSignal = false;
@@ -83,6 +81,7 @@ uint8_t res = VL53L8CX_RESOLUTION_4X4;
char report[256];
volatile int interruptCount = 0;
uint8_t i;
+uint8_t status;
/* Setup ---------------------------------------------------------------------*/
@@ -107,21 +106,19 @@ void setup()
// Set interrupt pin
pinMode(INT_PIN, INPUT_PULLUP);
attachInterrupt(INT_PIN, measure, FALLING);
-
+
// Configure VL53L8CX component.
sensor_VL53L8CX_top.begin();
-
- sensor_VL53L8CX_top.init_sensor();
+ status = sensor_VL53L8CX_top.init();
// Disable thresholds detection.
- sensor_VL53L8CX_top.vl53l8cx_set_detection_thresholds_enable(0U);
+ status = sensor_VL53L8CX_top.set_detection_thresholds_enable(0U);
// Set all values to 0.
memset(&thresholds, 0, sizeof(thresholds));
// Configure thresholds on each active zone
- for (i = 0; i < res; i++)
- {
+ for (i = 0; i < res; i++) {
thresholds[i].zone_num = i;
thresholds[i].measurement = VL53L8CX_DISTANCE_MM;
thresholds[i].type = VL53L8CX_IN_WINDOW;
@@ -130,32 +127,30 @@ void setup()
thresholds[i].param_high_thresh = 600;
}
- // Last threshold must be clearly indicated.
- thresholds[i].zone_num |= VL53L8CX_LAST_THRESHOLD;
+ // Last threshold must be clearly indicated.
+ thresholds[i].zone_num |= VL53L8CX_LAST_THRESHOLD;
- // Send array of thresholds to the sensor.
- sensor_VL53L8CX_top.vl53l8cx_set_detection_thresholds(thresholds);
+ // Send array of thresholds to the sensor.
+ status = sensor_VL53L8CX_top.set_detection_thresholds(thresholds);
- // Enable thresholds detection.
- sensor_VL53L8CX_top.vl53l8cx_set_detection_thresholds_enable(1U);
+ // Enable thresholds detection.
+ status = sensor_VL53L8CX_top.set_detection_thresholds_enable(1U);
- // Start Measurements.
- sensor_VL53L8CX_top.vl53l8cx_start_ranging();
+ // Start Measurements.
+ status = sensor_VL53L8CX_top.start_ranging();
}
void loop()
{
VL53L8CX_ResultsData Results;
uint8_t NewDataReady = 0;
- uint8_t status;
-
do {
- status = sensor_VL53L8CX_top.vl53l8cx_check_data_ready(&NewDataReady);
+ status = sensor_VL53L8CX_top.check_data_ready(&NewDataReady);
} while (!NewDataReady);
- if ((!status) && (NewDataReady != 0)&& interruptCount ) {
+ if ((!status) && (NewDataReady != 0) && interruptCount) {
interruptCount = 0;
- status = sensor_VL53L8CX_top.vl53l8cx_get_ranging_data(&Results);
+ status = sensor_VL53L8CX_top.get_ranging_data(&Results);
print_result(&Results);
}
@@ -166,90 +161,73 @@ void print_result(VL53L8CX_ResultsData *Result)
int8_t i, j, k, l;
uint8_t zones_per_line;
uint8_t number_of_zones = res;
-
+
zones_per_line = (number_of_zones == 16) ? 4 : 8;
- snprintf(report, sizeof(report),"%c[2H", 27); /* 27 is ESC command */
+ snprintf(report, sizeof(report), "%c[2H", 27); /* 27 is ESC command */
SerialPort.print(report);
SerialPort.print("53L8A1 Threshold Detection demo application\n");
SerialPort.print("-------------------------------------------\n\n");
SerialPort.print("Cell Format :\n\n");
-
- for (l = 0; l < VL53L8CX_NB_TARGET_PER_ZONE; l++)
- {
- snprintf(report, sizeof(report)," \033[38;5;10m%20s\033[0m : %20s\n", "Distance [mm]", "Status");
+
+ for (l = 0; l < VL53L8CX_NB_TARGET_PER_ZONE; l++) {
+ snprintf(report, sizeof(report), " \033[38;5;10m%20s\033[0m : %20s\n", "Distance [mm]", "Status");
SerialPort.print(report);
- if(EnableAmbient || EnableSignal)
- {
- snprintf(report, sizeof(report)," %20s : %20s\n", "Signal [kcps/spad]", "Ambient [kcps/spad]");
+ if (EnableAmbient || EnableSignal) {
+ snprintf(report, sizeof(report), " %20s : %20s\n", "Signal [kcps/spad]", "Ambient [kcps/spad]");
SerialPort.print(report);
}
}
SerialPort.print("\n\n");
- for (j = 0; j < number_of_zones; j += zones_per_line)
- {
- for (i = 0; i < zones_per_line; i++)
+ for (j = 0; j < number_of_zones; j += zones_per_line) {
+ for (i = 0; i < zones_per_line; i++) {
SerialPort.print(" -----------------");
+ }
SerialPort.print("\n");
-
- for (i = 0; i < zones_per_line; i++)
+
+ for (i = 0; i < zones_per_line; i++) {
SerialPort.print("| ");
+ }
SerialPort.print("|\n");
-
- for (l = 0; l < VL53L8CX_NB_TARGET_PER_ZONE; l++)
- {
+
+ for (l = 0; l < VL53L8CX_NB_TARGET_PER_ZONE; l++) {
// Print distance and status.
- for (k = (zones_per_line - 1); k >= 0; k--)
- {
- if (Result->nb_target_detected[j+k]>0)
- {
- snprintf(report, sizeof(report),"| \033[38;5;10m%5ld\033[0m : %5ld ",
- (long)Result->distance_mm[(VL53L8CX_NB_TARGET_PER_ZONE * (j+k)) + l],
- (long)Result->target_status[(VL53L8CX_NB_TARGET_PER_ZONE * (j+k)) + l]);
- SerialPort.print(report);
- }
- else
- {
- snprintf(report, sizeof(report),"| %5s : %5s ", "X", "X");
+ for (k = (zones_per_line - 1); k >= 0; k--) {
+ if (Result->nb_target_detected[j + k] > 0) {
+ snprintf(report, sizeof(report), "| \033[38;5;10m%5ld\033[0m : %5ld ",
+ (long)Result->distance_mm[(VL53L8CX_NB_TARGET_PER_ZONE * (j + k)) + l],
+ (long)Result->target_status[(VL53L8CX_NB_TARGET_PER_ZONE * (j + k)) + l]);
+ SerialPort.print(report);
+ } else {
+ snprintf(report, sizeof(report), "| %5s : %5s ", "X", "X");
SerialPort.print(report);
}
}
SerialPort.print("|\n");
- if (EnableAmbient || EnableSignal )
- {
+ if (EnableAmbient || EnableSignal) {
// Print Signal and Ambient.
- for (k = (zones_per_line - 1); k >= 0; k--)
- {
- if (Result->nb_target_detected[j+k]>0)
- {
- if (EnableSignal)
- {
- snprintf(report, sizeof(report),"| %5ld : ", (long)Result->signal_per_spad[(VL53L8CX_NB_TARGET_PER_ZONE * (j+k)) + l]);
+ for (k = (zones_per_line - 1); k >= 0; k--) {
+ if (Result->nb_target_detected[j + k] > 0) {
+ if (EnableSignal) {
+ snprintf(report, sizeof(report), "| %5ld : ", (long)Result->signal_per_spad[(VL53L8CX_NB_TARGET_PER_ZONE * (j + k)) + l]);
SerialPort.print(report);
- }
- else
- {
- snprintf(report, sizeof(report),"| %5s : ", "X");
+ } else {
+ snprintf(report, sizeof(report), "| %5s : ", "X");
SerialPort.print(report);
}
- if (EnableAmbient)
- {
- snprintf(report, sizeof(report),"%5ld ", (long)Result->ambient_per_spad[j+k]);
+ if (EnableAmbient) {
+ snprintf(report, sizeof(report), "%5ld ", (long)Result->ambient_per_spad[j + k]);
SerialPort.print(report);
- }
- else
- {
- snprintf(report, sizeof(report),"%5s ", "X");
+ } else {
+ snprintf(report, sizeof(report), "%5s ", "X");
SerialPort.print(report);
}
- }
- else
- {
- snprintf(report, sizeof(report),"| %5s : %5s ", "X", "X");
+ } else {
+ snprintf(report, sizeof(report), "| %5s : %5s ", "X", "X");
SerialPort.print(report);
}
}
@@ -257,8 +235,9 @@ void print_result(VL53L8CX_ResultsData *Result)
}
}
}
- for (i = 0; i < zones_per_line; i++)
- SerialPort.print(" -----------------");
+ for (i = 0; i < zones_per_line; i++) {
+ SerialPort.print(" -----------------");
+ }
SerialPort.print("\n");
}
diff --git a/keywords.txt b/keywords.txt
index 12c3401..0901028 100644
--- a/keywords.txt
+++ b/keywords.txt
@@ -14,45 +14,44 @@ VL53L8CX KEYWORD1
begin KEYWORD2
end KEYWORD2
-init_sensor KEYWORD2
-vl53l8cx_on KEYWORD2
-vl53l8cx_off KEYWORD2
-vl53l8cx_is_alive KEYWORD2
-vl53l8cx_init KEYWORD2
-vl53l8cx_set_i2c_address KEYWORD2
-vl53l8cx_get_power_mode KEYWORD2
-vl53l8cx_set_power_mode KEYWORD2
-vl53l8cx_start_ranging KEYWORD2
-vl53l8cx_stop_ranging KEYWORD2
-vl53l8cx_check_data_ready KEYWORD2
-vl53l8cx_get_ranging_data KEYWORD2
-vl53l8cx_get_resolution KEYWORD2
-vl53l8cx_set_resolution KEYWORD2
-vl53l8cx_get_ranging_frequency_hz KEYWORD2
-vl53l8cx_set_ranging_frequency_hz KEYWORD2
-vl53l8cx_get_integration_time_ms KEYWORD2
-vl53l8cx_set_integration_time_ms KEYWORD2
-vl53l8cx_get_sharpener_percent KEYWORD2
-vl53l8cx_set_sharpener_percent KEYWORD2
-vl53l8cx_get_target_order KEYWORD2
-vl53l8cx_set_target_order KEYWORD2
-vl53l8cx_get_ranging_mode KEYWORD2
-vl53l8cx_set_ranging_mode KEYWORD2
-vl53l8cx_dci_read_data KEYWORD2
-vl53l8cx_dci_write_data KEYWORD2
-vl53l8cx_dci_replace_data KEYWORD2
-vl53l8cx_get_detection_thresholds_enable KEYWORD2
-vl53l8cx_set_detection_thresholds_enable KEYWORD2
-vl53l8cx_get_detection_thresholds KEYWORD2
-vl53l8cx_set_detection_thresholds KEYWORD2
-vl53l8cx_motion_indicator_init KEYWORD2
-vl53l8cx_motion_indicator_set_distance_motion KEYWORD2
-vl53l8cx_motion_indicator_set_resolution KEYWORD2
-vl53l8cx_calibrate_xtalk KEYWORD2
-vl53l8cx_get_caldata_xtalk KEYWORD2
-vl53l8cx_set_caldata_xtalk KEYWORD2
-vl53l8cx_get_xtalk_margin KEYWORD2
-vl53l8cx_set_xtalk_margin KEYWORD2
+on KEYWORD2
+off KEYWORD2
+is_alive KEYWORD2
+init KEYWORD2
+set_i2c_address KEYWORD2
+get_power_mode KEYWORD2
+set_power_mode KEYWORD2
+start_ranging KEYWORD2
+stop_ranging KEYWORD2
+check_data_ready KEYWORD2
+get_ranging_data KEYWORD2
+get_resolution KEYWORD2
+set_resolution KEYWORD2
+get_ranging_frequency_hz KEYWORD2
+set_ranging_frequency_hz KEYWORD2
+get_integration_time_ms KEYWORD2
+set_integration_time_ms KEYWORD2
+get_sharpener_percent KEYWORD2
+set_sharpener_percent KEYWORD2
+get_target_order KEYWORD2
+set_target_order KEYWORD2
+get_ranging_mode KEYWORD2
+set_ranging_mode KEYWORD2
+dci_read_data KEYWORD2
+dci_write_data KEYWORD2
+dci_replace_data KEYWORD2
+get_detection_thresholds_enable KEYWORD2
+set_detection_thresholds_enable KEYWORD2
+get_detection_thresholds KEYWORD2
+set_detection_thresholds KEYWORD2
+motion_indicator_init KEYWORD2
+motion_indicator_set_distance_motion KEYWORD2
+motion_indicator_set_resolution KEYWORD2
+calibrate_xtalk KEYWORD2
+get_caldata_xtalk KEYWORD2
+set_caldata_xtalk KEYWORD2
+get_xtalk_margin KEYWORD2
+set_xtalk_margin KEYWORD2
SwapBuffer KEYWORD2
get_stream_count KEYWORD2
diff --git a/library.properties b/library.properties
index d00a2ae..99022fb 100644
--- a/library.properties
+++ b/library.properties
@@ -1,5 +1,5 @@
name=STM32duino VL53L8CX
-version=1.0.4
+version=2.0.0
author=STMicroelectronics
maintainer=stm32duino
sentence=Allows controlling the VL53L8CX (Time-of-Flight 8x8 multizone ranging sensor with wide field view)
diff --git a/src/platform.c b/src/platform.c
new file mode 100644
index 0000000..16cca32
--- /dev/null
+++ b/src/platform.c
@@ -0,0 +1,99 @@
+/**
+ ******************************************************************************
+ * @file platform.cpp
+ * @author STMicroelectronics
+ * @version V1.0.0
+ * @date 11 November 2021
+ * @brief Implementation of the platform dependent APIs.
+ ******************************************************************************
+ * @attention
+ *
+ * © COPYRIGHT(c) 2021 STMicroelectronics
+ *
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ * 1. Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * 3. Neither the name of STMicroelectronics nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+ * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ ******************************************************************************
+ */
+
+
+#include "platform.h"
+
+
+uint8_t VL53L8CX_RdByte(
+ VL53L8CX_Platform *p_platform,
+ uint16_t RegisterAdress,
+ uint8_t *p_value)
+{
+ return p_platform->Read(p_platform->handle, RegisterAdress, p_value, 1U);
+}
+
+uint8_t VL53L8CX_WrByte(
+ VL53L8CX_Platform *p_platform,
+ uint16_t RegisterAdress,
+ uint8_t value)
+{
+ return p_platform->Write(p_platform->handle, RegisterAdress, &value, 1U);
+}
+
+uint8_t VL53L8CX_WrMulti(
+ VL53L8CX_Platform *p_platform,
+ uint16_t RegisterAdress,
+ uint8_t *p_values,
+ uint32_t size)
+{
+ return p_platform->Write(p_platform->handle, RegisterAdress, p_values, size);
+}
+
+uint8_t VL53L8CX_RdMulti(
+ VL53L8CX_Platform *p_platform,
+ uint16_t RegisterAdress,
+ uint8_t *p_values,
+ uint32_t size)
+{
+ return p_platform->Read(p_platform->handle, RegisterAdress, p_values, size);
+}
+
+void VL53L8CX_SwapBuffer(
+ uint8_t *buffer,
+ uint16_t size)
+{
+ uint32_t i, tmp;
+
+ /* Example of possible implementation using */
+ for (i = 0; i < size; i = i + 4) {
+ tmp = (
+ buffer[i] << 24)
+ | (buffer[i + 1] << 16)
+ | (buffer[i + 2] << 8)
+ | (buffer[i + 3]);
+
+ memcpy(&(buffer[i]), &tmp, 4);
+ }
+}
+
+uint8_t VL53L8CX_WaitMs(
+ VL53L8CX_Platform *p_platform,
+ uint32_t TimeMs)
+{
+ return p_platform->Wait(p_platform->handle, TimeMs);
+}
diff --git a/src/platform.cpp b/src/platform.cpp
deleted file mode 100644
index 8ccd783..0000000
--- a/src/platform.cpp
+++ /dev/null
@@ -1,256 +0,0 @@
-/**
- ******************************************************************************
- * @file platform.cpp
- * @author STMicroelectronics
- * @version V1.0.0
- * @date 11 November 2021
- * @brief Implementation of the platform dependent APIs.
- ******************************************************************************
- * @attention
- *
- * © COPYRIGHT(c) 2021 STMicroelectronics
- *
- * Redistribution and use in source and binary forms, with or without modification,
- * are permitted provided that the following conditions are met:
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * 3. Neither the name of STMicroelectronics nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
- * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- ******************************************************************************
- */
-
-
-#include "vl53l8cx_class.h"
-
-#define VL53L8CX_COMMS_CHUNK_SIZE 4096
-#define SPI_WRITE_MASK(x) (uint16_t)(x | 0x8000)
-#define SPI_READ_MASK(x) (uint16_t)(x & ~0x8000)
-
-
-uint8_t VL53L8CX::RdByte(
- VL53L8CX_Platform *p_platform,
- uint16_t RegisterAddress,
- uint8_t *p_value)
-{
- uint8_t status = RdMulti(p_platform, RegisterAddress, p_value, 1);
- return status;
-}
-
-uint8_t VL53L8CX::WrByte(
- VL53L8CX_Platform *p_platform,
- uint16_t RegisterAddress,
- uint8_t value)
-{
- // Just use WrMulti but 1 byte
- uint8_t status = WrMulti(p_platform, RegisterAddress, &value, 1);
- return status;
-}
-
-uint8_t VL53L8CX::WrMulti(
- VL53L8CX_Platform *p_platform,
- uint16_t RegisterAddress,
- uint8_t *p_values,
- uint32_t size)
-{
- if (p_platform->dev_i2c) {
- uint32_t i = 0;
- uint8_t buffer[2];
- while (i < size) {
- // If still more than DEFAULT_I2C_BUFFER_LEN bytes to go, DEFAULT_I2C_BUFFER_LEN,
- // else the remaining number of bytes
- size_t current_write_size = (size - i > DEFAULT_I2C_BUFFER_LEN ? DEFAULT_I2C_BUFFER_LEN : size - i);
-
- p_platform->dev_i2c->beginTransmission((uint8_t)((p_platform->address >> 1) & 0x7F));
-
- // Target register address for transfer
- buffer[0] = (uint8_t)((RegisterAddress + i) >> 8);
- buffer[1] = (uint8_t)((RegisterAddress + i) & 0xFF);
-
- p_platform->dev_i2c->write(buffer, 2);
- if (p_platform->dev_i2c->write(p_values + i, current_write_size) == 0) {
- return 1;
- } else {
- i += current_write_size;
- if (size - i) {
-
- // Flush buffer and send stop bit so we have compatibility also with ESP32 platforms
- p_platform->dev_i2c->endTransmission(true);
-
- }
- }
- }
- return p_platform->dev_i2c->endTransmission(true);
- }
-
- if (p_platform->dev_spi) {
-
- uint8_t status = 0;
- int32_t i = 0;
- uint32_t position = 0;
- uint32_t data_size = 0;
- uint16_t temp;
- uint8_t data_write[VL53L8CX_COMMS_CHUNK_SIZE + 2];
-
- for (position = 0; position < size; position += VL53L8CX_COMMS_CHUNK_SIZE) {
- if (size > VL53L8CX_COMMS_CHUNK_SIZE) {
- if ((position + VL53L8CX_COMMS_CHUNK_SIZE) > size) {
- data_size = size - position;
- } else {
- data_size = VL53L8CX_COMMS_CHUNK_SIZE;
- }
- } else {
- data_size = size;
- }
-
- temp = RegisterAddress + position;
-
- data_write[0] = SPI_WRITE_MASK(temp) >> 8;
- data_write[1] = SPI_WRITE_MASK(temp) & 0xFF;
-
- for (i = 0; i < data_size; i++) {
- data_write[i + 2] = p_values[position + i];
- }
-
- data_size += 2;
- p_platform->dev_spi->beginTransaction(SPISettings(p_platform->spi_speed, MSBFIRST, SPI_MODE3));
- digitalWrite(p_platform->cs_pin, LOW);
- p_platform->dev_spi->transfer(&data_write, data_size);
- digitalWrite(p_platform->cs_pin, HIGH);
- }
- return status;
- }
- return 1;
-}
-
-uint8_t VL53L8CX::RdMulti(
- VL53L8CX_Platform *p_platform,
- uint16_t RegisterAddress,
- uint8_t *p_values,
- uint32_t size)
-{
- if (p_platform->dev_i2c) {
- int status = 0;
- uint8_t buffer[2];
- // Loop until the port is transmitted correctly
- do {
- p_platform->dev_i2c->beginTransmission((uint8_t)((p_platform->address >> 1) & 0x7F));
-
- // Target register address for transfer
- buffer[0] = (uint8_t)(RegisterAddress >> 8);
- buffer[1] = (uint8_t)(RegisterAddress & 0xFF);
- p_platform->dev_i2c->write(buffer, 2);
-
- status = p_platform->dev_i2c->endTransmission(false);
-
- // Fix for some STM32 boards
- // Reinitialize the i2c bus with the default parameters
-#ifdef ARDUINO_ARCH_STM32
- if (status) {
- p_platform->dev_i2c->end();
- p_platform->dev_i2c->begin();
- }
-#endif
- // End of fix
- } while (status != 0);
- uint32_t i = 0;
- if (size > DEFAULT_I2C_BUFFER_LEN) {
- while (i < size) {
- // If still more than DEFAULT_I2C_BUFFER_LEN bytes to go, DEFAULT_I2C_BUFFER_LEN,
- // else the remaining number of bytes
- uint8_t current_read_size = (size - i > DEFAULT_I2C_BUFFER_LEN ? DEFAULT_I2C_BUFFER_LEN : size - i);
- p_platform->dev_i2c->requestFrom(((uint8_t)((p_platform->address >> 1) & 0x7F)),
- current_read_size);
- while (p_platform->dev_i2c->available()) {
- p_values[i] = p_platform->dev_i2c->read();
- i++;
- }
- }
- } else {
- p_platform->dev_i2c->requestFrom(((uint8_t)((p_platform->address >> 1) & 0x7F)), size);
- while (p_platform->dev_i2c->available()) {
- p_values[i] = p_platform->dev_i2c->read();
- i++;
- }
- }
- return i != size;
- }
- if (p_platform->dev_spi) {
- uint8_t status = 0;
- uint32_t position = 0;
- uint32_t data_size = 0;
- uint16_t temp;
- uint8_t data_write[VL53L8CX_COMMS_CHUNK_SIZE + 2];
-
- for (position = 0; position < size; position += VL53L8CX_COMMS_CHUNK_SIZE) {
- if (size > VL53L8CX_COMMS_CHUNK_SIZE) {
- if ((position + VL53L8CX_COMMS_CHUNK_SIZE) > size) {
- data_size = size - position;
- } else {
- data_size = VL53L8CX_COMMS_CHUNK_SIZE;
- }
- } else {
- data_size = size;
- }
-
- temp = RegisterAddress + position;
-
- data_write[0] = SPI_READ_MASK(temp) >> 8;
- data_write[1] = SPI_READ_MASK(temp) & 0xFF;
- p_platform->dev_spi->beginTransaction(SPISettings(p_platform->spi_speed, MSBFIRST, SPI_MODE3));
- digitalWrite(p_platform->cs_pin, LOW);
- p_platform->dev_spi->transfer(&data_write, 2);
- for (uint16_t i = 0; i < data_size; i++) {
- *(p_values + i + position) = p_platform->dev_spi->transfer(0x00);
- }
- digitalWrite(p_platform->cs_pin, HIGH);
- }
- return 0;
- }
- return 1;
-}
-
-void VL53L8CX::SwapBuffer(
- uint8_t *buffer,
- uint16_t size)
-{
- uint32_t i, tmp;
- /* Example of possible implementation using */
- for (i = 0; i < size; i = i + 4) {
- tmp = (
- buffer[i] << 24)
- | (buffer[i + 1] << 16)
- | (buffer[i + 2] << 8)
- | (buffer[i + 3]);
- memcpy(&(buffer[i]), &tmp, 4);
-
-
- }
-
-}
-
-
-uint8_t VL53L8CX::WaitMs(
- VL53L8CX_Platform *p_platform,
- uint32_t TimeMs)
-{
- (void)p_platform;
- delay(TimeMs);
-
- return 0;
-}
diff --git a/src/platform.h b/src/platform.h
index 9634707..29b3729 100644
--- a/src/platform.h
+++ b/src/platform.h
@@ -37,50 +37,82 @@
#ifndef _PLATFORM_H_
#define _PLATFORM_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
#pragma once
#include
#include
-#include
-#include
-#include "SPI.h"
#include "platform_config.h"
-
+#define VL53L8CX_COMMS_CHUNK_SIZE 4096
+#define SPI_WRITE_MASK(x) (uint16_t)(x | 0x8000)
+#define SPI_READ_MASK(x) (uint16_t)(x & ~0x8000)
#ifndef DEFAULT_I2C_BUFFER_LEN
- #ifdef ARDUINO_SAM_DUE
- /* FIXME: It seems that an I2C buffer of BUFFER_LENGTH does not work on Arduino DUE. So, we need to decrease the size */
- #define DEFAULT_I2C_BUFFER_LEN (BUFFER_LENGTH - 2)
- #else
- #ifdef BUFFER_LENGTH
- #define DEFAULT_I2C_BUFFER_LEN BUFFER_LENGTH
- #else
- #define DEFAULT_I2C_BUFFER_LEN 32
- #endif
- #endif
-#endif
-/**
- * @brief Structure VL53L8CX_Platform needs to be filled by the customer,
- * depending on his platform. At least, it contains the VL53L8CX I2C address.
- * Some additional fields can be added, as descriptors, or platform
- * dependencies. Anything added into this structure is visible into the platform
- * layer.
- */
+
+
+typedef uint8_t (*VL53L8CX_wait_Func)(void *, uint32_t);
+typedef uint8_t (*VL53L8CX_write_Func)(void *, uint16_t, uint8_t *, uint32_t);
+typedef uint8_t (*VL53L8CX_read_Func)(void *, uint16_t, uint8_t *, uint32_t);
+
+
+#ifdef ARDUINO_SAM_DUE
+/* FIXME: It seems that an I2C buffer of BUFFER_LENGTH does not work on Arduino DUE. So, we need to decrease the size */
+#define DEFAULT_I2C_BUFFER_LEN (BUFFER_LENGTH - 2)
+#else
+#ifdef BUFFER_LENGTH
+#define DEFAULT_I2C_BUFFER_LEN BUFFER_LENGTH
+#else
+#define DEFAULT_I2C_BUFFER_LEN 32
+#endif
+#endif
+#endif
typedef struct {
uint16_t address;
+ VL53L8CX_write_Func Write;
+ VL53L8CX_read_Func Read;
+ VL53L8CX_wait_Func Wait;
+ void *handle;
+} VL53L8CX_Platform;
- TwoWire *dev_i2c;
- SPIClass *dev_spi;
- int cs_pin;
- uint32_t spi_speed;
+uint8_t VL53L8CX_RdByte(
+ VL53L8CX_Platform *p_platform,
+ uint16_t RegisterAddress,
+ uint8_t *p_value);
- int lpn_pin;
+uint8_t VL53L8CX_WrByte(
+ VL53L8CX_Platform *p_platform,
+ uint16_t RegisterAddress,
+ uint8_t value);
- int i2c_rst_pin;
+uint8_t VL53L8CX_WrMulti(
+ VL53L8CX_Platform *p_platform,
+ uint16_t RegisterAddress,
+ uint8_t *p_values,
+ uint32_t size);
-} VL53L8CX_Platform;
+uint8_t VL53L8CX_RdMulti(
+ VL53L8CX_Platform *p_platform,
+ uint16_t RegisterAddress,
+ uint8_t *p_values,
+ uint32_t size);
+
+uint8_t VL53L8CX_WaitMs(
+ VL53L8CX_Platform *p_platform,
+ uint32_t TimeMs);
+void VL53L8CX_SwapBuffer(
+ uint8_t *buffer,
+ uint16_t size);
+
+#ifdef __cplusplus
+}
+#endif
#endif // _PLATFORM_H_
diff --git a/src/vl53l8cx.cpp b/src/vl53l8cx.cpp
new file mode 100644
index 0000000..f1075a7
--- /dev/null
+++ b/src/vl53l8cx.cpp
@@ -0,0 +1,663 @@
+/**
+******************************************************************************
+* @file vl53l8cx.cpp
+* @author STMicroelectronics
+* @version V2.0.0
+* @date 27 June 2024
+* @brief Implementation of of a VL53L8CX Time of Flight(TOF) sensor.
+******************************************************************************
+* @attention
+*
+* © COPYRIGHT(c) 2024 STMicroelectronics
+*
+* Redistribution and use in source and binary forms, with or without modification,
+* are permitted provided that the following conditions are met:
+* 1. Redistributions of source code must retain the above copyright notice,
+* this list of conditions and the following disclaimer.
+* 2. Redistributions in binary form must reproduce the above copyright notice,
+* this list of conditions and the following disclaimer in the documentation
+* and/or other materials provided with the distribution.
+* 3. Neither the name of STMicroelectronics nor the names of its contributors
+* may be used to endorse or promote products derived from this software
+* without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+* DAMAGES(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+* OR TORT(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*
+******************************************************************************
+*/
+
+
+/* Includes ------------------------------------------------------------------*/
+#include "vl53l8cx.h"
+
+
+/** Constructor
+ * @param[in] i2c device I2C to be used for communication
+ * @param[in] lpn_pin pin to be used as component LPn
+ * @param[in] i2c_rst_pin pin to be used as component I2C_RST
+ */
+VL53L8CX::VL53L8CX(TwoWire *i2c, int _lpn_pin, int _i2c_rst_pin): dev_i2c(i2c), lpn_pin(_lpn_pin), i2c_rst_pin(_i2c_rst_pin)
+{
+ memset((void *)&_dev, 0x0, sizeof(VL53L8CX_Configuration));
+ dev_spi = NULL;
+ _dev.platform.address = VL53L8CX_DEFAULT_I2C_ADDRESS;
+ _dev.platform.Write = VL53L8CX_io_write;
+ _dev.platform.Read = VL53L8CX_io_read;
+ _dev.platform.Wait = VL53L8CX_io_wait;
+ _dev.platform.handle = (void *)this;
+ p_dev = &_dev;
+}
+/** Constructor
+* @param spi object of an helper class which handles the SPI peripheral
+* @param cs_pin the chip select pin
+* @param spi_speed the SPI speed in Hz
+*/
+VL53L8CX::VL53L8CX(SPIClass *spi, int _cs_pin, int _lpn_pin, int _i2c_rst_pin, uint32_t _spi_speed) : dev_spi(spi), cs_pin(_cs_pin), lpn_pin(_lpn_pin), i2c_rst_pin(_i2c_rst_pin), spi_speed(_spi_speed)
+{
+ memset((void *)&_dev, 0x0, sizeof(VL53L8CX_Configuration));
+ dev_i2c = NULL;
+ _dev.platform.address = VL53L8CX_DEFAULT_I2C_ADDRESS;
+ _dev.platform.Write = VL53L8CX_io_write;
+ _dev.platform.Read = VL53L8CX_io_read;
+ _dev.platform.Wait = VL53L8CX_io_wait;
+ _dev.platform.handle = (void *)this;
+ p_dev = &_dev;
+}
+
+/** Destructor
+ */
+VL53L8CX::~VL53L8CX() {}
+/* warning: VL53LX class inherits from GenericSensor, RangeSensor and LightSensor, that haven`t a destructor.
+ The warning should request to introduce a destructor to make sure to delete the object */
+
+int VL53L8CX::begin()
+{
+ if (lpn_pin >= 0) {
+ pinMode(lpn_pin, OUTPUT);
+ digitalWrite(lpn_pin, LOW);
+ delay(10);
+ digitalWrite(lpn_pin, HIGH);
+ }
+ if (i2c_rst_pin >= 0) {
+ pinMode(i2c_rst_pin, OUTPUT);
+ if (dev_i2c) {
+ digitalWrite(i2c_rst_pin, LOW);
+ }
+ if (dev_spi) {
+ digitalWrite(i2c_rst_pin, HIGH);
+ }
+ }
+
+ if (dev_spi) {
+ // Configure CS pin
+ pinMode(cs_pin, OUTPUT);
+ digitalWrite(cs_pin, HIGH);
+ }
+ return 0;
+}
+
+int VL53L8CX::end()
+{
+ if (lpn_pin >= 0) {
+ pinMode(lpn_pin, INPUT);
+ }
+ if (i2c_rst_pin >= 0) {
+ pinMode(i2c_rst_pin, INPUT);
+ }
+ /* Reset CS configuration */
+ if (dev_spi) {
+ // Configure CS pin
+ pinMode(cs_pin, INPUT);
+ }
+ return 0;
+}
+
+/*** Interface Methods ***/
+/*** High level API ***/
+/**
+ * @brief PowerOn the sensor
+ * @return void
+ */
+void VL53L8CX::on(void)
+{
+ if (lpn_pin >= 0) {
+ digitalWrite(lpn_pin, HIGH);
+ }
+ delay(10);
+}
+
+/**
+ * @brief PowerOff the sensor
+ * @return void
+ */
+void VL53L8CX::off(void)
+{
+ if (lpn_pin >= 0) {
+ digitalWrite(lpn_pin, LOW);
+ }
+ delay(10);
+}
+
+/**
+ * @brief Reset I2C peripheral of the sensor
+ * @return void
+ */
+void VL53L8CX::i2c_reset(void)
+{
+ if (dev_i2c && i2c_rst_pin >= 0) {
+ digitalWrite(i2c_rst_pin, LOW);
+ delay(10);
+ digitalWrite(i2c_rst_pin, HIGH);
+ delay(10);
+ digitalWrite(i2c_rst_pin, LOW);
+ delay(10);
+ }
+}
+
+/**
+* @brief Check if the VL53L8CX sensor is alive(responding to I2C communication).
+* @param p_dev Pointer to the device configuration structure.
+* @param p_is_alive Pointer to the variable that will be set to indicate if the sensor is alive.
+* @return Status 0 if check is OK.
+*/
+uint8_t VL53L8CX::is_alive(uint8_t *p_is_alive)
+{
+ return vl53l8cx_is_alive(p_dev, p_is_alive);
+}
+
+/**
+* @brief Initialize the VL53L8CX sensor.
+* @param p_dev Pointer to the device configuration structure.
+* @return Status 0 if initialization is OK.
+*/
+uint8_t VL53L8CX::init(void)
+{
+ return vl53l8cx_init(p_dev);
+}
+
+/**
+* @brief Set the I2C address of the VL53L8CX sensor.
+* @param p_dev Pointer to the device configuration structure.
+* @param i2c_address The new I2C address to be set for the sensor.
+* @return Status 0 if the address is set correctly.
+*/
+uint8_t VL53L8CX::set_i2c_address(uint16_t i2c_address)
+{
+ return vl53l8cx_set_i2c_address(p_dev, i2c_address);
+}
+
+/**
+* @brief Get the current power mode of the VL53L8CX sensor.
+* @param p_dev Pointer to the device configuration structure.
+* @param p_power_mode Pointer to the variable that will be set to the current power mode.
+* @return Status 0 if the power mode is retrieved successfully.
+*/
+uint8_t VL53L8CX::get_power_mode(uint8_t *p_power_mode)
+{
+ return vl53l8cx_get_power_mode(p_dev, p_power_mode);
+}
+
+/**
+* @brief Set the power mode of the VL53L8CX sensor.
+* @param p_dev Pointer to the device configuration structure.
+* @param power_mode The power mode to be set(e.g., sleep or wakeup).
+* @return Status 0 if the power mode is set successfully, or 127 if the requested power mode is not valid.
+*/
+uint8_t VL53L8CX::set_power_mode(uint8_t power_mode)
+{
+ return vl53l8cx_set_power_mode(p_dev, power_mode);
+}
+
+/**
+* @brief Start a ranging session with the VL53L8CX sensor.
+* @param p_dev Pointer to the device configuration structure.
+* @return Status 0 if the ranging session starts successfully.
+*/
+uint8_t VL53L8CX::start_ranging(void)
+{
+ return vl53l8cx_start_ranging(p_dev);
+}
+
+/**
+* @brief Stop the current ranging session with the VL53L8CX sensor.
+* @param p_dev Pointer to the device configuration structure.
+* @return Status 0 if the ranging session stops successfully.
+*/
+uint8_t VL53L8CX::stop_ranging(void)
+{
+ return vl53l8cx_stop_ranging(p_dev);
+}
+
+/**
+* @brief Check if new ranging data is ready.
+* @param p_dev Pointer to the device configuration structure.
+* @param p_isReady Pointer to the variable that will be updated to indicate if new data is ready.
+* @return Status 0 if the data ready check is successful.
+*/
+uint8_t VL53L8CX::check_data_ready(uint8_t *p_isReady)
+{
+ return vl53l8cx_check_data_ready(p_dev, p_isReady);
+}
+
+/**
+* @brief Get the ranging data from the VL53L8CX sensor.
+* @param p_dev Pointer to the device configuration structure.
+* @param p_results Pointer to the results data structure where the ranging data will be stored.
+* @return Status 0 if the data is retrieved successfully.
+*/
+uint8_t VL53L8CX::get_ranging_data(VL53L8CX_ResultsData *p_results)
+{
+ return vl53l8cx_get_ranging_data(p_dev, p_results);
+}
+
+/**
+* @brief Get the current resolution of the VL53L8CX sensor.
+* @param p_dev Pointer to the device configuration structure.
+* @param p_resolution Pointer to the variable that will be set to the current resolution.
+* @return Status 0 if the resolution is retrieved successfully.
+*/
+uint8_t VL53L8CX::get_resolution(uint8_t *p_resolution)
+{
+ return vl53l8cx_get_resolution(p_dev, p_resolution);
+}
+
+/**
+* @brief Set a new resolution for the VL53L8CX sensor.
+* @param p_dev Pointer to the device configuration structure.
+* @param resolution The new resolution to be set.
+* @return Status 0 if the resolution is set successfully.
+*/
+uint8_t VL53L8CX::set_resolution(uint8_t resolution)
+{
+ return vl53l8cx_set_resolution(p_dev, resolution);
+}
+
+/**
+* @brief Get the current ranging frequency of the VL53L8CX sensor in Hz.
+* @param p_dev Pointer to the device configuration structure.
+* @param p_frequency_hz Pointer to the variable that will be set to the current ranging frequency.
+* @return Status 0 if the ranging frequency is retrieved successfully.
+*/
+uint8_t VL53L8CX::get_ranging_frequency_hz(uint8_t *p_frequency_hz)
+{
+ return vl53l8cx_get_ranging_frequency_hz(p_dev, p_frequency_hz);
+}
+
+/**
+* @brief Set a new ranging frequency for the VL53L8CX sensor in Hz.
+* @param p_dev Pointer to the device configuration structure.
+* @param frequency_hz The new ranging frequency to be set.
+* @return Status 0 if the ranging frequency is set successfully, or 127 if the value is not correct.
+*/
+uint8_t VL53L8CX::set_ranging_frequency_hz(uint8_t frequency_hz)
+{
+ return vl53l8cx_set_ranging_frequency_hz(p_dev, frequency_hz);
+}
+
+/**
+* @brief Get the current integration time of the VL53L8CX sensor in ms.
+* @param p_dev Pointer to the device configuration structure.
+* @param p_time_ms Pointer to the variable that will be set to the current integration time.
+* @return Status 0 if the integration time is retrieved successfully.
+*/
+uint8_t VL53L8CX::get_integration_time_ms(uint32_t *p_time_ms)
+{
+ return vl53l8cx_get_integration_time_ms(p_dev, p_time_ms);
+}
+
+/**
+* @brief Set a new integration time for the VL53L8CX sensor in ms.
+* @param p_dev Pointer to the device configuration structure.
+* @param integration_time_ms The new integration time to be set.
+* @return Status 0 if the integration time is set successfully.
+*/
+uint8_t VL53L8CX::set_integration_time_ms(uint32_t integration_time_ms)
+{
+ return vl53l8cx_set_integration_time_ms(p_dev, integration_time_ms);
+}
+
+/**
+* @brief Get the current sharpener percentage of the VL53L8CX sensor.
+* @param p_dev Pointer to the device configuration structure.
+* @param p_sharpener_percent Pointer to the variable that will be set to the current sharpener percentage.
+* @return Status 0 if the sharpener percentage is retrieved successfully.
+*/
+uint8_t VL53L8CX::get_sharpener_percent(uint8_t *p_sharpener_percent)
+{
+ return vl53l8cx_get_sharpener_percent(p_dev, p_sharpener_percent);
+}
+
+/**
+* @brief Set a new sharpener percentage for the VL53L8CX sensor.
+* @param p_dev Pointer to the device configuration structure.
+* @param sharpener_percent The new sharpener percentage to be set.
+* @return Status 0 if the sharpener percentage is set successfully.
+*/
+uint8_t VL53L8CX::set_sharpener_percent(uint8_t sharpener_percent)
+{
+ return vl53l8cx_set_sharpener_percent(p_dev, sharpener_percent);
+}
+/**
+* @brief Get the current target order of the VL53L8CX sensor(closest or strongest).
+* @param p_dev Pointer to the device configuration structure.
+* @param p_target_order Pointer to the variable that will be set to the current target order.
+* @return Status 0 if the target order is retrieved successfully.
+*/
+uint8_t VL53L8CX::get_target_order(uint8_t *p_target_order)
+{
+ return vl53l8cx_get_target_order(p_dev, p_target_order);
+}
+
+/**
+* @brief Set a new target order for the VL53L8CX sensor.
+* @param p_dev Pointer to the device configuration structure.
+* @param target_order The new target order to be set.
+* @return Status 0 if the target order is set successfully, or 127 if the target order is unknown.
+*/
+uint8_t VL53L8CX::set_target_order(uint8_t target_order)
+{
+ return vl53l8cx_set_target_order(p_dev, target_order);
+}
+
+/**
+* @brief Get the current ranging mode of the VL53L8CX sensor.
+* @param p_dev Pointer to the device configuration structure.
+* @param p_ranging_mode Pointer to the variable that will be set to the current ranging mode.
+* @return Status 0 if the ranging mode is retrieved successfully.
+*/
+uint8_t VL53L8CX::get_ranging_mode(uint8_t *p_ranging_mode)
+{
+ return vl53l8cx_get_ranging_mode(p_dev, p_ranging_mode);
+}
+
+/**
+* @brief Set the ranging mode of the VL53L8CX sensor.
+* @param p_dev Pointer to the device configuration structure.
+* @param ranging_mode The new ranging mode to be set.
+* @return Status 0 if the ranging mode is set successfully.
+*/
+uint8_t VL53L8CX::set_ranging_mode(uint8_t ranging_mode)
+{
+ return vl53l8cx_set_ranging_mode(p_dev, ranging_mode);
+}
+
+/**
+* @brief Check if the synchronization pin of the VL53L8CX sensor is enabled.
+* @param p_dev Pointer to the device configuration structure.
+* @param p_is_sync_pin_enabled Pointer to the variable that will be updated to indicate if the sync pin is enabled.
+* @return Status 0 if the sync pin status is retrieved successfully.
+*/
+uint8_t VL53L8CX::get_external_sync_pin_enable(uint8_t *p_is_sync_pin_enabled)
+{
+ return vl53l8cx_get_external_sync_pin_enable(p_dev, p_is_sync_pin_enabled);
+}
+
+/**
+* @brief Enable or disable the synchronization pin of the VL53L8CX sensor.
+* @param p_dev Pointer to the device configuration structure.
+* @param enable_sync_pin Set to 1 to enable the sync pin, or 0 to disable it.
+* @return Status 0 if the sync pin is set successfully.
+*/
+uint8_t VL53L8CX::set_external_sync_pin_enable(uint8_t enable_sync_pin)
+{
+ return vl53l8cx_set_external_sync_pin_enable(p_dev, enable_sync_pin);
+}
+
+/**
+* @brief Get the number of frames between two temperature compensations for the VL53L8CX sensor.
+* @param p_dev Pointer to the device configuration structure.
+* @param p_repeat_count Pointer to the variable that will be set to the number of frames before the next temperature compensation.
+* @return Status 0 if the repeat count is retrieved successfully.
+*/
+uint8_t VL53L8CX::get_VHV_repeat_count(uint32_t *p_repeat_count)
+{
+ return vl53l8cx_get_VHV_repeat_count(p_dev, p_repeat_count);
+}
+
+
+/**
+* @brief Set the number of frames between two temperature compensations for the VL53L8CX sensor.
+* @param p_dev Pointer to the device configuration structure.
+* @param repeat_count The number of frames between temperature compensations to be set.
+* @return Status 0 if the repeat count is set successfully.
+*/
+uint8_t VL53L8CX::set_VHV_repeat_count(uint32_t repeat_count)
+{
+ return vl53l8cx_set_VHV_repeat_count(p_dev, repeat_count);
+}
+
+/**
+* @brief Read 'extra data' from the VL53L8CX sensor using DCI(Device Configuration Interface).
+* @param p_dev Pointer to the device configuration structure.
+* @param data Pointer to the data array or casted structure where the read data will be stored.
+* @param index Index of the required value to be read.
+* @param data_size Size of the data array or casted structure(use sizeof() function).
+* @return Status 0 if the read operation is successful.
+*/
+uint8_t VL53L8CX::dci_read_data(uint8_t *data, uint32_t index, uint16_t data_size)
+{
+ return vl53l8cx_dci_read_data(p_dev, data, index, data_size);
+}
+
+/**
+* @brief Write 'extra data' to the VL53L8CX sensor using DCI(Device Configuration Interface).
+* @param p_dev Pointer to the device configuration structure.
+* @param data Pointer to the data array or casted structure containing the data to be written.
+* @param index Index of the required value to be written.
+* @param data_size Size of the data array or casted structure(use sizeof() function).
+* @return Status 0 if the write operation is successful.
+*/
+uint8_t VL53L8CX::dci_write_data(uint8_t *data, uint32_t index, uint16_t data_size)
+{
+ return vl53l8cx_dci_write_data(p_dev, data, index, data_size);
+}
+
+/**
+* @brief Replace 'extra data' in the VL53L8CX sensor using DCI(Device Configuration Interface).
+* @param p_dev Pointer to the device configuration structure.
+* @param data Pointer to the data array or casted structure where the current data is stored.
+* @param index Index of the required value to be replaced.
+* @param data_size Size of the data array or casted structure(use sizeof() function).
+* @param new_data Pointer to the new data array containing the fields to be replaced.
+* @param new_data_size Size of the new data array.
+* @param new_data_pos Position of the new data in the buffer.
+* @return Status 0 if the replace operation is successful.
+*/
+uint8_t VL53L8CX::dci_replace_data(uint8_t *data, uint32_t index, uint16_t data_size, uint8_t *new_data, uint16_t new_data_size, uint16_t new_data_pos)
+{
+ return vl53l8cx_dci_replace_data(p_dev,
+ data,
+ index,
+ data_size,
+ new_data,
+ new_data_size,
+ new_data_pos);
+}
+
+
+/**
+* @brief Check if the detection thresholds are enabled on the VL53L8CX sensor.
+* @param p_dev Pointer to the VL53L8CX configuration structure.
+* @param p_enabled Pointer to the variable that will be set to 1 if thresholds are enabled, or 0 if disabled.
+* @return Status 0 if the check is successful.
+*/
+uint8_t VL53L8CX::get_detection_thresholds_enable(uint8_t *p_enabled)
+{
+ return vl53l8cx_get_detection_thresholds_enable(p_dev, p_enabled);
+}
+
+/**
+* @brief Enable or disable the detection thresholds on the VL53L8CX sensor.
+* @param p_dev Pointer to the VL53L8CX configuration structure.
+* @param enabled Set to 1 to enable thresholds, or 0 to disable them.
+* @return Status 0 if the thresholds are set successfully.
+*/
+uint8_t VL53L8CX::set_detection_thresholds_enable(uint8_t enabled)
+{
+ return vl53l8cx_set_detection_thresholds_enable(p_dev, enabled);
+}
+
+/**
+* @brief Get the detection thresholds from the VL53L8CX sensor.
+* @param p_dev Pointer to the VL53L8CX configuration structure.
+* @param p_thresholds Pointer to the array where the detection thresholds will be stored.
+* @return Status 0 if the thresholds are retrieved successfully.
+*/
+uint8_t VL53L8CX::get_detection_thresholds(VL53L8CX_DetectionThresholds *p_thresholds)
+{
+ return vl53l8cx_get_detection_thresholds(p_dev, p_thresholds);
+}
+
+/**
+* @brief Set the detection thresholds on the VL53L8CX sensor.
+* @param p_dev Pointer to the VL53L8CX configuration structure.
+* @param p_thresholds Pointer to the array containing the new detection thresholds.
+* @return Status 0 if the thresholds are programmed successfully.
+*/
+uint8_t VL53L8CX::set_detection_thresholds(VL53L8CX_DetectionThresholds *p_thresholds)
+{
+ return vl53l8cx_set_detection_thresholds(p_dev, p_thresholds);
+}
+
+/**
+* @brief Get the status of the auto-stop feature on the VL53L8CX sensor when using detection thresholds.
+* @param p_dev Pointer to the VL53L8CX configuration structure.
+* @param p_auto_stop Pointer to the variable that will be set to 1 if auto-stop is enabled, or 0 if disabled.
+* @return Status 0 if the auto-stop status is retrieved successfully.
+*/
+uint8_t VL53L8CX::get_detection_thresholds_auto_stop(uint8_t *p_auto_stop)
+{
+ return vl53l8cx_get_detection_thresholds_auto_stop(p_dev, p_auto_stop);
+}
+
+/**
+* @brief Enable or disable the auto-stop feature on the VL53L8CX sensor when using detection thresholds.
+* @param p_dev Pointer to the VL53L8CX configuration structure.
+* @param auto_stop Set to 1 to enable auto-stop, or 0 to disable it.
+* @return Status 0 if the auto-stop feature is set successfully.
+*/
+uint8_t VL53L8CX::set_detection_thresholds_auto_stop(uint8_t auto_stop)
+{
+ return vl53l8cx_set_detection_thresholds_auto_stop(p_dev, auto_stop);
+}
+
+
+/**
+* @brief Initialize the motion indicator with the default monitoring range.
+* @param p_dev Pointer to the VL53L8CX configuration structure.
+* @param p_motion_config Pointer to the structure containing the initialized motion configuration.
+* @param resolution The desired resolution, defined by macros VL53L8CX_RESOLUTION_4X4 or VL53L8CX_RESOLUTION_8X8.
+* @return Status 0 if initialization is successful, or 127 if the resolution is unknown.
+*/
+uint8_t VL53L8CX::motion_indicator_init(VL53L8CX_Motion_Configuration *p_motion_config, uint8_t resolution)
+{
+ return vl53l8cx_motion_indicator_init(p_dev, p_motion_config, resolution);
+}
+
+/**
+* @brief Change the working distance range of the motion indicator.
+* @param p_dev Pointer to the VL53L8CX configuration structure.
+* @param p_motion_config Pointer to the structure containing the motion configuration.
+* @param distance_min_mm Minimum distance for the motion indicator(minimum value 400mm, maximum 4000mm).
+* @param distance_max_mm Maximum distance for the motion indicator(minimum value 400mm, maximum 4000mm).
+* @return Status 0 if the configuration is successful, or 127 if an argument is invalid.
+*/
+uint8_t VL53L8CX::motion_indicator_set_distance_motion(VL53L8CX_Motion_Configuration *p_motion_config, uint16_t distance_min_mm, uint16_t distance_max_mm)
+{
+ return vl53l8cx_motion_indicator_set_distance_motion(p_dev, p_motion_config, distance_min_mm, distance_max_mm);
+}
+
+/**
+* @brief Update the internal motion indicator map to a new resolution.
+* @param p_dev Pointer to the VL53L8CX configuration structure.
+* @param p_motion_config Pointer to the structure containing the motion configuration.
+* @param resolution The desired SCI resolution, defined by macros VL53L8CX_RESOLUTION_4X4 or VL53L8CX_RESOLUTION_8X8.
+* @return Status 0 if the update is successful, or 127 if the resolution is unknown.
+*/
+uint8_t VL53L8CX::motion_indicator_set_resolution(VL53L8CX_Motion_Configuration *p_motion_config, uint8_t resolution)
+{
+ return vl53l8cx_motion_indicator_set_resolution(p_dev, p_motion_config, resolution);
+}
+
+/**
+* @brief Start the VL53L8CX sensor to calibrate Xtalk, recommended for use with a coverglass.
+* @param p_dev Pointer to the VL53L8CX configuration structure.
+* @param reflectance_percent Target reflectance in percent, between 1 and 99%. ST recommends a 3% target reflectance for better efficiency.
+* @param nb_samples Number of samples used for calibration. More samples increase accuracy but also calibration time. Minimum is 1, maximum is 16.
+* @param distance_mm Target distance in mm for calibration. Minimum allowed is 600mm, maximum is 3000mm. The target must stay in Full FOV.
+* @return Status 0 if calibration is successful, 127 if an argument has an incorrect value, or 255 if something failed.
+*/
+uint8_t VL53L8CX::calibrate_xtalk(uint16_t reflectance_percent, uint8_t nb_samples, uint16_t distance_mm)
+{
+ return vl53l8cx_calibrate_xtalk(p_dev, reflectance_percent, nb_samples, distance_mm);
+}
+
+/**
+* @brief Get the Xtalk calibration data buffer, available after using vl53l8cx_calibrate_xtalk().
+* @param p_dev Pointer to the VL53L8CX configuration structure.
+* @param p_xtalk_data Buffer to store Xtalk data, size defined by VL53L8CX_XTALK_SIZE macro.
+* @return Status 0 if buffer reading is successful.
+*/
+uint8_t VL53L8CX::get_caldata_xtalk(uint8_t *p_xtalk_data)
+{
+ return vl53l8cx_get_caldata_xtalk(p_dev, p_xtalk_data);
+}
+
+/**
+* @brief Set the Xtalk calibration data buffer, can be used to override the default Xtalk buffer.
+* @param p_dev Pointer to the VL53L8CX configuration structure.
+* @param p_xtalk_data Buffer containing Xtalk data, size defined by VL53L8CX_XTALK_SIZE macro.
+* @return Status 0 if buffer is set successfully.
+*/
+uint8_t VL53L8CX::set_caldata_xtalk(uint8_t *p_xtalk_data)
+{
+ return vl53l8cx_set_caldata_xtalk(p_dev, p_xtalk_data);
+}
+
+/**
+* @brief Get the Xtalk margin, used to increase the Xtalk threshold and avoid false positives after calibration.
+* @param p_dev Pointer to the VL53L8CX configuration structure.
+* @param p_xtalk_margin Pointer to store the current Xtalk margin in kcps/spads.
+* @return Status 0 if reading is successful.
+*/
+uint8_t VL53L8CX::get_xtalk_margin(uint32_t *p_xtalk_margin)
+{
+ return vl53l8cx_get_xtalk_margin(p_dev, p_xtalk_margin);
+}
+
+/**
+* @brief Set the Xtalk margin, used to increase the Xtalk threshold and avoid false positives after calibration.
+* @param p_dev Pointer to the VL53L8CX configuration structure.
+* @param xtalk_margin New Xtalk margin in kcps/spads. Minimum value is 0, maximum is 10,000 kcps/spads.
+* @return Status 0 if the new margin is set successfully, or 127 if the margin is invalid.
+*/
+uint8_t VL53L8CX::set_xtalk_margin(uint32_t xtalk_margin)
+{
+ return vl53l8cx_set_xtalk_margin(p_dev, xtalk_margin);
+}
+
+
+
+uint8_t VL53L8CX_io_write(void *handle, uint16_t RegisterAddress, uint8_t *p_values, uint32_t size)
+{
+ return ((VL53L8CX *)handle)->IO_Write(RegisterAddress, p_values, size);
+}
+
+uint8_t VL53L8CX_io_read(void *handle, uint16_t RegisterAddress, uint8_t *p_values, uint32_t size)
+{
+ return ((VL53L8CX *)handle)->IO_Read(RegisterAddress, p_values, size);
+}
+
+uint8_t VL53L8CX_io_wait(void *handle, uint32_t ms)
+{
+ return ((VL53L8CX *)handle)->IO_Wait(ms);
+}
diff --git a/src/vl53l8cx.h b/src/vl53l8cx.h
new file mode 100644
index 0000000..f74a998
--- /dev/null
+++ b/src/vl53l8cx.h
@@ -0,0 +1,298 @@
+/**
+ ******************************************************************************
+ * @file vl53l8cx.h
+ * @author STMicroelectronics
+ * @version V2.0.0
+ * @date 27 June 2024
+ * @brief Abstract class of a VL53L8CX Time of Flight(TOF) sensor.
+ ******************************************************************************
+ * @attention
+ *
+ * © COPYRIGHT(c) 2024 STMicroelectronics
+ *
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ * 1. Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * 3. Neither the name of STMicroelectronics nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+ * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ ******************************************************************************
+ */
+
+/* Prevent recursive inclusion -----------------------------------------------*/
+#ifndef __VL53L8CX_H
+#define __VL53L8CX_H
+
+/* Includes ------------------------------------------------------------------*/
+#include "Arduino.h"
+#include "Wire.h"
+#include "SPI.h"
+#include "platform.h"
+#include "vl53l8cx_api.h"
+#include "vl53l8cx_plugin_detection_thresholds.h"
+#include "vl53l8cx_plugin_motion_indicator.h"
+#include "vl53l8cx_plugin_xtalk.h"
+
+/* Class Declaration ---------------------------------------------------------*/
+class VL53L8CX {
+ public:
+ VL53L8CX(TwoWire *i2c, int lpn_pin, int i2c_rst_pin = -1);
+ VL53L8CX(SPIClass *spi, int cs_pin, int lpn_pin = -1, int i2c_rst_pin = -1, uint32_t spi_speed = 5000000);
+ virtual ~VL53L8CX(void);
+ virtual int begin(void);
+ virtual int end(void);
+ virtual void on(void);
+ virtual void off(void);
+ virtual void i2c_reset(void);
+ uint8_t is_alive(uint8_t *p_is_alive);
+ uint8_t init(void);
+ uint8_t set_i2c_address(uint16_t i2c_address);
+ uint8_t get_power_mode(uint8_t *p_power_mode);
+ uint8_t set_power_mode(uint8_t power_mode);
+ uint8_t start_ranging(void);
+ uint8_t stop_ranging(void);
+ uint8_t check_data_ready(uint8_t *p_isReady);
+ uint8_t get_ranging_data(VL53L8CX_ResultsData *p_results);
+ uint8_t get_resolution(uint8_t *p_resolution);
+ uint8_t set_resolution(uint8_t resolution);
+ uint8_t get_ranging_frequency_hz(uint8_t *p_frequency_hz);
+ uint8_t set_ranging_frequency_hz(uint8_t frequency_hz);
+ uint8_t get_integration_time_ms(uint32_t *p_time_ms);
+ uint8_t set_integration_time_ms(uint32_t integration_time_ms);
+ uint8_t get_sharpener_percent(uint8_t *p_sharpener_percent);
+ uint8_t set_sharpener_percent(uint8_t sharpener_percent);
+ uint8_t get_target_order(uint8_t *p_target_order);
+ uint8_t set_target_order(uint8_t target_order);
+ uint8_t get_ranging_mode(uint8_t *p_ranging_mode);
+ uint8_t set_ranging_mode(uint8_t ranging_mode);
+ uint8_t get_external_sync_pin_enable(uint8_t *p_is_sync_pin_enabled);
+ uint8_t set_external_sync_pin_enable(uint8_t enable_sync_pin);
+ uint8_t get_VHV_repeat_count(uint32_t *p_repeat_count);
+ uint8_t set_VHV_repeat_count(uint32_t repeat_count);
+ uint8_t dci_read_data(uint8_t *data, uint32_t index, uint16_t data_size);
+ uint8_t dci_write_data(uint8_t *data, uint32_t index, uint16_t data_size);
+ uint8_t dci_replace_data(uint8_t *data, uint32_t index, uint16_t data_size, uint8_t *new_data, uint16_t new_data_size, uint16_t new_data_pos);
+ uint8_t get_detection_thresholds_enable(uint8_t *p_enabled);
+ uint8_t set_detection_thresholds_enable(uint8_t enabled);
+ uint8_t get_detection_thresholds(VL53L8CX_DetectionThresholds *p_thresholds);
+ uint8_t set_detection_thresholds(VL53L8CX_DetectionThresholds *p_thresholds);
+ uint8_t get_detection_thresholds_auto_stop(uint8_t *p_auto_stop);
+ uint8_t set_detection_thresholds_auto_stop(uint8_t auto_stop);
+ uint8_t motion_indicator_init(VL53L8CX_Motion_Configuration *p_motion_config, uint8_t resolution);
+ uint8_t motion_indicator_set_distance_motion(VL53L8CX_Motion_Configuration *p_motion_config, uint16_t distance_min_mm, uint16_t distance_max_mm);
+ uint8_t motion_indicator_set_resolution(VL53L8CX_Motion_Configuration *p_motion_config, uint8_t resolution);
+ uint8_t calibrate_xtalk(uint16_t reflectance_percent, uint8_t nb_samples, uint16_t distance_mm);
+ uint8_t get_caldata_xtalk(uint8_t *p_xtalk_data);
+ uint8_t set_caldata_xtalk(uint8_t *p_xtalk_data);
+ uint8_t get_xtalk_margin(uint32_t *p_xtalk_margin);
+ uint8_t set_xtalk_margin(uint32_t xtalk_margin);
+
+ /**
+ * @brief Utility function to read data.
+ * @param RegisterAddr: specifies internal address register to be read.
+ * @param p_values: pointer to data to be read.
+ * @param size: number of bytes to be read.
+ * @retval 0 if ok, an error code otherwise.
+ */
+ uint8_t IO_Read(uint16_t RegisterAddress, uint8_t *p_values, uint32_t size)
+ {
+ if (dev_i2c) {
+ int status = 0;
+ uint8_t buffer[2];
+ // Loop until the port is transmitted correctly
+ do {
+ dev_i2c->beginTransmission((uint8_t)((_dev.platform.address >> 1) & 0x7F));
+ // Target register address for transfer
+ buffer[0] = (uint8_t)(RegisterAddress >> 8);
+ buffer[1] = (uint8_t)(RegisterAddress & 0xFF);
+ dev_i2c->write(buffer, 2);
+ status = dev_i2c->endTransmission(false);
+ // Fix for some STM32 boards
+ // Reinitialize the i2c bus with the default parameters
+#ifdef ARDUINO_ARCH_STM32
+ if (status) {
+ dev_i2c->end();
+ dev_i2c->begin();
+ }
+#endif
+ // End of fix
+ } while (status != 0);
+ uint32_t i = 0;
+ if (size > DEFAULT_I2C_BUFFER_LEN) {
+ while (i < size) {
+ // If still more than DEFAULT_I2C_BUFFER_LEN bytes to go, DEFAULT_I2C_BUFFER_LEN,
+ // else the remaining number of bytes
+ uint8_t current_read_size = (size - i > DEFAULT_I2C_BUFFER_LEN ? DEFAULT_I2C_BUFFER_LEN : size - i);
+ dev_i2c->requestFrom(((uint8_t)((_dev.platform.address >> 1) & 0x7F)), current_read_size);
+ while (dev_i2c->available()) {
+ p_values[i] = dev_i2c->read();
+ i++;
+ }
+ }
+ } else {
+ dev_i2c->requestFrom(((uint8_t)((_dev.platform.address >> 1) & 0x7F)), size);
+ while (dev_i2c->available()) {
+ p_values[i] = dev_i2c->read();
+ i++;
+ }
+ }
+ return i != size;
+ }
+ if (dev_spi) {
+ uint8_t status = 0;
+ uint32_t position = 0;
+ uint32_t data_size = 0;
+ uint16_t temp;
+ uint8_t data_write[VL53L8CX_COMMS_CHUNK_SIZE + 2];
+ for (position = 0; position < size; position += VL53L8CX_COMMS_CHUNK_SIZE) {
+ if (size > VL53L8CX_COMMS_CHUNK_SIZE) {
+ if ((position + VL53L8CX_COMMS_CHUNK_SIZE) > size) {
+ data_size = size - position;
+ } else {
+ data_size = VL53L8CX_COMMS_CHUNK_SIZE;
+ }
+ } else {
+ data_size = size;
+ }
+ temp = RegisterAddress + position;
+ data_write[0] = SPI_READ_MASK(temp) >> 8;
+ data_write[1] = SPI_READ_MASK(temp) & 0xFF;
+ dev_spi->beginTransaction(SPISettings(spi_speed, MSBFIRST, SPI_MODE3));
+ digitalWrite(cs_pin, LOW);
+ dev_spi->transfer(&data_write, 2);
+ for (uint16_t i = 0; i < data_size; i++) {
+ *(p_values + i + position) = dev_spi->transfer(0x00);
+ }
+ digitalWrite(cs_pin, HIGH);
+ }
+ return 0;
+ }
+ return 1;
+ }
+
+ /**
+ * @brief Utility function to write data.
+ * @param RegisterAddr: specifies internal address register to be written.
+ * @param p_values: pointer to data to be written.
+ * @param size: number of bytes to be written.
+ * @retval 0 if ok, an error code otherwise.
+ */
+ uint8_t IO_Write(uint16_t RegisterAddress, uint8_t *p_values, uint32_t size)
+ {
+ if (dev_i2c) {
+ uint32_t i = 0;
+ uint8_t buffer[2];
+ while (i < size) {
+ // If still more than DEFAULT_I2C_BUFFER_LEN bytes to go, DEFAULT_I2C_BUFFER_LEN,
+ // else the remaining number of bytes
+ size_t current_write_size = (size - i > DEFAULT_I2C_BUFFER_LEN ? DEFAULT_I2C_BUFFER_LEN : size - i);
+ dev_i2c->beginTransmission((uint8_t)((_dev.platform.address >> 1) & 0x7F));
+ // Target register address for transfer
+ buffer[0] = (uint8_t)((RegisterAddress + i) >> 8);
+ buffer[1] = (uint8_t)((RegisterAddress + i) & 0xFF);
+ dev_i2c->write(buffer, 2);
+ if (dev_i2c->write(p_values + i, current_write_size) == 0) {
+ return 1;
+ } else {
+ i += current_write_size;
+ if (size - i) {
+ // Flush buffer and send stop bit so we have compatibility also with ESP32 platforms
+ dev_i2c->endTransmission(true);
+ }
+ }
+ }
+ return dev_i2c->endTransmission(true);
+ }
+
+ if (dev_spi) {
+
+ uint8_t status = 0;
+ int32_t i = 0;
+ uint32_t position = 0;
+ uint32_t data_size = 0;
+ uint16_t temp;
+ uint8_t data_write[VL53L8CX_COMMS_CHUNK_SIZE + 2];
+ for (position = 0; position < size; position += VL53L8CX_COMMS_CHUNK_SIZE) {
+ if (size > VL53L8CX_COMMS_CHUNK_SIZE) {
+ if ((position + VL53L8CX_COMMS_CHUNK_SIZE) > size) {
+ data_size = size - position;
+ } else {
+ data_size = VL53L8CX_COMMS_CHUNK_SIZE;
+ }
+ } else {
+ data_size = size;
+ }
+ temp = RegisterAddress + position;
+ data_write[0] = SPI_WRITE_MASK(temp) >> 8;
+ data_write[1] = SPI_WRITE_MASK(temp) & 0xFF;
+ for (i = 0; i < data_size; i++) {
+ data_write[i + 2] = p_values[position + i];
+ }
+ data_size += 2;
+ dev_spi->beginTransaction(SPISettings(spi_speed, MSBFIRST, SPI_MODE3));
+ digitalWrite(cs_pin, LOW);
+ dev_spi->transfer(&data_write, data_size);
+ digitalWrite(cs_pin, HIGH);
+ }
+ return status;
+ }
+ return 1;
+ }
+
+ /**
+ * @brief Utility function to wait.
+ * @param ms: milliseconds to wait.
+ * @retval 0
+ */
+ uint8_t IO_Wait(uint32_t ms)
+ {
+ delay(ms);
+ return 0;
+ }
+
+ private:
+
+ /* Helper classes. */
+ TwoWire *dev_i2c;
+ SPIClass *dev_spi;
+
+ /* Configuration */
+ int lpn_pin;
+ int i2c_rst_pin;
+ int cs_pin;
+ uint32_t spi_speed;
+
+ VL53L8CX_Configuration _dev;
+ VL53L8CX_Configuration *p_dev;
+};
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+uint8_t VL53L8CX_io_write(void *handle, uint16_t RegisterAddress, uint8_t *p_values, uint32_t size);
+uint8_t VL53L8CX_io_read(void *handle, uint16_t RegisterAddress, uint8_t *p_values, uint32_t size);
+uint8_t VL53L8CX_io_wait(void *handle, uint32_t ms);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __VL53L8CX_H */
diff --git a/src/vl53l8cx_api.cpp b/src/vl53l8cx_api.c
similarity index 56%
rename from src/vl53l8cx_api.cpp
rename to src/vl53l8cx_api.c
index 4c4e651..f982114 100644
--- a/src/vl53l8cx_api.cpp
+++ b/src/vl53l8cx_api.c
@@ -1,52 +1,27 @@
/**
- ******************************************************************************
- * @file vl53l8cx_api.cpp
- * @author STMicroelectronics
- * @version V1.0.0
- * @date 13 January 2023
- * @brief Implementation of the VL53L8CX APIs.
- ******************************************************************************
- * @attention
- *
- * © COPYRIGHT(c) 2021 STMicroelectronics
- *
- * Redistribution and use in source and binary forms, with or without modification,
- * are permitted provided that the following conditions are met:
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * 3. Neither the name of STMicroelectronics nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
- * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- ******************************************************************************
- */
+ *
+ * Copyright (c) 2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
#include
#include
-#include "vl53l8cx_class.h"
+#include "vl53l8cx_api.h"
#include "vl53l8cx_buffers.h"
-
/**
* @brief Inner function, not available outside this file. This function is used
* to wait for an answer from VL53L8CX sensor.
*/
-uint8_t VL53L8CX::_vl53l8cx_poll_for_answer(
+static uint8_t _vl53l8cx_poll_for_answer(
+ VL53L8CX_Configuration *p_dev,
uint8_t size,
uint8_t pos,
uint16_t address,
@@ -57,9 +32,9 @@ uint8_t VL53L8CX::_vl53l8cx_poll_for_answer(
uint8_t timeout = 0;
do {
- status |= RdMulti(&(p_dev->platform), address,
- p_dev->temp_buffer, size);
- status |= WaitMs(&(p_dev->platform), 10);
+ status |= VL53L8CX_RdMulti(&(p_dev->platform), address,
+ p_dev->temp_buffer, size);
+ status |= VL53L8CX_WaitMs(&(p_dev->platform), 10);
if (timeout >= (uint8_t)200) { /* 2s timeout */
status |= (uint8_t)VL53L8CX_STATUS_TIMEOUT_ERROR;
@@ -80,27 +55,27 @@ uint8_t VL53L8CX::_vl53l8cx_poll_for_answer(
* Inner function, not available outside this file. This function is used to
* wait for the MCU to boot.
*/
-uint8_t VL53L8CX::_vl53l8cx_poll_for_mcu_boot()
+static uint8_t _vl53l8cx_poll_for_mcu_boot(
+ VL53L8CX_Configuration *p_dev)
{
uint8_t go2_status0, go2_status1, status = VL53L8CX_STATUS_OK;
uint16_t timeout = 0;
do {
- status |= RdByte(&(p_dev->platform), 0x06, &go2_status0);
+ status |= VL53L8CX_RdByte(&(p_dev->platform), 0x06, &go2_status0);
if ((go2_status0 & (uint8_t)0x80) != (uint8_t)0) {
- status |= RdByte(&(p_dev->platform), 0x07, &go2_status1);
+ status |= VL53L8CX_RdByte(&(p_dev->platform), 0x07, &go2_status1);
if (go2_status1 & (uint8_t)0x01) {
status |= VL53L8CX_STATUS_OK;
break;
}
}
- (void)WaitMs(&(p_dev->platform), 1);
+ (void)VL53L8CX_WaitMs(&(p_dev->platform), 1);
timeout++;
if ((go2_status0 & (uint8_t)0x1) != (uint8_t)0) {
break;
}
-
} while (timeout < (uint16_t)500);
return status;
@@ -111,7 +86,9 @@ uint8_t VL53L8CX::_vl53l8cx_poll_for_mcu_boot()
* to set the offset data gathered from NVM.
*/
-uint8_t VL53L8CX::_vl53l8cx_send_offset_data(uint8_t resolution)
+static uint8_t _vl53l8cx_send_offset_data(
+ VL53L8CX_Configuration *p_dev,
+ uint8_t resolution)
{
uint8_t status = VL53L8CX_STATUS_OK;
uint32_t signal_grid[64];
@@ -127,7 +104,7 @@ uint8_t VL53L8CX::_vl53l8cx_send_offset_data(uint8_t resolution)
/* Data extrapolation is required for 4X4 offset */
if (resolution == (uint8_t)VL53L8CX_RESOLUTION_4X4) {
(void)memcpy(&(p_dev->temp_buffer[0x10]), dss_4x4, sizeof(dss_4x4));
- SwapBuffer(p_dev->temp_buffer, VL53L8CX_OFFSET_BUFFER_SIZE);
+ VL53L8CX_SwapBuffer(p_dev->temp_buffer, VL53L8CX_OFFSET_BUFFER_SIZE);
(void)memcpy(signal_grid, &(p_dev->temp_buffer[0x3C]),
sizeof(signal_grid));
(void)memcpy(range_grid, &(p_dev->temp_buffer[0x140]),
@@ -155,7 +132,7 @@ uint8_t VL53L8CX::_vl53l8cx_send_offset_data(uint8_t resolution)
signal_grid, sizeof(signal_grid));
(void)memcpy(&(p_dev->temp_buffer[0x140]),
range_grid, sizeof(range_grid));
- SwapBuffer(p_dev->temp_buffer, VL53L8CX_OFFSET_BUFFER_SIZE);
+ VL53L8CX_SwapBuffer(p_dev->temp_buffer, VL53L8CX_OFFSET_BUFFER_SIZE);
}
for (k = 0; k < (VL53L8CX_OFFSET_BUFFER_SIZE - (uint16_t)4); k++) {
@@ -163,9 +140,9 @@ uint8_t VL53L8CX::_vl53l8cx_send_offset_data(uint8_t resolution)
}
(void)memcpy(&(p_dev->temp_buffer[0x1E0]), footer, 8);
- status |= WrMulti(&(p_dev->platform), 0x2e18, p_dev->temp_buffer,
- VL53L8CX_OFFSET_BUFFER_SIZE);
- status |= _vl53l8cx_poll_for_answer(4, 1,
+ status |= VL53L8CX_WrMulti(&(p_dev->platform), 0x2e18, p_dev->temp_buffer,
+ VL53L8CX_OFFSET_BUFFER_SIZE);
+ status |= _vl53l8cx_poll_for_answer(p_dev, 4, 1,
VL53L8CX_UI_CMD_STATUS, 0xff, 0x03);
return status;
@@ -176,7 +153,9 @@ uint8_t VL53L8CX::_vl53l8cx_send_offset_data(uint8_t resolution)
* to set the Xtalk data from generic configuration, or user's calibration.
*/
-uint8_t VL53L8CX::_vl53l8cx_send_xtalk_data(uint8_t resolution)
+static uint8_t _vl53l8cx_send_xtalk_data(
+ VL53L8CX_Configuration *p_dev,
+ uint8_t resolution)
{
uint8_t status = VL53L8CX_STATUS_OK;
uint8_t res4x4[] = {0x0F, 0x04, 0x04, 0x17, 0x08, 0x10, 0x10, 0x07};
@@ -195,7 +174,7 @@ uint8_t VL53L8CX::_vl53l8cx_send_xtalk_data(uint8_t resolution)
(void)memcpy(&(p_dev->temp_buffer[0x020]),
dss_4x4, sizeof(dss_4x4));
- SwapBuffer(p_dev->temp_buffer, VL53L8CX_XTALK_BUFFER_SIZE);
+ VL53L8CX_SwapBuffer(p_dev->temp_buffer, VL53L8CX_XTALK_BUFFER_SIZE);
(void)memcpy(signal_grid, &(p_dev->temp_buffer[0x34]),
sizeof(signal_grid));
@@ -211,189 +190,203 @@ uint8_t VL53L8CX::_vl53l8cx_send_xtalk_data(uint8_t resolution)
(void)memset(&signal_grid[0x10], 0, (uint32_t)192);
(void)memcpy(&(p_dev->temp_buffer[0x34]),
signal_grid, sizeof(signal_grid));
- SwapBuffer(p_dev->temp_buffer, VL53L8CX_XTALK_BUFFER_SIZE);
+ VL53L8CX_SwapBuffer(p_dev->temp_buffer, VL53L8CX_XTALK_BUFFER_SIZE);
(void)memcpy(&(p_dev->temp_buffer[0x134]),
profile_4x4, sizeof(profile_4x4));
(void)memset(&(p_dev->temp_buffer[0x078]), 0,
(uint32_t)4 * sizeof(uint8_t));
}
- status |= WrMulti(&(p_dev->platform), 0x2cf8,
- p_dev->temp_buffer, VL53L8CX_XTALK_BUFFER_SIZE);
- status |= _vl53l8cx_poll_for_answer(4, 1,
+ status |= VL53L8CX_WrMulti(&(p_dev->platform), 0x2cf8,
+ p_dev->temp_buffer, VL53L8CX_XTALK_BUFFER_SIZE);
+ status |= _vl53l8cx_poll_for_answer(p_dev, 4, 1,
VL53L8CX_UI_CMD_STATUS, 0xff, 0x03);
return status;
}
-uint8_t VL53L8CX::vl53l8cx_is_alive(uint8_t *p_is_alive)
+uint8_t vl53l8cx_is_alive(
+ VL53L8CX_Configuration *p_dev,
+ uint8_t *p_is_alive)
{
uint8_t status = VL53L8CX_STATUS_OK;
uint8_t device_id, revision_id;
- status |= WrByte(&(p_dev->platform), 0x7fff, 0x00);
- status |= RdByte(&(p_dev->platform), 0, &device_id);
- status |= RdByte(&(p_dev->platform), 1, &revision_id);
- status |= WrByte(&(p_dev->platform), 0x7fff, 0x02);
+
+ status |= VL53L8CX_WrByte(&(p_dev->platform), 0x7fff, 0x00);
+ status |= VL53L8CX_RdByte(&(p_dev->platform), 0, &device_id);
+ status |= VL53L8CX_RdByte(&(p_dev->platform), 1, &revision_id);
+ status |= VL53L8CX_WrByte(&(p_dev->platform), 0x7fff, 0x02);
+
+
if ((device_id == (uint8_t)0xF0) && (revision_id == (uint8_t)0x0C)) {
*p_is_alive = 1;
} else {
*p_is_alive = 0;
}
+
return status;
}
-uint8_t VL53L8CX::vl53l8cx_init()
+uint8_t vl53l8cx_init(
+ VL53L8CX_Configuration *p_dev)
{
uint8_t tmp, status = VL53L8CX_STATUS_OK;
uint8_t pipe_ctrl[] = {VL53L8CX_NB_TARGET_PER_ZONE, 0x00, 0x01, 0x00};
uint32_t single_range = 0x01;
-
+ uint32_t crc_checksum = 0x00;
p_dev->default_xtalk = (uint8_t *)VL53L8CX_DEFAULT_XTALK;
p_dev->default_configuration = (uint8_t *)VL53L8CX_DEFAULT_CONFIGURATION;
p_dev->is_auto_stop_enabled = (uint8_t)0x0;
/* SW reboot sequence */
- status |= WrByte(&(p_dev->platform), 0x7fff, 0x00);
- status |= WrByte(&(p_dev->platform), 0x0009, 0x04);
- status |= WrByte(&(p_dev->platform), 0x000F, 0x40);
- status |= WrByte(&(p_dev->platform), 0x000A, 0x03);
- status |= RdByte(&(p_dev->platform), 0x7FFF, &tmp);
- status |= WrByte(&(p_dev->platform), 0x000C, 0x01);
-
- status |= WrByte(&(p_dev->platform), 0x0101, 0x00);
- status |= WrByte(&(p_dev->platform), 0x0102, 0x00);
- status |= WrByte(&(p_dev->platform), 0x010A, 0x01);
- status |= WrByte(&(p_dev->platform), 0x4002, 0x01);
- status |= WrByte(&(p_dev->platform), 0x4002, 0x00);
- status |= WrByte(&(p_dev->platform), 0x010A, 0x03);
- status |= WrByte(&(p_dev->platform), 0x0103, 0x01);
- status |= WrByte(&(p_dev->platform), 0x000C, 0x00);
- status |= WrByte(&(p_dev->platform), 0x000F, 0x43);
- status |= WaitMs(&(p_dev->platform), 1);
-
- status |= WrByte(&(p_dev->platform), 0x000F, 0x40);
- status |= WrByte(&(p_dev->platform), 0x000A, 0x01);
- status |= WaitMs(&(p_dev->platform), 100);
+ status |= VL53L8CX_WrByte(&(p_dev->platform), 0x7fff, 0x00);
+ status |= VL53L8CX_WrByte(&(p_dev->platform), 0x0009, 0x04);
+
+ status |= VL53L8CX_WrByte(&(p_dev->platform), 0x000F, 0x40);
+ status |= VL53L8CX_WrByte(&(p_dev->platform), 0x000A, 0x03);
+ status |= VL53L8CX_RdByte(&(p_dev->platform), 0x7FFF, &tmp);
+ status |= VL53L8CX_WrByte(&(p_dev->platform), 0x000C, 0x01);
+
+ status |= VL53L8CX_WrByte(&(p_dev->platform), 0x0101, 0x00);
+ status |= VL53L8CX_WrByte(&(p_dev->platform), 0x0102, 0x00);
+ status |= VL53L8CX_WrByte(&(p_dev->platform), 0x010A, 0x01);
+ status |= VL53L8CX_WrByte(&(p_dev->platform), 0x4002, 0x01);
+ status |= VL53L8CX_WrByte(&(p_dev->platform), 0x4002, 0x00);
+ status |= VL53L8CX_WrByte(&(p_dev->platform), 0x010A, 0x03);
+ status |= VL53L8CX_WrByte(&(p_dev->platform), 0x0103, 0x01);
+ status |= VL53L8CX_WrByte(&(p_dev->platform), 0x000C, 0x00);
+ status |= VL53L8CX_WrByte(&(p_dev->platform), 0x000F, 0x43);
+ status |= VL53L8CX_WaitMs(&(p_dev->platform), 1);
+ status |= VL53L8CX_WrByte(&(p_dev->platform), 0x000F, 0x40);
+ status |= VL53L8CX_WrByte(&(p_dev->platform), 0x000A, 0x01);
+
+ status |= VL53L8CX_WaitMs(&(p_dev->platform), 100);
/* Wait for sensor booted (several ms required to get sensor ready ) */
- status |= WrByte(&(p_dev->platform), 0x7fff, 0x00);
- status |= _vl53l8cx_poll_for_answer(1, 0, 0x06, 0xff, 1);
+ status |= VL53L8CX_WrByte(&(p_dev->platform), 0x7fff, 0x00);
+ status |= _vl53l8cx_poll_for_answer(p_dev, 1, 0, 0x06, 0xff, 1);
if (status != (uint8_t)0) {
goto exit;
}
- status |= WrByte(&(p_dev->platform), 0x000E, 0x01);
- status |= WrByte(&(p_dev->platform), 0x7fff, 0x02);
+ status |= VL53L8CX_WrByte(&(p_dev->platform), 0x000E, 0x01);
+ status |= VL53L8CX_WrByte(&(p_dev->platform), 0x7fff, 0x02);
/* Enable FW access */
- status |= WrByte(&(p_dev->platform), 0x7fff, 0x01);
- status |= WrByte(&(p_dev->platform), 0x06, 0x01);
- status |= _vl53l8cx_poll_for_answer(1, 0, 0x21, 0xFF, 0x4);
+ status |= VL53L8CX_WrByte(&(p_dev->platform), 0x7fff, 0x01);
+ status |= VL53L8CX_WrByte(&(p_dev->platform), 0x06, 0x01);
+ status |= _vl53l8cx_poll_for_answer(p_dev, 1, 0, 0x21, 0xFF, 0x4);
- status |= WrByte(&(p_dev->platform), 0x7fff, 0x00);
+ status |= VL53L8CX_WrByte(&(p_dev->platform), 0x7fff, 0x00);
/* Enable host access to GO1 */
- status |= RdByte(&(p_dev->platform), 0x7fff, &tmp);
- status |= WrByte(&(p_dev->platform), 0x0C, 0x01);
+ status |= VL53L8CX_RdByte(&(p_dev->platform), 0x7fff, &tmp);
+ status |= VL53L8CX_WrByte(&(p_dev->platform), 0x0C, 0x01);
/* Power ON status */
- status |= WrByte(&(p_dev->platform), 0x7fff, 0x00);
- status |= WrByte(&(p_dev->platform), 0x101, 0x00);
- status |= WrByte(&(p_dev->platform), 0x102, 0x00);
- status |= WrByte(&(p_dev->platform), 0x010A, 0x01);
- status |= WrByte(&(p_dev->platform), 0x4002, 0x01);
- status |= WrByte(&(p_dev->platform), 0x4002, 0x00);
- status |= WrByte(&(p_dev->platform), 0x010A, 0x03);
- status |= WrByte(&(p_dev->platform), 0x103, 0x01);
- status |= WrByte(&(p_dev->platform), 0x400F, 0x00);
- status |= WrByte(&(p_dev->platform), 0x21A, 0x43);
- status |= WrByte(&(p_dev->platform), 0x21A, 0x03);
- status |= WrByte(&(p_dev->platform), 0x21A, 0x01);
- status |= WrByte(&(p_dev->platform), 0x21A, 0x00);
- status |= WrByte(&(p_dev->platform), 0x219, 0x00);
- status |= WrByte(&(p_dev->platform), 0x21B, 0x00);
+ status |= VL53L8CX_WrByte(&(p_dev->platform), 0x7fff, 0x00);
+ status |= VL53L8CX_WrByte(&(p_dev->platform), 0x101, 0x00);
+ status |= VL53L8CX_WrByte(&(p_dev->platform), 0x102, 0x00);
+ status |= VL53L8CX_WrByte(&(p_dev->platform), 0x010A, 0x01);
+ status |= VL53L8CX_WrByte(&(p_dev->platform), 0x4002, 0x01);
+ status |= VL53L8CX_WrByte(&(p_dev->platform), 0x4002, 0x00);
+ status |= VL53L8CX_WrByte(&(p_dev->platform), 0x010A, 0x03);
+ status |= VL53L8CX_WrByte(&(p_dev->platform), 0x103, 0x01);
+ status |= VL53L8CX_WrByte(&(p_dev->platform), 0x400F, 0x00);
+ status |= VL53L8CX_WrByte(&(p_dev->platform), 0x21A, 0x43);
+ status |= VL53L8CX_WrByte(&(p_dev->platform), 0x21A, 0x03);
+ status |= VL53L8CX_WrByte(&(p_dev->platform), 0x21A, 0x01);
+ status |= VL53L8CX_WrByte(&(p_dev->platform), 0x21A, 0x00);
+ status |= VL53L8CX_WrByte(&(p_dev->platform), 0x219, 0x00);
+ status |= VL53L8CX_WrByte(&(p_dev->platform), 0x21B, 0x00);
/* Wake up MCU */
- status |= WrByte(&(p_dev->platform), 0x7fff, 0x00);
- status |= RdByte(&(p_dev->platform), 0x7fff, &tmp);
-
- status |= WrByte(&(p_dev->platform), 0x7fff, 0x01);
- status |= WrByte(&(p_dev->platform), 0x20, 0x07);
- status |= WrByte(&(p_dev->platform), 0x20, 0x06);
+ status |= VL53L8CX_WrByte(&(p_dev->platform), 0x7fff, 0x00);
+ status |= VL53L8CX_RdByte(&(p_dev->platform), 0x7fff, &tmp);
+ status |= VL53L8CX_WrByte(&(p_dev->platform), 0x7fff, 0x01);
/* Download FW into VL53L8CX */
- status |= WrByte(&(p_dev->platform), 0x7fff, 0x09);
- status |= WrMulti(&(p_dev->platform), 0,
- (uint8_t *)&VL53L8CX_FIRMWARE[0], 0x8000);
- status |= WrByte(&(p_dev->platform), 0x7fff, 0x0a);
- status |= WrMulti(&(p_dev->platform), 0,
- (uint8_t *)&VL53L8CX_FIRMWARE[0x8000], 0x8000);
- status |= WrByte(&(p_dev->platform), 0x7fff, 0x0b);
- status |= WrMulti(&(p_dev->platform), 0,
- (uint8_t *)&VL53L8CX_FIRMWARE[0x10000], 0x5000);
-
- status |= WrByte(&(p_dev->platform), 0x7fff, 0x01);
+ status |= VL53L8CX_WrByte(&(p_dev->platform), 0x7fff, 0x09);
+ status |= VL53L8CX_WrMulti(&(p_dev->platform), 0,
+ (uint8_t *)&VL53L8CX_FIRMWARE[0], 0x8000);
+ status |= VL53L8CX_WrByte(&(p_dev->platform), 0x7fff, 0x0a);
+ status |= VL53L8CX_WrMulti(&(p_dev->platform), 0,
+ (uint8_t *)&VL53L8CX_FIRMWARE[0x8000], 0x8000);
+ status |= VL53L8CX_WrByte(&(p_dev->platform), 0x7fff, 0x0b);
+ status |= VL53L8CX_WrMulti(&(p_dev->platform), 0,
+ (uint8_t *)&VL53L8CX_FIRMWARE[0x10000], 0x5000);
+ status |= VL53L8CX_WrByte(&(p_dev->platform), 0x7fff, 0x01);
/* Check if FW correctly downloaded */
- status |= WrByte(&(p_dev->platform), 0x7fff, 0x01);
- status |= WrByte(&(p_dev->platform), 0x06, 0x03);
+ status |= VL53L8CX_WrByte(&(p_dev->platform), 0x7fff, 0x01);
+ status |= VL53L8CX_WrByte(&(p_dev->platform), 0x06, 0x03);
- status |= WaitMs(&(p_dev->platform), 5);
- status |= WrByte(&(p_dev->platform), 0x7fff, 0x00);
- status |= RdByte(&(p_dev->platform), 0x7fff, &tmp);
- status |= WrByte(&(p_dev->platform), 0x0C, 0x01);
+ status |= VL53L8CX_WaitMs(&(p_dev->platform), 5);
+ status |= VL53L8CX_WrByte(&(p_dev->platform), 0x7fff, 0x00);
+ status |= VL53L8CX_RdByte(&(p_dev->platform), 0x7fff, &tmp);
+ status |= VL53L8CX_WrByte(&(p_dev->platform), 0x0C, 0x01);
/* Reset MCU and wait boot */
- status |= WrByte(&(p_dev->platform), 0x7FFF, 0x00);
- status |= WrByte(&(p_dev->platform), 0x114, 0x00);
- status |= WrByte(&(p_dev->platform), 0x115, 0x00);
- status |= WrByte(&(p_dev->platform), 0x116, 0x42);
- status |= WrByte(&(p_dev->platform), 0x117, 0x00);
- status |= WrByte(&(p_dev->platform), 0x0B, 0x00);
- status |= RdByte(&(p_dev->platform), 0x7fff, &tmp);
- status |= WrByte(&(p_dev->platform), 0x0C, 0x00);
- status |= WrByte(&(p_dev->platform), 0x0B, 0x01);
-
- status |= _vl53l8cx_poll_for_mcu_boot();
+ status |= VL53L8CX_WrByte(&(p_dev->platform), 0x7FFF, 0x00);
+ status |= VL53L8CX_WrByte(&(p_dev->platform), 0x114, 0x00);
+ status |= VL53L8CX_WrByte(&(p_dev->platform), 0x115, 0x00);
+ status |= VL53L8CX_WrByte(&(p_dev->platform), 0x116, 0x42);
+ status |= VL53L8CX_WrByte(&(p_dev->platform), 0x117, 0x00);
+ status |= VL53L8CX_WrByte(&(p_dev->platform), 0x0B, 0x00);
+ status |= VL53L8CX_RdByte(&(p_dev->platform), 0x7fff, &tmp);
+ status |= VL53L8CX_WrByte(&(p_dev->platform), 0x0C, 0x00);
+ status |= VL53L8CX_WrByte(&(p_dev->platform), 0x0B, 0x01);
+
+ status |= _vl53l8cx_poll_for_mcu_boot(p_dev);
if (status != (uint8_t)0) {
goto exit;
}
- status |= WrByte(&(p_dev->platform), 0x7fff, 0x02);
+ status |= VL53L8CX_WrByte(&(p_dev->platform), 0x7fff, 0x02);
+
+ /* Firmware checksum */
+ status |= VL53L8CX_RdMulti(&(p_dev->platform), (uint16_t)(0x812FFC & 0xFFFF),
+ p_dev->temp_buffer, 4);
+ VL53L8CX_SwapBuffer(p_dev->temp_buffer, 4);
+ memcpy((uint8_t *)&crc_checksum, &(p_dev->temp_buffer[0]), 4);
+ if (crc_checksum != (uint32_t)0xc0b6c9e) {
+ status |= VL53L8CX_STATUS_FW_CHECKSUM_FAIL;
+ goto exit;
+ }
/* Get offset NVM data and store them into the offset buffer */
- status |= WrMulti(&(p_dev->platform), 0x2fd8,
- (uint8_t *)VL53L8CX_GET_NVM_CMD, sizeof(VL53L8CX_GET_NVM_CMD));
- status |= _vl53l8cx_poll_for_answer(4, 0,
+ status |= VL53L8CX_WrMulti(&(p_dev->platform), 0x2fd8,
+ (uint8_t *)VL53L8CX_GET_NVM_CMD, sizeof(VL53L8CX_GET_NVM_CMD));
+ status |= _vl53l8cx_poll_for_answer(p_dev, 4, 0,
VL53L8CX_UI_CMD_STATUS, 0xff, 2);
- status |= RdMulti(&(p_dev->platform), VL53L8CX_UI_CMD_START,
- p_dev->temp_buffer, VL53L8CX_NVM_DATA_SIZE);
+ status |= VL53L8CX_RdMulti(&(p_dev->platform), VL53L8CX_UI_CMD_START,
+ p_dev->temp_buffer, VL53L8CX_NVM_DATA_SIZE);
(void)memcpy(p_dev->offset_data, p_dev->temp_buffer,
VL53L8CX_OFFSET_BUFFER_SIZE);
- status |= _vl53l8cx_send_offset_data(VL53L8CX_RESOLUTION_4X4);
+ status |= _vl53l8cx_send_offset_data(p_dev, VL53L8CX_RESOLUTION_4X4);
+
/* Set default Xtalk shape. Send Xtalk to sensor */
(void)memcpy(p_dev->xtalk_data, (uint8_t *)VL53L8CX_DEFAULT_XTALK,
VL53L8CX_XTALK_BUFFER_SIZE);
-
- status |= _vl53l8cx_send_xtalk_data(VL53L8CX_RESOLUTION_4X4);
+ status |= _vl53l8cx_send_xtalk_data(p_dev, VL53L8CX_RESOLUTION_4X4);
/* Send default configuration to VL53L8CX firmware */
- status |= WrMulti(&(p_dev->platform), 0x2c34,
- p_dev->default_configuration,
- sizeof(VL53L8CX_DEFAULT_CONFIGURATION));
- status |= _vl53l8cx_poll_for_answer(4, 1,
+ status |= VL53L8CX_WrMulti(&(p_dev->platform), 0x2c34,
+ p_dev->default_configuration,
+ sizeof(VL53L8CX_DEFAULT_CONFIGURATION));
+ status |= _vl53l8cx_poll_for_answer(p_dev, 4, 1,
VL53L8CX_UI_CMD_STATUS, 0xff, 0x03);
- status |= vl53l8cx_dci_write_data((uint8_t *)&pipe_ctrl,
- VL53L8CX_DCI_PIPE_CONTROL, (uint16_t)sizeof(pipe_ctrl));
+ status |= vl53l8cx_dci_write_data(p_dev, (uint8_t *)&pipe_ctrl,
+ VL53L8CX_DCI_PIPE_CONTROL, (uint16_t)sizeof(pipe_ctrl));
#if VL53L8CX_NB_TARGET_PER_ZONE != 1
tmp = VL53L8CX_NB_TARGET_PER_ZONE;
- status |= vl53l8cx_dci_replace_data(p_dev->temp_buffer,
+ status |= vl53l8cx_dci_replace_data(p_dev, p_dev->temp_buffer,
VL53L8CX_DCI_FW_NB_TARGET, 16,
(uint8_t *)&tmp, 1, 0x0C);
#endif
- status |= vl53l8cx_dci_write_data((uint8_t *)&single_range,
+ status |= vl53l8cx_dci_write_data(p_dev, (uint8_t *)&single_range,
VL53L8CX_DCI_SINGLE_RANGE,
(uint16_t)sizeof(single_range));
@@ -401,31 +394,40 @@ uint8_t VL53L8CX::vl53l8cx_init()
return status;
}
-uint8_t VL53L8CX::vl53l8cx_set_i2c_address(uint16_t i2c_address)
+uint8_t vl53l8cx_set_i2c_address(
+ VL53L8CX_Configuration *p_dev,
+ uint16_t i2c_address)
{
uint8_t status = VL53L8CX_STATUS_OK;
- status |= WrByte(&(p_dev->platform), 0x7fff, 0x00);
- status |= WrByte(&(p_dev->platform), 0x4, (uint8_t)(i2c_address >> 1));
+ status |= VL53L8CX_WrByte(&(p_dev->platform), 0x7fff, 0x00);
+ status |= VL53L8CX_WrByte(&(p_dev->platform), 0x4, (uint8_t)(i2c_address >> 1));
p_dev->platform.address = i2c_address;
- status |= WrByte(&(p_dev->platform), 0x7fff, 0x02);
+ status |= VL53L8CX_WrByte(&(p_dev->platform), 0x7fff, 0x02);
return status;
}
-uint8_t VL53L8CX::vl53l8cx_get_power_mode(uint8_t *p_power_mode)
+uint8_t vl53l8cx_get_power_mode(
+ VL53L8CX_Configuration *p_dev,
+ uint8_t *p_power_mode)
{
uint8_t tmp, status = VL53L8CX_STATUS_OK;
- status |= WrByte(&(p_dev->platform), 0x7FFF, 0x00);
- status |= RdByte(&(p_dev->platform), 0x009, &tmp);
+ status |= VL53L8CX_WrByte(&(p_dev->platform), 0x7FFF, 0x00);
+ status |= VL53L8CX_RdByte(&(p_dev->platform), 0x009, &tmp);
switch (tmp) {
case 0x4:
*p_power_mode = VL53L8CX_POWER_MODE_WAKEUP;
break;
case 0x2:
- *p_power_mode = VL53L8CX_POWER_MODE_SLEEP;
+ status |= VL53L8CX_RdByte(&(p_dev->platform), 0x000F, &tmp);
+ if (tmp == 0x43) {
+ *p_power_mode = VL53L8CX_POWER_MODE_DEEP_SLEEP;
+ } else {
+ *p_power_mode = VL53L8CX_POWER_MODE_SLEEP;
+ }
break;
default:
@@ -434,43 +436,61 @@ uint8_t VL53L8CX::vl53l8cx_get_power_mode(uint8_t *p_power_mode)
break;
}
- status |= WrByte(&(p_dev->platform), 0x7FFF, 0x02);
+ status |= VL53L8CX_WrByte(&(p_dev->platform), 0x7FFF, 0x02);
return status;
}
-uint8_t VL53L8CX::vl53l8cx_set_power_mode(uint8_t power_mode)
+uint8_t vl53l8cx_set_power_mode(
+ VL53L8CX_Configuration *p_dev,
+ uint8_t power_mode)
{
- uint8_t current_power_mode, status = VL53L8CX_STATUS_OK;
+ uint8_t current_power_mode, stored_mode, status = VL53L8CX_STATUS_OK;
- status |= vl53l8cx_get_power_mode(¤t_power_mode);
+ status |= vl53l8cx_get_power_mode(p_dev, ¤t_power_mode);
if (power_mode != current_power_mode) {
switch (power_mode) {
case VL53L8CX_POWER_MODE_WAKEUP:
- status |= WrByte(&(p_dev->platform), 0x7FFF, 0x00);
- status |= WrByte(&(p_dev->platform), 0x09, 0x04);
+ status |= VL53L8CX_WrByte(&(p_dev->platform), 0x7FFF, 0x00);
+ status |= VL53L8CX_WrByte(&(p_dev->platform), 0x09, 0x04);
+ status |= VL53L8CX_RdByte(&(p_dev->platform), 0x000F, &stored_mode);
+ if (stored_mode == 0x43) { /* Only for deep sleep mode */
+ status |= VL53L8CX_WrByte(&(p_dev->platform), 0x000F, 0x40);
+ }
status |= _vl53l8cx_poll_for_answer(
- 1, 0, 0x06, 0x01, 1);
+ p_dev, 1, 0, 0x06, 0x01, 1);
+ if (stored_mode == 0x43) { /* Only for deep sleep mode */
+ status |= vl53l8cx_init(p_dev);
+ }
break;
case VL53L8CX_POWER_MODE_SLEEP:
- status |= WrByte(&(p_dev->platform), 0x7FFF, 0x00);
- status |= WrByte(&(p_dev->platform), 0x09, 0x02);
+ status |= VL53L8CX_WrByte(&(p_dev->platform), 0x7FFF, 0x00);
+ status |= VL53L8CX_WrByte(&(p_dev->platform), 0x09, 0x02);
+ status |= _vl53l8cx_poll_for_answer(
+ p_dev, 1, 0, 0x06, 0x01, 0);
+ break;
+
+ case VL53L8CX_POWER_MODE_DEEP_SLEEP:
+ status |= VL53L8CX_WrByte(&(p_dev->platform), 0x7FFF, 0x00);
+ status |= VL53L8CX_WrByte(&(p_dev->platform), 0x09, 0x02);
status |= _vl53l8cx_poll_for_answer(
- 1, 0, 0x06, 0x01, 0);
+ p_dev, 1, 0, 0x06, 0x01, 0);
+ status |= VL53L8CX_WrByte(&(p_dev->platform), 0x000F, 0x43);
break;
default:
status = VL53L8CX_STATUS_ERROR;
break;
}
- status |= WrByte(&(p_dev->platform), 0x7FFF, 0x02);
+ status |= VL53L8CX_WrByte(&(p_dev->platform), 0x7FFF, 0x02);
}
return status;
}
-uint8_t VL53L8CX::vl53l8cx_start_ranging()
+uint8_t vl53l8cx_start_ranging(
+ VL53L8CX_Configuration *p_dev)
{
uint8_t resolution, status = VL53L8CX_STATUS_OK;
uint16_t tmp;
@@ -479,8 +499,8 @@ uint8_t VL53L8CX::vl53l8cx_start_ranging()
union Block_header *bh_ptr;
uint8_t cmd[] = {0x00, 0x03, 0x00, 0x00};
- status |= vl53l8cx_get_resolution(&resolution);
+ status |= vl53l8cx_get_resolution(p_dev, &resolution);
p_dev->data_read_size = 0;
p_dev->streamcount = 255;
@@ -491,6 +511,7 @@ uint8_t VL53L8CX::vl53l8cx_start_ranging()
0x00000000U,
0xC0000000U
};
+
/* Send addresses of possible output */
uint32_t output[] = {VL53L8CX_START_BH,
VL53L8CX_METADATA_BH,
@@ -561,69 +582,71 @@ uint8_t VL53L8CX::vl53l8cx_start_ranging()
}
p_dev->data_read_size += (uint32_t)24;
- status |= vl53l8cx_dci_write_data(
- (uint8_t *) & (output), VL53L8CX_DCI_OUTPUT_LIST,
- (uint16_t)sizeof(output));
+ status |= vl53l8cx_dci_write_data(p_dev,
+ (uint8_t *) & (output), VL53L8CX_DCI_OUTPUT_LIST,
+ (uint16_t)sizeof(output));
header_config[0] = p_dev->data_read_size;
header_config[1] = i + (uint32_t)1;
- status |= vl53l8cx_dci_write_data(
- (uint8_t *) & (header_config), VL53L8CX_DCI_OUTPUT_CONFIG,
- (uint16_t)sizeof(header_config));
+ status |= vl53l8cx_dci_write_data(p_dev,
+ (uint8_t *) & (header_config), VL53L8CX_DCI_OUTPUT_CONFIG,
+ (uint16_t)sizeof(header_config));
- status |= vl53l8cx_dci_write_data(
- (uint8_t *) & (output_bh_enable), VL53L8CX_DCI_OUTPUT_ENABLES,
- (uint16_t)sizeof(output_bh_enable));
+ status |= vl53l8cx_dci_write_data(p_dev,
+ (uint8_t *) & (output_bh_enable), VL53L8CX_DCI_OUTPUT_ENABLES,
+ (uint16_t)sizeof(output_bh_enable));
/* Start xshut bypass (interrupt mode) */
- status |= WrByte(&(p_dev->platform), 0x7fff, 0x00);
- status |= WrByte(&(p_dev->platform), 0x09, 0x05);
- status |= WrByte(&(p_dev->platform), 0x7fff, 0x02);
+ status |= VL53L8CX_WrByte(&(p_dev->platform), 0x7fff, 0x00);
+ status |= VL53L8CX_WrByte(&(p_dev->platform), 0x09, 0x05);
+ status |= VL53L8CX_WrByte(&(p_dev->platform), 0x7fff, 0x02);
/* Start ranging session */
- status |= WrMulti(&(p_dev->platform), VL53L8CX_UI_CMD_END -
- (uint16_t)(4 - 1), (uint8_t *)cmd, sizeof(cmd));
-
- status |= _vl53l8cx_poll_for_answer(4, 1,
+ status |= VL53L8CX_WrMulti(&(p_dev->platform), VL53L8CX_UI_CMD_END -
+ (uint16_t)(4 - 1), (uint8_t *)cmd, sizeof(cmd));
+ status |= _vl53l8cx_poll_for_answer(p_dev, 4, 1,
VL53L8CX_UI_CMD_STATUS, 0xff, 0x03);
/* Read ui range data content and compare if data size is the correct one */
- status |= vl53l8cx_dci_read_data(
- (uint8_t *)p_dev->temp_buffer, 0x5440, 12);
+ status |= vl53l8cx_dci_read_data(p_dev,
+ (uint8_t *)p_dev->temp_buffer, 0x5440, 12);
(void)memcpy(&tmp, &(p_dev->temp_buffer[0x8]), sizeof(tmp));
if (tmp != p_dev->data_read_size) {
status |= VL53L8CX_STATUS_ERROR;
}
/* Ensure that there is no laser safety fault */
- status |= vl53l8cx_dci_read_data(
- (uint8_t *)p_dev->temp_buffer, 0xE0C4, 8);
+ status |= vl53l8cx_dci_read_data(p_dev,
+ (uint8_t *)p_dev->temp_buffer, 0xE0C4, 8);
if ((uint8_t)p_dev->temp_buffer[0x6] != (uint8_t)0) {
status |= VL53L8CX_STATUS_LASER_SAFETY;
}
+
return status;
}
-uint8_t VL53L8CX::vl53l8cx_stop_ranging()
+uint8_t vl53l8cx_stop_ranging(
+ VL53L8CX_Configuration *p_dev)
{
uint8_t tmp = 0, status = VL53L8CX_STATUS_OK;
uint16_t timeout = 0;
uint32_t auto_stop_flag = 0;
- status |= RdMulti(&(p_dev->platform),
- 0x2FFC, (uint8_t *)&auto_stop_flag, 4);
- if (auto_stop_flag != (uint32_t)0x4FF) {
- status |= WrByte(&(p_dev->platform), 0x7fff, 0x00);
+ status |= VL53L8CX_RdMulti(&(p_dev->platform),
+ 0x2FFC, (uint8_t *)&auto_stop_flag, 4);
+ if ((auto_stop_flag != (uint32_t)0x4FF)
+ && (p_dev->is_auto_stop_enabled == (uint8_t)0)) {
+ status |= VL53L8CX_WrByte(&(p_dev->platform), 0x7fff, 0x00);
/* Provoke MCU stop */
- status |= WrByte(&(p_dev->platform), 0x15, 0x16);
- status |= WrByte(&(p_dev->platform), 0x14, 0x01);
+ status |= VL53L8CX_WrByte(&(p_dev->platform), 0x15, 0x16);
+ status |= VL53L8CX_WrByte(&(p_dev->platform), 0x14, 0x01);
/* Poll for G02 status 0 MCU stop */
while (((tmp & (uint8_t)0x80) >> 7) == (uint8_t)0x00) {
- status |= RdByte(&(p_dev->platform), 0x6, &tmp);
- status |= WaitMs(&(p_dev->platform), 10);
+ status |= VL53L8CX_RdByte(&(p_dev->platform), 0x6, &tmp);
+ status |= VL53L8CX_WaitMs(&(p_dev->platform), 10);
timeout++; /* Timeout reached after 5 seconds */
if (timeout > (uint16_t)500) {
@@ -634,31 +657,33 @@ uint8_t VL53L8CX::vl53l8cx_stop_ranging()
}
/* Check GO2 status 1 if status is still OK */
- status |= RdByte(&(p_dev->platform), 0x6, &tmp);
+ status |= VL53L8CX_RdByte(&(p_dev->platform), 0x6, &tmp);
if ((tmp & (uint8_t)0x80) != (uint8_t)0) {
- status |= RdByte(&(p_dev->platform), 0x7, &tmp);
+ status |= VL53L8CX_RdByte(&(p_dev->platform), 0x7, &tmp);
if ((tmp != (uint8_t)0x84) && (tmp != (uint8_t)0x85)) {
status |= tmp;
}
}
/* Undo MCU stop */
- status |= WrByte(&(p_dev->platform), 0x7fff, 0x00);
- status |= WrByte(&(p_dev->platform), 0x14, 0x00);
- status |= WrByte(&(p_dev->platform), 0x15, 0x00);
+ status |= VL53L8CX_WrByte(&(p_dev->platform), 0x7fff, 0x00);
+ status |= VL53L8CX_WrByte(&(p_dev->platform), 0x14, 0x00);
+ status |= VL53L8CX_WrByte(&(p_dev->platform), 0x15, 0x00);
/* Stop xshut bypass */
- status |= WrByte(&(p_dev->platform), 0x09, 0x04);
- status |= WrByte(&(p_dev->platform), 0x7fff, 0x02);
+ status |= VL53L8CX_WrByte(&(p_dev->platform), 0x09, 0x04);
+ status |= VL53L8CX_WrByte(&(p_dev->platform), 0x7fff, 0x02);
return status;
}
-uint8_t VL53L8CX::vl53l8cx_check_data_ready(uint8_t *p_isReady)
+uint8_t vl53l8cx_check_data_ready(
+ VL53L8CX_Configuration *p_dev,
+ uint8_t *p_isReady)
{
uint8_t status = VL53L8CX_STATUS_OK;
- status |= RdMulti(&(p_dev->platform), 0x0, p_dev->temp_buffer, 4);
+ status |= VL53L8CX_RdMulti(&(p_dev->platform), 0x0, p_dev->temp_buffer, 4);
if ((p_dev->temp_buffer[0] != p_dev->streamcount)
&& (p_dev->temp_buffer[0] != (uint8_t)255)
@@ -679,23 +704,25 @@ uint8_t VL53L8CX::vl53l8cx_check_data_ready(uint8_t *p_isReady)
return status;
}
-uint8_t VL53L8CX::vl53l8cx_get_ranging_data(VL53L8CX_ResultsData *p_results)
+uint8_t vl53l8cx_get_ranging_data(
+ VL53L8CX_Configuration *p_dev,
+ VL53L8CX_ResultsData *p_results)
{
-
uint8_t status = VL53L8CX_STATUS_OK;
uint16_t header_id, footer_id;
union Block_header *bh_ptr;
uint32_t i, j, msize;
- status |= RdMulti(&(p_dev->platform), 0x0,
- p_dev->temp_buffer, p_dev->data_read_size);
+ status |= VL53L8CX_RdMulti(&(p_dev->platform), 0x0,
+ p_dev->temp_buffer, p_dev->data_read_size);
p_dev->streamcount = p_dev->temp_buffer[0];
- SwapBuffer(p_dev->temp_buffer, (uint16_t)p_dev->data_read_size);
+ VL53L8CX_SwapBuffer(p_dev->temp_buffer, (uint16_t)p_dev->data_read_size);
/* Start conversion at position 16 to avoid headers */
- for (i = 16U; i < (uint32_t)p_dev->data_read_size; i += 4U) {
+ for (i = (uint32_t)16; i
+ < (uint32_t)p_dev->data_read_size; i += (uint32_t)4) {
bh_ptr = (union Block_header *) & (p_dev->temp_buffer[i]);
- if ((bh_ptr->type > 0x1U)
- && (bh_ptr->type < 0xdU)) {
+ if ((bh_ptr->type > (uint32_t)0x1)
+ && (bh_ptr->type < (uint32_t)0xd)) {
msize = bh_ptr->type * bh_ptr->size;
} else {
msize = bh_ptr->size;
@@ -780,9 +807,6 @@ uint8_t VL53L8CX::vl53l8cx_get_ranging_data(VL53L8CX_ResultsData *p_results)
*VL53L8CX_NB_TARGET_PER_ZONE); i++) {
#ifndef VL53L8CX_DISABLE_DISTANCE_MM
p_results->distance_mm[i] /= 4;
- if (p_results->distance_mm[i] < 0) {
- p_results->distance_mm[i] = 0;
- }
#endif
#ifndef VL53L8CX_DISABLE_REFLECTANCE_PERCENT
p_results->reflectance[i] /= (uint8_t)2;
@@ -828,70 +852,80 @@ uint8_t VL53L8CX::vl53l8cx_get_ranging_data(VL53L8CX_ResultsData *p_results)
- (uint32_t)4]) << 8) & 0xFF00U;
footer_id |= ((uint16_t)(p_dev->temp_buffer[p_dev->data_read_size
- (uint32_t)3])) & 0xFFU;
+
if (header_id != footer_id) {
status |= VL53L8CX_STATUS_CORRUPTED_FRAME;
}
+
return status;
}
-uint8_t VL53L8CX::vl53l8cx_get_resolution(uint8_t *p_resolution)
+uint8_t vl53l8cx_get_resolution(
+ VL53L8CX_Configuration *p_dev,
+ uint8_t *p_resolution)
{
uint8_t status = VL53L8CX_STATUS_OK;
- status |= vl53l8cx_dci_read_data(p_dev->temp_buffer,
+
+ status |= vl53l8cx_dci_read_data(p_dev, p_dev->temp_buffer,
VL53L8CX_DCI_ZONE_CONFIG, 8);
*p_resolution = p_dev->temp_buffer[0x00] * p_dev->temp_buffer[0x01];
+
return status;
}
-uint8_t VL53L8CX::vl53l8cx_set_resolution(uint8_t resolution)
+
+
+uint8_t vl53l8cx_set_resolution(
+ VL53L8CX_Configuration *p_dev,
+ uint8_t resolution)
{
uint8_t status = VL53L8CX_STATUS_OK;
switch (resolution) {
case VL53L8CX_RESOLUTION_4X4:
- status |= vl53l8cx_dci_read_data(
- p_dev->temp_buffer,
- VL53L8CX_DCI_DSS_CONFIG, 16);
+ status |= vl53l8cx_dci_read_data(p_dev,
+ p_dev->temp_buffer,
+ VL53L8CX_DCI_DSS_CONFIG, 16);
p_dev->temp_buffer[0x04] = 64;
p_dev->temp_buffer[0x06] = 64;
p_dev->temp_buffer[0x09] = 4;
- status |= vl53l8cx_dci_write_data(
- p_dev->temp_buffer,
- VL53L8CX_DCI_DSS_CONFIG, 16);
+ status |= vl53l8cx_dci_write_data(p_dev,
+ p_dev->temp_buffer,
+ VL53L8CX_DCI_DSS_CONFIG, 16);
- status |= vl53l8cx_dci_read_data(
- p_dev->temp_buffer,
- VL53L8CX_DCI_ZONE_CONFIG, 8);
+ status |= vl53l8cx_dci_read_data(p_dev,
+ p_dev->temp_buffer,
+ VL53L8CX_DCI_ZONE_CONFIG, 8);
p_dev->temp_buffer[0x00] = 4;
p_dev->temp_buffer[0x01] = 4;
p_dev->temp_buffer[0x04] = 8;
p_dev->temp_buffer[0x05] = 8;
- status |= vl53l8cx_dci_write_data(
- p_dev->temp_buffer,
- VL53L8CX_DCI_ZONE_CONFIG, 8);
+ status |= vl53l8cx_dci_write_data(p_dev,
+ p_dev->temp_buffer,
+ VL53L8CX_DCI_ZONE_CONFIG, 8);
break;
case VL53L8CX_RESOLUTION_8X8:
- status |= vl53l8cx_dci_read_data(
- p_dev->temp_buffer,
- VL53L8CX_DCI_DSS_CONFIG, 16);
+ status |= vl53l8cx_dci_read_data(p_dev,
+ p_dev->temp_buffer,
+ VL53L8CX_DCI_DSS_CONFIG, 16);
p_dev->temp_buffer[0x04] = 16;
p_dev->temp_buffer[0x06] = 16;
p_dev->temp_buffer[0x09] = 1;
- status |= vl53l8cx_dci_write_data(
- p_dev->temp_buffer,
- VL53L8CX_DCI_DSS_CONFIG, 16);
+ status |= vl53l8cx_dci_write_data(p_dev,
+ p_dev->temp_buffer,
+ VL53L8CX_DCI_DSS_CONFIG, 16);
- status |= vl53l8cx_dci_read_data(
- p_dev->temp_buffer,
- VL53L8CX_DCI_ZONE_CONFIG, 8);
+ status |= vl53l8cx_dci_read_data(p_dev,
+ p_dev->temp_buffer,
+ VL53L8CX_DCI_ZONE_CONFIG, 8);
p_dev->temp_buffer[0x00] = 8;
p_dev->temp_buffer[0x01] = 8;
p_dev->temp_buffer[0x04] = 4;
p_dev->temp_buffer[0x05] = 4;
- status |= vl53l8cx_dci_write_data(
- p_dev->temp_buffer,
- VL53L8CX_DCI_ZONE_CONFIG, 8);
+ status |= vl53l8cx_dci_write_data(p_dev,
+ p_dev->temp_buffer,
+ VL53L8CX_DCI_ZONE_CONFIG, 8);
break;
@@ -900,39 +934,45 @@ uint8_t VL53L8CX::vl53l8cx_set_resolution(uint8_t resolution)
break;
}
- status |= _vl53l8cx_send_offset_data(resolution);
- status |= _vl53l8cx_send_xtalk_data(resolution);
+ status |= _vl53l8cx_send_offset_data(p_dev, resolution);
+ status |= _vl53l8cx_send_xtalk_data(p_dev, resolution);
return status;
}
-uint8_t VL53L8CX::vl53l8cx_get_ranging_frequency_hz(uint8_t *p_frequency_hz)
+uint8_t vl53l8cx_get_ranging_frequency_hz(
+ VL53L8CX_Configuration *p_dev,
+ uint8_t *p_frequency_hz)
{
uint8_t status = VL53L8CX_STATUS_OK;
- status |= vl53l8cx_dci_read_data((uint8_t *)p_dev->temp_buffer,
+ status |= vl53l8cx_dci_read_data(p_dev, (uint8_t *)p_dev->temp_buffer,
VL53L8CX_DCI_FREQ_HZ, 4);
*p_frequency_hz = p_dev->temp_buffer[0x01];
return status;
}
-uint8_t VL53L8CX::vl53l8cx_set_ranging_frequency_hz(uint8_t frequency_hz)
+uint8_t vl53l8cx_set_ranging_frequency_hz(
+ VL53L8CX_Configuration *p_dev,
+ uint8_t frequency_hz)
{
uint8_t status = VL53L8CX_STATUS_OK;
- status |= vl53l8cx_dci_replace_data(p_dev->temp_buffer,
+ status |= vl53l8cx_dci_replace_data(p_dev, p_dev->temp_buffer,
VL53L8CX_DCI_FREQ_HZ, 4,
(uint8_t *)&frequency_hz, 1, 0x01);
return status;
}
-uint8_t VL53L8CX::vl53l8cx_get_integration_time_ms(uint32_t *p_time_ms)
+uint8_t vl53l8cx_get_integration_time_ms(
+ VL53L8CX_Configuration *p_dev,
+ uint32_t *p_time_ms)
{
uint8_t status = VL53L8CX_STATUS_OK;
- status |= vl53l8cx_dci_read_data((uint8_t *)p_dev->temp_buffer,
+ status |= vl53l8cx_dci_read_data(p_dev, (uint8_t *)p_dev->temp_buffer,
VL53L8CX_DCI_INT_TIME, 20);
(void)memcpy(p_time_ms, &(p_dev->temp_buffer[0x0]), 4);
@@ -941,7 +981,9 @@ uint8_t VL53L8CX::vl53l8cx_get_integration_time_ms(uint32_t *p_time_ms)
return status;
}
-uint8_t VL53L8CX::vl53l8cx_set_integration_time_ms(uint32_t integration_time_ms)
+uint8_t vl53l8cx_set_integration_time_ms(
+ VL53L8CX_Configuration *p_dev,
+ uint32_t integration_time_ms)
{
uint8_t status = VL53L8CX_STATUS_OK;
uint32_t integration = integration_time_ms;
@@ -953,7 +995,7 @@ uint8_t VL53L8CX::vl53l8cx_set_integration_time_ms(uint32_t integration_time_ms)
} else {
integration *= (uint32_t)1000;
- status |= vl53l8cx_dci_replace_data(p_dev->temp_buffer,
+ status |= vl53l8cx_dci_replace_data(p_dev, p_dev->temp_buffer,
VL53L8CX_DCI_INT_TIME, 20,
(uint8_t *)&integration, 4, 0x00);
}
@@ -961,11 +1003,13 @@ uint8_t VL53L8CX::vl53l8cx_set_integration_time_ms(uint32_t integration_time_ms)
return status;
}
-uint8_t VL53L8CX::vl53l8cx_get_sharpener_percent(uint8_t *p_sharpener_percent)
+uint8_t vl53l8cx_get_sharpener_percent(
+ VL53L8CX_Configuration *p_dev,
+ uint8_t *p_sharpener_percent)
{
uint8_t status = VL53L8CX_STATUS_OK;
- status |= vl53l8cx_dci_read_data(p_dev->temp_buffer,
+ status |= vl53l8cx_dci_read_data(p_dev, p_dev->temp_buffer,
VL53L8CX_DCI_SHARPENER, 16);
*p_sharpener_percent = (p_dev->temp_buffer[0xD]
@@ -974,7 +1018,9 @@ uint8_t VL53L8CX::vl53l8cx_get_sharpener_percent(uint8_t *p_sharpener_percent)
return status;
}
-uint8_t VL53L8CX::vl53l8cx_set_sharpener_percent(uint8_t sharpener_percent)
+uint8_t vl53l8cx_set_sharpener_percent(
+ VL53L8CX_Configuration *p_dev,
+ uint8_t sharpener_percent)
{
uint8_t status = VL53L8CX_STATUS_OK;
uint8_t sharpener;
@@ -983,7 +1029,7 @@ uint8_t VL53L8CX::vl53l8cx_set_sharpener_percent(uint8_t sharpener_percent)
status |= VL53L8CX_STATUS_INVALID_PARAM;
} else {
sharpener = (sharpener_percent * (uint8_t)255) / (uint8_t)100;
- status |= vl53l8cx_dci_replace_data(p_dev->temp_buffer,
+ status |= vl53l8cx_dci_replace_data(p_dev, p_dev->temp_buffer,
VL53L8CX_DCI_SHARPENER, 16,
(uint8_t *)&sharpener, 1, 0xD);
}
@@ -991,24 +1037,28 @@ uint8_t VL53L8CX::vl53l8cx_set_sharpener_percent(uint8_t sharpener_percent)
return status;
}
-uint8_t VL53L8CX::vl53l8cx_get_target_order(uint8_t *p_target_order)
+uint8_t vl53l8cx_get_target_order(
+ VL53L8CX_Configuration *p_dev,
+ uint8_t *p_target_order)
{
uint8_t status = VL53L8CX_STATUS_OK;
- status |= vl53l8cx_dci_read_data((uint8_t *)p_dev->temp_buffer,
+ status |= vl53l8cx_dci_read_data(p_dev, (uint8_t *)p_dev->temp_buffer,
VL53L8CX_DCI_TARGET_ORDER, 4);
*p_target_order = (uint8_t)p_dev->temp_buffer[0x0];
return status;
}
-uint8_t VL53L8CX::vl53l8cx_set_target_order(uint8_t target_order)
+uint8_t vl53l8cx_set_target_order(
+ VL53L8CX_Configuration *p_dev,
+ uint8_t target_order)
{
uint8_t status = VL53L8CX_STATUS_OK;
if ((target_order == (uint8_t)VL53L8CX_TARGET_ORDER_CLOSEST)
|| (target_order == (uint8_t)VL53L8CX_TARGET_ORDER_STRONGEST)) {
- status |= vl53l8cx_dci_replace_data(p_dev->temp_buffer,
+ status |= vl53l8cx_dci_replace_data(p_dev, p_dev->temp_buffer,
VL53L8CX_DCI_TARGET_ORDER, 4,
(uint8_t *)&target_order, 1, 0x0);
} else {
@@ -1018,11 +1068,13 @@ uint8_t VL53L8CX::vl53l8cx_set_target_order(uint8_t target_order)
return status;
}
-uint8_t VL53L8CX::vl53l8cx_get_ranging_mode(uint8_t *p_ranging_mode)
+uint8_t vl53l8cx_get_ranging_mode(
+ VL53L8CX_Configuration *p_dev,
+ uint8_t *p_ranging_mode)
{
uint8_t status = VL53L8CX_STATUS_OK;
- status |= vl53l8cx_dci_read_data(p_dev->temp_buffer,
+ status |= vl53l8cx_dci_read_data(p_dev, p_dev->temp_buffer,
VL53L8CX_DCI_RANGING_MODE, 8);
if (p_dev->temp_buffer[0x01] == (uint8_t)0x1) {
@@ -1034,12 +1086,14 @@ uint8_t VL53L8CX::vl53l8cx_get_ranging_mode(uint8_t *p_ranging_mode)
return status;
}
-uint8_t VL53L8CX::vl53l8cx_set_ranging_mode(uint8_t ranging_mode)
+uint8_t vl53l8cx_set_ranging_mode(
+ VL53L8CX_Configuration *p_dev,
+ uint8_t ranging_mode)
{
uint8_t status = VL53L8CX_STATUS_OK;
uint32_t single_range = 0x00;
- status |= vl53l8cx_dci_read_data(p_dev->temp_buffer,
+ status |= vl53l8cx_dci_read_data(p_dev, p_dev->temp_buffer,
VL53L8CX_DCI_RANGING_MODE, 8);
switch (ranging_mode) {
@@ -1060,22 +1114,23 @@ uint8_t VL53L8CX::vl53l8cx_set_ranging_mode(uint8_t ranging_mode)
break;
}
- status |= vl53l8cx_dci_write_data(p_dev->temp_buffer,
+ status |= vl53l8cx_dci_write_data(p_dev, p_dev->temp_buffer,
VL53L8CX_DCI_RANGING_MODE, (uint16_t)8);
- status |= vl53l8cx_dci_write_data((uint8_t *)&single_range,
+ status |= vl53l8cx_dci_write_data(p_dev, (uint8_t *)&single_range,
VL53L8CX_DCI_SINGLE_RANGE,
(uint16_t)sizeof(single_range));
return status;
}
-
-uint8_t VL53L8CX::vl53l8cx_get_external_sync_pin_enable(uint8_t *p_is_sync_pin_enabled)
+uint8_t vl53l8cx_get_external_sync_pin_enable(
+ VL53L8CX_Configuration *p_dev,
+ uint8_t *p_is_sync_pin_enabled)
{
uint8_t status = VL53L8CX_STATUS_OK;
- status |= vl53l8cx_dci_read_data(p_dev->temp_buffer,
+ status |= vl53l8cx_dci_read_data(p_dev, p_dev->temp_buffer,
VL53L8CX_DCI_SYNC_PIN, 4);
/* Check bit 1 value (get sync pause bit) */
@@ -1088,12 +1143,14 @@ uint8_t VL53L8CX::vl53l8cx_get_external_sync_pin_enable(uint8_t *p_is_sync_pin_e
return status;
}
-uint8_t VL53L8CX::vl53l8cx_set_external_sync_pin_enable(uint8_t enable_sync_pin)
+uint8_t vl53l8cx_set_external_sync_pin_enable(
+ VL53L8CX_Configuration *p_dev,
+ uint8_t enable_sync_pin)
{
uint8_t status = VL53L8CX_STATUS_OK;
uint32_t tmp;
- status |= vl53l8cx_dci_read_data(p_dev->temp_buffer,
+ status |= vl53l8cx_dci_read_data(p_dev, p_dev->temp_buffer,
VL53L8CX_DCI_SYNC_PIN, 4);
tmp = (uint32_t)p_dev->temp_buffer[3];
@@ -1106,13 +1163,40 @@ uint8_t VL53L8CX::vl53l8cx_set_external_sync_pin_enable(uint8_t enable_sync_pin)
}
p_dev->temp_buffer[3] = (uint8_t)tmp;
- status |= vl53l8cx_dci_write_data(p_dev->temp_buffer,
+ status |= vl53l8cx_dci_write_data(p_dev, p_dev->temp_buffer,
VL53L8CX_DCI_SYNC_PIN, 4);
return status;
}
-uint8_t VL53L8CX::vl53l8cx_dci_read_data(
+uint8_t vl53l8cx_get_VHV_repeat_count(
+ VL53L8CX_Configuration *p_dev,
+ uint32_t *p_repeat_count)
+{
+ uint8_t status = VL53L8CX_STATUS_OK;
+ status |= vl53l8cx_dci_read_data(p_dev, (uint8_t *)p_dev->temp_buffer,
+ VL53L8CX_DCI_VHV_CONFIG, 16);
+
+ *p_repeat_count = ((uint32_t)p_dev->temp_buffer[7] << 24)
+ | ((uint32_t)p_dev->temp_buffer[6] << 16)
+ | ((uint32_t)p_dev->temp_buffer[5] << 8)
+ | (uint32_t)p_dev->temp_buffer[4];
+
+ return status;
+}
+
+uint8_t vl53l8cx_set_VHV_repeat_count(
+ VL53L8CX_Configuration *p_dev,
+ uint32_t repeat_count)
+{
+ uint8_t status = VL53L8CX_STATUS_OK;
+ status |= vl53l8cx_dci_replace_data(p_dev, p_dev->temp_buffer,
+ VL53L8CX_DCI_VHV_CONFIG, 16, (uint8_t *)&repeat_count, 4, 0x4);
+ return status;
+}
+
+uint8_t vl53l8cx_dci_read_data(
+ VL53L8CX_Configuration *p_dev,
uint8_t *data,
uint32_t index,
uint16_t data_size)
@@ -1133,18 +1217,19 @@ uint8_t VL53L8CX::vl53l8cx_dci_read_data(
cmd[1] = (uint8_t)(index & (uint32_t)0xff);
cmd[2] = (uint8_t)((data_size & (uint16_t)0xff0) >> 4);
cmd[3] = (uint8_t)((data_size & (uint16_t)0xf) << 4);
+
/* Request data reading from FW */
- status |= WrMulti(&(p_dev->platform), (VL53L8CX_UI_CMD_END - (uint16_t)11), cmd, sizeof(cmd));
- status |= _vl53l8cx_poll_for_answer(4, 1,
+ status |= VL53L8CX_WrMulti(&(p_dev->platform),
+ (VL53L8CX_UI_CMD_END - (uint16_t)11), cmd, sizeof(cmd));
+ status |= _vl53l8cx_poll_for_answer(p_dev, 4, 1,
VL53L8CX_UI_CMD_STATUS,
0xff, 0x03);
-
-
/* Read new data sent (4 bytes header + data_size + 8 bytes footer) */
- status |= RdMulti(&(p_dev->platform), VL53L8CX_UI_CMD_START,
- p_dev->temp_buffer, rd_size);
- SwapBuffer(p_dev->temp_buffer, data_size + (uint16_t)12);
+ status |= VL53L8CX_RdMulti(&(p_dev->platform), VL53L8CX_UI_CMD_START,
+ p_dev->temp_buffer, rd_size);
+ VL53L8CX_SwapBuffer(p_dev->temp_buffer, data_size + (uint16_t)12);
+
/* Copy data from FW into input structure (-4 bytes to remove header) */
for (i = 0 ; i < (int16_t)data_size; i++) {
data[i] = p_dev->temp_buffer[i + 4];
@@ -1154,7 +1239,8 @@ uint8_t VL53L8CX::vl53l8cx_dci_read_data(
return status;
}
-uint8_t VL53L8CX::vl53l8cx_dci_write_data(
+uint8_t vl53l8cx_dci_write_data(
+ VL53L8CX_Configuration *p_dev,
uint8_t *data,
uint32_t index,
uint16_t data_size)
@@ -1182,7 +1268,7 @@ uint8_t VL53L8CX::vl53l8cx_dci_write_data(
headers[3] = (uint8_t)((data_size & (uint16_t)0xf) << 4);
/* Copy data from structure to FW format (+4 bytes to add header) */
- SwapBuffer(data, data_size);
+ VL53L8CX_SwapBuffer(data, data_size);
for (i = (int16_t)data_size - (int16_t)1 ; i >= 0; i--) {
p_dev->temp_buffer[i + 4] = data[i];
}
@@ -1193,19 +1279,20 @@ uint8_t VL53L8CX::vl53l8cx_dci_write_data(
footer, sizeof(footer));
/* Send data to FW */
- status |= WrMulti(&(p_dev->platform), address,
- p_dev->temp_buffer,
- (uint32_t)((uint32_t)data_size + (uint32_t)12));
- status |= _vl53l8cx_poll_for_answer(4, 1,
+ status |= VL53L8CX_WrMulti(&(p_dev->platform), address,
+ p_dev->temp_buffer,
+ (uint32_t)((uint32_t)data_size + (uint32_t)12));
+ status |= _vl53l8cx_poll_for_answer(p_dev, 4, 1,
VL53L8CX_UI_CMD_STATUS, 0xff, 0x03);
- SwapBuffer(data, data_size);
+ VL53L8CX_SwapBuffer(data, data_size);
}
return status;
}
-uint8_t VL53L8CX::vl53l8cx_dci_replace_data(
+uint8_t vl53l8cx_dci_replace_data(
+ VL53L8CX_Configuration *p_dev,
uint8_t *data,
uint32_t index,
uint16_t data_size,
@@ -1215,9 +1302,9 @@ uint8_t VL53L8CX::vl53l8cx_dci_replace_data(
{
uint8_t status = VL53L8CX_STATUS_OK;
- status |= vl53l8cx_dci_read_data(data, index, data_size);
+ status |= vl53l8cx_dci_read_data(p_dev, data, index, data_size);
(void)memcpy(&(data[new_data_pos]), new_data, new_data_size);
- status |= vl53l8cx_dci_write_data(data, index, data_size);
+ status |= vl53l8cx_dci_write_data(p_dev, data, index, data_size);
return status;
}
diff --git a/src/vl53l8cx_api.h b/src/vl53l8cx_api.h
index b2b21ee..db173c3 100644
--- a/src/vl53l8cx_api.h
+++ b/src/vl53l8cx_api.h
@@ -1,45 +1,24 @@
/**
- ******************************************************************************
- * @file vl53l7cx_api.h
- * @author STMicroelectronics
- * @version V1.0.0
- * @date 13 January 2023
- * @brief Header file for the VL53L7CX main structures.
- ******************************************************************************
- * @attention
- *
- * © COPYRIGHT(c) 2021 STMicroelectronics
- *
- * Redistribution and use in source and binary forms, with or without modification,
- * are permitted provided that the following conditions are met:
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * 3. Neither the name of STMicroelectronics nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
- * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- ******************************************************************************
- */
+ *
+ * Copyright (c) 2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
#ifndef VL53L8CX_API_H_
#define VL53L8CX_API_H_
+#ifdef __cplusplus
+extern "C" {
+#endif
+
#if defined (__ARMCC_VERSION) && (__ARMCC_VERSION < 6010050)
- #pragma anon_unions
+#pragma anon_unions
#endif
@@ -50,7 +29,7 @@
* @brief Current driver version.
*/
-#define VL53L8CX_API_REVISION "VL53L8CX_1.0.4"
+#define VL53L8CX_API_REVISION "VL53L8CX_1.3.0"
/**
* @brief Default I2C address of VL53L8CX sensor. Can be changed using function
@@ -88,14 +67,20 @@
#define VL53L8CX_RANGING_MODE_AUTONOMOUS ((uint8_t) 3U)
/**
- * @brief The default power mode is VL53L8CX_POWER_MODE_WAKEUP. User can choose
- * the mode VL53L8CX_POWER_MODE_SLEEP to save power consumption is the device
- * is not used. The low power mode retains the firmware and the configuration.
+ * @brief The default power mode is VL53L8CX_POWER_MODE_WAKEUP. User can choose two
+ * different modes to save power consumption when is the device
+ * is not used:
+ * - VL53L8CX_POWER_MODE_SLEEP: This mode retains the firmware and the configuration. It
+ * is recommended when the device needs to quickly wake-up.
+ * - VL53L8CX_POWER_MODE_DEEP_SLEEP: This mode clears all memory, by consequence the firmware,
+ * the configuration and the calibration are lost. It is recommended when the device sleeps during
+ * a long time as it consumes a very low current consumption.
* Both modes can be changed using function vl53l8cx_set_power_mode().
*/
#define VL53L8CX_POWER_MODE_SLEEP ((uint8_t) 0U)
#define VL53L8CX_POWER_MODE_WAKEUP ((uint8_t) 1U)
+#define VL53L8CX_POWER_MODE_DEEP_SLEEP ((uint8_t) 2U)
/**
* @brief Macro VL53L8CX_STATUS_OK indicates that VL53L5 sensor has no error.
@@ -107,6 +92,8 @@
#define VL53L8CX_STATUS_TIMEOUT_ERROR ((uint8_t) 1U)
#define VL53L8CX_STATUS_CORRUPTED_FRAME ((uint8_t) 2U)
#define VL53L8CX_STATUS_LASER_SAFETY ((uint8_t) 3U)
+#define VL53L8CX_STATUS_XTALK_FAILED ((uint8_t) 4U)
+#define VL53L8CX_STATUS_FW_CHECKSUM_FAIL ((uint8_t) 5U)
#define VL53L8CX_MCU_ERROR ((uint8_t) 66U)
#define VL53L8CX_STATUS_INVALID_PARAM ((uint8_t) 127U)
#define VL53L8CX_STATUS_ERROR ((uint8_t) 255U)
@@ -117,54 +104,54 @@
#if VL53L8CX_NB_TARGET_PER_ZONE == 1
- #define VL53L8CX_START_BH ((uint32_t)0x0000000DU)
- #define VL53L8CX_METADATA_BH ((uint32_t)0x54B400C0U)
- #define VL53L8CX_COMMONDATA_BH ((uint32_t)0x54C00040U)
- #define VL53L8CX_AMBIENT_RATE_BH ((uint32_t)0x54D00104U)
- #define VL53L8CX_SPAD_COUNT_BH ((uint32_t)0x55D00404U)
- #define VL53L8CX_NB_TARGET_DETECTED_BH ((uint32_t)0xDB840401U)
- #define VL53L8CX_SIGNAL_RATE_BH ((uint32_t)0xDBC40404U)
- #define VL53L8CX_RANGE_SIGMA_MM_BH ((uint32_t)0xDEC40402U)
- #define VL53L8CX_DISTANCE_BH ((uint32_t)0xDF440402U)
- #define VL53L8CX_REFLECTANCE_BH ((uint32_t)0xE0440401U)
- #define VL53L8CX_TARGET_STATUS_BH ((uint32_t)0xE0840401U)
- #define VL53L8CX_MOTION_DETECT_BH ((uint32_t)0xD85808C0U)
-
- #define VL53L8CX_METADATA_IDX ((uint16_t)0x54B4U)
- #define VL53L8CX_SPAD_COUNT_IDX ((uint16_t)0x55D0U)
- #define VL53L8CX_AMBIENT_RATE_IDX ((uint16_t)0x54D0U)
- #define VL53L8CX_NB_TARGET_DETECTED_IDX ((uint16_t)0xDB84U)
- #define VL53L8CX_SIGNAL_RATE_IDX ((uint16_t)0xDBC4U)
- #define VL53L8CX_RANGE_SIGMA_MM_IDX ((uint16_t)0xDEC4U)
- #define VL53L8CX_DISTANCE_IDX ((uint16_t)0xDF44U)
- #define VL53L8CX_REFLECTANCE_EST_PC_IDX ((uint16_t)0xE044U)
- #define VL53L8CX_TARGET_STATUS_IDX ((uint16_t)0xE084U)
- #define VL53L8CX_MOTION_DETEC_IDX ((uint16_t)0xD858U)
+#define VL53L8CX_START_BH ((uint32_t)0x0000000DU)
+#define VL53L8CX_METADATA_BH ((uint32_t)0x54B400C0U)
+#define VL53L8CX_COMMONDATA_BH ((uint32_t)0x54C00040U)
+#define VL53L8CX_AMBIENT_RATE_BH ((uint32_t)0x54D00104U)
+#define VL53L8CX_SPAD_COUNT_BH ((uint32_t)0x55D00404U)
+#define VL53L8CX_NB_TARGET_DETECTED_BH ((uint32_t)0xDB840401U)
+#define VL53L8CX_SIGNAL_RATE_BH ((uint32_t)0xDBC40404U)
+#define VL53L8CX_RANGE_SIGMA_MM_BH ((uint32_t)0xDEC40402U)
+#define VL53L8CX_DISTANCE_BH ((uint32_t)0xDF440402U)
+#define VL53L8CX_REFLECTANCE_BH ((uint32_t)0xE0440401U)
+#define VL53L8CX_TARGET_STATUS_BH ((uint32_t)0xE0840401U)
+#define VL53L8CX_MOTION_DETECT_BH ((uint32_t)0xD85808C0U)
+
+#define VL53L8CX_METADATA_IDX ((uint16_t)0x54B4U)
+#define VL53L8CX_SPAD_COUNT_IDX ((uint16_t)0x55D0U)
+#define VL53L8CX_AMBIENT_RATE_IDX ((uint16_t)0x54D0U)
+#define VL53L8CX_NB_TARGET_DETECTED_IDX ((uint16_t)0xDB84U)
+#define VL53L8CX_SIGNAL_RATE_IDX ((uint16_t)0xDBC4U)
+#define VL53L8CX_RANGE_SIGMA_MM_IDX ((uint16_t)0xDEC4U)
+#define VL53L8CX_DISTANCE_IDX ((uint16_t)0xDF44U)
+#define VL53L8CX_REFLECTANCE_EST_PC_IDX ((uint16_t)0xE044U)
+#define VL53L8CX_TARGET_STATUS_IDX ((uint16_t)0xE084U)
+#define VL53L8CX_MOTION_DETEC_IDX ((uint16_t)0xD858U)
#else
- #define VL53L8CX_START_BH ((uint32_t)0x0000000DU)
- #define VL53L8CX_METADATA_BH ((uint32_t)0x54B400C0U)
- #define VL53L8CX_COMMONDATA_BH ((uint32_t)0x54C00040U)
- #define VL53L8CX_AMBIENT_RATE_BH ((uint32_t)0x54D00104U)
- #define VL53L8CX_NB_TARGET_DETECTED_BH ((uint32_t)0x57D00401U)
- #define VL53L8CX_SPAD_COUNT_BH ((uint32_t)0x55D00404U)
- #define VL53L8CX_SIGNAL_RATE_BH ((uint32_t)0x58900404U)
- #define VL53L8CX_RANGE_SIGMA_MM_BH ((uint32_t)0x64900402U)
- #define VL53L8CX_DISTANCE_BH ((uint32_t)0x66900402U)
- #define VL53L8CX_REFLECTANCE_BH ((uint32_t)0x6A900401U)
- #define VL53L8CX_TARGET_STATUS_BH ((uint32_t)0x6B900401U)
- #define VL53L8CX_MOTION_DETECT_BH ((uint32_t)0xCC5008C0U)
-
- #define VL53L8CX_METADATA_IDX ((uint16_t)0x54B4U)
- #define VL53L8CX_SPAD_COUNT_IDX ((uint16_t)0x55D0U)
- #define VL53L8CX_AMBIENT_RATE_IDX ((uint16_t)0x54D0U)
- #define VL53L8CX_NB_TARGET_DETECTED_IDX ((uint16_t)0x57D0U)
- #define VL53L8CX_SIGNAL_RATE_IDX ((uint16_t)0x5890U)
- #define VL53L8CX_RANGE_SIGMA_MM_IDX ((uint16_t)0x6490U)
- #define VL53L8CX_DISTANCE_IDX ((uint16_t)0x6690U)
- #define VL53L8CX_REFLECTANCE_EST_PC_IDX ((uint16_t)0x6A90U)
- #define VL53L8CX_TARGET_STATUS_IDX ((uint16_t)0x6B90U)
- #define VL53L8CX_MOTION_DETEC_IDX ((uint16_t)0xCC50U)
+#define VL53L8CX_START_BH ((uint32_t)0x0000000DU)
+#define VL53L8CX_METADATA_BH ((uint32_t)0x54B400C0U)
+#define VL53L8CX_COMMONDATA_BH ((uint32_t)0x54C00040U)
+#define VL53L8CX_AMBIENT_RATE_BH ((uint32_t)0x54D00104U)
+#define VL53L8CX_NB_TARGET_DETECTED_BH ((uint32_t)0x57D00401U)
+#define VL53L8CX_SPAD_COUNT_BH ((uint32_t)0x55D00404U)
+#define VL53L8CX_SIGNAL_RATE_BH ((uint32_t)0x58900404U)
+#define VL53L8CX_RANGE_SIGMA_MM_BH ((uint32_t)0x64900402U)
+#define VL53L8CX_DISTANCE_BH ((uint32_t)0x66900402U)
+#define VL53L8CX_REFLECTANCE_BH ((uint32_t)0x6A900401U)
+#define VL53L8CX_TARGET_STATUS_BH ((uint32_t)0x6B900401U)
+#define VL53L8CX_MOTION_DETECT_BH ((uint32_t)0xCC5008C0U)
+
+#define VL53L8CX_METADATA_IDX ((uint16_t)0x54B4U)
+#define VL53L8CX_SPAD_COUNT_IDX ((uint16_t)0x55D0U)
+#define VL53L8CX_AMBIENT_RATE_IDX ((uint16_t)0x54D0U)
+#define VL53L8CX_NB_TARGET_DETECTED_IDX ((uint16_t)0x57D0U)
+#define VL53L8CX_SIGNAL_RATE_IDX ((uint16_t)0x5890U)
+#define VL53L8CX_RANGE_SIGMA_MM_IDX ((uint16_t)0x6490U)
+#define VL53L8CX_DISTANCE_IDX ((uint16_t)0x6690U)
+#define VL53L8CX_REFLECTANCE_EST_PC_IDX ((uint16_t)0x6A90U)
+#define VL53L8CX_TARGET_STATUS_IDX ((uint16_t)0x6B90U)
+#define VL53L8CX_MOTION_DETEC_IDX ((uint16_t)0xCC50U)
#endif
@@ -183,6 +170,7 @@
#define VL53L8CX_DCI_FW_NB_TARGET ((uint16_t)0x5478)
#define VL53L8CX_DCI_RANGING_MODE ((uint16_t)0xAD30U)
#define VL53L8CX_DCI_DSS_CONFIG ((uint16_t)0xAD38U)
+#define VL53L8CX_DCI_VHV_CONFIG ((uint16_t)0xAD60U)
#define VL53L8CX_DCI_TARGET_ORDER ((uint16_t)0xAE64U)
#define VL53L8CX_DCI_SHARPENER ((uint16_t)0xAED8U)
#define VL53L8CX_DCI_INTERNAL_CP ((uint16_t)0xB39CU)
@@ -203,57 +191,57 @@
*/
#ifndef VL53L8CX_DISABLE_AMBIENT_PER_SPAD
- #define L5CX_AMB_SIZE 260U
+#define L5CX_AMB_SIZE 260U
#else
- #define L5CX_AMB_SIZE 0U
+#define L5CX_AMB_SIZE 0U
#endif
#ifndef VL53L8CX_DISABLE_NB_SPADS_ENABLED
- #define L5CX_SPAD_SIZE 260U
+#define L5CX_SPAD_SIZE 260U
#else
- #define L5CX_SPAD_SIZE 0U
+#define L5CX_SPAD_SIZE 0U
#endif
#ifndef VL53L8CX_DISABLE_NB_TARGET_DETECTED
- #define L5CX_NTAR_SIZE 68U
+#define L5CX_NTAR_SIZE 68U
#else
- #define L5CX_NTAR_SIZE 0U
+#define L5CX_NTAR_SIZE 0U
#endif
#ifndef VL53L8CX_DISABLE_SIGNAL_PER_SPAD
- #define L5CX_SPS_SIZE ((256U * VL53L8CX_NB_TARGET_PER_ZONE) + 4U)
+#define L5CX_SPS_SIZE ((256U * VL53L8CX_NB_TARGET_PER_ZONE) + 4U)
#else
- #define L5CX_SPS_SIZE 0U
+#define L5CX_SPS_SIZE 0U
#endif
#ifndef VL53L8CX_DISABLE_RANGE_SIGMA_MM
- #define L5CX_SIGR_SIZE ((128U * VL53L8CX_NB_TARGET_PER_ZONE) + 4U)
+#define L5CX_SIGR_SIZE ((128U * VL53L8CX_NB_TARGET_PER_ZONE) + 4U)
#else
- #define L5CX_SIGR_SIZE 0U
+#define L5CX_SIGR_SIZE 0U
#endif
#ifndef VL53L8CX_DISABLE_DISTANCE_MM
- #define L5CX_DIST_SIZE ((128U * VL53L8CX_NB_TARGET_PER_ZONE) + 4U)
+#define L5CX_DIST_SIZE ((128U * VL53L8CX_NB_TARGET_PER_ZONE) + 4U)
#else
- #define L5CX_DIST_SIZE 0U
+#define L5CX_DIST_SIZE 0U
#endif
#ifndef VL53L8CX_DISABLE_REFLECTANCE_PERCENT
- #define L5CX_RFLEST_SIZE ((64U *VL53L8CX_NB_TARGET_PER_ZONE) + 4U)
+#define L5CX_RFLEST_SIZE ((64U *VL53L8CX_NB_TARGET_PER_ZONE) + 4U)
#else
- #define L5CX_RFLEST_SIZE 0U
+#define L5CX_RFLEST_SIZE 0U
#endif
#ifndef VL53L8CX_DISABLE_TARGET_STATUS
- #define L5CX_STA_SIZE ((64U *VL53L8CX_NB_TARGET_PER_ZONE) + 4U)
+#define L5CX_STA_SIZE ((64U *VL53L8CX_NB_TARGET_PER_ZONE) + 4U)
#else
- #define L5CX_STA_SIZE 0U
+#define L5CX_STA_SIZE 0U
#endif
#ifndef VL53L8CX_DISABLE_MOTION_INDICATOR
- #define L5CX_MOT_SIZE 144U
+#define L5CX_MOT_SIZE 144U
#else
- #define L5CX_MOT_SIZE 0U
+#define L5CX_MOT_SIZE 0U
#endif
/**
@@ -274,9 +262,9 @@
*/
#if VL53L8CX_MAX_RESULTS_SIZE < 1024U
- #define VL53L8CX_TEMPORARY_BUFFER_SIZE ((uint32_t) 1024U)
+#define VL53L8CX_TEMPORARY_BUFFER_SIZE ((uint32_t) 1024U)
#else
- #define VL53L8CX_TEMPORARY_BUFFER_SIZE ((uint32_t) VL53L8CX_MAX_RESULTS_SIZE)
+#define VL53L8CX_TEMPORARY_BUFFER_SIZE ((uint32_t) VL53L8CX_MAX_RESULTS_SIZE)
#endif
@@ -301,7 +289,7 @@ typedef struct {
/* Xtalk buffer */
uint8_t xtalk_data[VL53L8CX_XTALK_BUFFER_SIZE];
/* Temporary buffer used for internal driver processing */
- uint8_t temp_buffer[VL53L8CX_TEMPORARY_BUFFER_SIZE];
+ uint8_t temp_buffer[VL53L8CX_TEMPORARY_BUFFER_SIZE];
/* Auto-stop flag for stopping the sensor */
uint8_t is_auto_stop_enabled;
} VL53L8CX_Configuration;
@@ -392,4 +380,384 @@ union Block_header {
};
};
+uint8_t vl53l8cx_is_alive(
+ VL53L8CX_Configuration *p_dev,
+ uint8_t *p_is_alive);
+
+/**
+ * @brief Mandatory function used to initialize the sensor. This function must
+ * be called after a power on, to load the firmware into the VL53L8CX. It takes
+ * a few hundred milliseconds.
+ * @param (VL53L8CX_Configuration) *p_dev : VL53L8CX configuration structure.
+ * @return (uint8_t) status : 0 if initialization is OK.
+ */
+
+uint8_t vl53l8cx_init(
+ VL53L8CX_Configuration *p_dev);
+
+/**
+ * @brief This function is used to change the I2C address of the sensor. If
+ * multiple VL53L5 sensors are connected to the same I2C line, all other LPn
+ * pins needs to be set to Low. The default sensor address is 0x52.
+ * @param (VL53L8CX_Configuration) *p_dev : VL53L8CX configuration structure.
+ * @param (uint16_t) i2c_address : New I2C address.
+ * @return (uint8_t) status : 0 if new address is OK
+ */
+
+uint8_t vl53l8cx_set_i2c_address(
+ VL53L8CX_Configuration *p_dev,
+ uint16_t i2c_address);
+
+/**
+ * @brief This function is used to get the current sensor power mode.
+ * @param (VL53L8CX_Configuration) *p_dev : VL53L8CX configuration structure.
+ * @param (uint8_t) *p_power_mode : Current power mode. The value of this
+ * pointer is equal to 0 if the sensor is in low power,
+ * (VL53L8CX_POWER_MODE_SLEEP), or 1 if sensor is in standard mode
+ * (VL53L8CX_POWER_MODE_WAKEUP).
+ * @return (uint8_t) status : 0 if power mode is OK
+ */
+
+uint8_t vl53l8cx_get_power_mode(
+ VL53L8CX_Configuration *p_dev,
+ uint8_t *p_power_mode);
+
+/**
+ * @brief This function is used to set the sensor in Low Power mode, for
+ * example if the sensor is not used during a long time. The macro
+ * VL53L8CX_POWER_MODE_SLEEP can be used to enable the low power mode. When user
+ * want to restart the sensor, he can use macro VL53L8CX_POWER_MODE_WAKEUP.
+ * Please ensure that the device is not streaming before calling the function.
+ * @param (VL53L8CX_Configuration) *p_dev : VL53L8CX configuration structure.
+ * @param (uint8_t) power_mode : Selected power mode (VL53L8CX_POWER_MODE_SLEEP
+ * or VL53L8CX_POWER_MODE_WAKEUP)
+ * @return (uint8_t) status : 0 if power mode is OK, or 127 if power mode
+ * requested by user is not valid.
+ */
+
+uint8_t vl53l8cx_set_power_mode(
+ VL53L8CX_Configuration *p_dev,
+ uint8_t power_mode);
+
+/**
+ * @brief This function starts a ranging session. When the sensor streams, host
+ * cannot change settings 'on-the-fly'.
+ * @param (VL53L8CX_Configuration) *p_dev : VL53L8CX configuration structure.
+ * @return (uint8_t) status : 0 if start is OK.
+ */
+
+uint8_t vl53l8cx_start_ranging(
+ VL53L8CX_Configuration *p_dev);
+
+/**
+ * @brief This function stops the ranging session. It must be used when the
+ * sensor streams, after calling vl53l8cx_start_ranging().
+ * @param (VL53L8CX_Configuration) *p_dev : VL53L8CX configuration structure.
+ * @return (uint8_t) status : 0 if stop is OK
+ */
+
+uint8_t vl53l8cx_stop_ranging(
+ VL53L8CX_Configuration *p_dev);
+
+/**
+ * @brief This function checks if a new data is ready by polling I2C. If a new
+ * data is ready, a flag will be raised.
+ * @param (VL53L8CX_Configuration) *p_dev : VL53L8CX configuration structure.
+ * @param (uint8_t) *p_isReady : Value of this pointer be updated to 0 if data
+ * is not ready, or 1 if a new data is ready.
+ * @return (uint8_t) status : 0 if I2C reading is OK
+ */
+
+uint8_t vl53l8cx_check_data_ready(
+ VL53L8CX_Configuration *p_dev,
+ uint8_t *p_isReady);
+
+/**
+ * @brief This function gets the ranging data, using the selected output and the
+ * resolution.
+ * @param (VL53L8CX_Configuration) *p_dev : VL53L8CX configuration structure.
+ * @param (VL53L8CX_ResultsData) *p_results : VL53L5 results structure.
+ * @return (uint8_t) status : 0 data are successfully get.
+ */
+
+uint8_t vl53l8cx_get_ranging_data(
+ VL53L8CX_Configuration *p_dev,
+ VL53L8CX_ResultsData *p_results);
+
+/**
+ * @brief This function gets the current resolution (4x4 or 8x8).
+ * @param (VL53L8CX_Configuration) *p_dev : VL53L8CX configuration structure.
+ * @param (uint8_t) *p_resolution : Value of this pointer will be equal to 16
+ * for 4x4 mode, and 64 for 8x8 mode.
+ * @return (uint8_t) status : 0 if resolution is OK.
+ */
+
+uint8_t vl53l8cx_get_resolution(
+ VL53L8CX_Configuration *p_dev,
+ uint8_t *p_resolution);
+
+/**
+ * @brief This function sets a new resolution (4x4 or 8x8).
+ * @param (VL53L8CX_Configuration) *p_dev : VL53L8CX configuration structure.
+ * @param (uint8_t) resolution : Use macro VL53L8CX_RESOLUTION_4X4 or
+ * VL53L8CX_RESOLUTION_8X8 to set the resolution.
+ * @return (uint8_t) status : 0 if set resolution is OK.
+ */
+
+uint8_t vl53l8cx_set_resolution(
+ VL53L8CX_Configuration *p_dev,
+ uint8_t resolution);
+
+/**
+ * @brief This function gets the current ranging frequency in Hz. Ranging
+ * frequency corresponds to the time between each measurement.
+ * @param (VL53L8CX_Configuration) *p_dev : VL53L8CX configuration structure.
+ * @param (uint8_t) *p_frequency_hz: Contains the ranging frequency in Hz.
+ * @return (uint8_t) status : 0 if ranging frequency is OK.
+ */
+
+uint8_t vl53l8cx_get_ranging_frequency_hz(
+ VL53L8CX_Configuration *p_dev,
+ uint8_t *p_frequency_hz);
+
+/**
+ * @brief This function sets a new ranging frequency in Hz. Ranging frequency
+ * corresponds to the measurements frequency. This setting depends of
+ * the resolution, so please select your resolution before using this function.
+ * @param (VL53L8CX_Configuration) *p_dev : VL53L8CX configuration structure.
+ * @param (uint8_t) frequency_hz : Contains the ranging frequency in Hz.
+ * - For 4x4, min and max allowed values are : [1;60]
+ * - For 8x8, min and max allowed values are : [1;15]
+ * @return (uint8_t) status : 0 if ranging frequency is OK, or 127 if the value
+ * is not correct.
+ */
+
+uint8_t vl53l8cx_set_ranging_frequency_hz(
+ VL53L8CX_Configuration *p_dev,
+ uint8_t frequency_hz);
+
+/**
+ * @brief This function gets the current integration time in ms.
+ * @param (VL53L8CX_Configuration) *p_dev : VL53L8CX configuration structure.
+ * @param (uint32_t) *p_time_ms: Contains integration time in ms.
+ * @return (uint8_t) status : 0 if integration time is OK.
+ */
+
+uint8_t vl53l8cx_get_integration_time_ms(
+ VL53L8CX_Configuration *p_dev,
+ uint32_t *p_time_ms);
+
+/**
+ * @brief This function sets a new integration time in ms. Integration time must
+ * be computed to be lower than the ranging period, for a selected resolution.
+ * Please note that this function has no impact on ranging mode continuous.
+ * @param (VL53L8CX_Configuration) *p_dev : VL53L8CX configuration structure.
+ * @param (uint32_t) time_ms : Contains the integration time in ms. For all
+ * resolutions and frequency, the minimum value is 2ms, and the maximum is
+ * 1000ms.
+ * @return (uint8_t) status : 0 if set integration time is OK.
+ */
+
+uint8_t vl53l8cx_set_integration_time_ms(
+ VL53L8CX_Configuration *p_dev,
+ uint32_t integration_time_ms);
+
+/**
+ * @brief This function gets the current sharpener in percent. Sharpener can be
+ * changed to blur more or less zones depending of the application.
+ * @param (VL53L8CX_Configuration) *p_dev : VL53L8CX configuration structure.
+ * @param (uint32_t) *p_sharpener_percent: Contains the sharpener in percent.
+ * @return (uint8_t) status : 0 if get sharpener is OK.
+ */
+
+uint8_t vl53l8cx_get_sharpener_percent(
+ VL53L8CX_Configuration *p_dev,
+ uint8_t *p_sharpener_percent);
+
+/**
+ * @brief This function sets a new sharpener value in percent. Sharpener can be
+ * changed to blur more or less zones depending of the application. Min value is
+ * 0 (disabled), and max is 99.
+ * @param (VL53L8CX_Configuration) *p_dev : VL53L8CX configuration structure.
+ * @param (uint32_t) sharpener_percent : Value between 0 (disabled) and 99%.
+ * @return (uint8_t) status : 0 if set sharpener is OK.
+ */
+
+uint8_t vl53l8cx_set_sharpener_percent(
+ VL53L8CX_Configuration *p_dev,
+ uint8_t sharpener_percent);
+
+/**
+ * @brief This function gets the current target order (closest or strongest).
+ * @param (VL53L8CX_Configuration) *p_dev : VL53L8CX configuration structure.
+ * @param (uint8_t) *p_target_order: Contains the target order.
+ * @return (uint8_t) status : 0 if get target order is OK.
+ */
+
+uint8_t vl53l8cx_get_target_order(
+ VL53L8CX_Configuration *p_dev,
+ uint8_t *p_target_order);
+
+/**
+ * @brief This function sets a new target order. Please use macros
+ * VL53L8CX_TARGET_ORDER_STRONGEST and VL53L8CX_TARGET_ORDER_CLOSEST to define
+ * the new output order. By default, the sensor is configured with the strongest
+ * output.
+ * @param (VL53L8CX_Configuration) *p_dev : VL53L8CX configuration structure.
+ * @param (uint8_t) target_order : Required target order.
+ * @return (uint8_t) status : 0 if set target order is OK, or 127 if target
+ * order is unknown.
+ */
+
+uint8_t vl53l8cx_set_target_order(
+ VL53L8CX_Configuration *p_dev,
+ uint8_t target_order);
+
+/**
+ * @brief This function is used to get the ranging mode. Two modes are
+ * available using ULD : Continuous and autonomous. The default
+ * mode is Autonomous.
+ * @param (VL53L8CX_Configuration) *p_dev : VL53L8CX configuration structure.
+ * @param (uint8_t) *p_ranging_mode : current ranging mode
+ * @return (uint8_t) status : 0 if get ranging mode is OK.
+ */
+
+uint8_t vl53l8cx_get_ranging_mode(
+ VL53L8CX_Configuration *p_dev,
+ uint8_t *p_ranging_mode);
+
+/**
+ * @brief This function is used to set the ranging mode. Two modes are
+ * available using ULD : Continuous and autonomous. The default
+ * mode is Autonomous.
+ * @param (VL53L8CX_Configuration) *p_dev : VL53L8CX configuration structure.
+ * @param (uint8_t) ranging_mode : Use macros VL53L8CX_RANGING_MODE_CONTINUOUS,
+ * VL53L8CX_RANGING_MODE_CONTINUOUS.
+ * @return (uint8_t) status : 0 if set ranging mode is OK.
+ */
+
+uint8_t vl53l8cx_set_ranging_mode(
+ VL53L8CX_Configuration *p_dev,
+ uint8_t ranging_mode);
+
+/**
+ * @brief This function is used to check if the synchronization pin is enabled
+ * or disabled. When it is enabled, the sensor waits an interrupt on B1 pin
+ * to start the next measurement. It is useful for multi-devices
+ * synchronization. By default the sync pin is disabled.
+ * @param (VL53L8CX_Configuration) *p_dev : VL53L8CX configuration structure.
+ * @param (uint8_t*) p_is_sync_pin_enabled : Pointer of sync pin status. Value
+ * overridden to 0 if the pin is disabled, or 1 if the pin is enabled.
+ * @return (uint8_t) status : 0 if get sync pin OK.
+ */
+uint8_t vl53l8cx_get_external_sync_pin_enable(
+ VL53L8CX_Configuration *p_dev,
+ uint8_t *p_is_sync_pin_enabled);
+
+
+/**
+ * @brief This function is used to enable or disable the synchronization pin. When
+ * it is enabled, the sensor waits an interrupt on B1 pin to start the next
+ * measurement. It is useful for multi-devices synchronization. By default the sync
+ * pin is disabled.
+ * @param (VL53L8CX_Configuration) *p_dev : VL53L8CX configuration structure.
+ * @param (uint8_t) enable_sync_pin : Ste the value to 1 to enable the sync
+ * pin, or 0 to disable it.
+ * @return (uint8_t) status : 0 if set sync pin OK.
+ */
+uint8_t vl53l8cx_set_external_sync_pin_enable(
+ VL53L8CX_Configuration *p_dev,
+ uint8_t enable_sync_pin);
+
+/**
+ * @brief This function is used to get the number of frames between 2 temperature
+ * compensation.
+ * @param (VL53L8CX_Configuration) *p_dev : VL53L8CX configuration structure.
+ * @param (uint32_t) *p_repeat_count : Number of frames before next temperature
+ * compensation. Set to 0 to disable the feature (default configuration).
+ */
+uint8_t vl53l8cx_get_VHV_repeat_count(
+ VL53L8CX_Configuration *p_dev,
+ uint32_t *p_repeat_count);
+
+/**
+ * @brief This function is used to set a periodic temperature compensation. By
+ * setting a repeat count different to 0 the firmware automatically runs a
+ * temperature calibration every N frames.
+ * default the repeat count is set to 0
+ * @param (VL53L8CX_Configuration) *p_dev : VL53L8CX configuration structure.
+ * @param (uint32_t) repeat_count : Number of frames between temperature
+ * compensation. Set to 0 to disable the feature (default configuration).
+ */
+uint8_t vl53l8cx_set_VHV_repeat_count(
+ VL53L8CX_Configuration *p_dev,
+ uint32_t repeat_count);
+
+/**
+ * @brief This function can be used to read 'extra data' from DCI. Using a known
+ * index, the function fills the casted structure passed in argument.
+ * @param (VL53L8CX_Configuration) *p_dev : VL53L8CX configuration structure.
+ * @param (uint8_t) *data : This field can be a casted structure, or a simple
+ * array. Please note that the FW only accept data of 32 bits. So field data can
+ * only have a size of 32, 64, 96, 128, bits ....
+ * @param (uint32_t) index : Index of required value.
+ * @param (uint16_t)*data_size : This field must be the structure or array size
+ * (using sizeof() function).
+ * @return (uint8_t) status : 0 if OK
+ */
+
+uint8_t vl53l8cx_dci_read_data(
+ VL53L8CX_Configuration *p_dev,
+ uint8_t *data,
+ uint32_t index,
+ uint16_t data_size);
+
+/**
+ * @brief This function can be used to write 'extra data' to DCI. The data can
+ * be simple data, or casted structure.
+ * @param (VL53L8CX_Configuration) *p_dev : VL53L8CX configuration structure.
+ * @param (uint8_t) *data : This field can be a casted structure, or a simple
+ * array. Please note that the FW only accept data of 32 bits. So field data can
+ * only have a size of 32, 64, 96, 128, bits ..
+ * @param (uint32_t) index : Index of required value.
+ * @param (uint16_t)*data_size : This field must be the structure or array size
+ * (using sizeof() function).
+ * @return (uint8_t) status : 0 if OK
+ */
+
+uint8_t vl53l8cx_dci_write_data(
+ VL53L8CX_Configuration *p_dev,
+ uint8_t *data,
+ uint32_t index,
+ uint16_t data_size);
+
+/**
+ * @brief This function can be used to replace 'extra data' in DCI. The data can
+ * be simple data, or casted structure.
+ * @param (VL53L8CX_Configuration) *p_dev : VL53L8CX configuration structure.
+ * @param (uint8_t) *data : This field can be a casted structure, or a simple
+ * array. Please note that the FW only accept data of 32 bits. So field data can
+ * only have a size of 32, 64, 96, 128, bits ..
+ * @param (uint32_t) index : Index of required value.
+ * @param (uint16_t)*data_size : This field must be the structure or array size
+ * (using sizeof() function).
+ * @param (uint8_t) *new_data : Contains the new fields.
+ * @param (uint16_t) new_data_size : New data size.
+ * @param (uint16_t) new_data_pos : New data position into the buffer.
+ * @return (uint8_t) status : 0 if OK
+ */
+
+uint8_t vl53l8cx_dci_replace_data(
+ VL53L8CX_Configuration *p_dev,
+ uint8_t *data,
+ uint32_t index,
+ uint16_t data_size,
+ uint8_t *new_data,
+ uint16_t new_data_size,
+ uint16_t new_data_pos);
+
+#ifdef __cplusplus
+}
+#endif
+
#endif //VL53L8CX_API_H_
diff --git a/src/vl53l8cx_buffers.h b/src/vl53l8cx_buffers.h
index b9180bc..256233f 100644
--- a/src/vl53l8cx_buffers.h
+++ b/src/vl53l8cx_buffers.h
@@ -1,44 +1,24 @@
+
/**
- ******************************************************************************
- * @file vl53l7cx_buffer.h
- * @author STMicroelectronics
- * @version V1.0.0
- * @date 13 January 2023
- * @brief Header file for the VL53L7CX firmware.
- ******************************************************************************
- * @attention
- *
- * © COPYRIGHT(c) 2021 STMicroelectronics
- *
- * Redistribution and use in source and binary forms, with or without modification,
- * are permitted provided that the following conditions are met:
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * 3. Neither the name of STMicroelectronics nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
- * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- ******************************************************************************
- */
+ *
+ * Copyright (c) 2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
#ifndef VL53L8CX_BUFFERS_H_
#define VL53L8CX_BUFFERS_H_
+#ifdef __cplusplus
+extern "C" {
+#endif
+
#include "platform.h"
/**
@@ -46,35 +26,34 @@
*/
#if VL53L8CX_NB_TARGET_PER_ZONE == 1
- #define VL53L8CX_FW_NBTAR_RANGING 2
+#define VL53L8CX_FW_NBTAR_RANGING 2
#else
- #define VL53L8CX_FW_NBTAR_RANGING VL53L8CX_NB_TARGET_PER_ZONE
+#define VL53L8CX_FW_NBTAR_RANGING VL53L8CX_NB_TARGET_PER_ZONE
#endif
/**
- * @brief This buffer contains the VL53L8CX firmware (MM1.6)
+ * @brief This buffer contains the VL53L8CX firmware (MM1.8)
*/
const uint8_t VL53L8CX_FIRMWARE[] = {
-
0xe0, 0x00, 0x03, 0x08,
0xe0, 0x00, 0x0a, 0xc8,
0xe0, 0x00, 0x05, 0x08,
- 0xe0, 0x60, 0x37, 0xc8,
+ 0xe0, 0x64, 0x08, 0x48,
0xe0, 0x00, 0x0a, 0x88,
0xe0, 0x00, 0x0a, 0x88,
0xe0, 0x00, 0x0a, 0x88,
0xe0, 0x00, 0x0a, 0x88,
- 0xe0, 0x64, 0x1c, 0x28,
- 0xe0, 0x64, 0x1f, 0xe8,
- 0xe0, 0x64, 0x23, 0x48,
- 0xe0, 0x64, 0x29, 0x88,
- 0xe0, 0x64, 0x32, 0x68,
- 0xe0, 0x68, 0x05, 0x68,
- 0xe0, 0x68, 0x09, 0x48,
- 0xe0, 0x68, 0x0c, 0xc8,
- 0xe0, 0x68, 0x13, 0x28,
- 0xe0, 0x68, 0x16, 0x48,
+ 0xe0, 0x64, 0x2e, 0x28,
+ 0xe0, 0x64, 0x31, 0xe8,
+ 0xe0, 0x64, 0x35, 0x48,
+ 0xe0, 0x64, 0x3b, 0x88,
+ 0xe0, 0x68, 0x04, 0x68,
+ 0xe0, 0x68, 0x17, 0x68,
+ 0xe0, 0x68, 0x1b, 0x48,
+ 0xe0, 0x68, 0x1e, 0xc8,
+ 0xe0, 0x68, 0x25, 0x28,
+ 0xe0, 0x68, 0x28, 0x48,
0xe0, 0x00, 0x09, 0xe8,
0xe0, 0x00, 0x09, 0xc8,
0xe0, 0x00, 0x09, 0xa8,
@@ -116,24 +95,24 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x1c, 0x8c, 0xd1, 0x67,
0xe3, 0x6b, 0xe4, 0x04,
0xe5, 0x6b, 0x8e, 0x05,
- 0x80, 0x60, 0x33, 0x08,
- 0x34, 0x58, 0xe7, 0x6b,
- 0xe9, 0x6b, 0x80, 0x60,
+ 0x80, 0x64, 0x03, 0x88,
+ 0x04, 0xd8, 0xe7, 0x6b,
+ 0xe9, 0x6b, 0x80, 0x64,
0xeb, 0x6b, 0x8a, 0xc5,
- 0x80, 0x60, 0x35, 0x88,
- 0x39, 0xd8, 0xed, 0x6b,
- 0xf1, 0x6b, 0x80, 0x60,
- 0x80, 0x60, 0x36, 0xa8,
- 0x37, 0xf8, 0xf3, 0x6b,
- 0xf5, 0x6b, 0x80, 0x60,
+ 0x80, 0x64, 0x06, 0x08,
+ 0x0a, 0x58, 0xed, 0x6b,
+ 0xf1, 0x6b, 0x80, 0x64,
+ 0x80, 0x64, 0x07, 0x28,
+ 0x08, 0x78, 0xf3, 0x6b,
+ 0xf5, 0x6b, 0x80, 0x64,
0xf7, 0x6b, 0x8a, 0xc5,
0xf9, 0x6b, 0x8c, 0x05,
0xfb, 0x6b, 0x8c, 0x45,
0x0c, 0x0a, 0x8a, 0x45,
0x8a, 0x65, 0xe4, 0xb4,
0xe4, 0xb8, 0x0c, 0x0a,
- 0x39, 0xf8, 0x84, 0x45,
- 0x40, 0x06, 0xe0, 0x60,
+ 0x0a, 0x78, 0x84, 0x45,
+ 0x40, 0x06, 0xe0, 0x64,
0x40, 0x4a, 0xfc, 0x12,
0x80, 0xd5, 0xe0, 0xd0,
0xc1, 0xc3, 0xc1, 0xc3,
@@ -426,9 +405,9 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x68, 0x04, 0x57, 0xc8,
0xc1, 0xc3, 0x8c, 0x0b,
0xfa, 0x04, 0x04, 0x7c,
- 0x74, 0x91, 0x46, 0xce,
- 0x49, 0x8e, 0xc0, 0x10,
- 0xc0, 0x10, 0x74, 0x91,
+ 0x74, 0xa9, 0x46, 0x4e,
+ 0x49, 0x0e, 0xc0, 0x10,
+ 0xc0, 0x10, 0x74, 0xa9,
0x88, 0x25, 0x89, 0x3d,
0xcd, 0x14, 0xcd, 0x04,
0x05, 0x0a, 0xcd, 0x24,
@@ -453,9 +432,9 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x81, 0x31, 0x81, 0x21,
0xe8, 0x04, 0x4a, 0x88,
0x8c, 0x45, 0xa1, 0x0b,
- 0x74, 0x91, 0x07, 0x4e,
- 0x48, 0xce, 0xc0, 0x10,
- 0xc0, 0x10, 0x74, 0x91,
+ 0x74, 0xa9, 0x06, 0xce,
+ 0x48, 0x4e, 0xc0, 0x10,
+ 0xc0, 0x10, 0x74, 0xa9,
0x8a, 0x45, 0x89, 0x3d,
0xcd, 0x14, 0xcd, 0x04,
0x05, 0x0a, 0xcd, 0x24,
@@ -492,7 +471,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x4c, 0x08, 0xe1, 0xa4,
0x8b, 0x04, 0xdc, 0x38,
0xfe, 0x24, 0x89, 0x14,
- 0xe8, 0x6c, 0x53, 0x68,
+ 0xe8, 0x6c, 0x65, 0x68,
0xe1, 0xa4, 0x0c, 0x46,
0xe1, 0xa4, 0x0e, 0x46,
0x82, 0x45, 0x8f, 0x6d,
@@ -1260,7 +1239,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x68, 0x34, 0xaa, 0x24,
0x50, 0x82, 0xa0, 0x1b,
0x8e, 0x0b, 0x7b, 0x90,
- 0x68, 0x34, 0x61, 0x48,
+ 0x68, 0x38, 0x4a, 0x68,
0x3e, 0x0e, 0x8c, 0x4b,
0x85, 0x05, 0x81, 0xa1,
0x0e, 0x29, 0xd9, 0x0a,
@@ -1475,84 +1454,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x67, 0x60, 0x0a, 0x50,
0x02, 0x13, 0xc0, 0x03,
0x98, 0x0b, 0xe0, 0xc0,
- 0xe0, 0x00, 0x35, 0x08,
- 0xfa, 0x7c, 0x04, 0x0c,
- 0xec, 0x90, 0x1e, 0xf0,
- 0x88, 0x9b, 0x23, 0x04,
- 0x02, 0x06, 0x09, 0x1e,
- 0x0a, 0xcb, 0xe0, 0x04,
- 0xfc, 0x0e, 0x81, 0x61,
- 0xfe, 0x0e, 0xa1, 0x04,
- 0xe0, 0x38, 0x04, 0x09,
- 0x51, 0x6e, 0x81, 0x55,
- 0xec, 0x04, 0x02, 0x10,
- 0xa1, 0x1b, 0xf1, 0x6c,
- 0x7e, 0x44, 0xfe, 0x75,
- 0x03, 0xc1, 0x81, 0x61,
- 0xe0, 0x08, 0x02, 0x06,
- 0x16, 0x30, 0x20, 0x0b,
- 0x10, 0x6e, 0xe6, 0x40,
- 0x92, 0xce, 0x81, 0x71,
- 0xd0, 0x6e, 0xd2, 0x6e,
- 0x10, 0x1e, 0xfc, 0x44,
- 0x92, 0xce, 0x81, 0x11,
- 0xbe, 0x1e, 0xd2, 0x6e,
- 0x0c, 0x30, 0x50, 0x6e,
- 0xc0, 0x02, 0x66, 0x41,
- 0x00, 0x20, 0x0f, 0x0e,
- 0xc0, 0x03, 0x65, 0x71,
- 0x00, 0x30, 0x0b, 0x0e,
- 0xc0, 0x03, 0x66, 0x41,
- 0x8b, 0x35, 0x8d, 0x0e,
- 0xae, 0x03, 0x8d, 0x04,
- 0xa1, 0xab, 0x80, 0xa8,
- 0x89, 0x04, 0x8e, 0x85,
- 0x00, 0x09, 0x91, 0x5e,
- 0xc1, 0xad, 0xe0, 0x10,
- 0x7c, 0x14, 0x82, 0xa5,
- 0xe0, 0x08, 0x00, 0x46,
- 0x83, 0x01, 0x04, 0x0e,
- 0x8b, 0x04, 0x86, 0x0e,
- 0x80, 0x08, 0xae, 0x03,
- 0x81, 0x01, 0x46, 0x0e,
- 0x2c, 0x04, 0xc4, 0x0e,
- 0xe1, 0x84, 0x10, 0xa4,
- 0x81, 0x21, 0x2e, 0x14,
- 0x90, 0x03, 0x81, 0x31,
- 0x72, 0x88, 0x42, 0x12,
- 0x61, 0xb8, 0x94, 0x2b,
- 0x45, 0xfe, 0xef, 0xf4,
- 0xcf, 0xff, 0x7f, 0xfd,
- 0xff, 0x21, 0x45, 0x0d,
- 0x1f, 0xfd, 0x41, 0xfe,
- 0xa1, 0x1b, 0x0f, 0xff,
- 0x1f, 0xfd, 0x41, 0xfe,
- 0xa4, 0x0e, 0xcf, 0xff,
- 0x91, 0x54, 0x98, 0x04,
- 0x04, 0x0e, 0x04, 0x0d,
- 0x10, 0x84, 0xf8, 0x00,
- 0x80, 0x83, 0x91, 0x80,
- 0xe0, 0xaa, 0x40, 0x8a,
- 0xfa, 0x08, 0x40, 0x02,
- 0x00, 0x02, 0x03, 0x05,
- 0xc0, 0x7f, 0x6b, 0xfd,
- 0x83, 0x31, 0x7e, 0x24,
- 0x8a, 0x3e, 0x88, 0x3e,
- 0xae, 0x03, 0x8b, 0x04,
- 0x4a, 0x0e, 0x80, 0x08,
- 0x48, 0x0e, 0x81, 0x01,
- 0xa4, 0x3e, 0x81, 0x01,
- 0x0e, 0x70, 0x55, 0x0c,
- 0x08, 0x61, 0xec, 0x04,
- 0x90, 0xb1, 0x88, 0x91,
- 0x8f, 0x0b, 0x8f, 0x04,
- 0xfe, 0x04, 0xea, 0x95,
- 0xa1, 0x0b, 0x80, 0x04,
- 0xc0, 0x08, 0x40, 0x96,
- 0xc0, 0x04, 0x5e, 0x05,
- 0xc8, 0xf1, 0x3e, 0x04,
- 0xf2, 0x7c, 0x0c, 0x0c,
- 0xc1, 0xc3, 0xdd, 0x93,
+ 0xe0, 0x00, 0x24, 0x68,
0xfa, 0x3c, 0x04, 0x0c,
0x84, 0x6b, 0x02, 0x7b,
0x60, 0x50, 0x0e, 0x2b,
@@ -1567,7 +1469,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x06, 0x24, 0x1c, 0x04,
0x9e, 0x14, 0xe1, 0x84,
0x81, 0x31, 0x06, 0x03,
- 0x6f, 0xf4, 0x5b, 0xe8,
+ 0x6f, 0xf4, 0x65, 0x88,
0xf2, 0xa0, 0x42, 0x12,
0x67, 0xfd, 0x00, 0x8a,
0x41, 0xfe, 0xc7, 0xff,
@@ -1580,7 +1482,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x06, 0x24, 0x5c, 0x04,
0xde, 0x14, 0xe1, 0x84,
0x81, 0x31, 0x06, 0x03,
- 0x6f, 0xf4, 0x5a, 0x48,
+ 0x6f, 0xf4, 0x63, 0xe8,
0xf2, 0xa0, 0x42, 0x12,
0x67, 0xfd, 0x00, 0x8a,
0x41, 0xfe, 0xc7, 0xff,
@@ -1594,7 +1496,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0xe1, 0x84, 0x06, 0x24,
0xe0, 0x14, 0x0e, 0x15,
0x81, 0x31, 0x06, 0x03,
- 0x6f, 0xf4, 0x58, 0x88,
+ 0x6f, 0xf4, 0x62, 0x28,
0xf2, 0xa0, 0x42, 0x12,
0x67, 0xfd, 0x00, 0x8a,
0x41, 0xfe, 0xc7, 0xff,
@@ -1646,30 +1548,6 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0xe9, 0xfc, 0x00, 0x02,
0x0c, 0x0c, 0xca, 0x06,
0xdd, 0x93, 0xf0, 0x04,
- 0xf8, 0x0c, 0x04, 0x4c,
- 0x60, 0x38, 0x04, 0x09,
- 0x66, 0x40, 0x04, 0x30,
- 0x18, 0x41, 0xc0, 0x03,
- 0x05, 0x15, 0xff, 0x31,
- 0xf8, 0x00, 0x18, 0x0e,
- 0xa1, 0x6b, 0x88, 0x68,
- 0x90, 0x6a, 0x84, 0xe5,
- 0x84, 0x82, 0x94, 0x72,
- 0x04, 0x25, 0xa1, 0x6b,
- 0xf1, 0x9c, 0x4e, 0x82,
- 0x10, 0x64, 0x06, 0x7d,
- 0x58, 0x77, 0xe1, 0x84,
- 0x91, 0x80, 0x10, 0x84,
- 0x4c, 0x8a, 0x8e, 0x83,
- 0x4c, 0x62, 0xe0, 0x9a,
- 0x0e, 0x62, 0xfa, 0x30,
- 0xc0, 0x7f, 0x6b, 0xfd,
- 0x00, 0x00, 0x94, 0x7c,
- 0x84, 0x41, 0x6c, 0x04,
- 0x82, 0x21, 0x04, 0x51,
- 0xf8, 0x35, 0xa1, 0x0b,
- 0xf0, 0x0c, 0x0c, 0x4c,
- 0xc1, 0xc3, 0xdd, 0x93,
0xf8, 0x1c, 0x04, 0x0c,
0x89, 0x04, 0x84, 0x7a,
0x04, 0x89, 0x86, 0x1a,
@@ -1704,38 +1582,6 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x81, 0x01, 0x60, 0x2c,
0xf0, 0x1c, 0x0c, 0x0c,
0xc1, 0xc3, 0xdd, 0x93,
- 0xfa, 0x7c, 0x04, 0x0c,
- 0xec, 0x50, 0x1e, 0xf0,
- 0x88, 0x6b, 0x19, 0x84,
- 0x82, 0x9b, 0x06, 0x7b,
- 0x84, 0xab, 0x09, 0x5e,
- 0x64, 0x91, 0x16, 0x80,
- 0x02, 0x80, 0x40, 0x01,
- 0xc0, 0x01, 0x66, 0xd1,
- 0x00, 0x80, 0x3e, 0x1e,
- 0xc0, 0x01, 0x66, 0x91,
- 0x08, 0x80, 0x3c, 0x0e,
- 0x12, 0x1b, 0xe4, 0x90,
- 0x0c, 0x3b, 0x8e, 0x2b,
- 0x61, 0xd8, 0x96, 0x5b,
- 0xa1, 0x0b, 0xef, 0xfc,
- 0x04, 0x80, 0x86, 0xb5,
- 0x8c, 0x1b, 0x64, 0x30,
- 0xef, 0xfc, 0x6b, 0x08,
- 0x14, 0x80, 0x7e, 0xae,
- 0x0c, 0x1b, 0xe4, 0x80,
- 0x70, 0xd8, 0x94, 0x2b,
- 0x12, 0x1b, 0xef, 0xfc,
- 0x09, 0x44, 0x8e, 0x2b,
- 0x75, 0xd8, 0x8c, 0x3b,
- 0x96, 0x5b, 0x6f, 0xfc,
- 0x92, 0x1b, 0x3c, 0x8e,
- 0x8e, 0x3b, 0x7e, 0x24,
- 0x94, 0x5b, 0x0c, 0x4b,
- 0xef, 0xfc, 0x78, 0x48,
- 0xa8, 0xf1, 0x81, 0x01,
- 0xf2, 0x7c, 0x0c, 0x0c,
- 0xc1, 0xc3, 0xdd, 0x93,
0xf0, 0x80, 0x46, 0x22,
0xec, 0x70, 0x06, 0x39,
0x86, 0xa5, 0xa1, 0x3b,
@@ -1789,7 +1635,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x28, 0x04, 0xe4, 0x40,
0x7f, 0xfd, 0x49, 0xfe,
0x3c, 0x3e, 0xcf, 0xff,
- 0x4d, 0x78, 0x81, 0x31,
+ 0x5e, 0x18, 0x81, 0x31,
0x81, 0x51, 0x6f, 0xfc,
0x81, 0x95, 0x89, 0x04,
0x83, 0x01, 0x7c, 0x24,
@@ -1821,15 +1667,15 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0xf2, 0x7c, 0x0c, 0x0c,
0x04, 0x90, 0xdd, 0x93,
0x96, 0x0b, 0x64, 0x30,
- 0x6f, 0xfc, 0x5e, 0x88,
+ 0x6f, 0xfc, 0x65, 0x88,
0x7c, 0x8e, 0x8c, 0x1b,
0xe4, 0x80, 0x10, 0x90,
0x8c, 0x1b, 0x16, 0x0b,
- 0x6f, 0xfc, 0x64, 0x48,
+ 0x6f, 0xfc, 0x6b, 0x48,
0x3c, 0x9e, 0x90, 0x2b,
0x7c, 0x24, 0x96, 0x0b,
0x0e, 0x3b, 0x94, 0x1b,
- 0x6c, 0x18, 0x8c, 0x4b,
+ 0x70, 0x18, 0x8c, 0x4b,
0x90, 0x5b, 0x6f, 0xfc,
0x0c, 0x0c, 0x98, 0xf1,
0xdd, 0x93, 0xf2, 0x7c,
@@ -1840,7 +1686,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x67, 0x60, 0x04, 0x80,
0x12, 0x09, 0xc0, 0x03,
0x8c, 0x3b, 0x60, 0x10,
- 0xe8, 0x04, 0x59, 0x48,
+ 0xe8, 0x04, 0x59, 0x68,
0xe0, 0x10, 0x0e, 0x05,
0xe0, 0x34, 0x0e, 0x1b,
0xef, 0x48, 0x10, 0x29,
@@ -1868,10 +1714,10 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x06, 0xf0, 0x90, 0x05,
0x92, 0x0b, 0x64, 0x70,
0x90, 0x2b, 0x0a, 0x1b,
- 0xe8, 0x30, 0x64, 0x88,
+ 0xe8, 0x34, 0x5e, 0x48,
0x8e, 0x15, 0xa1, 0x0b,
0x90, 0x1b, 0x12, 0x0b,
- 0x68, 0x30, 0x67, 0x88,
+ 0x68, 0x34, 0x61, 0x48,
0xa1, 0x0b, 0x8e, 0x2b,
0x8f, 0x84, 0x8c, 0x35,
0x54, 0xb5, 0xa1, 0x8b,
@@ -1885,12 +1731,12 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x04, 0x06, 0x70, 0x88,
0x42, 0xb2, 0xff, 0x40,
0x81, 0x31, 0x72, 0xac,
- 0xef, 0xf0, 0x7d, 0x88,
+ 0xef, 0xf4, 0x4e, 0x28,
0x60, 0xfc, 0x04, 0x14,
0x24, 0x0f, 0xc3, 0x07,
0x01, 0x31, 0xc3, 0x17,
- 0x73, 0x98, 0x90, 0x2b,
- 0x04, 0x04, 0xef, 0xf0,
+ 0x44, 0x38, 0x90, 0x2b,
+ 0x04, 0x04, 0xef, 0xf4,
0xff, 0x31, 0x60, 0xa0,
0xd0, 0x17, 0x71, 0x07,
0xa2, 0x0f, 0x07, 0x2b,
@@ -2006,7 +1852,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x10, 0x03, 0xe1, 0x84,
0x42, 0x12, 0x98, 0x3b,
0x88, 0x2b, 0x72, 0x88,
- 0xef, 0xf0, 0x58, 0xa8,
+ 0xef, 0xf0, 0x69, 0x48,
0xe0, 0x00, 0x03, 0x4a,
0x02, 0x1a, 0x3e, 0x14,
0x00, 0x6a, 0xe0, 0x00,
@@ -2105,7 +1951,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x40, 0xc2, 0x1c, 0x00,
0x42, 0xb2, 0xf0, 0x90,
0xac, 0x3f, 0x72, 0x94,
- 0xef, 0xf0, 0x4c, 0x48,
+ 0xef, 0xf0, 0x5c, 0xe8,
0x02, 0xa4, 0x95, 0xb4,
0xd6, 0xb7, 0x7c, 0x00,
0xa2, 0x83, 0x3e, 0x14,
@@ -2164,7 +2010,8 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0xc7, 0x1d, 0xc0, 0x00,
0xc0, 0x00, 0x56, 0x35,
0xf2, 0x7c, 0x0c, 0x0c,
- 0xc1, 0xc3, 0xdd, 0x93,
+ 0x00, 0x0c, 0xdd, 0x93,
+ 0xc0, 0x00, 0x61, 0x01,
0xfa, 0x7c, 0x04, 0x0c,
0xec, 0xf0, 0x1e, 0xf0,
0x84, 0x9b, 0x11, 0x1e,
@@ -2332,14 +2179,14 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0xbc, 0x3e, 0x9b, 0xb4,
0x2b, 0x34, 0xad, 0x0e,
0xa1, 0x44, 0x96, 0x2b,
- 0xef, 0xfc, 0x4d, 0x08,
+ 0xef, 0xfc, 0x4c, 0xe8,
0x00, 0xf0, 0x18, 0x12,
0x3e, 0x0e, 0xe5, 0xc0,
0xe5, 0xe0, 0x0a, 0xf0,
0x96, 0x2b, 0x11, 0x04,
0xa9, 0x44, 0xab, 0x34,
0x2d, 0x04, 0xbc, 0x0e,
- 0x4c, 0x18, 0x86, 0xbb,
+ 0x4b, 0xf8, 0x86, 0xbb,
0x97, 0x04, 0xef, 0xfc,
0xe0, 0x30, 0x00, 0x09,
0x84, 0x05, 0xa1, 0x0b,
@@ -2349,7 +2196,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x3e, 0x0e, 0xe5, 0x90,
0xbc, 0x2e, 0x96, 0x3b,
0x9b, 0x24, 0xad, 0x04,
- 0x4a, 0xd8, 0x9f, 0x44,
+ 0x4a, 0xb8, 0x9f, 0x44,
0xbd, 0x04, 0xef, 0xfc,
0x99, 0x24, 0x95, 0x14,
0xbb, 0x04, 0xad, 0x0e,
@@ -2363,7 +2210,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0xb9, 0x44, 0xbc, 0x3e,
0x9b, 0x04, 0xb7, 0x54,
0x91, 0x34, 0xad, 0x24,
- 0xe8, 0x14, 0x7e, 0x08,
+ 0xe8, 0x18, 0x75, 0x68,
0x81, 0x01, 0x00, 0x2b,
0xf1, 0xd5, 0xa7, 0x34,
0x83, 0x7d, 0x8e, 0x18,
@@ -2454,18 +2301,18 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x21, 0x4f, 0x86, 0x7b,
0x0f, 0xae, 0x82, 0x0b,
0x0d, 0xae, 0x84, 0x1b,
- 0x58, 0xf8, 0x88, 0x2b,
- 0x58, 0xae, 0xe8, 0x2c,
+ 0x52, 0x98, 0x88, 0x2b,
+ 0x58, 0xae, 0xe8, 0x30,
0x1a, 0xae, 0x80, 0x9b,
0xe4, 0x70, 0x04, 0xf0,
0x92, 0x1b, 0x0e, 0x0b,
- 0xe8, 0x2c, 0x5e, 0x08,
+ 0xe8, 0x30, 0x57, 0xa8,
0x84, 0x35, 0xa1, 0x0b,
0x06, 0xf0, 0x0f, 0x04,
0x22, 0x14, 0xe4, 0x60,
0x58, 0x0e, 0x92, 0x2b,
- 0x59, 0xf8, 0x8e, 0x0b,
- 0xa1, 0x0b, 0xe8, 0x2c,
+ 0x53, 0x98, 0x8e, 0x0b,
+ 0xa1, 0x0b, 0xe8, 0x30,
0x80, 0x18, 0x1e, 0x05,
0x00, 0x04, 0x4c, 0x05,
0x80, 0x00, 0x00, 0x06,
@@ -2483,7 +2330,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x7c, 0xbe, 0x82, 0x0b,
0xe8, 0x88, 0x04, 0x54,
0x88, 0x1b, 0x3e, 0xbe,
- 0xe8, 0x2c, 0x55, 0x68,
+ 0xe8, 0x30, 0x4f, 0x08,
0x00, 0x90, 0x00, 0x8b,
0x01, 0x95, 0xe4, 0xc0,
0x41, 0xbe, 0x99, 0x11,
@@ -2496,20 +2343,20 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0xa1, 0x0b, 0x81, 0x01,
0x28, 0x04, 0x88, 0xd5,
0xe4, 0x20, 0x04, 0xf0,
- 0x68, 0x2c, 0x59, 0x68,
+ 0x68, 0x30, 0x53, 0x08,
0xa1, 0x0b, 0x90, 0x1b,
0x7c, 0x04, 0x86, 0xd5,
0xe4, 0x10, 0x06, 0xf0,
0xa4, 0x0e, 0x90, 0x2b,
0x9e, 0x14, 0xa8, 0x04,
- 0xe8, 0x2c, 0x55, 0x48,
+ 0xe8, 0x30, 0x4e, 0xe8,
0x84, 0x75, 0xa1, 0x0b,
0x06, 0xf0, 0x3e, 0x04,
0x90, 0x2b, 0xe4, 0x10,
0xf8, 0x30, 0x52, 0x05,
0xe0, 0x60, 0x14, 0x05,
- 0x54, 0x78, 0x9e, 0x14,
- 0xa1, 0x0b, 0xe8, 0x2c,
+ 0x4e, 0x18, 0x9e, 0x14,
+ 0xa1, 0x0b, 0xe8, 0x30,
0x80, 0x04, 0x1e, 0x05,
0x00, 0x30, 0x52, 0x05,
0x80, 0x00, 0x00, 0x06,
@@ -2533,7 +2380,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x00, 0x24, 0x65, 0x82,
0x82, 0x03, 0xe1, 0x84,
0x72, 0x98, 0x42, 0x32,
- 0x63, 0x18, 0x81, 0x31,
+ 0x73, 0x98, 0x81, 0x31,
0x0f, 0x24, 0xef, 0xec,
0x41, 0xfe, 0x91, 0x0b,
0xa1, 0x1b, 0x1f, 0xfc,
@@ -2610,7 +2457,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x82, 0x03, 0x7c, 0x14,
0x94, 0x2b, 0x25, 0x3f,
0x72, 0x84, 0x42, 0x32,
- 0x59, 0x78, 0x96, 0x3b,
+ 0x69, 0xf8, 0x96, 0x3b,
0x09, 0x54, 0xef, 0xec,
0x67, 0xfd, 0x00, 0x8a,
0x41, 0xf6, 0xc0, 0xff,
@@ -2682,21 +2529,21 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x09, 0x3e, 0xaa, 0x23,
0x3c, 0x3e, 0x96, 0x1b,
0x7c, 0x5e, 0x8a, 0x3b,
- 0x6c, 0xf8, 0x8c, 0x5b,
+ 0x6c, 0xd8, 0x8c, 0x5b,
0xa1, 0x0b, 0xef, 0xf8,
0x09, 0x04, 0x86, 0x75,
0x3e, 0xae, 0x81, 0x41,
0x7e, 0x24, 0x96, 0x1b,
0x3c, 0x0e, 0x8c, 0x5b,
0x8d, 0x34, 0x90, 0x0b,
- 0xef, 0xf8, 0x6c, 0x28,
+ 0xef, 0xf8, 0x6c, 0x08,
0x82, 0xd5, 0xa1, 0x0b,
0x81, 0x41, 0x0d, 0x24,
0x96, 0x1b, 0x7e, 0x04,
0x8c, 0x5b, 0x3e, 0x7e,
0x09, 0x04, 0xfc, 0x34,
0x3c, 0x0e, 0x80, 0x23,
- 0x6b, 0x38, 0x90, 0x0b,
+ 0x6b, 0x18, 0x90, 0x0b,
0x16, 0x1b, 0xef, 0xf8,
0x0b, 0x64, 0x96, 0x8d,
0x09, 0x0e, 0x8c, 0xbb,
@@ -2768,13 +2615,13 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0xe4, 0xa0, 0x00, 0xf0,
0x96, 0x0b, 0x3e, 0x0e,
0x8f, 0x14, 0xbc, 0x1e,
- 0x56, 0x78, 0xfe, 0x44,
+ 0x56, 0x58, 0xfe, 0x44,
0x0d, 0x04, 0xef, 0xf8,
0x99, 0x24, 0x96, 0x1b,
0x3e, 0x0e, 0x97, 0x34,
0x95, 0x44, 0x94, 0x0b,
0x93, 0x54, 0xbc, 0x6e,
- 0xef, 0xf8, 0x68, 0x28,
+ 0xef, 0xf8, 0x68, 0x08,
0x8e, 0x5b, 0x09, 0x74,
0xe2, 0xa4, 0x00, 0x0a,
0x81, 0x01, 0x80, 0x75,
@@ -2794,7 +2641,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0xe6, 0x86, 0x50, 0x2a,
0xe5, 0x00, 0x11, 0x0a,
0x19, 0x21, 0x92, 0x55,
- 0x66, 0x58, 0x8e, 0x0b,
+ 0x76, 0xd8, 0x8e, 0x0b,
0x8c, 0x1b, 0x6f, 0xec,
0x64, 0x30, 0x00, 0x70,
0xe0, 0x04, 0x02, 0x06,
@@ -2818,7 +2665,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x0f, 0x14, 0x84, 0x85,
0xe1, 0x84, 0x00, 0x24,
0x81, 0x31, 0x16, 0x03,
- 0x6f, 0xe8, 0x7f, 0x88,
+ 0x6f, 0xec, 0x50, 0x08,
0xf2, 0xa4, 0x42, 0x12,
0x67, 0xfd, 0x00, 0x8a,
0x41, 0xf6, 0xc0, 0xff,
@@ -2840,40 +2687,42 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x06, 0x0e, 0x60, 0x10,
0xc0, 0x00, 0x72, 0xc0,
0x88, 0xbb, 0x1d, 0x9e,
- 0x42, 0x96, 0x09, 0x1e,
+ 0x42, 0x96, 0x7e, 0x1e,
0xc0, 0x01, 0x67, 0xb9,
- 0x8d, 0x1e, 0x80, 0x04,
- 0x13, 0x0e, 0x8f, 0x1e,
+ 0x8b, 0x1e, 0x80, 0x04,
+ 0x11, 0x0e, 0x8d, 0x1e,
0x63, 0x21, 0x41, 0x56,
- 0x17, 0x0e, 0xc0, 0x01,
- 0x91, 0x1e, 0x84, 0x0b,
- 0x1b, 0x1e, 0x95, 0x1e,
- 0x99, 0x3e, 0x8c, 0x1b,
+ 0x15, 0x0e, 0xc0, 0x01,
+ 0x6e, 0xa1, 0x00, 0x06,
+ 0x1b, 0x0e, 0xc0, 0x01,
+ 0x8f, 0x1e, 0x84, 0x0b,
+ 0x19, 0x1e, 0x93, 0x1e,
+ 0x97, 0x3e, 0x8c, 0x1b,
0xe8, 0x00, 0x48, 0xc8,
0x6c, 0x04, 0x00, 0xa0,
0xe0, 0x08, 0x42, 0xc6,
- 0x74, 0x18, 0x01, 0x0a,
- 0x0b, 0x0e, 0x81, 0x01,
+ 0x74, 0x1c, 0x01, 0x0a,
+ 0x09, 0x0e, 0x81, 0x01,
0x80, 0x88, 0x00, 0xa4,
- 0x04, 0x60, 0x02, 0xf0,
+ 0x04, 0x50, 0x02, 0xf0,
0xe0, 0x10, 0x10, 0x1a,
0x1c, 0x00, 0x02, 0x05,
0x80, 0x00, 0x02, 0x06,
- 0x00, 0x14, 0x5e, 0x05,
- 0x0b, 0x04, 0xb1, 0x8b,
+ 0x00, 0x10, 0x5e, 0x05,
+ 0x09, 0x04, 0xb1, 0x8b,
0xed, 0x80, 0x42, 0x0a,
0xc0, 0x08, 0x42, 0xc6,
0x42, 0xc6, 0xa1, 0x0b,
0xe5, 0xad, 0x00, 0x08,
- 0x8a, 0x95, 0xfe, 0x1e,
- 0xa1, 0x0b, 0xfe, 0x04,
- 0x09, 0x14, 0x8a, 0x35,
+ 0x8a, 0x95, 0xfc, 0x1e,
+ 0xa1, 0x0b, 0xfc, 0x04,
+ 0x7e, 0x14, 0x8a, 0x35,
0x0e, 0x0b, 0x90, 0x7b,
0x49, 0x98, 0x96, 0x2b,
0x18, 0xb1, 0xe8, 0x00,
0x04, 0x06, 0x81, 0x11,
0x96, 0x0b, 0x60, 0x08,
- 0xef, 0xec, 0x62, 0x88,
+ 0xef, 0xec, 0x72, 0xc8,
0xe6, 0x9e, 0x4e, 0x7a,
0x00, 0x06, 0x83, 0x75,
0xe7, 0xad, 0x61, 0x00,
@@ -2882,12 +2731,12 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x1a, 0x44, 0xe4, 0xe0,
0xe1, 0xec, 0x0b, 0x76,
0x90, 0x1b, 0x3e, 0x0e,
- 0x89, 0x24, 0x8b, 0x04,
+ 0xfe, 0x24, 0x89, 0x04,
0x92, 0x0b, 0x3c, 0x0e,
0xe8, 0x00, 0x40, 0xc8,
0x6d, 0x0c, 0x9d, 0x04,
0x93, 0x7b, 0x82, 0x91,
- 0x7e, 0x04, 0xfa, 0x35,
+ 0x7c, 0x04, 0xfa, 0x35,
0x0c, 0x0c, 0xf8, 0xf1,
0xdd, 0x93, 0xf2, 0x7c,
0xf8, 0x7c, 0x04, 0x0c,
@@ -2930,8 +2779,8 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x20, 0x1f, 0xe1, 0x84,
0xe0, 0xfc, 0x00, 0x34,
0x40, 0x42, 0xa0, 0x5f,
- 0x71, 0x78, 0xf0, 0x94,
- 0x42, 0x12, 0x6f, 0xe8,
+ 0x41, 0xb8, 0xf0, 0x94,
+ 0x42, 0x12, 0x6f, 0xec,
0x04, 0x06, 0xf2, 0xb0,
0x40, 0x40, 0x60, 0x01,
0x84, 0x03, 0xff, 0x31,
@@ -3045,13 +2894,13 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x1c, 0x04, 0x80, 0x9b,
0x22, 0x34, 0xa3, 0x2f,
0xe0, 0x90, 0x02, 0x44,
- 0x68, 0x28, 0x4f, 0x28,
+ 0x68, 0x2c, 0x48, 0x88,
0xe8, 0x94, 0x14, 0x24,
0x9c, 0x24, 0xa4, 0x14,
0x22, 0x34, 0x98, 0x0e,
0x04, 0x0b, 0xcf, 0x17,
- 0x4e, 0x78, 0x94, 0x2b,
- 0x1a, 0x0e, 0xe8, 0x28,
+ 0x47, 0xd8, 0x94, 0x2b,
+ 0x1a, 0x0e, 0xe8, 0x2c,
0x0c, 0x0c, 0x81, 0x01,
0xdd, 0x93, 0xf2, 0x3c,
0xfa, 0x0c, 0x04, 0x0c,
@@ -3062,7 +2911,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0xc0, 0x01, 0x67, 0xd1,
0x72, 0xa0, 0x42, 0x12,
0xe0, 0x3c, 0x44, 0x86,
- 0x6f, 0xe8, 0x61, 0x08,
+ 0x6f, 0xe8, 0x71, 0x48,
0x7f, 0x21, 0x81, 0x31,
0x85, 0x0b, 0x81, 0x31,
0x1f, 0xfc, 0x41, 0xfe,
@@ -3073,7 +2922,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x82, 0x03, 0xe0, 0x9c,
0x72, 0xa0, 0x42, 0x22,
0xe0, 0xa0, 0x04, 0x64,
- 0xef, 0xe8, 0x5f, 0xa8,
+ 0xef, 0xe8, 0x6f, 0xe8,
0x7f, 0xfd, 0x45, 0xfe,
0xc5, 0x0d, 0xc0, 0x3f,
0x1f, 0xfd, 0x41, 0xfe,
@@ -3483,10 +3332,10 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0xc1, 0xc3, 0x81, 0x81,
0xfa, 0x3c, 0x04, 0x0c,
0xec, 0xa0, 0x1e, 0xf0,
- 0x55, 0x0e, 0x2d, 0x84,
- 0xc0, 0x10, 0x64, 0x31,
+ 0x54, 0x8e, 0x2d, 0x84,
+ 0xc0, 0x10, 0x64, 0x11,
0x13, 0xae, 0xaf, 0x94,
- 0x63, 0xf1, 0x14, 0xce,
+ 0x63, 0xd1, 0x14, 0x4e,
0x91, 0xae, 0xc0, 0x10,
0x8d, 0x8e, 0x8f, 0x9e,
0xa1, 0xc4, 0xab, 0xa4,
@@ -5216,34 +5065,34 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x81, 0x81, 0x11, 0x0e,
0x12, 0x05, 0x8d, 0x45,
0x99, 0x21, 0x78, 0x30,
- 0x49, 0xd8, 0x9c, 0x1a,
- 0x1c, 0x1a, 0xe8, 0x18,
+ 0x43, 0x38, 0x9c, 0x1a,
+ 0x1c, 0x1a, 0xe8, 0x1c,
0x7f, 0xfd, 0x57, 0xfe,
0x40, 0x02, 0xcf, 0xff,
0x99, 0x21, 0x7b, 0xac,
0xf8, 0x30, 0x54, 0x05,
- 0x49, 0x18, 0xe5, 0x04,
- 0x69, 0x0e, 0xe8, 0x18,
+ 0x42, 0x78, 0xe5, 0x04,
+ 0x69, 0x0e, 0xe8, 0x1c,
0x8f, 0x9e, 0x99, 0x21,
0xe0, 0x2c, 0x12, 0x05,
- 0x48, 0x98, 0x9c, 0x1a,
- 0x59, 0x3a, 0xe8, 0x18,
+ 0x41, 0xf8, 0x9c, 0x1a,
+ 0x59, 0x3a, 0xe8, 0x1c,
0xfb, 0xac, 0x40, 0x02,
0x99, 0x21, 0x1e, 0x1a,
0x54, 0x05, 0x8d, 0xae,
0x86, 0x0b, 0x60, 0x2c,
- 0xe8, 0x18, 0x47, 0xe8,
+ 0xe8, 0x1c, 0x41, 0x48,
0x99, 0x21, 0x11, 0xb4,
0x0c, 0x03, 0xed, 0x0c,
0x9e, 0x1a, 0xe0, 0x5c,
- 0xe8, 0x18, 0x49, 0x48,
+ 0xe8, 0x1c, 0x42, 0xa8,
0x60, 0x2c, 0x0c, 0x03,
0x1e, 0x1a, 0x80, 0xab,
- 0x48, 0xd8, 0x99, 0x21,
- 0x0c, 0x03, 0xe8, 0x18,
+ 0x42, 0x38, 0x99, 0x21,
+ 0x0c, 0x03, 0xe8, 0x1c,
0x80, 0x9b, 0x60, 0x8c,
0x99, 0x21, 0x1e, 0x1a,
- 0xe8, 0x18, 0x48, 0x68,
+ 0xe8, 0x1c, 0x41, 0xc8,
0x89, 0x34, 0xfc, 0x24,
0x42, 0x22, 0xfe, 0x44,
0xb4, 0x23, 0x71, 0xa4,
@@ -5306,119 +5155,560 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x48, 0x01, 0x85, 0x01,
0xdd, 0x93, 0xe3, 0x90,
0xfa, 0x7c, 0x04, 0x0c,
- 0xec, 0xd0, 0x1e, 0xf0,
- 0x81, 0xc1, 0x0b, 0x1e,
- 0x91, 0x4e, 0xad, 0x14,
- 0x89, 0x1e, 0xb3, 0x44,
- 0x13, 0x5e, 0xab, 0x14,
- 0x8f, 0x3e, 0x80, 0x5b,
- 0xa9, 0x14, 0x97, 0x1e,
- 0x99, 0x21, 0x0d, 0x2e,
- 0x7e, 0x1e, 0xb1, 0x34,
- 0xe7, 0x90, 0x02, 0x40,
- 0x81, 0x45, 0xaf, 0x04,
- 0x04, 0x20, 0x45, 0xc6,
- 0xa1, 0x2b, 0xec, 0x04,
- 0x04, 0x00, 0xfe, 0x95,
- 0x4f, 0x06, 0x65, 0x80,
- 0x19, 0x06, 0xe0, 0x00,
- 0x81, 0xa1, 0x60, 0x08,
- 0x06, 0x05, 0x8d, 0x05,
- 0x00, 0x0a, 0xfc, 0x1c,
+ 0xed, 0x30, 0x1e, 0xf0,
+ 0x1e, 0x25, 0x9b, 0x2e,
+ 0xb7, 0xc4, 0xe0, 0x88,
+ 0x99, 0x41, 0x1d, 0x4e,
+ 0x1e, 0x25, 0x95, 0x2e,
+ 0x0c, 0xc0, 0x60, 0x84,
+ 0xb5, 0xb4, 0xe7, 0x90,
+ 0x1e, 0x25, 0x97, 0x2e,
+ 0x99, 0x2e, 0xe0, 0x80,
+ 0xa3, 0x2e, 0xbf, 0x24,
+ 0x91, 0x2e, 0xbd, 0x24,
+ 0x93, 0x2e, 0xbb, 0x24,
+ 0x0f, 0x2e, 0xb9, 0x24,
+ 0x81, 0x45, 0x81, 0x21,
+ 0x08, 0x40, 0x59, 0x26,
+ 0xa1, 0x4b, 0xec, 0x04,
+ 0x1f, 0x1e, 0xfe, 0x95,
+ 0xe5, 0x80, 0x0a, 0x50,
+ 0x60, 0x00, 0x4f, 0x06,
+ 0xe0, 0x08, 0x11, 0x06,
+ 0x81, 0x91, 0x21, 0x3e,
+ 0x16, 0x15, 0x87, 0xd5,
+ 0x02, 0x0a, 0xfc, 0x1c,
0xc7, 0xff, 0x63, 0xfd,
- 0x4c, 0x42, 0x94, 0xc5,
- 0x8d, 0x01, 0x70, 0xa8,
- 0xe3, 0x90, 0x4c, 0x01,
- 0xa1, 0x0b, 0x94, 0x0a,
- 0x88, 0x14, 0x80, 0xe5,
- 0x00, 0x86, 0xc1, 0x1d,
- 0x4c, 0x01, 0xc0, 0x00,
- 0x96, 0x0a, 0xc3, 0x90,
- 0x82, 0x65, 0xa1, 0x0b,
- 0x70, 0x9c, 0x42, 0x42,
- 0x02, 0x15, 0xce, 0x07,
- 0xc0, 0x1d, 0xe0, 0x30,
- 0xc0, 0x00, 0x00, 0x36,
- 0xc3, 0x90, 0x4c, 0x01,
- 0xd4, 0x0a, 0x99, 0x2e,
- 0x82, 0x05, 0xa1, 0x0b,
- 0xfc, 0x30, 0x08, 0x1b,
- 0x00, 0x36, 0xc0, 0x1d,
- 0x4c, 0x01, 0xc0, 0x00,
- 0x15, 0x6e, 0xc3, 0x90,
- 0x11, 0x14, 0x8a, 0x0b,
- 0x08, 0xbb, 0x94, 0x2b,
- 0x06, 0x9b, 0x8a, 0x6b,
- 0x78, 0xd8, 0x98, 0x8b,
- 0x13, 0x04, 0xef, 0xfc,
- 0x19, 0x24, 0x90, 0xcb,
- 0x0c, 0x5b, 0x92, 0x3b,
- 0x00, 0x09, 0x96, 0x4b,
- 0x00, 0x0a, 0xe0, 0x34,
- 0x86, 0x65, 0xe3, 0xfc,
- 0x00, 0x09, 0x95, 0x04,
- 0x00, 0x00, 0xe3, 0x90,
- 0x01, 0x0a, 0xec, 0x14,
- 0x84, 0x75, 0xf4, 0x04,
- 0x7c, 0x4e, 0x89, 0x04,
- 0x8b, 0x14, 0x94, 0x4b,
- 0xfe, 0x04, 0xbe, 0x0e,
- 0x8f, 0x34, 0x8d, 0x24,
- 0x8a, 0x0b, 0x3c, 0x0e,
- 0x41, 0x58, 0x93, 0x54,
- 0x19, 0x24, 0xe8, 0x00,
- 0x12, 0x3b, 0x90, 0xcb,
- 0x96, 0x4b, 0x8c, 0x5b,
- 0x88, 0x21, 0x02, 0xa1,
- 0x84, 0xc1, 0x08, 0x71,
- 0x82, 0x08, 0x97, 0x04,
- 0xe6, 0xd5, 0x81, 0xad,
- 0xe8, 0xf1, 0x01, 0x01,
+ 0x48, 0xc2, 0x8c, 0x65,
+ 0x8d, 0x11, 0x70, 0xa4,
+ 0xe3, 0x90, 0x48, 0x11,
+ 0xa1, 0x1b, 0x80, 0x1a,
+ 0x94, 0x24, 0x80, 0xe5,
+ 0x02, 0x86, 0xc3, 0x2d,
+ 0x48, 0x11, 0xc0, 0x00,
+ 0x82, 0x1a, 0xc3, 0x90,
+ 0x82, 0x65, 0xa1, 0x1b,
+ 0x70, 0x9c, 0x44, 0xc2,
+ 0x04, 0x25, 0xce, 0x17,
+ 0xc2, 0x2d, 0xe0, 0x30,
+ 0xc0, 0x00, 0x02, 0x36,
+ 0xc3, 0x90, 0x48, 0x11,
+ 0xc0, 0x1a, 0xa5, 0x5e,
+ 0x82, 0x05, 0xa1, 0x1b,
+ 0xfc, 0x20, 0x18, 0x2b,
+ 0x02, 0x36, 0xc2, 0x2d,
+ 0x48, 0x11, 0xc0, 0x00,
+ 0x23, 0x14, 0xc3, 0x90,
+ 0x16, 0x3b, 0x92, 0x2b,
+ 0x00, 0x6b, 0x98, 0x4b,
+ 0x78, 0x78, 0x98, 0xab,
+ 0x21, 0x34, 0xef, 0xfc,
+ 0x25, 0x54, 0x94, 0xcb,
+ 0x02, 0x91, 0x8c, 0x0b,
+ 0x08, 0x71, 0x88, 0x51,
+ 0x8e, 0x18, 0x84, 0x81,
+ 0xf0, 0x55, 0x83, 0x9d,
+ 0x02, 0x29, 0x9f, 0x14,
+ 0x04, 0x0a, 0xe0, 0x34,
+ 0x84, 0x85, 0xe3, 0xfc,
+ 0x98, 0x5b, 0x15, 0x24,
+ 0x0d, 0x2e, 0x9d, 0x44,
+ 0x8b, 0x2e, 0x89, 0x21,
+ 0x89, 0x2e, 0x97, 0x24,
+ 0xfe, 0x2e, 0x8f, 0x24,
+ 0xfc, 0x2e, 0x99, 0x24,
+ 0xbe, 0x2e, 0x91, 0x24,
+ 0xbc, 0x2e, 0x93, 0x24,
+ 0x40, 0x98, 0x9b, 0x24,
+ 0x01, 0x01, 0xe8, 0x00,
+ 0xe5, 0x30, 0x1e, 0xf0,
0xf2, 0x7c, 0x0c, 0x0c,
0xc1, 0xc3, 0xdd, 0x93,
- 0xfa, 0x7c, 0x04, 0x0c,
- 0xec, 0x70, 0x1e, 0xf0,
- 0x8a, 0x9b, 0x00, 0xab,
- 0x60, 0x14, 0x14, 0x03,
- 0xa1, 0xb4, 0x82, 0x8b,
- 0x0d, 0x0e, 0x9f, 0x54,
- 0x8e, 0xf5, 0xa3, 0x0d,
- 0x60, 0x30, 0x12, 0x09,
- 0xe0, 0x84, 0x0c, 0x44,
- 0x42, 0xb2, 0x15, 0xc1,
- 0x16, 0x63, 0xf0, 0x90,
- 0x1d, 0x04, 0x81, 0x71,
- 0x18, 0x46, 0xa1, 0x0b,
- 0x42, 0xc1, 0xc0, 0x00,
- 0x18, 0x60, 0x63, 0x90,
- 0x0b, 0x8e, 0xe6, 0xa0,
- 0xe5, 0xe0, 0x0c, 0x00,
- 0xfe, 0xae, 0x89, 0x5e,
- 0xbe, 0x3e, 0xfc, 0xbe,
- 0xb0, 0x02, 0x83, 0xe5,
- 0x0d, 0x14, 0x98, 0x12,
- 0x00, 0x04, 0xa2, 0x03,
- 0x82, 0x0d, 0xf0, 0x80,
- 0x14, 0x13, 0x84, 0x95,
- 0x90, 0x0b, 0x60, 0x20,
- 0x92, 0xbb, 0x3c, 0xbe,
- 0x84, 0x9b, 0x08, 0x8b,
- 0x6f, 0xfc, 0x6f, 0x48,
- 0x14, 0xcb, 0x98, 0xab,
- 0x16, 0x9b, 0x92, 0x2b,
- 0xfc, 0xb4, 0x90, 0x4b,
- 0xbe, 0x34, 0x89, 0x54,
- 0x8b, 0x84, 0xfe, 0xa4,
- 0x84, 0x61, 0x02, 0x71,
- 0xe0, 0x30, 0x12, 0x09,
- 0xf8, 0x15, 0x81, 0x7d,
- 0x0c, 0x0c, 0xb8, 0xf1,
- 0xdd, 0x93, 0xf2, 0x7c,
- 0x60, 0x20, 0x14, 0x13,
- 0xbc, 0xbe, 0x90, 0x0b,
- 0xef, 0xfc, 0x6d, 0xa8,
- 0x0c, 0x0c, 0xb8, 0xf1,
- 0xdd, 0x93, 0xf2, 0x7c,
+ 0xfe, 0x7c, 0x04, 0x0c,
+ 0xed, 0x00, 0x1e, 0xf0,
+ 0x84, 0x8b, 0x7c, 0x0e,
+ 0x95, 0x5e, 0xbb, 0x04,
+ 0x11, 0x0e, 0xfe, 0x4e,
+ 0xb7, 0x04, 0xa3, 0x0b,
+ 0xb3, 0x04, 0xbe, 0x0e,
+ 0xb1, 0x04, 0x8b, 0x0e,
+ 0x8e, 0x28, 0x89, 0x0e,
+ 0x86, 0x75, 0x97, 0x2e,
+ 0x81, 0x71, 0x03, 0x65,
+ 0x8e, 0x03, 0x95, 0x04,
+ 0xe3, 0x90, 0x00, 0x09,
+ 0x82, 0xd5, 0xad, 0x0b,
+ 0x8e, 0x4b, 0x7c, 0x04,
+ 0x8b, 0x34, 0x89, 0x24,
+ 0xe0, 0x20, 0x00, 0x13,
+ 0xfe, 0x54, 0x95, 0x04,
+ 0xbe, 0x04, 0xbc, 0x0e,
+ 0xef, 0xfc, 0x70, 0x68,
+ 0x82, 0x71, 0x97, 0x24,
+ 0xfa, 0x75, 0x8f, 0x2b,
+ 0xe0, 0x00, 0x39, 0x98,
+ 0xe0, 0x30, 0x02, 0x09,
+ 0xb5, 0xb4, 0x95, 0x14,
+ 0xa1, 0x0b, 0x1f, 0x0e,
+ 0x02, 0x10, 0x15, 0x01,
+ 0x1d, 0x0e, 0xe7, 0x90,
+ 0xc0, 0x00, 0x00, 0x46,
+ 0xc0, 0x38, 0x5e, 0x05,
+ 0x9b, 0x0e, 0xbd, 0x04,
+ 0x81, 0xa5, 0xb9, 0x04,
+ 0x04, 0x20, 0x04, 0x38,
+ 0xad, 0x3b, 0xec, 0x04,
+ 0x80, 0x38, 0x1e, 0x35,
+ 0x00, 0x00, 0x42, 0x31,
+ 0xa1, 0x2b, 0x82, 0x11,
+ 0x09, 0x94, 0xfc, 0xd5,
+ 0xe2, 0x00, 0x00, 0x2a,
+ 0x81, 0xa1, 0x0b, 0x74,
+ 0x60, 0x08, 0x0d, 0x06,
+ 0x40, 0x0a, 0x81, 0x31,
+ 0x96, 0x2b, 0x66, 0xa6,
+ 0x40, 0x09, 0x0c, 0x06,
+ 0x42, 0x0a, 0xc0, 0x00,
+ 0x40, 0x0a, 0xe5, 0x1e,
+ 0x02, 0x10, 0xe5, 0x9e,
+ 0xc0, 0x08, 0x64, 0x01,
+ 0x72, 0xa8, 0x40, 0x02,
+ 0xe8, 0x07, 0xd9, 0x17,
+ 0x81, 0x11, 0x22, 0x0f,
+ 0xef, 0xd8, 0x53, 0x28,
+ 0x66, 0xa6, 0x44, 0x6a,
+ 0x64, 0x00, 0x00, 0x00,
+ 0x42, 0x12, 0xc1, 0x00,
+ 0xe3, 0x07, 0x72, 0xa8,
+ 0x65, 0x1e, 0x46, 0x2a,
+ 0x44, 0x2a, 0xde, 0x17,
+ 0x4c, 0x02, 0x65, 0x9e,
+ 0x06, 0x30, 0xf9, 0x84,
+ 0x40, 0x08, 0x64, 0x01,
+ 0x40, 0x22, 0x81, 0x11,
+ 0xd9, 0x37, 0x72, 0xa8,
+ 0x96, 0x2b, 0x68, 0x07,
+ 0x81, 0x31, 0x26, 0x0f,
+ 0xef, 0xd8, 0x51, 0x68,
+ 0x00, 0x00, 0x17, 0x34,
+ 0xc1, 0x00, 0x64, 0x01,
+ 0x42, 0x12, 0x1b, 0x44,
+ 0x5e, 0x17, 0xf2, 0xa8,
+ 0x04, 0x34, 0xe3, 0x07,
+ 0xa2, 0x0f, 0x60, 0x88,
+ 0xa6, 0x1b, 0x08, 0x23,
+ 0x64, 0x01, 0x06, 0x40,
+ 0x04, 0x20, 0x40, 0x09,
+ 0xc0, 0x09, 0x64, 0x01,
+ 0x60, 0x08, 0x48, 0x86,
+ 0x11, 0xb4, 0x81, 0x51,
+ 0x85, 0x25, 0x81, 0xc1,
+ 0xa9, 0xbb, 0x15, 0xa4,
+ 0xfc, 0x10, 0x14, 0x73,
+ 0x14, 0x95, 0x8c, 0x7e,
+ 0x46, 0x95, 0xfc, 0x14,
+ 0x52, 0xa2, 0x60, 0xc0,
+ 0x12, 0xa9, 0xf1, 0xb0,
+ 0x46, 0xa5, 0xe3, 0x90,
+ 0x82, 0x95, 0xe1, 0x80,
+ 0x88, 0x7e, 0x8c, 0x73,
+ 0x0e, 0x75, 0x95, 0x74,
+ 0x44, 0x75, 0xfc, 0x14,
+ 0x12, 0x79, 0xe0, 0xc0,
+ 0x44, 0x75, 0xe3, 0x90,
+ 0x18, 0xc0, 0xe1, 0x80,
+ 0x84, 0x41, 0x6c, 0x04,
+ 0x88, 0x31, 0x08, 0x21,
+ 0x99, 0x1b, 0x88, 0x51,
+ 0x1f, 0x24, 0xf6, 0xd5,
+ 0x1b, 0x44, 0x81, 0x51,
+ 0x91, 0xb4, 0x81, 0xc1,
+ 0x60, 0x88, 0x06, 0x24,
+ 0x19, 0x3e, 0xa4, 0x1b,
+ 0x0f, 0x3e, 0x88, 0x33,
+ 0xe5, 0xe0, 0x04, 0x80,
+ 0x65, 0x81, 0x06, 0x30,
+ 0x08, 0x40, 0x40, 0x09,
+ 0xc0, 0x0a, 0x67, 0x81,
+ 0x08, 0x62, 0x85, 0x15,
+ 0xf0, 0x94, 0x52, 0x42,
+ 0x52, 0x65, 0xa9, 0xbb,
+ 0x10, 0x75, 0xf9, 0x80,
+ 0x52, 0x75, 0xfc, 0x14,
+ 0x4e, 0x82, 0x78, 0xc0,
+ 0x0e, 0xa9, 0xf1, 0xb0,
+ 0xa4, 0xae, 0xe2, 0x40,
+ 0x00, 0x63, 0x82, 0xb5,
+ 0xf0, 0x94, 0x52, 0x32,
+ 0x10, 0x65, 0xa4, 0x6e,
+ 0x52, 0x65, 0xfc, 0x14,
+ 0x0e, 0x69, 0xe0, 0xc0,
+ 0x52, 0x65, 0xe2, 0x40,
+ 0x18, 0xc0, 0xe1, 0x80,
+ 0x84, 0x21, 0x6c, 0x04,
+ 0x99, 0x1b, 0x88, 0x51,
+ 0x11, 0x04, 0xf6, 0xf5,
+ 0x17, 0x54, 0xff, 0x81,
+ 0x9f, 0x14, 0x81, 0x41,
+ 0x00, 0x4a, 0x1b, 0x34,
+ 0x00, 0x0c, 0xe0, 0x0c,
+ 0x04, 0x54, 0xe2, 0x00,
+ 0x00, 0x14, 0x68, 0x80,
+ 0x42, 0x0a, 0xe8, 0x80,
+ 0x81, 0x35, 0xe6, 0x8a,
+ 0x82, 0x41, 0x4d, 0x8e,
+ 0xfe, 0xb5, 0x83, 0x4d,
+ 0x0e, 0x04, 0x1b, 0x14,
+ 0x81, 0x41, 0xe0, 0x88,
+ 0x65, 0x81, 0x06, 0x10,
+ 0x93, 0x3e, 0xc0, 0x09,
+ 0x1b, 0xc4, 0x85, 0x95,
+ 0xe0, 0x88, 0x0a, 0x44,
+ 0x82, 0x9b, 0x13, 0x64,
+ 0x8a, 0xc3, 0x9f, 0xa4,
+ 0x66, 0x01, 0x0a, 0xc0,
+ 0x18, 0xc0, 0x40, 0x0a,
+ 0xc0, 0x09, 0x64, 0x01,
+ 0x94, 0xb4, 0x83, 0x65,
+ 0x82, 0xe5, 0xa1, 0xbb,
+ 0xe1, 0x80, 0x0c, 0xb5,
+ 0x82, 0x65, 0xa1, 0xbb,
+ 0x98, 0x34, 0xb0, 0xb4,
+ 0x16, 0xb4, 0xa6, 0xb3,
+ 0x17, 0x0a, 0xf0, 0x80,
+ 0xc0, 0x03, 0x60, 0x81,
+ 0x80, 0x00, 0x52, 0xb5,
+ 0x6c, 0x04, 0x14, 0xa0,
+ 0x88, 0x61, 0x88, 0x91,
+ 0xfa, 0x55, 0xa1, 0xab,
+ 0x82, 0x41, 0x17, 0x54,
+ 0x8b, 0x4b, 0x8e, 0x13,
+ 0x91, 0x14, 0xf4, 0xf5,
+ 0x0a, 0x48, 0xa9, 0x1b,
+ 0x03, 0x68, 0xc0, 0x00,
+ 0xc0, 0x00, 0x40, 0x01,
+ 0x66, 0x96, 0x42, 0x0a,
+ 0x9b, 0x34, 0x81, 0x41,
+ 0x05, 0xb5, 0xc4, 0x17,
+ 0x1b, 0x54, 0x86, 0x13,
+ 0xf0, 0x94, 0x46, 0x42,
+ 0xc4, 0x37, 0x13, 0x64,
+ 0x82, 0x9b, 0x1f, 0xa4,
+ 0x0a, 0x30, 0x8a, 0x33,
+ 0x40, 0x0a, 0x66, 0x01,
+ 0x64, 0x01, 0x18, 0x30,
+ 0x83, 0x65, 0xc0, 0x09,
+ 0xa1, 0x3b, 0x94, 0x34,
+ 0x0c, 0x35, 0x82, 0xe5,
+ 0xa1, 0x3b, 0xe1, 0x80,
+ 0xb0, 0x34, 0x82, 0x65,
+ 0xb6, 0x33, 0x98, 0xb4,
+ 0xf0, 0x80, 0x16, 0x34,
+ 0x60, 0x81, 0x17, 0x0a,
+ 0x52, 0xb5, 0xc0, 0x03,
+ 0x14, 0xa0, 0x80, 0x00,
+ 0x88, 0x91, 0x6c, 0x04,
+ 0xa1, 0xab, 0x88, 0x61,
+ 0x17, 0x54, 0xfa, 0x55,
+ 0x8e, 0x13, 0x82, 0x41,
+ 0xf4, 0xd5, 0x8b, 0x4b,
+ 0x1b, 0x14, 0x87, 0x45,
+ 0x99, 0x34, 0x81, 0x41,
+ 0x06, 0x10, 0x86, 0x13,
+ 0xc0, 0x09, 0x65, 0x81,
+ 0x85, 0x95, 0x93, 0x3e,
+ 0x0a, 0x44, 0x1b, 0xc4,
+ 0x13, 0x64, 0xe0, 0x88,
+ 0x9f, 0xa4, 0x82, 0x9b,
+ 0x0a, 0xc0, 0x8a, 0xc3,
+ 0x40, 0x0a, 0x66, 0x01,
+ 0x64, 0x01, 0x18, 0xc0,
+ 0x83, 0x65, 0xc0, 0x09,
+ 0xa1, 0xbb, 0x94, 0xb4,
+ 0x0c, 0xb5, 0x82, 0xe5,
+ 0xa1, 0xbb, 0xe1, 0x80,
+ 0xb0, 0xb4, 0x82, 0x65,
+ 0xa6, 0xb3, 0x98, 0x34,
+ 0xf0, 0x80, 0x16, 0xb4,
+ 0x60, 0x81, 0x17, 0x0a,
+ 0x52, 0xb5, 0xc0, 0x03,
+ 0x14, 0xa0, 0x80, 0x00,
+ 0x88, 0x91, 0x6c, 0x04,
+ 0xa1, 0xab, 0x88, 0x61,
+ 0x17, 0x54, 0xfa, 0x55,
+ 0x8e, 0x13, 0x82, 0x41,
+ 0xf4, 0xf5, 0x8b, 0x4b,
+ 0x42, 0x0a, 0x9f, 0x34,
+ 0x99, 0x44, 0xe6, 0x96,
+ 0x86, 0x13, 0x1b, 0x34,
+ 0x06, 0x13, 0xc4, 0x17,
+ 0x06, 0x30, 0x88, 0x33,
+ 0x40, 0x09, 0x65, 0x81,
+ 0x93, 0x3e, 0x81, 0x41,
+ 0x1b, 0xc4, 0x85, 0x95,
+ 0x13, 0x64, 0x88, 0x53,
+ 0x1f, 0xa4, 0xc4, 0x57,
+ 0x8a, 0xc3, 0x82, 0x9b,
+ 0x66, 0x01, 0x0a, 0xc0,
+ 0x18, 0xc0, 0x40, 0x0a,
+ 0xc0, 0x09, 0x64, 0x01,
+ 0x94, 0xb4, 0x83, 0x65,
+ 0x82, 0xe5, 0xa1, 0xbb,
+ 0xe1, 0x80, 0x0c, 0xb5,
+ 0x82, 0x65, 0xa1, 0xbb,
+ 0x98, 0x34, 0xb0, 0xb4,
+ 0x16, 0xb4, 0xa6, 0xb3,
+ 0x17, 0x0a, 0xf0, 0x80,
+ 0xc0, 0x03, 0x60, 0x81,
+ 0x80, 0x00, 0x52, 0xb5,
+ 0x6c, 0x04, 0x14, 0xa0,
+ 0x88, 0x61, 0x88, 0x91,
+ 0xfa, 0x55, 0xa1, 0xab,
+ 0x82, 0x41, 0x17, 0x54,
+ 0x8b, 0x4b, 0x8e, 0x13,
+ 0x1b, 0x94, 0xf4, 0xf5,
+ 0x8d, 0x05, 0x81, 0x41,
+ 0x66, 0x82, 0x42, 0x4a,
+ 0x7f, 0xfc, 0x55, 0xfe,
+ 0x13, 0x9e, 0xdf, 0xff,
+ 0x0d, 0x1e, 0x92, 0x3b,
+ 0x59, 0xfe, 0xff, 0x51,
+ 0x5f, 0xff, 0x7f, 0xfd,
+ 0x03, 0x85, 0xff, 0x61,
+ 0x8c, 0x14, 0x81, 0x91,
+ 0x84, 0x05, 0x91, 0x1b,
+ 0x4a, 0x60, 0x95, 0x1d,
+ 0x58, 0xa0, 0x5c, 0x00,
+ 0x02, 0x75, 0xdc, 0x00,
+ 0xdc, 0x00, 0x4c, 0x90,
+ 0x92, 0xbb, 0x19, 0x1d,
+ 0x1c, 0x00, 0x56, 0x50,
+ 0xfb, 0x30, 0x58, 0x12,
+ 0x94, 0x1b, 0x96, 0x5b,
+ 0x88, 0x31, 0x02, 0x91,
+ 0x81, 0x9d, 0x82, 0xab,
+ 0x13, 0x94, 0xfa, 0x35,
+ 0x8c, 0x85, 0x91, 0x5b,
+ 0xf1, 0xa8, 0x42, 0xc2,
+ 0xe1, 0xdc, 0x03, 0x0a,
+ 0x58, 0xa0, 0x08, 0x55,
+ 0x1b, 0x94, 0xdc, 0x00,
+ 0xe0, 0x88, 0x02, 0x44,
+ 0x60, 0x88, 0x06, 0x64,
+ 0xe0, 0x88, 0x16, 0x54,
+ 0x12, 0x90, 0x12, 0x13,
+ 0xc0, 0x0a, 0x64, 0x81,
+ 0xfc, 0x0c, 0x12, 0x35,
+ 0xe9, 0xc0, 0x02, 0x15,
+ 0xfc, 0x2c, 0x12, 0x95,
+ 0xf1, 0x8c, 0x46, 0x12,
+ 0x06, 0x34, 0x32, 0x13,
+ 0x13, 0x94, 0xf0, 0x80,
+ 0xf0, 0x80, 0x02, 0x14,
+ 0x4a, 0x60, 0x87, 0x1d,
+ 0x58, 0xa0, 0x1c, 0x00,
+ 0x8a, 0x6b, 0x9c, 0x00,
+ 0x81, 0x31, 0x12, 0x1b,
+ 0x45, 0x8e, 0x81, 0x35,
+ 0x81, 0x3d, 0x82, 0x31,
+ 0x8d, 0x14, 0xfe, 0xb5,
+ 0x82, 0x63, 0x1b, 0x14,
+ 0x82, 0x63, 0xc4, 0x67,
+ 0x02, 0x41, 0x98, 0xce,
+ 0x85, 0x4d, 0x8e, 0x93,
+ 0x1b, 0x34, 0xe8, 0x15,
+ 0x8d, 0x35, 0x81, 0x91,
+ 0x43, 0xfe, 0x13, 0x9e,
+ 0xdf, 0xff, 0x7f, 0xfd,
+ 0xff, 0x41, 0x06, 0xbb,
+ 0x7f, 0xfd, 0x4b, 0xfe,
+ 0xff, 0xc1, 0x5f, 0xff,
+ 0x81, 0x91, 0x03, 0x85,
+ 0x91, 0xab, 0xac, 0xa4,
+ 0x83, 0xad, 0x84, 0x05,
+ 0x5c, 0x00, 0x48, 0xc0,
+ 0xdc, 0x00, 0x4a, 0x10,
+ 0x58, 0x90, 0x02, 0x75,
+ 0x0b, 0xad, 0xdc, 0x00,
+ 0x4c, 0x40, 0x92, 0x6b,
+ 0x4a, 0xa2, 0x1c, 0x00,
+ 0x8c, 0x4b, 0xfb, 0x14,
+ 0x02, 0x91, 0x82, 0xab,
+ 0x94, 0x1b, 0x8e, 0xb3,
+ 0xfa, 0x35, 0x85, 0x9d,
+ 0x91, 0x4b, 0x13, 0x94,
+ 0x4c, 0x52, 0x8e, 0x45,
+ 0x0d, 0x0a, 0xf1, 0x84,
+ 0x08, 0x55, 0xe1, 0xdc,
+ 0xdc, 0x00, 0x4a, 0x10,
+ 0x0c, 0x94, 0x1b, 0xa4,
+ 0x12, 0xc4, 0xe0, 0x88,
+ 0x16, 0x44, 0x60, 0x88,
+ 0x14, 0x63, 0xe0, 0x88,
+ 0x67, 0x01, 0x14, 0xa0,
+ 0x14, 0x95, 0xc0, 0x09,
+ 0x0c, 0x65, 0xfc, 0x24,
+ 0x14, 0xa5, 0xea, 0x20,
+ 0x52, 0x62, 0xfc, 0x2c,
+ 0x34, 0x63, 0xf1, 0xa4,
+ 0xf0, 0x80, 0x12, 0x94,
+ 0xf0, 0x80, 0x0c, 0x64,
+ 0x93, 0x6d, 0x13, 0x94,
+ 0x1c, 0x00, 0x48, 0xc0,
+ 0x9c, 0x00, 0x4a, 0x10,
+ 0x01, 0x11, 0x88, 0xcb,
+ 0x85, 0x6d, 0x81, 0x61,
+ 0x50, 0x84, 0x48, 0x32,
+ 0xc4, 0x04, 0x0c, 0x60,
+ 0x40, 0x00, 0x48, 0x85,
+ 0xd0, 0x9c, 0x42, 0x12,
+ 0x42, 0xca, 0xfc, 0xf5,
+ 0x9b, 0x44, 0xe6, 0x82,
+ 0xc4, 0x17, 0x92, 0x13,
+ 0x84, 0x5e, 0x88, 0x13,
+ 0x88, 0x31, 0x02, 0x91,
+ 0xe6, 0xb5, 0x81, 0x9d,
+ 0x02, 0x2a, 0x91, 0x14,
+ 0x0c, 0x28, 0xe0, 0x10,
+ 0xc0, 0x00, 0x40, 0x01,
+ 0xff, 0x31, 0x1b, 0x64,
+ 0x81, 0xc1, 0x7f, 0x41,
+ 0x13, 0x6e, 0x8b, 0x75,
+ 0x7f, 0xb1, 0x8c, 0x5b,
+ 0x03, 0x45, 0xff, 0x61,
+ 0x8a, 0x9b, 0x81, 0x11,
+ 0xfe, 0x1c, 0x12, 0xa5,
+ 0x19, 0xa4, 0x91, 0xab,
+ 0xdc, 0x00, 0x46, 0xa0,
+ 0xdc, 0x00, 0x56, 0x10,
+ 0xfc, 0x28, 0x0a, 0x55,
+ 0x48, 0x50, 0x91, 0x5b,
+ 0x4c, 0x10, 0x5c, 0x00,
+ 0x02, 0x11, 0xdc, 0x00,
+ 0x85, 0x1d, 0x92, 0x5b,
+ 0x91, 0xbb, 0x80, 0xa5,
+ 0x91, 0x6b, 0xfa, 0x65,
+ 0x91, 0xbb, 0xfa, 0x25,
+ 0x91, 0x6b, 0x8c, 0x85,
+ 0x42, 0x32, 0x8c, 0x45,
+ 0x02, 0x14, 0xf1, 0x90,
+ 0x03, 0x0a, 0xf0, 0x80,
+ 0x86, 0x95, 0xe1, 0xdc,
+ 0x02, 0xc4, 0x1b, 0x94,
+ 0x0a, 0xb4, 0xe0, 0x88,
+ 0x14, 0x64, 0x60, 0x88,
+ 0x12, 0x13, 0xe0, 0x88,
+ 0x67, 0x01, 0x12, 0x90,
+ 0x12, 0x55, 0xc0, 0x09,
+ 0x02, 0x15, 0xfc, 0x14,
+ 0x12, 0x95, 0xea, 0x20,
+ 0x4a, 0x12, 0xfc, 0x28,
+ 0x32, 0x13, 0xf1, 0x94,
+ 0xf0, 0x80, 0x0a, 0x54,
+ 0xf0, 0x80, 0x02, 0x14,
+ 0x80, 0x95, 0x83, 0x5d,
+ 0x89, 0x3d, 0x81, 0x85,
+ 0x9f, 0x14, 0x80, 0xc5,
+ 0xe6, 0x82, 0x4a, 0x6a,
+ 0x98, 0x13, 0x01, 0x55,
+ 0x66, 0x82, 0x42, 0xba,
+ 0x1b, 0x54, 0x98, 0x5b,
+ 0xc4, 0x17, 0x8a, 0x13,
+ 0x84, 0x8e, 0x8a, 0x13,
+ 0x82, 0xc1, 0x13, 0x64,
+ 0x9f, 0x54, 0x88, 0x61,
+ 0x8b, 0xcb, 0x97, 0x14,
+ 0x42, 0x0a, 0xe8, 0xf5,
+ 0x81, 0x51, 0x66, 0x86,
+ 0xc4, 0x17, 0x9b, 0x24,
+ 0x54, 0x22, 0x0b, 0x85,
+ 0x19, 0x2e, 0xf0, 0x84,
+ 0x14, 0x1b, 0x84, 0xbb,
+ 0x7f, 0xc1, 0xff, 0x21,
+ 0x81, 0xe5, 0x81, 0x61,
+ 0x91, 0x9b, 0xed, 0x94,
+ 0x46, 0x90, 0x45, 0x94,
+ 0x44, 0x60, 0xdc, 0x00,
+ 0x91, 0x9b, 0xdc, 0x00,
+ 0x5c, 0x00, 0x58, 0x60,
+ 0xdc, 0x00, 0x48, 0x90,
+ 0x81, 0x6d, 0x82, 0x61,
+ 0x91, 0x2b, 0x80, 0xa5,
+ 0x91, 0xcb, 0xfc, 0x05,
+ 0x91, 0x2b, 0xfa, 0xc5,
+ 0x91, 0xcb, 0x8c, 0xc5,
+ 0x42, 0x32, 0x8c, 0x85,
+ 0x02, 0x14, 0xf1, 0x90,
+ 0x03, 0x0a, 0xf0, 0x80,
+ 0x86, 0xd5, 0xe1, 0xdc,
+ 0x02, 0x54, 0x1b, 0x94,
+ 0x14, 0xbb, 0xe0, 0x88,
+ 0xe0, 0x88, 0x0c, 0x24,
+ 0xe0, 0x88, 0x14, 0xc4,
+ 0x12, 0x90, 0x12, 0x13,
+ 0xc0, 0x0a, 0x64, 0x81,
+ 0xfc, 0x18, 0x12, 0x65,
+ 0xe9, 0xc0, 0x02, 0x15,
+ 0x7c, 0x28, 0x12, 0x95,
+ 0x4c, 0x12, 0x96, 0xab,
+ 0x32, 0x13, 0xf1, 0x98,
+ 0xf0, 0x80, 0x0c, 0x64,
+ 0xf0, 0x80, 0x02, 0x14,
+ 0x4c, 0xca, 0x01, 0x55,
+ 0x46, 0xca, 0xe0, 0x04,
+ 0x17, 0x14, 0xe0, 0x10,
+ 0xdc, 0x00, 0x58, 0x20,
+ 0x02, 0x06, 0x9b, 0x24,
+ 0x8a, 0x13, 0xc0, 0x00,
+ 0xe6, 0x82, 0x42, 0x1a,
+ 0xc4, 0x17, 0x98, 0x13,
+ 0x84, 0x8e, 0x84, 0x13,
+ 0x82, 0x51, 0x19, 0x24,
+ 0x8e, 0x23, 0x8e, 0xa3,
+ 0x83, 0x5b, 0x97, 0x14,
+ 0x97, 0x24, 0xea, 0x35,
+ 0x9b, 0xb4, 0x9f, 0x14,
+ 0xe6, 0x8a, 0x40, 0x0a,
+ 0x00, 0x13, 0x8f, 0x34,
+ 0x1d, 0x94, 0xc4, 0x07,
+ 0x4c, 0xb2, 0xc4, 0x17,
+ 0x80, 0xb3, 0x70, 0x84,
+ 0x81, 0x11, 0x09, 0x15,
+ 0x82, 0xab, 0x15, 0x04,
+ 0x86, 0x2b, 0x0f, 0x3e,
+ 0x8c, 0x4b, 0x16, 0x3b,
+ 0x82, 0x03, 0x1b, 0x14,
+ 0x67, 0x90, 0x00, 0x00,
+ 0x81, 0x65, 0x81, 0x51,
+ 0x88, 0x41, 0x02, 0x51,
+ 0x88, 0x21, 0x08, 0x31,
+ 0x9f, 0xc4, 0x88, 0x11,
+ 0x88, 0x45, 0x99, 0x5d,
+ 0x93, 0xcb, 0x80, 0xc8,
+ 0x84, 0xc4, 0xfc, 0xd5,
+ 0x84, 0x15, 0x91, 0xcb,
+ 0x5f, 0xfd, 0x3f, 0x28,
+ 0x88, 0xc4, 0xc3, 0xff,
+ 0x80, 0xf5, 0x91, 0xcb,
+ 0x91, 0xcb, 0x8c, 0xc4,
+ 0x90, 0xc4, 0x80, 0x95,
+ 0xf8, 0xe5, 0x91, 0xcb,
+ 0x80, 0x16, 0x89, 0x11,
+ 0x7c, 0x04, 0x81, 0xd5,
+ 0x89, 0x24, 0x94, 0x4b,
+ 0x00, 0x13, 0x8b, 0x34,
+ 0x95, 0x04, 0xe0, 0x20,
+ 0xbc, 0x0e, 0xfe, 0x54,
+ 0x77, 0x58, 0xbe, 0x04,
+ 0x1b, 0x04, 0xef, 0xf8,
+ 0x0f, 0x34, 0x94, 0x1b,
+ 0x17, 0x24, 0x82, 0x11,
+ 0x0e, 0x03, 0x8e, 0x63,
+ 0x1b, 0x0e, 0x8e, 0xb3,
+ 0x85, 0x1b, 0x8e, 0x33,
+ 0x1e, 0xf0, 0xf0, 0x15,
+ 0x0c, 0x0c, 0xe5, 0x00,
+ 0xdd, 0x93, 0xf6, 0x7c,
0xfe, 0x7c, 0x04, 0x0c,
0xec, 0x60, 0x1e, 0xf0,
0x82, 0x9b, 0x00, 0xab,
@@ -5463,7 +5753,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0xe1, 0x80, 0x42, 0x0a,
0x1f, 0xfd, 0x57, 0xfe,
0x0e, 0x06, 0x40, 0x3f,
- 0x7e, 0x38, 0xc0, 0x00,
+ 0x57, 0x58, 0xc0, 0x00,
0x04, 0x04, 0xef, 0xd4,
0xd0, 0x17, 0x61, 0xe0,
0x45, 0xfe, 0x24, 0x1f,
@@ -5480,9 +5770,9 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x41, 0xfe, 0x92, 0x2b,
0x43, 0xfe, 0x5f, 0xfc,
0xc0, 0x3f, 0x1f, 0xfc,
- 0x6f, 0xd4, 0x72, 0xc8,
+ 0x6f, 0xd4, 0x4b, 0xe8,
0x12, 0x2b, 0x90, 0x3b,
- 0x72, 0x78, 0x90, 0x3b,
+ 0x4b, 0x98, 0x90, 0x3b,
0x02, 0x3b, 0xef, 0xd4,
0x23, 0xa4, 0x80, 0x2b,
0xe0, 0x28, 0x44, 0x6a,
@@ -5495,7 +5785,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0xed, 0x80, 0x42, 0x0a,
0x5f, 0xfc, 0x45, 0xfe,
0xc0, 0x04, 0x47, 0xf6,
- 0xef, 0xd4, 0x7a, 0x48,
+ 0xef, 0xd4, 0x53, 0x68,
0x47, 0xfe, 0x3e, 0x24,
0xc0, 0x3f, 0x7f, 0xfd,
0x89, 0xb4, 0xa7, 0x74,
@@ -5527,29 +5817,29 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x41, 0xfe, 0x5f, 0xff,
0xa1, 0x1b, 0xdf, 0xfc,
0x0b, 0x24, 0x82, 0x45,
- 0x6c, 0xd8, 0x96, 0x3b,
+ 0x45, 0xf8, 0x96, 0x3b,
0x01, 0x31, 0xef, 0xd4,
- 0x75, 0xf8, 0x8e, 0x2b,
+ 0x4f, 0x18, 0x8e, 0x2b,
0x81, 0x95, 0xef, 0xd4,
0x8e, 0x2b, 0x01, 0x31,
- 0xef, 0xd4, 0x75, 0xa8,
+ 0xef, 0xd4, 0x4e, 0xc8,
0x96, 0x3b, 0x0b, 0x24,
- 0xef, 0xd4, 0x6c, 0x08,
+ 0xef, 0xd4, 0x45, 0x28,
0x43, 0xfe, 0xa1, 0x1d,
0x5f, 0xff, 0x1f, 0xfd,
0xdf, 0xfc, 0x41, 0xfe,
0x82, 0xe5, 0xa1, 0x1b,
0x96, 0x3b, 0x0b, 0x24,
- 0xef, 0xd4, 0x6b, 0x48,
+ 0xef, 0xd4, 0x44, 0x68,
0x60, 0xf8, 0x04, 0x14,
0x24, 0x0f, 0xc5, 0x07,
0x01, 0x31, 0xc5, 0x17,
- 0x74, 0x18, 0x8e, 0x2b,
+ 0x4d, 0x38, 0x8e, 0x2b,
0x81, 0xe5, 0xef, 0xd4,
0x8e, 0x2b, 0x01, 0x31,
- 0xef, 0xd4, 0x73, 0xc8,
+ 0xef, 0xd4, 0x4c, 0xe8,
0x96, 0x3b, 0x0b, 0x24,
- 0xef, 0xd4, 0x6a, 0x28,
+ 0xef, 0xd4, 0x43, 0x48,
0x60, 0xf8, 0x04, 0x14,
0x24, 0x0f, 0xc5, 0x07,
0x21, 0x1d, 0xc5, 0x17,
@@ -5625,24 +5915,25 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0xf0, 0x7c, 0x0c, 0xcc,
0xc1, 0xc3, 0xdd, 0x93,
0xfa, 0x7c, 0x04, 0x0c,
- 0xed, 0x70, 0x1e, 0xf0,
- 0x99, 0x5e, 0xbf, 0x74,
- 0xa5, 0x3e, 0xa1, 0x4e,
- 0xa3, 0x1e, 0xab, 0x2e,
- 0x0e, 0x05, 0x9e, 0x14,
- 0x1e, 0x85, 0xe0, 0x20,
- 0x1e, 0x65, 0xe0, 0x84,
- 0xbd, 0x94, 0xe0, 0x80,
- 0x82, 0x0b, 0x1f, 0x0e,
- 0x45, 0xd8, 0xa9, 0x1e,
- 0x1b, 0x0e, 0xe8, 0x14,
+ 0xed, 0x90, 0x1e, 0xf0,
+ 0xe0, 0x84, 0x1e, 0x75,
+ 0xa7, 0x4e, 0x9d, 0x5e,
+ 0xaf, 0x2e, 0xa1, 0x3e,
+ 0x9e, 0x14, 0xa9, 0x1e,
+ 0xe0, 0x20, 0x0e, 0x05,
+ 0xe0, 0x8c, 0x1e, 0x85,
+ 0xe0, 0x88, 0x1e, 0x65,
+ 0xe0, 0x80, 0x1e, 0xa5,
+ 0x82, 0x0b, 0x25, 0x0e,
+ 0x47, 0xf8, 0xad, 0x1e,
+ 0x1f, 0x0e, 0xe8, 0x14,
0x0e, 0x05, 0x83, 0xc1,
0x4c, 0x05, 0xe0, 0x18,
0x0e, 0x09, 0xeb, 0x54,
0xdc, 0x34, 0xe0, 0x58,
- 0x00, 0x60, 0x2d, 0x0e,
+ 0x00, 0x60, 0x31, 0x0e,
0xc0, 0x0b, 0x65, 0x41,
- 0x9e, 0x48, 0xa7, 0x0e,
+ 0x9e, 0x48, 0xab, 0x0e,
0xe0, 0x20, 0x0e, 0x1b,
0x5c, 0x58, 0x9c, 0x28,
0x4c, 0x35, 0xa9, 0xcf,
@@ -5654,35 +5945,35 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x6d, 0x6d, 0x4c, 0x41,
0x4c, 0x51, 0xc0, 0x02,
0xc0, 0x02, 0x6d, 0x71,
- 0xe8, 0x14, 0x49, 0x08,
+ 0xe8, 0x14, 0x4b, 0x28,
0x60, 0x18, 0x0e, 0x05,
- 0x0e, 0x29, 0x80, 0xbb,
- 0x90, 0xab, 0x60, 0x4c,
- 0xf0, 0x14, 0x54, 0x05,
+ 0x0e, 0x29, 0x80, 0x9b,
+ 0x90, 0xbb, 0x60, 0x4c,
+ 0xf0, 0x14, 0x56, 0x05,
0xe0, 0x48, 0x0e, 0x09,
- 0x12, 0x19, 0x97, 0x9e,
- 0x81, 0x91, 0x60, 0x34,
+ 0x14, 0x19, 0x9b, 0xae,
+ 0x81, 0xa1, 0x60, 0x34,
0xe0, 0x90, 0x0e, 0x39,
0xe0, 0x94, 0x0e, 0x49,
- 0x78, 0x18, 0x54, 0x01,
+ 0x78, 0x18, 0x56, 0x01,
0xe7, 0xf4, 0x03, 0x0a,
- 0x78, 0x10, 0x54, 0x31,
+ 0x78, 0x10, 0x56, 0x31,
0x00, 0x10, 0x81, 0x01,
0x02, 0x70, 0x04, 0x04,
- 0x54, 0x41, 0xe4, 0x60,
+ 0x56, 0x41, 0xe4, 0x60,
0x90, 0x4b, 0x78, 0x0c,
- 0xf8, 0x14, 0x54, 0x21,
+ 0xf8, 0x14, 0x56, 0x21,
0xe0, 0x1c, 0x0e, 0x35,
- 0x50, 0x01, 0x9d, 0x1e,
+ 0x50, 0x01, 0xa3, 0x1e,
0x99, 0x01, 0x60, 0x48,
- 0x50, 0x91, 0xa8, 0x06,
- 0x50, 0x91, 0xe0, 0x54,
- 0xa7, 0x04, 0xe0, 0x58,
- 0xad, 0x24, 0xa9, 0x14,
- 0xef, 0xe4, 0x6b, 0xe8,
+ 0x50, 0xa1, 0xac, 0x06,
+ 0x50, 0xa1, 0xe0, 0x54,
+ 0xab, 0x04, 0xe0, 0x58,
+ 0xb1, 0x24, 0xad, 0x14,
+ 0xef, 0xe0, 0x74, 0x68,
0x8d, 0x51, 0x21, 0x0b,
- 0x2b, 0xc4, 0x90, 0xa5,
- 0xad, 0x14, 0x80, 0x9b,
+ 0x2f, 0xc4, 0x90, 0xa5,
+ 0xb1, 0x14, 0x80, 0xab,
0x64, 0x01, 0x00, 0x60,
0x04, 0x70, 0x40, 0x09,
0x01, 0x65, 0xe4, 0xa0,
@@ -5690,12 +5981,12 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0xec, 0x04, 0x06, 0x30,
0xa1, 0x3b, 0xc1, 0x4e,
0x1e, 0x05, 0xfe, 0x75,
- 0xa1, 0x9b, 0x60, 0x88,
- 0x99, 0x0e, 0x96, 0xf5,
+ 0xa1, 0xab, 0x60, 0x90,
+ 0x9d, 0x0e, 0x96, 0xd5,
0xe0, 0xa4, 0x18, 0x09,
- 0x12, 0xe5, 0xa1, 0x0b,
- 0x84, 0x60, 0x16, 0x80,
- 0x64, 0x60, 0x16, 0x80,
+ 0x12, 0xc5, 0xa1, 0x0b,
+ 0x84, 0x60, 0x12, 0x80,
+ 0x64, 0x60, 0x12, 0x80,
0xe4, 0x80, 0x02, 0xc0,
0x64, 0xe0, 0x04, 0xc0,
0xe5, 0xf0, 0x06, 0xc0,
@@ -5705,165 +5996,170 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x66, 0x01, 0x0a, 0x60,
0x18, 0x60, 0x40, 0x04,
0xc0, 0x06, 0x67, 0x01,
- 0x8d, 0xae, 0x8f, 0xbe,
+ 0x8d, 0xbe, 0x8f, 0x9e,
0x89, 0x5e, 0x8b, 0xce,
0xfc, 0x6e, 0xfe, 0x4e,
- 0xad, 0x04, 0xbe, 0x0e,
- 0x9f, 0x54, 0xa1, 0x44,
- 0xa3, 0x04, 0xbc, 0x0e,
- 0xef, 0xec, 0x69, 0x48,
- 0x80, 0x9b, 0x2d, 0x14,
- 0xa1, 0x9b, 0x2b, 0xc4,
- 0x05, 0xf5, 0x88, 0xc5,
- 0xab, 0xc4, 0x95, 0x51,
- 0x18, 0x09, 0xa5, 0x24,
- 0xa1, 0x0b, 0xe0, 0x70,
- 0x18, 0x09, 0xee, 0x25,
- 0xa3, 0x0b, 0xe0, 0x74,
- 0x1d, 0x04, 0x96, 0xf5,
- 0xe4, 0x40, 0x02, 0x20,
- 0x99, 0x24, 0xca, 0x54,
- 0x00, 0xc0, 0x00, 0x34,
- 0xfe, 0x6e, 0xe4, 0x40,
- 0xbe, 0x0e, 0xfc, 0x2e,
- 0x96, 0x1b, 0x3c, 0x1e,
- 0x98, 0xbb, 0x23, 0x04,
- 0xad, 0x44, 0x9b, 0x24,
- 0xef, 0xdc, 0x4c, 0xa8,
- 0x8f, 0x51, 0x21, 0x0b,
- 0x00, 0x9b, 0x90, 0x85,
- 0xf3, 0xc5, 0x96, 0xcb,
- 0x66, 0xf0, 0x00, 0xc0,
- 0x7b, 0x38, 0x94, 0x2b,
- 0x96, 0x3b, 0x6f, 0xe4,
- 0xa1, 0x9b, 0x80, 0x9b,
- 0x97, 0x51, 0x82, 0x65,
- 0x00, 0x9e, 0x99, 0x04,
- 0xe5, 0x70, 0x1e, 0xf0,
- 0x92, 0x0b, 0x02, 0x5e,
- 0xf2, 0x7c, 0x0c, 0x0c,
- 0x21, 0x04, 0xdd, 0x93,
- 0xe6, 0x70, 0x02, 0x80,
- 0x64, 0x01, 0x04, 0x60,
- 0x94, 0x3b, 0x40, 0x09,
- 0x00, 0x59, 0x96, 0x4b,
- 0xab, 0x04, 0xe0, 0x2c,
- 0xa1, 0x1e, 0xfe, 0x1e,
- 0xa0, 0x01, 0x2d, 0x14,
- 0xbe, 0x2e, 0xfc, 0x6e,
- 0x3c, 0x1e, 0x95, 0x2e,
- 0x93, 0x0e, 0x8e, 0x1b,
- 0x7f, 0x78, 0x9d, 0x24,
- 0x19, 0x04, 0xef, 0xe0,
- 0x21, 0x9b, 0x80, 0x9b,
- 0xf6, 0x95, 0x99, 0x51,
- 0x0e, 0x80, 0x1d, 0xbe,
- 0xc0, 0x02, 0x64, 0xd1,
- 0x94, 0x2b, 0x27, 0x04,
- 0x8e, 0x4b, 0x29, 0x14,
- 0x64, 0xb8, 0xa1, 0x34,
- 0x80, 0x9b, 0xef, 0xe4,
- 0x8a, 0xa5, 0xa1, 0x9b,
- 0x9d, 0x51, 0x79, 0xc5,
- 0x60, 0x70, 0x16, 0x09,
- 0xa1, 0x0b, 0x96, 0xcb,
- 0x0e, 0x09, 0xd4, 0xe5,
- 0x04, 0x60, 0x60, 0x58,
- 0xc0, 0x02, 0x65, 0x00,
- 0x66, 0x01, 0x06, 0x60,
- 0x08, 0x60, 0x40, 0x04,
- 0xc0, 0x06, 0x67, 0x01,
- 0x68, 0x10, 0x59, 0x48,
- 0x21, 0x0b, 0x8c, 0x1b,
- 0xd0, 0x95, 0x91, 0x51,
- 0xad, 0x14, 0xab, 0xc4,
+ 0xb1, 0x04, 0xbe, 0x0e,
+ 0xa5, 0x54, 0xa7, 0x44,
+ 0xa9, 0x04, 0xbc, 0x0e,
+ 0xef, 0xe8, 0x72, 0x08,
+ 0x80, 0xab, 0x31, 0x14,
+ 0xa1, 0xab, 0x2f, 0xc4,
+ 0x05, 0xe5, 0x88, 0xa5,
+ 0xaf, 0xc4, 0x95, 0x51,
0xe0, 0x70, 0x18, 0x09,
- 0xd0, 0x25, 0xa1, 0x0b,
- 0x04, 0x70, 0x02, 0x0b,
- 0x06, 0x60, 0xe4, 0xa0,
+ 0xee, 0x45, 0xa1, 0x0b,
+ 0xe0, 0x74, 0x18, 0x09,
+ 0x96, 0xf5, 0xa3, 0x0b,
+ 0xa1, 0x14, 0xa3, 0x04,
+ 0x00, 0x34, 0x9d, 0x24,
+ 0xe4, 0x40, 0x00, 0xc0,
+ 0xa0, 0x11, 0x46, 0x54,
+ 0xfc, 0x2e, 0xfe, 0x6e,
+ 0x3c, 0x1e, 0xbe, 0x0e,
+ 0x29, 0x04, 0x92, 0x1b,
+ 0x9f, 0x24, 0x98, 0x9b,
+ 0x65, 0xb8, 0xb1, 0x44,
+ 0x21, 0x0b, 0xef, 0xd8,
+ 0x90, 0x85, 0x8f, 0x51,
+ 0x92, 0xcb, 0x00, 0xab,
+ 0x00, 0xc0, 0xf3, 0xd5,
+ 0x96, 0x2b, 0x66, 0xf0,
+ 0x6f, 0xe4, 0x43, 0xc8,
+ 0x80, 0xab, 0x92, 0x3b,
+ 0x82, 0x65, 0xa1, 0xab,
+ 0x9d, 0x04, 0x97, 0x51,
+ 0x1e, 0xf0, 0x00, 0xae,
+ 0x02, 0x5e, 0xe5, 0x90,
+ 0x0c, 0x0c, 0x94, 0x0b,
+ 0xdd, 0x93, 0xf2, 0x7c,
+ 0x02, 0x80, 0x27, 0x04,
+ 0x04, 0x60, 0xe6, 0x70,
0x40, 0x09, 0x64, 0x01,
- 0x65, 0xf8, 0x8c, 0x1b,
- 0x2d, 0x14, 0xef, 0xfc,
- 0x2b, 0xc4, 0x80, 0x9b,
- 0xe9, 0x05, 0x93, 0x51,
- 0x04, 0x80, 0x29, 0x7e,
- 0xc0, 0x01, 0x66, 0x31,
- 0x95, 0xb4, 0x9f, 0x74,
- 0x27, 0x2e, 0xfc, 0x2e,
- 0xe4, 0x40, 0x00, 0x70,
- 0x02, 0x04, 0x3e, 0xbe,
- 0x77, 0x17, 0xe1, 0x7c,
- 0x1d, 0x34, 0x94, 0x2b,
- 0x2b, 0x04, 0x82, 0x03,
- 0xe1, 0x14, 0x0a, 0x04,
- 0x8e, 0x4b, 0x11, 0x5e,
- 0x02, 0x00, 0x2d, 0x04,
- 0xbc, 0x0e, 0xe7, 0x00,
- 0x47, 0x58, 0xa3, 0x04,
- 0x80, 0x9b, 0xe8, 0x04,
- 0x60, 0x35, 0xa1, 0x9b,
- 0xc0, 0x00, 0x0a, 0xf6,
- 0x94, 0x3b, 0x2b, 0x04,
- 0xad, 0x24, 0xa9, 0x14,
- 0xe3, 0x04, 0x00, 0x09,
- 0xa7, 0x14, 0x8f, 0x1e,
- 0x8d, 0x1e, 0x9d, 0x44,
- 0xa5, 0x14, 0x8b, 0x6e,
- 0xfe, 0x2e, 0x89, 0xbe,
- 0xb0, 0x11, 0x11, 0x24,
- 0xfc, 0x2e, 0x9b, 0x64,
- 0x8c, 0x5b, 0x3e, 0x7e,
- 0xa3, 0x04, 0xbc, 0x0e,
- 0x43, 0x18, 0x93, 0x24,
- 0x80, 0x9b, 0xef, 0xe4,
- 0x58, 0x75, 0xa1, 0x9b,
- 0xc0, 0x00, 0x0b, 0x46,
- 0x8c, 0x2b, 0x2b, 0x04,
- 0x94, 0x3b, 0x25, 0x14,
- 0x29, 0x74, 0xa7, 0x64,
- 0xe7, 0x10, 0x00, 0x00,
- 0x8c, 0x4b, 0xa0, 0x11,
- 0x6f, 0xe4, 0x50, 0x68,
- 0x00, 0x9b, 0x8e, 0x5b,
- 0xa1, 0x9b, 0x8c, 0xbb,
- 0x0b, 0xc6, 0x54, 0x15,
- 0x2b, 0x04, 0xc0, 0x00,
- 0x64, 0x91, 0x0c, 0x80,
- 0x25, 0x14, 0xc0, 0x03,
- 0x0e, 0x3b, 0x94, 0x2b,
- 0x00, 0x00, 0x8c, 0x4b,
- 0x6f, 0x98, 0xe7, 0x20,
- 0xb8, 0x11, 0x6f, 0xf8,
- 0xa1, 0x9b, 0x80, 0x9b,
- 0x0b, 0xd6, 0x4e, 0xd5,
- 0x25, 0x04, 0xc0, 0x00,
- 0x0e, 0x2b, 0x94, 0x1b,
- 0x4c, 0x38, 0x8c, 0x3b,
- 0x80, 0x9b, 0xe8, 0x04,
- 0x4c, 0x75, 0xa1, 0x9b,
+ 0x92, 0x4b, 0x96, 0x3b,
+ 0xe0, 0x2c, 0x00, 0x59,
+ 0xfe, 0x1e, 0xaf, 0x04,
+ 0x31, 0x14, 0xa7, 0x1e,
+ 0xfc, 0x6e, 0xa0, 0x01,
+ 0x99, 0x2e, 0xbe, 0x2e,
+ 0x8e, 0x1b, 0x3c, 0x1e,
+ 0xa3, 0x24, 0x97, 0x0e,
+ 0xef, 0xe0, 0x48, 0x08,
+ 0x80, 0xab, 0x1d, 0x04,
+ 0x99, 0x51, 0x21, 0xab,
+ 0x23, 0x9e, 0xf6, 0x95,
+ 0x64, 0xd1, 0x0e, 0x80,
+ 0x2b, 0x04, 0xc0, 0x02,
+ 0x2d, 0x14, 0x96, 0x2b,
+ 0xa7, 0x34, 0x8e, 0x4b,
+ 0xef, 0xe0, 0x6d, 0x48,
+ 0xa1, 0xab, 0x80, 0xab,
+ 0x79, 0xc5, 0x8a, 0xa5,
+ 0x12, 0x09, 0x9d, 0x51,
+ 0x92, 0xcb, 0x60, 0x70,
+ 0xd6, 0x05, 0xa1, 0x0b,
+ 0x60, 0x58, 0x0e, 0x09,
+ 0x65, 0x00, 0x04, 0x60,
+ 0x06, 0x60, 0xc0, 0x02,
+ 0x40, 0x04, 0x66, 0x01,
+ 0x67, 0x01, 0x08, 0x60,
+ 0x5b, 0x78, 0xc0, 0x06,
+ 0x8c, 0x1b, 0x68, 0x10,
+ 0x91, 0x51, 0x21, 0x0b,
+ 0xaf, 0xc4, 0xd0, 0xb5,
+ 0x18, 0x09, 0xb1, 0x14,
+ 0xa1, 0x0b, 0xe0, 0x70,
+ 0x02, 0x0b, 0xd0, 0x45,
+ 0xe4, 0xa0, 0x04, 0x70,
+ 0x64, 0x01, 0x06, 0x60,
+ 0x8c, 0x1b, 0x40, 0x09,
+ 0xef, 0xfc, 0x65, 0xe8,
+ 0x80, 0xab, 0x31, 0x14,
+ 0x93, 0x51, 0x2f, 0xc4,
+ 0x2d, 0x7e, 0xe9, 0x15,
+ 0x66, 0x31, 0x04, 0x80,
+ 0xa5, 0x74, 0xc0, 0x01,
+ 0xfc, 0x2e, 0x99, 0x94,
+ 0x00, 0x70, 0x2b, 0x2e,
+ 0x3e, 0x9e, 0xe4, 0x40,
+ 0xe1, 0x7c, 0x02, 0x04,
+ 0x96, 0x2b, 0x77, 0x17,
+ 0x82, 0x03, 0x23, 0x34,
+ 0x0a, 0x04, 0x2f, 0x04,
+ 0x15, 0x5e, 0xe1, 0x14,
+ 0x31, 0x04, 0x8e, 0x4b,
+ 0xe7, 0x00, 0x02, 0x00,
+ 0xa9, 0x04, 0xbc, 0x0e,
+ 0xe8, 0x04, 0x48, 0x08,
+ 0xa1, 0xab, 0x80, 0xab,
+ 0x0a, 0xf6, 0x60, 0x35,
+ 0x2f, 0x04, 0xc0, 0x00,
+ 0xad, 0x24, 0x96, 0x3b,
+ 0x00, 0x09, 0xa1, 0x14,
+ 0x8f, 0x2e, 0xe3, 0x04,
+ 0xb0, 0x11, 0x2b, 0x24,
+ 0x8d, 0x2e, 0xa3, 0x44,
+ 0x8b, 0x6e, 0xb1, 0x24,
+ 0xfe, 0x2e, 0x89, 0x9e,
+ 0x9f, 0x64, 0x95, 0x24,
+ 0x3e, 0x7e, 0xfc, 0x2e,
+ 0xbc, 0x0e, 0x8c, 0x5b,
+ 0x97, 0x24, 0xa9, 0x04,
+ 0xef, 0xe0, 0x4b, 0xa8,
+ 0xa1, 0xab, 0x80, 0xab,
+ 0x0b, 0x46, 0x58, 0x75,
+ 0x2f, 0x04, 0xc0, 0x00,
+ 0x21, 0x74, 0x8c, 0x2b,
+ 0xab, 0x64, 0x96, 0x3b,
+ 0x00, 0x00, 0x2d, 0x94,
+ 0x02, 0x70, 0xe7, 0x10,
+ 0x8c, 0x4b, 0xe4, 0x40,
+ 0x6f, 0xe0, 0x58, 0xe8,
+ 0x00, 0xab, 0x92, 0x5b,
+ 0x21, 0xab, 0x8e, 0x2b,
+ 0x52, 0xd5, 0x92, 0x7b,
+ 0xc0, 0x00, 0x0b, 0xc6,
+ 0x08, 0x80, 0x2f, 0x04,
+ 0xc0, 0x03, 0x64, 0x91,
+ 0x64, 0x70, 0x02, 0x20,
+ 0x16, 0x2b, 0x84, 0x9b,
+ 0x25, 0x4e, 0x8e, 0x3b,
+ 0xe7, 0x20, 0x00, 0x00,
+ 0xef, 0xf4, 0x78, 0x28,
+ 0xa1, 0xab, 0x80, 0xab,
+ 0x0b, 0xd6, 0x4e, 0x75,
+ 0x12, 0x0b, 0xc0, 0x00,
+ 0x25, 0x34, 0x96, 0x1b,
+ 0x4c, 0xb8, 0x8e, 0x2b,
+ 0x80, 0xab, 0xe8, 0x04,
+ 0x4c, 0x15, 0xa1, 0xab,
0xc0, 0x00, 0x0b, 0xe6,
- 0xa5, 0x14, 0xab, 0x74,
- 0x17, 0x54, 0xa1, 0xc4,
- 0xe7, 0x30, 0x00, 0x70,
- 0xe0, 0x10, 0x02, 0x45,
- 0xe1, 0x88, 0x0e, 0x3b,
- 0x63, 0x20, 0x0e, 0x19,
- 0xe4, 0x40, 0x04, 0x50,
- 0x89, 0xbe, 0x8b, 0x6e,
- 0x9d, 0xc4, 0xfe, 0xce,
- 0xbe, 0xae, 0xfc, 0xce,
- 0x9b, 0x24, 0xbc, 0x2e,
- 0xef, 0xf8, 0x7b, 0x88,
- 0xa1, 0x9b, 0x80, 0x9b,
- 0x0b, 0xf6, 0x44, 0xd5,
- 0x0e, 0x19, 0xc0, 0x00,
- 0x08, 0x80, 0x63, 0x80,
- 0xc0, 0x04, 0x64, 0x50,
- 0x94, 0x2b, 0x23, 0x04,
- 0x6f, 0xfc, 0x5d, 0x48,
- 0x00, 0x9b, 0x8c, 0x3b,
- 0xe0, 0x00, 0x4a, 0x06,
- 0xc1, 0xc3, 0xe1, 0x65,
+ 0x12, 0x15, 0xaf, 0x74,
+ 0x12, 0x2b, 0xe0, 0x10,
+ 0xa9, 0x94, 0xe0, 0x3c,
+ 0x0e, 0x0b, 0xb1, 0x44,
+ 0x0e, 0x39, 0xe1, 0x88,
+ 0x91, 0x9e, 0xe3, 0x20,
+ 0x8d, 0x2e, 0x8f, 0x4e,
+ 0x9f, 0x14, 0x8b, 0x1e,
+ 0x00, 0x70, 0x09, 0x0e,
+ 0xa3, 0x44, 0xe7, 0x30,
+ 0x9b, 0x14, 0xfe, 0x1e,
+ 0xa5, 0x34, 0xfc, 0x3e,
+ 0x04, 0x10, 0x27, 0x54,
+ 0x3e, 0x3e, 0xe4, 0x40,
+ 0xbc, 0x6e, 0x96, 0x3b,
+ 0xef, 0xf8, 0x43, 0xa8,
+ 0xa1, 0xab, 0x80, 0xab,
+ 0x5f, 0xfc, 0x30, 0xb8,
+ 0xc0, 0x00, 0x0b, 0xf6,
+ 0x63, 0x80, 0x0e, 0x19,
+ 0x64, 0x50, 0x08, 0x80,
+ 0x12, 0x0b, 0xc0, 0x04,
+ 0xa5, 0x34, 0x96, 0x2b,
+ 0xef, 0xfc, 0x5c, 0x68,
+ 0x4a, 0x06, 0x00, 0xab,
+ 0xdf, 0xa5, 0xe0, 0x00,
0xfa, 0x7c, 0x04, 0x0c,
0xec, 0x30, 0x1e, 0xf0,
0x82, 0xab, 0x19, 0x14,
@@ -5879,38 +6175,38 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x8c, 0x25, 0xad, 0x0b,
0xaf, 0x0b, 0x7c, 0xb4,
0x10, 0x0b, 0x9a, 0x15,
- 0x49, 0x98, 0x8e, 0x1b,
- 0xa3, 0x0d, 0xef, 0xdc,
+ 0x61, 0xf8, 0x8e, 0x1b,
+ 0xa3, 0x0d, 0xef, 0xd8,
0x8d, 0x15, 0x8c, 0x25,
0x8e, 0x45, 0xa5, 0x0b,
0xa7, 0x0b, 0x7c, 0xb4,
0x02, 0x60, 0x96, 0x95,
0x90, 0x0b, 0x64, 0x20,
- 0x6f, 0xdc, 0x79, 0x48,
+ 0x6f, 0xdc, 0x41, 0x08,
0xa3, 0x0d, 0x8e, 0x2b,
0x8b, 0x35, 0x82, 0x25,
0x8e, 0x1b, 0x10, 0x0b,
- 0xef, 0xdc, 0x48, 0x48,
+ 0xef, 0xd8, 0x60, 0xa8,
0xa3, 0x0d, 0x7c, 0xb4,
0x3e, 0x64, 0x92, 0x95,
0x8e, 0x1b, 0x90, 0x0b,
- 0x6f, 0xdc, 0x49, 0x48,
+ 0x6f, 0xd8, 0x61, 0xa8,
0x10, 0x0b, 0x8c, 0x2b,
- 0x51, 0x58, 0x8e, 0x1b,
- 0x8c, 0x2b, 0x6f, 0xdc,
+ 0x69, 0xb8, 0x8e, 0x1b,
+ 0x8c, 0x2b, 0x6f, 0xd8,
0x92, 0x1b, 0x14, 0x0b,
- 0x6f, 0xdc, 0x55, 0x08,
+ 0x6f, 0xd8, 0x6d, 0x68,
0x87, 0xb5, 0x8c, 0x2b,
0x64, 0x20, 0x02, 0x60,
- 0x77, 0x38, 0x90, 0x0b,
- 0x8e, 0x2b, 0x6f, 0xdc,
+ 0x7e, 0xf8, 0x90, 0x0b,
+ 0x8e, 0x2b, 0x6f, 0xd8,
0xa3, 0x0d, 0x7c, 0xb4,
0x3e, 0x64, 0x8c, 0x55,
0x8e, 0x1b, 0x90, 0x0b,
- 0x6f, 0xdc, 0x47, 0xa8,
+ 0x6f, 0xd8, 0x60, 0x08,
0x10, 0x0b, 0x8c, 0x2b,
- 0x52, 0x18, 0x8e, 0x1b,
- 0x8c, 0x2b, 0x6f, 0xdc,
+ 0x6a, 0x78, 0x8e, 0x1b,
+ 0x8c, 0x2b, 0x6f, 0xd8,
0x0e, 0x09, 0x85, 0x65,
0xc0, 0x05, 0x6f, 0xd1,
0x84, 0xe5, 0xa1, 0x0b,
@@ -5925,11 +6221,11 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0xe0, 0x58, 0x56, 0x21,
0xe0, 0x5c, 0x56, 0x31,
0xe0, 0x30, 0x56, 0x43,
- 0x6f, 0xdc, 0x42, 0xe8,
+ 0x6f, 0xd8, 0x5b, 0x48,
0x7c, 0xb4, 0x8e, 0x0b,
0x80, 0xb5, 0xa3, 0x0d,
0x8e, 0x0b, 0x3e, 0x14,
- 0xef, 0xdc, 0x4a, 0xe8,
+ 0xef, 0xd8, 0x63, 0x48,
0x98, 0xf1, 0x01, 0x01,
0x40, 0x16, 0x2c, 0x0e,
0x2e, 0x0e, 0xe0, 0x00,
@@ -5939,10 +6235,10 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x84, 0x6b, 0x02, 0x8b,
0x86, 0x7b, 0x60, 0x28,
0xa0, 0x08, 0xa2, 0x18,
- 0xe8, 0x10, 0x60, 0xe8,
+ 0xe8, 0x10, 0x62, 0x68,
0x60, 0x58, 0x10, 0x19,
0xa2, 0x04, 0x80, 0x2b,
- 0x64, 0xf8, 0xe0, 0x34,
+ 0x66, 0x78, 0xe0, 0x34,
0xc8, 0x17, 0x68, 0x10,
0xe0, 0x44, 0x0c, 0x19,
0x9c, 0x55, 0xa5, 0x1b,
@@ -6079,7 +6375,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x8d, 0x1e, 0xae, 0x04,
0xaf, 0x74, 0xa5, 0x14,
0xfe, 0x1e, 0xa7, 0x94,
- 0x4e, 0x38, 0x8f, 0x8e,
+ 0x4f, 0xb8, 0x8f, 0x8e,
0x16, 0x39, 0xe8, 0x10,
0x98, 0x1a, 0xe0, 0x94,
0xa5, 0x3b, 0x9a, 0x2a,
@@ -6162,7 +6458,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x80, 0x8b, 0x0b, 0x64,
0x8b, 0x91, 0x0d, 0x14,
0x02, 0x1b, 0x89, 0x04,
- 0x7c, 0x38, 0xe1, 0xa8,
+ 0x44, 0x18, 0xe1, 0xa8,
0x4c, 0x03, 0xef, 0xe0,
0x90, 0x0b, 0x60, 0x18,
0xc8, 0xf1, 0x1c, 0x8e,
@@ -6178,7 +6474,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x84, 0x3b, 0x06, 0x6b,
0x44, 0x06, 0x02, 0x7b,
0x0c, 0x0b, 0xe0, 0x00,
- 0x7f, 0x58, 0x86, 0x1b,
+ 0x57, 0xb8, 0x86, 0x1b,
0xa6, 0x7d, 0xef, 0xd0,
0xa9, 0x7b, 0x82, 0x25,
0xad, 0x7b, 0x80, 0xa5,
@@ -6203,7 +6499,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x84, 0x7b, 0x06, 0x6b,
0x44, 0x46, 0x02, 0x8b,
0x0c, 0x0b, 0xe0, 0x0c,
- 0x7c, 0x38, 0x8e, 0x1b,
+ 0x54, 0x98, 0x8e, 0x1b,
0xad, 0x8b, 0xef, 0xd0,
0xe0, 0x0c, 0x10, 0x1a,
0xed, 0x80, 0x42, 0x0a,
@@ -6215,7 +6511,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x60, 0x70, 0x4c, 0x21,
0xe4, 0xb0, 0x02, 0x70,
0x0c, 0x0c, 0x99, 0x21,
- 0x3a, 0xb8, 0xf2, 0x0c,
+ 0x13, 0x18, 0xf2, 0x0c,
0x0c, 0x0c, 0xff, 0xd0,
0xdd, 0x93, 0xf2, 0x0c,
0xf8, 0x3c, 0x04, 0x4c,
@@ -6324,8 +6620,8 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0xc0, 0x02, 0x6f, 0xe9,
0x60, 0x2d, 0x46, 0x51,
0x0c, 0x0c, 0xc0, 0x06,
- 0x0b, 0xd8, 0xf0, 0x8c,
- 0xc1, 0xc3, 0xff, 0xd8,
+ 0x24, 0x38, 0xf0, 0x8c,
+ 0xc1, 0xc3, 0xff, 0xd4,
0xf8, 0x1c, 0x04, 0x0c,
0xe0, 0x18, 0x00, 0x79,
0xe0, 0x28, 0x00, 0x39,
@@ -6396,8 +6692,8 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x78, 0x90, 0x16, 0x03,
0xac, 0x12, 0x94, 0x5b,
0xa7, 0x34, 0xa5, 0x24,
- 0x6b, 0x18, 0xa3, 0x44,
- 0xa1, 0x0b, 0xef, 0xe0,
+ 0x72, 0xf8, 0xa3, 0x44,
+ 0xa1, 0x0b, 0xef, 0xdc,
0xa1, 0x34, 0x94, 0xf5,
0x16, 0x03, 0x9d, 0x44,
0xac, 0x12, 0xf8, 0x90,
@@ -6408,8 +6704,8 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x99, 0x44, 0xfe, 0x4e,
0x9b, 0x44, 0xfc, 0x4e,
0xbc, 0xae, 0xbe, 0x4e,
- 0x6c, 0x58, 0xa5, 0x44,
- 0xa1, 0x0b, 0xef, 0xe0,
+ 0x74, 0x38, 0xa5, 0x44,
+ 0xa1, 0x0b, 0xef, 0xdc,
0x93, 0x44, 0x8e, 0xf5,
0x16, 0x03, 0xa1, 0x34,
0x2c, 0x12, 0xf8, 0x90,
@@ -6423,8 +6719,8 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0xa7, 0x54, 0x91, 0x5e,
0x9f, 0x44, 0xfc, 0x4e,
0xbc, 0xae, 0xbe, 0x4e,
- 0x71, 0x98, 0x95, 0x44,
- 0xa1, 0x0b, 0xef, 0xe0,
+ 0x79, 0x78, 0x95, 0x44,
+ 0xa1, 0x0b, 0xef, 0xdc,
0xa9, 0x04, 0x88, 0x35,
0x11, 0x04, 0x8f, 0xc4,
0x00, 0x34, 0xa3, 0x0b,
@@ -6440,8 +6736,8 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0xfe, 0xce, 0xa7, 0x44,
0xbe, 0x4e, 0xfc, 0xae,
0x3c, 0x4e, 0x95, 0x44,
- 0x64, 0x18, 0x83, 0x41,
- 0x02, 0x71, 0xef, 0xdc,
+ 0x6b, 0xd8, 0x83, 0x41,
+ 0x02, 0x71, 0xef, 0xd8,
0x04, 0xb1, 0x88, 0x91,
0xa2, 0x18, 0x84, 0x61,
0xe4, 0xf5, 0x83, 0x7d,
@@ -6536,7 +6832,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0xa5, 0x3f, 0x8c, 0x03,
0xf2, 0x84, 0x42, 0x32,
0xfe, 0x34, 0x89, 0x24,
- 0xef, 0xcc, 0x6e, 0xc8,
+ 0xef, 0xcc, 0x47, 0x28,
0x00, 0x70, 0x00, 0x2b,
0x08, 0x70, 0xe4, 0x2c,
0x01, 0x0a, 0x6c, 0x54,
@@ -6593,7 +6889,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x42, 0x22, 0x07, 0x55,
0x04, 0x0b, 0xf2, 0x84,
0xbe, 0x24, 0x81, 0x31,
- 0xef, 0xcc, 0x71, 0x08,
+ 0xef, 0xcc, 0x49, 0x68,
0x64, 0x08, 0x06, 0x70,
0x07, 0x0a, 0x81, 0x21,
0x01, 0xe5, 0xe4, 0x7c,
@@ -6616,7 +6912,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x08, 0x42, 0x38, 0x2f,
0x29, 0x2f, 0xec, 0x04,
0x42, 0x12, 0x8a, 0x03,
- 0x74, 0x18, 0xf2, 0x88,
+ 0x4c, 0x78, 0xf2, 0x88,
0x04, 0x70, 0x6f, 0xcc,
0x00, 0x8a, 0xe4, 0x0c,
0x41, 0xf6, 0xe7, 0xfc,
@@ -6688,11 +6984,11 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x1f, 0x04, 0x8c, 0x1b,
0x09, 0x5e, 0x94, 0x2b,
0x0b, 0x0e, 0x86, 0x8b,
- 0x6b, 0x18, 0x98, 0x0b,
+ 0x43, 0x78, 0x98, 0x0b,
0x00, 0x7b, 0xef, 0xcc,
0x7f, 0x01, 0x82, 0xbb,
0x7c, 0xae, 0xff, 0x11,
- 0x6a, 0x98, 0x94, 0x2b,
+ 0x42, 0xf8, 0x94, 0x2b,
0x09, 0xa4, 0xef, 0xcc,
0xe1, 0x7c, 0x04, 0x64,
0x78, 0x88, 0x40, 0x02,
@@ -6708,7 +7004,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0xf0, 0x84, 0x40, 0xb2,
0x72, 0x84, 0x44, 0x72,
0x44, 0x1f, 0xc2, 0x0f,
- 0x68, 0x98, 0x90, 0x2b,
+ 0x40, 0xf8, 0x90, 0x2b,
0x21, 0x1b, 0xef, 0xcc,
0x00, 0x14, 0xbf, 0xc1,
0x81, 0x11, 0x56, 0x80,
@@ -6749,7 +7045,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0xe8, 0x90, 0x00, 0x54,
0x7c, 0x7c, 0x02, 0x14,
0xf1, 0x88, 0x44, 0x32,
- 0xef, 0xcc, 0x63, 0x88,
+ 0xef, 0xc8, 0x7b, 0xe8,
0x03, 0xd5, 0x90, 0x03,
0xf2, 0x9c, 0x42, 0x12,
0xff, 0x01, 0x23, 0x8d,
@@ -6790,14 +7086,14 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x86, 0xa3, 0x6c, 0x04,
0x68, 0x84, 0x02, 0x04,
0xe8, 0x90, 0x00, 0xc4,
- 0x6f, 0xcc, 0x42, 0xa8,
+ 0x6f, 0xc8, 0x5b, 0x08,
0x81, 0x81, 0x81, 0x31,
0xff, 0x21, 0x34, 0x93,
0x84, 0x9d, 0x1e, 0x1e,
0x82, 0x85, 0x9c, 0x0e,
0x12, 0x8a, 0x18, 0x9e,
0x8a, 0x55, 0xe0, 0xfc,
- 0x6f, 0xcc, 0x5b, 0xc8,
+ 0x6f, 0xc8, 0x74, 0x28,
0xec, 0xf8, 0x04, 0x90,
0x51, 0xe6, 0x05, 0x25,
0x32, 0x2b, 0xe0, 0x00,
@@ -6872,8 +7168,8 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x52, 0x72, 0x84, 0xbb,
0x50, 0x9f, 0xf2, 0xa0,
0x10, 0x0b, 0xc0, 0x8f,
- 0x54, 0x18, 0x92, 0x1b,
- 0xa1, 0x1b, 0xef, 0xcc,
+ 0x6c, 0x78, 0x92, 0x1b,
+ 0xa1, 0x1b, 0xef, 0xc8,
0xd6, 0x80, 0x00, 0x14,
0x9c, 0x04, 0x40, 0x00,
0x96, 0x80, 0x00, 0x04,
@@ -6954,7 +7250,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x26, 0x93, 0xec, 0x04,
0xe8, 0x94, 0x14, 0xc4,
0x92, 0x2b, 0x29, 0x8f,
- 0xef, 0xcc, 0x49, 0xe8,
+ 0xef, 0xc8, 0x62, 0x48,
0xb4, 0x1f, 0x0f, 0x24,
0x81, 0xa1, 0x30, 0x0f,
0x01, 0xe5, 0x84, 0xb3,
@@ -6970,8 +7266,8 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x41, 0xfe, 0x5f, 0xff,
0x04, 0x8a, 0xdf, 0xfc,
0xff, 0x81, 0x60, 0xfc,
- 0x47, 0xd8, 0x80, 0xf5,
- 0x04, 0x20, 0x6f, 0xcc,
+ 0x60, 0x38, 0x80, 0xf5,
+ 0x04, 0x20, 0x6f, 0xc8,
0x45, 0xe6, 0xec, 0xf8,
0x4e, 0x6f, 0xe0, 0x00,
0xf1, 0x80, 0x48, 0xa2,
@@ -6987,7 +7283,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x80, 0x7b, 0x02, 0x6b,
0x81, 0x11, 0x58, 0x04,
0x6b, 0xc8, 0x04, 0xf6,
- 0x7f, 0xb8, 0x81, 0x31,
+ 0x58, 0x18, 0x81, 0x31,
0x04, 0x04, 0xef, 0xc8,
0xc2, 0x17, 0x61, 0xfc,
0x7c, 0x7c, 0x00, 0x04,
@@ -7088,7 +7384,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x81, 0x71, 0x23, 0x0b,
0xc4, 0x27, 0x81, 0x11,
0x90, 0x88, 0x4c, 0x62,
- 0x6f, 0xcc, 0x53, 0xa8,
+ 0x6f, 0xc8, 0x6c, 0x08,
0x98, 0x7e, 0x8c, 0x0b,
0xf2, 0x04, 0x0c, 0x4c,
0xc1, 0xc3, 0xdd, 0x93,
@@ -7364,8 +7660,8 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x1e, 0x85, 0xe0, 0xbc,
0x1e, 0xa5, 0xe0, 0xb8,
0x96, 0x1b, 0xe0, 0xd0,
- 0x54, 0xd8, 0x90, 0x0b,
- 0x94, 0x2b, 0x6f, 0xc8,
+ 0x6d, 0x38, 0x90, 0x0b,
+ 0x94, 0x2b, 0x6f, 0xc4,
0xe0, 0x00, 0x02, 0xca,
0xe0, 0x00, 0x02, 0x1a,
0x67, 0x05, 0x00, 0xea,
@@ -7452,8 +7748,8 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0xae, 0x83, 0x68, 0x9c,
0x82, 0xa5, 0xa5, 0x5e,
0x71, 0x98, 0x44, 0x92,
- 0x49, 0xd8, 0x88, 0x0b,
- 0x86, 0x1b, 0x6f, 0xc8,
+ 0x62, 0x38, 0x88, 0x0b,
+ 0x86, 0x1b, 0x6f, 0xc4,
0x82, 0x3b, 0x00, 0x4b,
0x8c, 0x9b, 0x3d, 0x4e,
0xbb, 0x6e, 0xbf, 0x3e,
@@ -7461,7 +7757,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x14, 0x82, 0x02, 0xf5,
0x04, 0x90, 0xec, 0x04,
0x88, 0x0b, 0x6c, 0x28,
- 0x6f, 0xc8, 0x48, 0xc8,
+ 0x6f, 0xc4, 0x61, 0x28,
0x00, 0x4b, 0x86, 0x1b,
0x3d, 0x4e, 0x95, 0x91,
0xbf, 0x3e, 0x82, 0x3b,
@@ -7473,7 +7769,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x83, 0x41, 0x01, 0x21,
0x83, 0x21, 0x3f, 0x2e,
0x81, 0x31, 0x3d, 0x2e,
- 0x6f, 0xc4, 0x6d, 0x48,
+ 0x6f, 0xc4, 0x45, 0xa8,
0x3f, 0x1e, 0x88, 0x2b,
0x1e, 0x15, 0xb2, 0x63,
0x0e, 0xf0, 0x60, 0x9c,
@@ -7514,8 +7810,8 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x8c, 0x1b, 0x00, 0x8c,
0x00, 0x88, 0x5e, 0x75,
0x12, 0x06, 0x90, 0x2b,
- 0x42, 0x18, 0x80, 0x00,
- 0x92, 0x0b, 0x6f, 0xc8,
+ 0x5a, 0x78, 0x80, 0x00,
+ 0x92, 0x0b, 0x6f, 0xc4,
0xe0, 0x00, 0x02, 0xca,
0xe0, 0x00, 0x02, 0x1a,
0x64, 0x01, 0x00, 0xea,
@@ -7530,7 +7826,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0xe0, 0x44, 0x10, 0x8a,
0x04, 0x80, 0x82, 0xf5,
0x92, 0x0b, 0x6c, 0x40,
- 0x6f, 0xc8, 0x40, 0x28,
+ 0x6f, 0xc4, 0x58, 0x88,
0x81, 0xa1, 0x8c, 0x1b,
0xe0, 0x8c, 0x5e, 0x15,
0xe0, 0x88, 0x5e, 0x05,
@@ -7655,116 +7951,125 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0xfd, 0x45, 0xf4, 0xa5,
0xfa, 0x7c, 0x04, 0x0c,
0xed, 0xf0, 0x1e, 0xf0,
- 0x60, 0x98, 0x1e, 0x45,
- 0x25, 0x0e, 0x88, 0xbb,
- 0x1e, 0x95, 0x82, 0x8b,
- 0xa7, 0x4e, 0xe0, 0xa8,
- 0xe0, 0x90, 0x08, 0x19,
- 0x02, 0x61, 0x80, 0x13,
- 0x81, 0x11, 0x60, 0x70,
- 0x52, 0x15, 0xa4, 0x1e,
- 0x00, 0x19, 0xe0, 0x10,
- 0xe2, 0x24, 0xe0, 0x48,
- 0x00, 0x19, 0xab, 0x1e,
- 0x44, 0x0a, 0x60, 0x4c,
- 0xa9, 0x1e, 0xe0, 0x80,
- 0xe0, 0x50, 0x00, 0xa9,
- 0x97, 0x5e, 0xd2, 0x78,
- 0x82, 0xe5, 0xa3, 0x3e,
- 0x44, 0x1a, 0x20, 0x14,
- 0xa1, 0x1b, 0xe0, 0x84,
- 0xe2, 0x00, 0x02, 0x0c,
- 0x00, 0x78, 0xa0, 0x1e,
- 0x01, 0x01, 0xa0, 0x00,
- 0x74, 0xd8, 0x90, 0x1b,
- 0xe2, 0x24, 0xef, 0xf8,
- 0xe0, 0x88, 0x44, 0x0a,
- 0x40, 0x00, 0x00, 0x16,
- 0xdc, 0x00, 0x42, 0x80,
- 0xcf, 0xf8, 0x74, 0x48,
- 0x65, 0x60, 0x00, 0xf0,
- 0xe5, 0xd0, 0x0a, 0xf0,
- 0x00, 0xf0, 0x0d, 0x0e,
- 0x0b, 0x0e, 0xe5, 0x90,
- 0xe5, 0x70, 0x00, 0xf0,
- 0x00, 0xf0, 0x09, 0x0e,
- 0x7e, 0x0e, 0xe5, 0xa0,
- 0xe5, 0x80, 0x00, 0xf0,
- 0x00, 0xf0, 0x7c, 0x0e,
- 0x3e, 0x0e, 0xe5, 0xb0,
- 0xe5, 0xc0, 0x00, 0xf0,
- 0x83, 0x21, 0x3c, 0x0e,
- 0x94, 0x0b, 0x29, 0x14,
- 0x90, 0x4b, 0x0c, 0x3b,
- 0xef, 0xf8, 0x52, 0x68,
- 0x81, 0x11, 0x62, 0x04,
- 0x40, 0x0a, 0xe1, 0x21,
- 0x1e, 0x05, 0xe0, 0x8c,
- 0x40, 0x15, 0xc0, 0x74,
- 0xa7, 0x34, 0xc0, 0x00,
- 0xc0, 0x0c, 0x10, 0x05,
- 0xe0, 0x94, 0x06, 0x19,
- 0xe2, 0x0e, 0x84, 0x0f,
- 0xc8, 0x19, 0x25, 0x54,
- 0xab, 0x1b, 0x2b, 0x24,
- 0xc0, 0x00, 0x1e, 0x58,
- 0xa1, 0x6d, 0x15, 0x8e,
- 0xc0, 0x00, 0x1a, 0x78,
- 0x80, 0x04, 0xbb, 0x04,
- 0x1d, 0xc8, 0xa5, 0x0b,
- 0x1e, 0x05, 0x80, 0x00,
- 0x96, 0x4b, 0x60, 0xa0,
- 0x16, 0x74, 0x14, 0x14,
- 0x14, 0xb0, 0xe0, 0x90,
- 0x00, 0x05, 0xe4, 0x40,
- 0x02, 0x03, 0xe0, 0x10,
- 0x06, 0x15, 0xff, 0x11,
- 0x82, 0x0d, 0x60, 0x18,
- 0xc1, 0xac, 0x00, 0x04,
- 0x41, 0x2a, 0x4e, 0x0a,
- 0x91, 0x80, 0x00, 0x04,
- 0x01, 0xac, 0x00, 0x04,
- 0xe1, 0x20, 0x10, 0x14,
- 0x91, 0x80, 0x00, 0x04,
- 0x81, 0xaa, 0x4e, 0x0a,
- 0x80, 0x08, 0xa3, 0x04,
- 0xa7, 0x0b, 0x4e, 0x08,
- 0x08, 0x19, 0x82, 0x15,
- 0x83, 0x0b, 0xe0, 0x2c,
- 0x08, 0x19, 0x84, 0x15,
+ 0x82, 0x9b, 0x23, 0x3e,
+ 0xe0, 0x98, 0x1e, 0x35,
+ 0xa5, 0x0e, 0xab, 0x4e,
+ 0x06, 0x19, 0xa7, 0x3e,
+ 0x1e, 0xb5, 0xe0, 0x90,
+ 0x00, 0x89, 0xe0, 0xa8,
+ 0x80, 0x13, 0xe0, 0x48,
+ 0x60, 0x70, 0x02, 0x61,
+ 0xac, 0x1e, 0x81, 0x11,
+ 0xe0, 0x10, 0x56, 0x15,
+ 0xe0, 0x4c, 0x00, 0x19,
+ 0xa9, 0x1e, 0xe6, 0x24,
+ 0x60, 0x50, 0x00, 0xa9,
+ 0xe0, 0x80, 0x44, 0x0a,
+ 0x97, 0x5e, 0xce, 0x78,
+ 0x24, 0x14, 0x82, 0xe5,
+ 0xe0, 0x84, 0x44, 0x1a,
+ 0x02, 0x0c, 0xa1, 0x1b,
+ 0xa4, 0x1e, 0xe2, 0x00,
+ 0xa0, 0x00, 0x00, 0x78,
+ 0x92, 0x1b, 0x01, 0x01,
+ 0xef, 0xf8, 0x74, 0xe8,
+ 0x44, 0x0a, 0xe6, 0x24,
+ 0x00, 0x16, 0xe0, 0x88,
+ 0x42, 0x90, 0x40, 0x00,
+ 0x74, 0x58, 0xdc, 0x00,
+ 0x00, 0xf0, 0xcf, 0xf8,
+ 0x0a, 0xf0, 0x65, 0x60,
+ 0x0d, 0x0e, 0xe5, 0xd0,
+ 0xe5, 0x90, 0x00, 0xf0,
+ 0x00, 0xf0, 0x0b, 0x0e,
+ 0x09, 0x0e, 0xe5, 0x70,
+ 0xe5, 0xa0, 0x00, 0xf0,
+ 0x00, 0xf0, 0x7e, 0x0e,
+ 0x7c, 0x0e, 0xe5, 0x80,
+ 0xe5, 0xb0, 0x00, 0xf0,
+ 0x00, 0xf0, 0x3e, 0x0e,
+ 0x3c, 0x0e, 0xe5, 0xc0,
+ 0x29, 0x14, 0x83, 0x21,
+ 0x0c, 0x3b, 0x94, 0x0b,
+ 0x52, 0x78, 0x92, 0x4b,
+ 0x66, 0x04, 0xef, 0xf8,
+ 0xe1, 0x31, 0x81, 0x11,
+ 0xe0, 0x8c, 0x40, 0x0a,
+ 0xc0, 0x74, 0x1e, 0x05,
+ 0xc0, 0x00, 0x40, 0x15,
+ 0x12, 0x05, 0xa7, 0x44,
+ 0x08, 0x19, 0xc0, 0x0c,
+ 0x86, 0x0f, 0xe0, 0x94,
+ 0x25, 0x54, 0xe6, 0x0e,
+ 0xfc, 0x10, 0x44, 0x10,
+ 0x1f, 0xe8, 0xab, 0x2b,
+ 0x15, 0x9e, 0xc0, 0x00,
+ 0x1c, 0x08, 0xa1, 0x6d,
+ 0xbb, 0x04, 0xc0, 0x00,
+ 0xa5, 0x0b, 0x80, 0x04,
+ 0x80, 0x00, 0x1f, 0x58,
+ 0x60, 0xa0, 0x1e, 0x05,
+ 0x14, 0x70, 0xc8, 0x77,
+ 0x00, 0x25, 0xe4, 0x40,
+ 0x94, 0x04, 0xe0, 0x10,
+ 0xff, 0x01, 0x00, 0x23,
+ 0x00, 0x24, 0x80, 0x2d,
+ 0x52, 0x0a, 0xc1, 0xac,
+ 0x82, 0x15, 0xc1, 0x2a,
+ 0xd7, 0x07, 0xa4, 0x0b,
+ 0x40, 0x0a, 0xa0, 0x0b,
+ 0x12, 0x00, 0xe1, 0xaa,
+ 0x0a, 0x09, 0xec, 0x04,
+ 0x40, 0x0a, 0xe0, 0x64,
+ 0x44, 0x20, 0xe0, 0x94,
+ 0x40, 0x07, 0x13, 0xfd,
+ 0xc0, 0xc0, 0x06, 0x94,
+ 0x40, 0x28, 0x1e, 0x25,
+ 0xd9, 0x88, 0x46, 0x32,
+ 0x40, 0x08, 0x44, 0x35,
+ 0x0a, 0x19, 0xab, 0x1b,
+ 0x08, 0x25, 0x80, 0x68,
+ 0xab, 0x34, 0xe0, 0x18,
+ 0x52, 0x92, 0x23, 0x14,
+ 0x0c, 0x24, 0x90, 0x84,
+ 0x84, 0x18, 0xe1, 0x20,
+ 0xa7, 0x1b, 0x52, 0x18,
+ 0x06, 0x29, 0x82, 0x15,
+ 0x85, 0x1b, 0xe0, 0x2c,
+ 0x06, 0x29, 0x84, 0x15,
0x81, 0x75, 0xe0, 0x28,
- 0xe0, 0x24, 0x08, 0x19,
- 0x82, 0x35, 0x83, 0x0b,
- 0xe0, 0x20, 0x08, 0x19,
- 0x82, 0x01, 0x02, 0x11,
- 0x50, 0x1a, 0x9f, 0x0e,
- 0x81, 0x35, 0xe6, 0xa2,
- 0x9f, 0x0e, 0x83, 0x01,
- 0x88, 0x45, 0xa1, 0x8b,
- 0x00, 0x84, 0x1f, 0x14,
- 0x81, 0x1d, 0xe0, 0x84,
- 0x06, 0x15, 0x86, 0xa5,
- 0x0a, 0x09, 0xe0, 0x20,
- 0x46, 0x1a, 0xe0, 0x64,
- 0x40, 0x0a, 0xe6, 0x8a,
- 0x9b, 0x3e, 0xe0, 0x88,
- 0x40, 0x3a, 0x84, 0xd5,
- 0x81, 0x31, 0x66, 0x8a,
- 0x02, 0x04, 0x9f, 0x24,
- 0x44, 0x2e, 0xe1, 0x7c,
- 0x93, 0x2e, 0xe0, 0x0a,
- 0xef, 0xc4, 0x60, 0x08,
- 0xe1, 0x94, 0x04, 0x14,
- 0x8e, 0x05, 0xa1, 0x2b,
- 0xf6, 0x80, 0x0c, 0x24,
- 0x89, 0x01, 0x87, 0xd5,
- 0xaf, 0xe5, 0xa4, 0x0e,
- 0x02, 0x34, 0x1f, 0x04,
- 0x02, 0x14, 0xe1, 0x94,
- 0x44, 0x06, 0x76, 0x80,
- 0x1f, 0x64, 0xe0, 0x00,
+ 0xe0, 0x24, 0x06, 0x29,
+ 0x82, 0x35, 0x85, 0x1b,
+ 0xe0, 0x20, 0x06, 0x29,
+ 0x82, 0x11, 0x02, 0x21,
+ 0x4c, 0x2a, 0x9f, 0x1e,
+ 0x81, 0x35, 0xe6, 0x9a,
+ 0x9f, 0x1e, 0x83, 0x11,
+ 0x88, 0x25, 0xa1, 0x6b,
+ 0x02, 0x64, 0x1f, 0x24,
+ 0x83, 0x2d, 0xe0, 0x84,
+ 0x08, 0x15, 0x86, 0x85,
+ 0x40, 0x0a, 0x60, 0x20,
+ 0x9d, 0x6e, 0xe0, 0x88,
+ 0xe6, 0xa2, 0x46, 0x1a,
+ 0x84, 0xd5, 0x9b, 0x3e,
+ 0x40, 0x3a, 0x9f, 0x24,
+ 0x81, 0x31, 0x66, 0xa2,
+ 0x60, 0x0a, 0x44, 0x2e,
+ 0xe1, 0x7c, 0x02, 0x04,
+ 0x77, 0x58, 0x93, 0x2e,
+ 0x04, 0x14, 0xef, 0xc0,
+ 0xa1, 0x2b, 0xe1, 0x94,
+ 0x0c, 0x24, 0x8e, 0x25,
+ 0x87, 0xe5, 0xf6, 0x80,
+ 0xac, 0x0e, 0x89, 0x01,
+ 0x1f, 0x04, 0xb1, 0x55,
+ 0xe1, 0x94, 0x02, 0x34,
+ 0x76, 0x80, 0x02, 0x14,
+ 0xe0, 0x00, 0x44, 0x06,
+ 0x8e, 0xbb, 0x1f, 0x74,
+ 0x76, 0x80, 0x00, 0x04,
0xe5, 0xe0, 0x0a, 0xf0,
- 0xf6, 0x80, 0x00, 0x04,
0x00, 0x10, 0x20, 0x23,
0x19, 0x2e, 0xec, 0x18,
0x33, 0x44, 0x80, 0x2d,
@@ -7775,96 +8080,100 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0xc0, 0x00, 0x04, 0x56,
0x00, 0x34, 0x2d, 0x34,
0x40, 0x0a, 0xc9, 0x04,
- 0x42, 0x22, 0x66, 0x9a,
+ 0x42, 0x22, 0x66, 0x9e,
0xbd, 0x1e, 0xd1, 0x84,
0x8c, 0x30, 0x90, 0x24,
- 0xe0, 0xa2, 0x40, 0x0a,
- 0xef, 0xf4, 0x70, 0xe8,
+ 0xe0, 0x9a, 0x40, 0x0a,
+ 0xef, 0xf4, 0x6f, 0xc8,
0xad, 0x14, 0xbd, 0x04,
- 0x40, 0x6e, 0x84, 0x06,
- 0x93, 0x0e, 0xe0, 0x1a,
- 0x04, 0x04, 0x8d, 0x55,
+ 0x40, 0x7e, 0x84, 0x06,
+ 0x93, 0x0e, 0xe0, 0x1e,
+ 0x04, 0x04, 0x8d, 0xa5,
0x06, 0x14, 0x61, 0x94,
0xa6, 0x2f, 0xe0, 0xec,
0xf6, 0x80, 0x0c, 0x24,
0x04, 0x60, 0xc0, 0x61,
0x80, 0x4b, 0x6c, 0x14,
- 0xe4, 0x7c, 0x05, 0x0a,
- 0x1c, 0x00, 0x48, 0x10,
- 0xec, 0x94, 0x02, 0x60,
- 0x7b, 0x84, 0x42, 0x22,
- 0xe6, 0xaa, 0x44, 0x8a,
+ 0x64, 0x7c, 0x05, 0x0a,
+ 0x48, 0x10, 0x8e, 0xbb,
+ 0x02, 0x60, 0x1c, 0x00,
+ 0x1d, 0x74, 0xec, 0x94,
+ 0xfb, 0x84, 0x42, 0x22,
0xec, 0x7c, 0x06, 0x12,
0x68, 0x8c, 0x0a, 0x44,
0x48, 0x00, 0x81, 0x41,
0x18, 0x34, 0x1c, 0x00,
0x00, 0x44, 0xec, 0x00,
- 0xa6, 0x13, 0x6f, 0x8c,
- 0x78, 0x80, 0x40, 0xc2,
- 0xe6, 0xa2, 0x44, 0x2a,
+ 0x44, 0x7a, 0x6f, 0x8c,
+ 0x40, 0xc2, 0xe6, 0xaa,
+ 0xa6, 0x13, 0x78, 0x80,
0x00, 0x12, 0x20, 0x5f,
0x02, 0x54, 0xec, 0x04,
0x00, 0x44, 0x68, 0x80,
- 0x50, 0x18, 0xe8, 0x8c,
- 0x81, 0x31, 0x6f, 0xc4,
- 0x80, 0x9b, 0x27, 0x04,
- 0xa3, 0x1e, 0xc0, 0x08,
- 0x92, 0x0b, 0x20, 0x63,
- 0x6f, 0xc4, 0x5e, 0xe8,
- 0xa1, 0x1b, 0x8c, 0x2b,
- 0xd6, 0x80, 0x00, 0x14,
- 0x96, 0x80, 0x00, 0x04,
- 0x84, 0x80, 0x00, 0x00,
- 0x01, 0x0a, 0xac, 0x03,
- 0x82, 0xb5, 0xe0, 0x80,
- 0xe0, 0x00, 0x42, 0x16,
- 0x71, 0x80, 0x44, 0x12,
- 0xa1, 0x2e, 0x92, 0x0b,
- 0x5d, 0x98, 0xa3, 0x14,
- 0x21, 0x04, 0xef, 0xc4,
- 0xa0, 0x63, 0x80, 0x9b,
+ 0x44, 0x2a, 0xe8, 0x8c,
+ 0x81, 0x31, 0x66, 0x9e,
+ 0xef, 0xc0, 0x67, 0x28,
+ 0x80, 0x2b, 0x27, 0x04,
+ 0xab, 0x2e, 0xc0, 0x08,
+ 0x4e, 0x62, 0xa3, 0x1e,
+ 0x84, 0x0b, 0x71, 0x80,
+ 0x6f, 0xc0, 0x75, 0xe8,
+ 0x1d, 0x64, 0x8e, 0x2b,
+ 0x00, 0x14, 0xa1, 0x1b,
+ 0x00, 0x04, 0xd6, 0x80,
+ 0x00, 0x00, 0x96, 0x80,
+ 0xae, 0x03, 0x84, 0x80,
+ 0xe0, 0x80, 0x01, 0x0a,
+ 0xc0, 0x54, 0x1e, 0x05,
+ 0x42, 0x16, 0x82, 0x95,
+ 0x2b, 0x04, 0xe0, 0x00,
+ 0xf1, 0x80, 0x44, 0x12,
+ 0xa3, 0x14, 0xa1, 0x2e,
+ 0xef, 0xc0, 0x74, 0x68,
+ 0xa2, 0x73, 0xa1, 0x14,
0x0a, 0xf0, 0x33, 0x44,
- 0x2d, 0x04, 0xe5, 0xe0,
- 0xbd, 0x6e, 0x8c, 0x1b,
- 0x00, 0x30, 0x90, 0x24,
- 0x6a, 0xd8, 0x92, 0x0b,
- 0x1f, 0x24, 0xef, 0xf4,
- 0xe0, 0x00, 0x46, 0x06,
- 0xad, 0x14, 0xbd, 0x04,
- 0xf6, 0x80, 0x04, 0x24,
- 0x84, 0x06, 0xa4, 0x33,
- 0x40, 0x8a, 0x99, 0x3e,
- 0x9e, 0xb1, 0x66, 0xa2,
- 0x60, 0x9c, 0x1e, 0x95,
- 0x1d, 0x8e, 0x8e, 0x6b,
- 0x91, 0x0e, 0x81, 0xc1,
- 0xa7, 0x44, 0xa5, 0x54,
- 0x93, 0x95, 0xab, 0x24,
- 0x60, 0x64, 0x0a, 0x39,
- 0xe1, 0x7c, 0x04, 0x64,
- 0x04, 0x63, 0x96, 0x2f,
- 0xf0, 0x84, 0x44, 0x72,
- 0x94, 0x2b, 0x55, 0x2d,
- 0x60, 0x28, 0x4c, 0x9a,
- 0x04, 0x06, 0x82, 0x11,
- 0x40, 0x00, 0x20, 0x01,
- 0xe0, 0x8c, 0x46, 0x1a,
- 0x62, 0x00, 0x04, 0x0c,
- 0x06, 0x64, 0xa4, 0x63,
- 0xa4, 0x0f, 0x60, 0x88,
- 0x46, 0x32, 0x2b, 0x24,
- 0xc0, 0x00, 0x30, 0xa5,
- 0x24, 0x01, 0x06, 0x30,
- 0x82, 0x61, 0x40, 0x09,
- 0xb0, 0x90, 0x46, 0x32,
- 0xa4, 0xa0, 0x06, 0x30,
- 0x86, 0x83, 0x8c, 0x34,
- 0xf6, 0x35, 0x83, 0x2b,
+ 0xad, 0x14, 0xe5, 0xe0,
+ 0x90, 0x24, 0xbd, 0x7e,
+ 0x8e, 0x1b, 0x04, 0x30,
+ 0xef, 0xf4, 0x69, 0x68,
+ 0x46, 0x06, 0x1f, 0x24,
+ 0xbd, 0x04, 0xe0, 0x00,
+ 0x04, 0x24, 0xad, 0x14,
+ 0xa4, 0x33, 0xf6, 0x80,
+ 0x99, 0x3e, 0x84, 0x06,
+ 0x60, 0x9c, 0x1e, 0x05,
+ 0x25, 0x54, 0x9e, 0xb1,
+ 0xa7, 0x44, 0x81, 0xc1,
+ 0x40, 0x6a, 0xab, 0x0e,
+ 0x92, 0x6b, 0x66, 0x9a,
+ 0x93, 0xb5, 0x91, 0x0e,
+ 0xf0, 0x84, 0x44, 0x92,
+ 0x04, 0x0c, 0xd5, 0x2d,
+ 0x0a, 0x29, 0xe2, 0x00,
+ 0xa4, 0x0f, 0x60, 0x64,
+ 0xfb, 0xfc, 0x00, 0x0a,
+ 0x44, 0x4a, 0x80, 0x85,
+ 0x86, 0x65, 0xe0, 0x90,
+ 0xe1, 0x7c, 0x06, 0x64,
+ 0x06, 0x63, 0x96, 0x3f,
+ 0x95, 0x6d, 0x94, 0x3b,
+ 0x40, 0x00, 0x06, 0x06,
+ 0xe0, 0x8c, 0x44, 0x0a,
+ 0x40, 0x54, 0x1e, 0x35,
+ 0x04, 0x64, 0xa6, 0x63,
+ 0x44, 0x22, 0xe0, 0x88,
+ 0x04, 0x20, 0xd0, 0x8c,
+ 0xc0, 0x09, 0x04, 0x01,
+ 0x90, 0x90, 0x44, 0x22,
+ 0x84, 0xa0, 0x04, 0x20,
+ 0x84, 0x73, 0x88, 0x24,
+ 0x82, 0x11, 0x02, 0x61,
+ 0xf4, 0xb5, 0x83, 0x8b,
0xfb, 0xfc, 0x00, 0x0a,
0x0a, 0x09, 0x80, 0xc5,
0x40, 0x4a, 0xe0, 0x64,
- 0x98, 0xe5, 0xe0, 0x90,
- 0x00, 0x84, 0x1b, 0x14,
+ 0x98, 0xa5, 0xe0, 0x90,
+ 0x00, 0x74, 0x1b, 0x14,
0x19, 0x34, 0xe0, 0x94,
0xe0, 0x88, 0x0a, 0xc4,
0xa2, 0x03, 0xb7, 0x44,
@@ -7889,37 +8198,36 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x21, 0x5e, 0xfc, 0x30,
0xd1, 0x80, 0x00, 0x04,
0x0a, 0xf0, 0x23, 0xce,
- 0x63, 0x18, 0xe5, 0xe0,
+ 0x61, 0x78, 0xe5, 0xe0,
0xa3, 0xc4, 0xef, 0xf4,
0xbd, 0x14, 0xb1, 0x04,
0x80, 0x16, 0x98, 0x03,
0xa7, 0x44, 0xa5, 0x54,
- 0x0a, 0x09, 0xab, 0x24,
- 0x40, 0x4a, 0xe0, 0x64,
- 0x88, 0xa5, 0xe0, 0x84,
- 0xa1, 0x24, 0x93, 0x04,
- 0x40, 0x0a, 0xb5, 0x44,
- 0x2f, 0x34, 0xe6, 0xa2,
- 0x02, 0x04, 0x84, 0x8b,
- 0x11, 0x54, 0xf6, 0x80,
- 0x02, 0x06, 0xa4, 0x1d,
- 0x02, 0x10, 0x80, 0x00,
- 0x3d, 0x1e, 0xcc, 0x08,
- 0x08, 0x25, 0xa3, 0x0f,
- 0x90, 0x43, 0x7c, 0x20,
- 0x60, 0x16, 0x40, 0x0a,
- 0xe5, 0xe0, 0x0a, 0xf0,
- 0xfc, 0x30, 0x06, 0x31,
- 0xef, 0xf4, 0x60, 0x88,
- 0xaf, 0x04, 0xa3, 0xc4,
- 0x98, 0x03, 0xbd, 0x14,
- 0xa5, 0x54, 0x80, 0x16,
- 0xab, 0x24, 0xa7, 0x44,
- 0x84, 0x73, 0x02, 0xc1,
+ 0xe0, 0x64, 0x0a, 0x09,
+ 0xe0, 0x84, 0x40, 0x4a,
+ 0x93, 0x04, 0x88, 0x85,
+ 0xb5, 0x44, 0xa1, 0x24,
+ 0xe6, 0x9e, 0x40, 0x0a,
+ 0x84, 0x7b, 0x2f, 0x34,
+ 0xf6, 0x80, 0x02, 0x04,
+ 0xa4, 0x1d, 0x11, 0x54,
+ 0x80, 0x00, 0x02, 0x06,
+ 0xcc, 0x08, 0x02, 0x10,
+ 0xa3, 0x0f, 0x3d, 0x1e,
+ 0x7c, 0x1c, 0x08, 0x25,
+ 0x40, 0x0a, 0x8e, 0x43,
+ 0x0a, 0xf0, 0x60, 0x16,
+ 0x06, 0x31, 0xe5, 0xe0,
+ 0x5e, 0xf8, 0xfc, 0x30,
+ 0xa3, 0xc4, 0xef, 0xf4,
+ 0xbd, 0x14, 0xaf, 0x04,
+ 0x80, 0x16, 0x98, 0x03,
+ 0xa7, 0x44, 0xa5, 0x54,
+ 0x90, 0x93, 0x02, 0xc1,
0x81, 0xcb, 0xa9, 0x04,
- 0x40, 0x00, 0x10, 0x06,
+ 0x40, 0x00, 0x0e, 0x06,
0xc0, 0x00, 0x02, 0x06,
- 0x00, 0x06, 0x62, 0x15,
+ 0x00, 0x06, 0x62, 0x55,
0x97, 0x14, 0xc0, 0x00,
0x0a, 0x49, 0xb9, 0x34,
0x84, 0x08, 0xe0, 0x54,
@@ -8019,10 +8327,10 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0xe0, 0x80, 0x4a, 0x4a,
0x40, 0x00, 0x00, 0x06,
0xdc, 0x00, 0x42, 0x60,
- 0xcf, 0xf8, 0x4a, 0x08,
+ 0xcf, 0xf8, 0x48, 0x88,
0x8c, 0x1b, 0x03, 0x01,
0xf2, 0x9c, 0x0c, 0x0c,
- 0xff, 0xf8, 0x09, 0xa8,
+ 0xff, 0xf8, 0x08, 0x28,
0xfa, 0x3c, 0x04, 0x0c,
0xec, 0x20, 0x1e, 0xf0,
0x82, 0x9b, 0x00, 0x6b,
@@ -8031,14 +8339,14 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x3c, 0x9e, 0x86, 0xab,
0x01, 0x21, 0x81, 0x01,
0x01, 0x41, 0x89, 0x31,
- 0x50, 0x58, 0x8e, 0x1b,
- 0x8c, 0x5b, 0x6f, 0xd0,
+ 0x56, 0x98, 0x8e, 0x1b,
+ 0x8c, 0x5b, 0x6f, 0xcc,
0x82, 0xb5, 0xa1, 0x0b,
0x81, 0x01, 0x3e, 0xae,
0x81, 0x21, 0x3c, 0x9e,
0x81, 0x41, 0x11, 0x31,
0x8c, 0x5b, 0x0e, 0x1b,
- 0xef, 0xd0, 0x4f, 0x88,
+ 0xef, 0xcc, 0x55, 0xc8,
0x80, 0xa5, 0xa1, 0x0b,
0x0c, 0x0c, 0x90, 0xf1,
0xdd, 0x93, 0xf2, 0x3c,
@@ -8046,7 +8354,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x81, 0x21, 0x3c, 0x9e,
0x81, 0x41, 0x21, 0x31,
0x8c, 0x5b, 0x0e, 0x1b,
- 0xef, 0xd0, 0x4e, 0x88,
+ 0xef, 0xcc, 0x54, 0xc8,
0x0c, 0x0c, 0x90, 0xf1,
0xdd, 0x93, 0xf2, 0x3c,
0x86, 0x05, 0xa1, 0x1b,
@@ -8200,8 +8508,8 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x79, 0x84, 0x44, 0x32,
0xfc, 0x7c, 0x00, 0x44,
0x60, 0x10, 0x02, 0x06,
- 0x5e, 0xb8, 0x81, 0x31,
- 0x08, 0x4c, 0xef, 0xc0,
+ 0x75, 0x98, 0x81, 0x31,
+ 0x08, 0x4c, 0xef, 0xbc,
0xdd, 0x93, 0xf2, 0x00,
0xfa, 0x04, 0x04, 0x4c,
0x80, 0x2b, 0x04, 0x6b,
@@ -8211,7 +8519,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0xe1, 0x84, 0x06, 0x24,
0xdd, 0x17, 0x06, 0x03,
0x81, 0x31, 0x01, 0x71,
- 0x6f, 0xc0, 0x5d, 0x68,
+ 0x6f, 0xbc, 0x74, 0x48,
0xf2, 0x9c, 0x42, 0x12,
0x8e, 0x0b, 0x98, 0x0e,
0xf2, 0x04, 0x0c, 0x4c,
@@ -8227,8 +8535,8 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x82, 0x2b, 0x42, 0x07,
0x81, 0x11, 0x04, 0x01,
0x7a, 0x80, 0x00, 0x04,
- 0x64, 0xb8, 0x81, 0x31,
- 0x04, 0x04, 0xef, 0xc0,
+ 0x7b, 0x98, 0x81, 0x31,
+ 0x04, 0x04, 0xef, 0xbc,
0xa2, 0x2f, 0xe1, 0xa0,
0x41, 0xfe, 0xa1, 0x2b,
0x00, 0x04, 0xdf, 0xfc,
@@ -8292,7 +8600,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x65, 0x06, 0x40, 0x3a,
0x42, 0x3a, 0x88, 0x2b,
0x8a, 0x3b, 0x65, 0x86,
- 0xef, 0xc0, 0x5c, 0xa8,
+ 0xef, 0xbc, 0x73, 0x88,
0x60, 0x01, 0x04, 0x06,
0x81, 0x31, 0x42, 0x00,
0x42, 0x12, 0x84, 0x03,
@@ -8322,7 +8630,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x40, 0x12, 0x61, 0x84,
0x42, 0x22, 0xf0, 0x94,
0x88, 0x2b, 0x72, 0xb0,
- 0xef, 0xc0, 0x4f, 0x88,
+ 0xef, 0xbc, 0x66, 0x68,
0x85, 0x0b, 0xff, 0x21,
0x1f, 0xfc, 0x41, 0xfe,
0x01, 0x65, 0xa1, 0x1b,
@@ -8364,7 +8672,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x27, 0x5f, 0xec, 0x04,
0x42, 0x52, 0x88, 0x03,
0x81, 0x31, 0x72, 0x84,
- 0xef, 0xc0, 0x4a, 0x48,
+ 0xef, 0xbc, 0x61, 0x28,
0xf2, 0x00, 0x0c, 0x0c,
0xc1, 0xc3, 0xdd, 0x93,
0xfa, 0x00, 0x00, 0x4c,
@@ -8374,8 +8682,8 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x06, 0x20, 0x82, 0x65,
0x83, 0x41, 0x6c, 0x04,
0x81, 0x31, 0x27, 0x4f,
- 0x58, 0x58, 0x88, 0x03,
- 0x42, 0x12, 0x6f, 0xc0,
+ 0x6f, 0x38, 0x88, 0x03,
+ 0x42, 0x12, 0x6f, 0xbc,
0xff, 0x21, 0xf2, 0x8c,
0x41, 0xfe, 0x85, 0x0b,
0xa1, 0x1b, 0x1f, 0xfc,
@@ -8398,7 +8706,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x5c, 0x00, 0x4a, 0xc0,
0x42, 0x52, 0x88, 0x03,
0x06, 0x24, 0x72, 0x84,
- 0x79, 0x98, 0xe1, 0x7c,
+ 0x50, 0x78, 0xe1, 0x7c,
0x03, 0x4a, 0xef, 0xbc,
0x02, 0x1a, 0xe0, 0x00,
0x00, 0xea, 0xe0, 0x00,
@@ -8452,7 +8760,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0xaa, 0x14, 0xa8, 0x04,
0xe1, 0x84, 0x06, 0x24,
0x81, 0x31, 0x06, 0x03,
- 0x6f, 0xbc, 0x7f, 0x48,
+ 0x6f, 0xbc, 0x56, 0x28,
0xf2, 0x94, 0x42, 0x12,
0x42, 0x62, 0x0f, 0x44,
0x04, 0x0e, 0xf0, 0x9c,
@@ -8596,11 +8904,11 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x40, 0x82, 0x81, 0x91,
0x81, 0x31, 0x70, 0xa8,
0x72, 0xa4, 0x42, 0x42,
- 0x6d, 0x38, 0x8e, 0x2b,
+ 0x44, 0x18, 0x8e, 0x2b,
0x00, 0xab, 0xef, 0xbc,
0xf0, 0xac, 0x40, 0x82,
0x72, 0xa4, 0x42, 0x62,
- 0x6c, 0xb8, 0x81, 0x31,
+ 0x43, 0x98, 0x81, 0x31,
0x8e, 0x2b, 0x6f, 0xbc,
0xfc, 0x14, 0x80, 0xbb,
0x00, 0x44, 0xfe, 0x44,
@@ -8891,8 +9199,8 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x82, 0x9b, 0x7e, 0x2e,
0x02, 0x06, 0x3e, 0x0e,
0x09, 0x21, 0xe0, 0x10,
- 0x68, 0x9d, 0x46, 0x0e,
- 0x78, 0x18, 0xc0, 0x10,
+ 0x68, 0xf1, 0x06, 0x4e,
+ 0x4e, 0xf8, 0xc0, 0x10,
0x92, 0x0b, 0x6f, 0xbc,
0x81, 0x11, 0x01, 0x01,
0x81, 0x01, 0x09, 0x0e,
@@ -9084,17 +9392,17 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0xfa, 0x00, 0x00, 0x4c,
0xe1, 0x00, 0x1e, 0x06,
0x61, 0x9c, 0x00, 0x46,
- 0x4f, 0x58, 0x83, 0x11,
- 0xc1, 0xc3, 0xef, 0xbc,
+ 0x66, 0x38, 0x83, 0x11,
+ 0xc1, 0xc3, 0xef, 0xb8,
0xfa, 0x0c, 0x04, 0x0c,
0x80, 0x6b, 0x02, 0x7b,
0x60, 0x3c, 0x41, 0xf6,
- 0x5c, 0xf8, 0x81, 0x11,
- 0x81, 0x81, 0x6f, 0xc0,
+ 0x73, 0xd8, 0x81, 0x11,
+ 0x81, 0x81, 0x6f, 0xbc,
0x60, 0x00, 0x42, 0x76,
- 0x79, 0xb8, 0x8c, 0x0b,
- 0x5b, 0x18, 0xe8, 0x24,
- 0x8c, 0x0b, 0x68, 0x10,
+ 0x62, 0x98, 0x8c, 0x0b,
+ 0x7e, 0xd8, 0xe8, 0x24,
+ 0x8c, 0x0b, 0x68, 0x0c,
0xe1, 0x3c, 0x00, 0x86,
0x80, 0x18, 0x80, 0x04,
0xf1, 0xfc, 0x42, 0x10,
@@ -9104,7 +9412,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x80, 0x04, 0xe1, 0x44,
0x40, 0x46, 0x00, 0x86,
0x80, 0x04, 0xe1, 0x44,
- 0x01, 0xc6, 0x00, 0x86,
+ 0x40, 0x46, 0x00, 0x86,
0x0c, 0x2b, 0xef, 0xdc,
0xc0, 0x15, 0x6e, 0x09,
0x73, 0xf5, 0x42, 0x20,
@@ -9150,14 +9458,14 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x4c, 0x81, 0xbf, 0xc1,
0x80, 0x38, 0x03, 0x11,
0x80, 0x00, 0x40, 0x15,
- 0x68, 0x00, 0x61, 0xe8,
+ 0x68, 0x00, 0x5f, 0xa8,
0x42, 0x86, 0x8c, 0x0b,
0x8c, 0x0b, 0x60, 0x00,
- 0xe8, 0x24, 0x72, 0x28,
+ 0xe8, 0x24, 0x5b, 0x08,
0xef, 0xfc, 0x76, 0xe8,
0xfa, 0x00, 0x04, 0x0c,
0x8b, 0x11, 0x00, 0x6b,
- 0xe8, 0x28, 0x6d, 0xa8,
+ 0xe8, 0x28, 0x56, 0x88,
0x61, 0x24, 0x00, 0xc6,
0xe0, 0x00, 0x42, 0x06,
0x4c, 0x11, 0x80, 0x04,
@@ -9166,7 +9474,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0xe1, 0x3c, 0x00, 0x86,
0x80, 0x18, 0x80, 0x04,
0xf1, 0xfc, 0x42, 0x10,
- 0x01, 0x86, 0x00, 0x16,
+ 0x40, 0x06, 0x00, 0x16,
0x80, 0x08, 0xef, 0xdc,
0xe0, 0x80, 0x40, 0x0a,
0x0e, 0x09, 0x0c, 0x0b,
@@ -9174,8 +9482,8 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0xc0, 0xff, 0x13, 0x7d,
0x0e, 0x09, 0x4c, 0x03,
0x8c, 0x0b, 0x40, 0x15,
- 0xe8, 0x00, 0x5e, 0xe8,
- 0xe8, 0x00, 0x5e, 0x48,
+ 0xe8, 0x00, 0x5c, 0xa8,
+ 0xe8, 0x00, 0x5c, 0x08,
0x61, 0x44, 0x40, 0x46,
0x80, 0x04, 0x85, 0x11,
0x01, 0x86, 0x00, 0x16,
@@ -9194,15 +9502,15 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x86, 0x65, 0xb3, 0x0b,
0x86, 0xb5, 0xb5, 0x0b,
0x0c, 0x0c, 0x8c, 0x0b,
- 0x39, 0x38, 0xf2, 0x00,
+ 0x20, 0x58, 0xf2, 0x00,
0x8c, 0x0b, 0xe0, 0x58,
0xf2, 0x00, 0x0c, 0x0c,
- 0xe0, 0x44, 0x0a, 0xc8,
+ 0xe0, 0x40, 0x35, 0x48,
0x0c, 0x0c, 0x8c, 0x0b,
- 0x21, 0x18, 0xf2, 0x00,
+ 0x08, 0x38, 0xf2, 0x00,
0x8c, 0x0b, 0xe0, 0x54,
0xf2, 0x00, 0x0c, 0x0c,
- 0xe0, 0x4c, 0x26, 0x08,
+ 0xe0, 0x4c, 0x10, 0xc8,
0x0c, 0x0c, 0x8c, 0x0b,
0x85, 0xb5, 0xf2, 0x00,
0x0c, 0x0c, 0x8c, 0x0b,
@@ -9211,7 +9519,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0xdd, 0x93, 0xf2, 0x00,
0xfa, 0x00, 0x04, 0x0c,
0x81, 0x11, 0x01, 0x01,
- 0x68, 0x24, 0x54, 0xc8,
+ 0x68, 0x20, 0x7d, 0xa8,
0x03, 0x46, 0x81, 0x61,
0x83, 0x31, 0x61, 0x4c,
0x08, 0x36, 0x84, 0x24,
@@ -9221,25 +9529,22 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x84, 0x14, 0x87, 0x21,
0x83, 0x11, 0x04, 0x26,
0xf2, 0x00, 0x0c, 0x0c,
- 0xe0, 0x24, 0x13, 0x88,
+ 0xe0, 0x20, 0x3c, 0x68,
0x61, 0x14, 0x40, 0xc6,
0x80, 0x04, 0x83, 0x11,
0xc1, 0x83, 0x80, 0x16,
0xdd, 0x93, 0xc7, 0x13,
- 0xfa, 0x7c, 0x04, 0x0c,
- 0xec, 0x10, 0x1e, 0xf0,
+ 0xfa, 0x3c, 0x04, 0x0c,
0x0c, 0x09, 0x80, 0x6b,
0xc0, 0x2b, 0x6c, 0x21,
- 0x82, 0x55, 0xb3, 0x0b,
- 0xe0, 0x00, 0x40, 0x96,
- 0x6c, 0x1d, 0x4c, 0x01,
- 0x8c, 0x0b, 0x40, 0x2b,
- 0xe8, 0x50, 0x56, 0xe8,
- 0x40, 0x66, 0x81, 0x95,
+ 0x40, 0x96, 0xb3, 0x0b,
+ 0x4c, 0x01, 0x80, 0x00,
+ 0x80, 0x2b, 0x0c, 0x1d,
+ 0x40, 0x66, 0x82, 0x25,
0x4c, 0x01, 0xe0, 0x00,
0x40, 0x2b, 0x6c, 0x1d,
- 0x59, 0xf8, 0x8c, 0x0b,
- 0x58, 0xf8, 0xe8, 0x50,
+ 0x41, 0x78, 0x8c, 0x0b,
+ 0x40, 0xf8, 0xe8, 0x50,
0x8c, 0x0b, 0x68, 0x18,
0x61, 0xd1, 0x0c, 0x09,
0x80, 0x7b, 0x40, 0x15,
@@ -9255,93 +9560,78 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x82, 0x45, 0xc0, 0x16,
0x6c, 0x1d, 0x0c, 0x29,
0x8c, 0x0b, 0x40, 0x2b,
- 0x68, 0x10, 0x4c, 0x28,
+ 0x68, 0x0c, 0x70, 0x48,
0xa1, 0x0b, 0x8e, 0x1b,
- 0x5c, 0xd8, 0xa0, 0x55,
+ 0x47, 0xb8, 0x98, 0x75,
0x8c, 0x0b, 0x68, 0x44,
- 0x65, 0xc1, 0x10, 0x60,
- 0x0c, 0x09, 0xc0, 0x54,
- 0x40, 0x2b, 0x6c, 0x21,
- 0xb3, 0x0b, 0x80, 0x7b,
- 0x21, 0x7b, 0x90, 0x15,
- 0xe0, 0x00, 0x40, 0x96,
+ 0x6c, 0x21, 0x0c, 0x09,
+ 0x80, 0x7b, 0x40, 0x2b,
+ 0x88, 0x55, 0xb3, 0x0b,
+ 0x92, 0xd5, 0xa1, 0x7b,
+ 0x68, 0x3c, 0x72, 0xc8,
+ 0x00, 0x7b, 0x8c, 0x0b,
+ 0xe1, 0x34, 0x41, 0x06,
+ 0x02, 0x96, 0x00, 0x04,
+ 0x4c, 0x11, 0xe0, 0x04,
+ 0xc0, 0x2b, 0x6c, 0x1d,
+ 0x00, 0x0e, 0x00, 0x16,
+ 0x0c, 0x19, 0xff, 0xf8,
+ 0xc0, 0x2c, 0x6c, 0xfd,
+ 0xe3, 0xf0, 0x02, 0x0a,
+ 0xc4, 0x04, 0x00, 0x10,
+ 0x6c, 0xfd, 0x4c, 0x01,
+ 0x8c, 0x0b, 0x40, 0x2c,
+ 0xe8, 0x04, 0x4b, 0xe8,
+ 0x8c, 0x15, 0xa1, 0x7b,
+ 0x21, 0x7b, 0x87, 0x85,
+ 0xe0, 0x00, 0x40, 0x66,
0x6c, 0x1d, 0x4c, 0x01,
- 0x98, 0xb5, 0xc0, 0x2b,
- 0x61, 0x4c, 0x41, 0x46,
- 0x64, 0x50, 0x02, 0x60,
- 0x3c, 0x1e, 0xc0, 0x9e,
+ 0x8a, 0x15, 0xc0, 0x2b,
+ 0x61, 0x4c, 0x55, 0x46,
+ 0x66, 0xe0, 0x10, 0x60,
+ 0x28, 0x04, 0xc0, 0xa3,
+ 0x67, 0x61, 0x12, 0x60,
+ 0x02, 0x60, 0xc0, 0x9f,
+ 0x40, 0x54, 0x65, 0xc1,
0x65, 0x41, 0x04, 0x60,
- 0x00, 0x04, 0xc0, 0x54,
- 0x66, 0xd1, 0x06, 0x60,
- 0x08, 0x60, 0xc0, 0x54,
- 0x40, 0xa3, 0x66, 0xe1,
- 0x66, 0x71, 0x0a, 0x60,
- 0x4d, 0x78, 0xc0, 0xa2,
- 0x90, 0x1b, 0x6f, 0xc4,
+ 0x06, 0x60, 0xc0, 0x54,
+ 0x40, 0x54, 0x66, 0xd1,
+ 0x5e, 0xd8, 0x90, 0x4b,
+ 0x92, 0x5b, 0x6f, 0xc0,
0xa1, 0x7b, 0x80, 0x7b,
- 0x42, 0x18, 0x92, 0x95,
- 0x8c, 0x0b, 0x68, 0x40,
- 0x41, 0x06, 0x00, 0x7b,
- 0x00, 0x04, 0xe1, 0x34,
- 0xe0, 0x04, 0x02, 0x96,
- 0x6c, 0x1d, 0x4c, 0x11,
- 0x00, 0x16, 0xc0, 0x2b,
- 0xff, 0xf8, 0x00, 0x0e,
- 0x6c, 0xfd, 0x0c, 0x19,
- 0x02, 0x0a, 0xc0, 0x2c,
- 0x00, 0x10, 0xe3, 0xf0,
- 0x4c, 0x01, 0xc4, 0x04,
- 0x40, 0x2c, 0x6c, 0xfd,
- 0x4b, 0x78, 0x8c, 0x0b,
- 0xa1, 0x7b, 0xe8, 0x04,
- 0x87, 0x65, 0x8a, 0xd5,
- 0x40, 0x66, 0x21, 0x7b,
- 0x4c, 0x01, 0xe0, 0x00,
- 0xc0, 0x2b, 0x6c, 0x1d,
- 0x57, 0x46, 0x88, 0xd5,
- 0x12, 0x60, 0x61, 0x4c,
- 0xc0, 0xa3, 0x66, 0xe0,
- 0x14, 0x60, 0x2c, 0x04,
- 0xc0, 0x9f, 0x67, 0x61,
- 0x65, 0x41, 0x04, 0x60,
- 0x06, 0x60, 0x40, 0x54,
- 0xc0, 0x54, 0x66, 0xd1,
- 0x92, 0x4b, 0x10, 0x1b,
- 0x6f, 0xc4, 0x56, 0x48,
- 0x80, 0x7b, 0x94, 0x5b,
- 0x82, 0xf5, 0xa1, 0x7b,
- 0x02, 0x60, 0x2c, 0x04,
- 0xc0, 0xad, 0x66, 0x31,
- 0x64, 0x71, 0x08, 0x60,
- 0x92, 0x2b, 0x40, 0xa1,
- 0x6f, 0xc4, 0x58, 0xe8,
- 0x80, 0x7b, 0x94, 0x3b,
- 0x84, 0x05, 0xa1, 0x7b,
- 0x6c, 0x1d, 0x0c, 0x29,
- 0x8c, 0x0b, 0x40, 0x2b,
- 0x68, 0x10, 0x44, 0x28,
- 0xa1, 0x0b, 0x8e, 0x1b,
- 0x81, 0x71, 0x80, 0x55,
- 0x88, 0xf1, 0x0e, 0x0b,
- 0xf2, 0x7c, 0x0c, 0x0c,
- 0x2c, 0x04, 0xdd, 0x93,
+ 0x28, 0x04, 0x82, 0xf5,
+ 0x66, 0x31, 0x02, 0x60,
+ 0x08, 0x60, 0xc0, 0xad,
+ 0x40, 0xa1, 0x64, 0x71,
+ 0x61, 0x78, 0x90, 0x2b,
+ 0x92, 0x3b, 0x6f, 0xc0,
+ 0xa1, 0x7b, 0x80, 0x7b,
+ 0x0c, 0x29, 0x82, 0xe5,
+ 0x40, 0x2b, 0x6c, 0x1d,
+ 0x6a, 0x38, 0x8c, 0x0b,
+ 0x8e, 0x1b, 0x68, 0x0c,
+ 0x80, 0x55, 0xa1, 0x0b,
+ 0x8e, 0x0b, 0x81, 0x71,
+ 0xf2, 0x3c, 0x0c, 0x0c,
+ 0x28, 0x04, 0xdd, 0x93,
0x64, 0x81, 0x04, 0x60,
0x06, 0x60, 0xc0, 0x99,
0x40, 0xa2, 0x65, 0x21,
- 0x4e, 0x78, 0x92, 0x1b,
- 0xf3, 0x95, 0xef, 0xf8,
- 0x66, 0x15, 0x00, 0x8a,
+ 0x50, 0xd8, 0x90, 0x1b,
+ 0x73, 0x95, 0xef, 0xf8,
+ 0xc1, 0xc3, 0x80, 0x7b,
+ 0x64, 0x51, 0x00, 0x8a,
0x80, 0xf5, 0xc0, 0x03,
0x61, 0x18, 0x01, 0x46,
0x80, 0x04, 0x87, 0x11,
0xdd, 0x93, 0x80, 0x16,
- 0x65, 0x61, 0x00, 0x8a,
+ 0x64, 0x39, 0x00, 0x8a,
0x80, 0xf5, 0xc0, 0x02,
0x61, 0x18, 0x01, 0x46,
0x80, 0x04, 0x85, 0x11,
0xdd, 0x93, 0x80, 0x16,
0x61, 0x18, 0x03, 0x46,
- 0x64, 0xac, 0x01, 0x4a,
+ 0x64, 0x18, 0x01, 0x4a,
0x84, 0x14, 0xc0, 0x01,
0xe2, 0x00, 0x00, 0x0c,
0xdd, 0x93, 0x84, 0x06,
@@ -9425,7 +9715,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x00, 0x26, 0x00, 0x6b,
0x4c, 0x01, 0xe0, 0x0c,
0x40, 0x2b, 0x6c, 0x1d,
- 0x79, 0xf8, 0x81, 0x01,
+ 0x65, 0x18, 0x81, 0x01,
0x81, 0x11, 0x68, 0x20,
0x6f, 0xa9, 0x0c, 0x15,
0x25, 0x1b, 0xc0, 0x0b,
@@ -9434,13 +9724,13 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x42, 0x4a, 0x88, 0x18,
0x80, 0xc5, 0xe0, 0x80,
0x0c, 0x0c, 0x83, 0x11,
- 0x38, 0xd8, 0xf2, 0xfc,
+ 0x23, 0xf8, 0xf2, 0xfc,
0x3e, 0x0e, 0xe0, 0x20,
0x88, 0x18, 0x8c, 0x0b,
0xf3, 0xf8, 0x42, 0x10,
0x02, 0x86, 0x08, 0x16,
- 0x4c, 0x18, 0xe0, 0x0c,
- 0x81, 0x21, 0x68, 0x54,
+ 0x75, 0x78, 0xe0, 0x0c,
+ 0x81, 0x21, 0x68, 0x50,
0x61, 0x44, 0x10, 0xc6,
0xe1, 0x48, 0x53, 0x86,
0xff, 0xa1, 0x20, 0x04,
@@ -9455,22 +9745,22 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x0c, 0x29, 0x84, 0x05,
0x40, 0x2b, 0x6c, 0x1d,
0xe0, 0x0c, 0x02, 0x96,
- 0x68, 0x0c, 0x73, 0x28,
+ 0x68, 0x0c, 0x59, 0x28,
0x81, 0x95, 0x8c, 0x0b,
0x80, 0x08, 0xa0, 0x04,
0x01, 0x55, 0xc7, 0x07,
0xf0, 0x04, 0x4e, 0x00,
- 0xef, 0xfc, 0x50, 0xa8,
+ 0xef, 0xfc, 0x52, 0xe8,
0x80, 0x04, 0xac, 0x04,
0xf8, 0x35, 0xa1, 0x0b,
0x83, 0x11, 0x3e, 0x04,
0xf2, 0xfc, 0x0c, 0x0c,
- 0xe0, 0x20, 0x35, 0x08,
+ 0xe0, 0x20, 0x20, 0x28,
0xfa, 0xfc, 0x04, 0x0c,
0x00, 0x36, 0x00, 0x7b,
0x4e, 0x01, 0xe0, 0x0c,
0x40, 0x2b, 0x6c, 0x1d,
- 0x74, 0x58, 0x81, 0x01,
+ 0x5f, 0x78, 0x81, 0x01,
0x81, 0x11, 0x68, 0x20,
0x3e, 0x0e, 0x81, 0x81,
0xe1, 0x24, 0x01, 0xc6,
@@ -9478,11 +9768,11 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x80, 0x86, 0xe1, 0x24,
0x80, 0x64, 0xa8, 0x04,
0x8e, 0x0b, 0x00, 0x14,
- 0xe8, 0x24, 0x49, 0x88,
+ 0xe8, 0x20, 0x74, 0xa8,
0x43, 0xa6, 0x03, 0x91,
0x03, 0x21, 0xe0, 0x0c,
- 0x46, 0xd8, 0x8e, 0x0b,
- 0x41, 0x86, 0xe8, 0x54,
+ 0x70, 0x38, 0x8e, 0x0b,
+ 0x41, 0x86, 0xe8, 0x50,
0x80, 0x14, 0xe1, 0x14,
0x03, 0x46, 0x04, 0x8c,
0x84, 0x14, 0xe1, 0x24,
@@ -9495,14 +9785,14 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x02, 0x86, 0x04, 0x96,
0x80, 0x04, 0xe0, 0x0c,
0x8e, 0x0b, 0x00, 0x9c,
- 0xe8, 0x54, 0x45, 0x28,
+ 0xe8, 0x50, 0x6e, 0x88,
0x61, 0x24, 0x01, 0xc6,
0x80, 0x04, 0xa9, 0x11,
0x8e, 0x0b, 0x00, 0x96,
- 0xe8, 0x24, 0x46, 0xe8,
+ 0xe8, 0x20, 0x72, 0x08,
0x60, 0x0c, 0x02, 0x86,
- 0x44, 0x58, 0x81, 0x21,
- 0x8e, 0x0b, 0x68, 0x54,
+ 0x6d, 0xb8, 0x81, 0x21,
+ 0x8e, 0x0b, 0x68, 0x50,
0xe1, 0x44, 0x00, 0xc6,
0x80, 0x08, 0x80, 0x04,
0x52, 0x00, 0xc7, 0x07,
@@ -9523,7 +9813,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0xe0, 0x0c, 0x02, 0xa6,
0x6c, 0x1d, 0x0e, 0x29,
0x8e, 0x0b, 0x40, 0x2b,
- 0xe8, 0x0c, 0x6a, 0xa8,
+ 0xe8, 0x0c, 0x50, 0xa8,
0x00, 0xc6, 0x81, 0x85,
0x80, 0x04, 0xe1, 0x44,
0xc7, 0x07, 0x80, 0x08,
@@ -9531,10 +9821,10 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x80, 0x04, 0xa8, 0x04,
0xf4, 0x45, 0x81, 0x6b,
0x8e, 0x0b, 0x2b, 0x11,
- 0xe8, 0x24, 0x42, 0xe8,
+ 0xe8, 0x20, 0x6e, 0x08,
0x00, 0x14, 0xa8, 0x04,
- 0x42, 0x98, 0x8e, 0x0b,
- 0x01, 0xc6, 0xe8, 0x24,
+ 0x6d, 0xb8, 0x8e, 0x0b,
+ 0x01, 0xc6, 0xe8, 0x20,
0x80, 0x04, 0xe1, 0x24,
0x41, 0x46, 0x00, 0x86,
0x80, 0x04, 0xe1, 0x18,
@@ -9546,7 +9836,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x00, 0x16, 0xf3, 0xf4,
0xbe, 0x04, 0x83, 0x11,
0xf2, 0xfc, 0x0c, 0x0c,
- 0xe0, 0x20, 0x2a, 0xe8,
+ 0xe0, 0x20, 0x16, 0x08,
0x70, 0x01, 0x00, 0x06,
0x02, 0x06, 0x40, 0x20,
0xff, 0xc0, 0x60, 0x01,
@@ -9554,7 +9844,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0xfa, 0x0c, 0x04, 0x0c,
0x80, 0x8b, 0x02, 0x7b,
0x81, 0x01, 0x04, 0x6b,
- 0x68, 0x20, 0x69, 0xe8,
+ 0x68, 0x20, 0x55, 0x08,
0x43, 0x86, 0x81, 0x11,
0x49, 0xc6, 0x61, 0x48,
0x04, 0x24, 0xe1, 0x48,
@@ -9578,7 +9868,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0xa4, 0x3f, 0x88, 0x3f,
0x83, 0x11, 0x04, 0x3e,
0xf2, 0x0c, 0x0c, 0x0c,
- 0xe0, 0x20, 0x26, 0xe8,
+ 0xe0, 0x20, 0x12, 0x08,
0xfa, 0xfc, 0x04, 0x0c,
0x50, 0x06, 0x00, 0x6b,
0x0c, 0x09, 0xe1, 0xa0,
@@ -9603,11 +9893,11 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x00, 0x0a, 0x98, 0x85,
0xaa, 0x65, 0xf0, 0x0c,
0xf0, 0x04, 0x00, 0x0a,
- 0x40, 0x00, 0x13, 0x38,
+ 0x40, 0x00, 0x13, 0x68,
0xc1, 0x4c, 0x17, 0xc6,
0x02, 0x56, 0x04, 0xab,
- 0x43, 0xb8, 0xe0, 0x10,
- 0x8c, 0x0b, 0x68, 0x24,
+ 0x6e, 0xd8, 0xe0, 0x10,
+ 0x8c, 0x0b, 0x68, 0x20,
0x61, 0x98, 0x05, 0x46,
0xfb, 0x80, 0x00, 0x74,
0x72, 0xfd, 0x49, 0xc6,
@@ -9637,10 +9927,10 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0xf0, 0x94, 0x40, 0x32,
0x48, 0x30, 0x90, 0x34,
0xbf, 0x4b, 0xf0, 0x3c,
- 0x1d, 0xe5, 0xf6, 0x15,
+ 0x1f, 0x15, 0xf6, 0x15,
0x02, 0x56, 0x94, 0x2b,
0x8c, 0x0b, 0x60, 0x80,
- 0x68, 0x20, 0x7f, 0x88,
+ 0x68, 0x20, 0x6a, 0xa8,
0x0c, 0x0b, 0x84, 0x7b,
0x40, 0x15, 0x6e, 0x09,
0xe1, 0x4c, 0x17, 0xc6,
@@ -9648,10 +9938,10 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0xc0, 0xff, 0x72, 0xf1,
0x6e, 0x09, 0x4c, 0x03,
0x8c, 0x0b, 0x40, 0x15,
- 0xef, 0xf8, 0x79, 0xc8,
- 0x8e, 0x2b, 0x1b, 0x75,
+ 0xef, 0xf8, 0x7c, 0x08,
+ 0x8e, 0x2b, 0x1b, 0xa5,
0x02, 0x56, 0x3e, 0x2e,
- 0x7e, 0x18, 0xe0, 0x20,
+ 0x69, 0x38, 0xe0, 0x20,
0x8c, 0x0b, 0x68, 0x20,
0x7b, 0x80, 0x00, 0x74,
0x72, 0xfc, 0x43, 0xc6,
@@ -9686,92 +9976,94 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0xc5, 0x3e, 0xe4, 0x10,
0xf0, 0x3c, 0x48, 0x30,
0xf4, 0x95, 0xbf, 0x4b,
- 0x91, 0xc5, 0xbe, 0x24,
+ 0x91, 0xf5, 0xbe, 0x24,
0x60, 0x40, 0x02, 0x56,
- 0x79, 0x78, 0x8c, 0x0b,
- 0x4a, 0x58, 0xe8, 0x20,
- 0x8c, 0x0b, 0x68, 0x00,
- 0xef, 0xfc, 0x43, 0xc8,
- 0x6e, 0x09, 0x0c, 0x0b,
- 0x03, 0xee, 0x40, 0x15,
- 0x0e, 0x0a, 0xff, 0xfc,
- 0x82, 0x0f, 0xe8, 0x00,
- 0x7c, 0x04, 0x42, 0x00,
- 0xfd, 0x04, 0x40, 0x00,
- 0x6e, 0x09, 0x4c, 0x13,
- 0x03, 0x86, 0x40, 0x15,
- 0x84, 0x9e, 0xe1, 0x98,
- 0x6e, 0x09, 0x4c, 0x03,
- 0x00, 0x74, 0x40, 0x15,
- 0x4c, 0xb1, 0xfb, 0x80,
- 0x40, 0x15, 0x62, 0xe5,
- 0xe1, 0x4c, 0x17, 0xc6,
- 0x49, 0xc6, 0x8e, 0x05,
- 0x40, 0x20, 0x72, 0xfd,
- 0xe1, 0x98, 0x05, 0x46,
- 0x73, 0x01, 0x02, 0x06,
- 0xa0, 0x43, 0x40, 0x20,
- 0x40, 0x12, 0x20, 0x14,
- 0x88, 0x2a, 0xf1, 0x80,
- 0x0a, 0x40, 0x85, 0x55,
- 0x80, 0x7b, 0x6c, 0x08,
- 0x0a, 0x34, 0x77, 0x5d,
- 0x4a, 0x50, 0xe1, 0x90,
- 0x40, 0x0f, 0x73, 0xfd,
- 0x80, 0x00, 0x08, 0x16,
- 0x66, 0x96, 0x48, 0x4a,
- 0x84, 0x33, 0xe1, 0x37,
- 0x73, 0xf1, 0x4a, 0x30,
- 0xc5, 0x47, 0x41, 0xff,
- 0x64, 0x10, 0x06, 0x00,
- 0x01, 0x65, 0x82, 0x53,
- 0x5d, 0x94, 0x88, 0xcb,
- 0xec, 0x04, 0x18, 0xc0,
- 0xa1, 0xcb, 0xd5, 0x9e,
- 0x0a, 0x44, 0xfe, 0x75,
- 0x48, 0x02, 0xe0, 0x88,
- 0x40, 0x32, 0x70, 0x94,
- 0x90, 0x34, 0xf0, 0x94,
- 0xf0, 0x3c, 0x48, 0x30,
- 0xf6, 0x15, 0xbf, 0x4b,
- 0x62, 0x65, 0x0c, 0x19,
- 0x00, 0x46, 0x40, 0x15,
- 0x80, 0x04, 0xe1, 0x4c,
- 0x80, 0x28, 0x88, 0x19,
- 0xf3, 0xec, 0x44, 0x20,
- 0x80, 0x26, 0xa2, 0x2f,
- 0x64, 0xc5, 0x0c, 0x09,
- 0x4c, 0x01, 0xc0, 0x2b,
- 0x40, 0x2b, 0x6c, 0x21,
- 0x45, 0x78, 0x8c, 0x0b,
- 0x20, 0x44, 0xe8, 0x00,
- 0x65, 0x01, 0x00, 0x60,
- 0x04, 0x04, 0xc0, 0x54,
- 0x81, 0x01, 0x7b, 0x80,
- 0x06, 0x46, 0x19, 0x11,
- 0xc0, 0x20, 0x72, 0xc1,
- 0xe8, 0x00, 0x4f, 0x48,
- 0x9f, 0x21, 0x2c, 0x14,
- 0x4e, 0xa0, 0x00, 0x2e,
- 0xc3, 0x00, 0x7c, 0x51,
- 0x6b, 0xd8, 0x84, 0x7e,
- 0x0e, 0x2b, 0xef, 0xf8,
- 0x02, 0x06, 0xa9, 0x91,
- 0x7f, 0xc0, 0x60, 0x01,
- 0xfb, 0x80, 0x00, 0x94,
- 0x84, 0x1f, 0x2c, 0x24,
- 0x40, 0x10, 0xa0, 0x1f,
- 0xc3, 0x00, 0x7c, 0x01,
- 0x0c, 0x09, 0x88, 0x0e,
- 0xc0, 0x2d, 0x67, 0xcd,
- 0xe0, 0x80, 0x40, 0x0a,
- 0x0c, 0x09, 0x80, 0xe5,
- 0xc0, 0x2b, 0x6c, 0x11,
- 0xe0, 0x98, 0x40, 0x0a,
- 0x0c, 0x0c, 0x80, 0x95,
- 0xdd, 0x93, 0xf2, 0xfc,
- 0x0c, 0x0c, 0x8c, 0x0b,
- 0x9f, 0x95, 0xf2, 0xfc,
+ 0x64, 0x98, 0x8c, 0x0b,
+ 0x4c, 0x91, 0xe8, 0x20,
+ 0x40, 0x38, 0x64, 0xc5,
+ 0x4a, 0x58, 0x8c, 0x0b,
+ 0x45, 0xd8, 0xe8, 0x00,
+ 0x0c, 0x0b, 0xef, 0xfc,
+ 0x40, 0x15, 0x6e, 0x09,
+ 0xff, 0xfc, 0x03, 0xee,
+ 0xe8, 0x00, 0x0e, 0x0a,
+ 0x42, 0x00, 0x82, 0x0f,
+ 0x40, 0x00, 0x7c, 0x04,
+ 0x4c, 0x13, 0xfd, 0x04,
+ 0x40, 0x15, 0x6e, 0x09,
+ 0xe1, 0x98, 0x03, 0x86,
+ 0x4c, 0x03, 0x84, 0x9e,
+ 0x40, 0x15, 0x6e, 0x09,
+ 0xfb, 0x80, 0x00, 0x74,
+ 0x62, 0xe5, 0x4c, 0xb1,
+ 0x17, 0xc6, 0x40, 0x15,
+ 0x8e, 0x05, 0xe1, 0x4c,
+ 0x72, 0xfd, 0x49, 0xc6,
+ 0x05, 0x46, 0x40, 0x20,
+ 0x02, 0x06, 0xe1, 0x98,
+ 0x40, 0x20, 0x73, 0x01,
+ 0x20, 0x14, 0xa0, 0x43,
+ 0xf1, 0x80, 0x40, 0x12,
+ 0x85, 0x55, 0x88, 0x2a,
+ 0x6c, 0x08, 0x0a, 0x40,
+ 0x77, 0x5d, 0x80, 0x7b,
+ 0xe1, 0x90, 0x0a, 0x34,
+ 0x73, 0xfd, 0x4a, 0x50,
+ 0x08, 0x16, 0x40, 0x0f,
+ 0x48, 0x4a, 0x80, 0x00,
+ 0xe1, 0x37, 0x66, 0x96,
+ 0x4a, 0x30, 0x84, 0x33,
+ 0x41, 0xff, 0x73, 0xf1,
+ 0x06, 0x00, 0xc5, 0x47,
+ 0x82, 0x53, 0x64, 0x10,
+ 0x88, 0xcb, 0x01, 0x65,
+ 0x18, 0xc0, 0x5d, 0x94,
+ 0xd5, 0x9e, 0xec, 0x04,
+ 0xfe, 0x75, 0xa1, 0xcb,
+ 0xe0, 0x88, 0x0a, 0x44,
+ 0x70, 0x94, 0x48, 0x02,
+ 0xf0, 0x94, 0x40, 0x32,
+ 0x48, 0x30, 0x90, 0x34,
+ 0xbf, 0x4b, 0xf0, 0x3c,
+ 0x0c, 0x19, 0xf6, 0x15,
+ 0x40, 0x15, 0x62, 0x65,
+ 0xe1, 0x4c, 0x00, 0x46,
+ 0x88, 0x19, 0x80, 0x04,
+ 0x44, 0x20, 0x80, 0x28,
+ 0xa2, 0x2f, 0xf3, 0xec,
+ 0x0c, 0x09, 0x80, 0x26,
+ 0xc0, 0x2b, 0x64, 0xc5,
+ 0x6c, 0x21, 0x4c, 0x01,
+ 0x8c, 0x0b, 0x40, 0x2b,
+ 0xe8, 0x00, 0x45, 0x88,
+ 0x00, 0x60, 0x20, 0x44,
+ 0xc0, 0x54, 0x65, 0x01,
+ 0x7b, 0x80, 0x04, 0x04,
+ 0x19, 0x11, 0x81, 0x01,
+ 0x72, 0xc1, 0x06, 0x46,
+ 0x4f, 0x58, 0xc0, 0x20,
+ 0x2c, 0x14, 0xe8, 0x00,
+ 0x00, 0x2e, 0x9f, 0x21,
+ 0x7c, 0x51, 0x4e, 0xa0,
+ 0x84, 0x7e, 0xc3, 0x00,
+ 0xef, 0xf8, 0x6d, 0xe8,
+ 0xa9, 0x91, 0x0e, 0x2b,
+ 0x60, 0x01, 0x02, 0x06,
+ 0x00, 0x94, 0x7f, 0xc0,
+ 0x2c, 0x24, 0xfb, 0x80,
+ 0xa0, 0x1f, 0x84, 0x1f,
+ 0x7c, 0x01, 0x40, 0x10,
+ 0x88, 0x0e, 0xc3, 0x00,
+ 0x67, 0xcd, 0x0c, 0x09,
+ 0x40, 0x0a, 0xc0, 0x2d,
+ 0x80, 0xe5, 0xe0, 0x80,
+ 0x6c, 0x11, 0x0c, 0x09,
+ 0x40, 0x0a, 0xc0, 0x2b,
+ 0x80, 0x95, 0xe0, 0x98,
+ 0xf2, 0xfc, 0x0c, 0x0c,
+ 0x8c, 0x0b, 0xdd, 0x93,
+ 0xf2, 0xfc, 0x0c, 0x0c,
+ 0xc1, 0xc3, 0x9f, 0xa5,
0xfa, 0x00, 0x04, 0x0c,
0x41, 0x86, 0x00, 0x6b,
0x80, 0x14, 0xe1, 0x48,
@@ -9782,10 +10074,10 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x80, 0x04, 0x84, 0x26,
0x42, 0x10, 0x80, 0x18,
0x80, 0x16, 0xf1, 0xfc,
- 0xef, 0xf8, 0x78, 0x68,
+ 0xef, 0xf8, 0x7a, 0x68,
0x83, 0x11, 0x01, 0x01,
0x0c, 0x0c, 0x8c, 0x2b,
- 0x22, 0xb8, 0xf2, 0x00,
+ 0x22, 0x78, 0xf2, 0x00,
0xc1, 0xc3, 0xff, 0xfc,
0xf8, 0x1c, 0x04, 0x0c,
0x61, 0x41, 0x00, 0x19,
@@ -9914,7 +10206,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x73, 0xfd, 0x40, 0x00,
0x4c, 0x03, 0xc0, 0xfd,
0x40, 0x15, 0x6e, 0x09,
- 0x7c, 0xd8, 0x81, 0x01,
+ 0x67, 0xb8, 0x81, 0x01,
0x7e, 0x0e, 0xe8, 0x1c,
0xe1, 0x48, 0x41, 0x86,
0x41, 0xc6, 0x00, 0x14,
@@ -10000,7 +10292,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0xa2, 0x0f, 0xa4, 0x0f,
0x68, 0x01, 0x4c, 0x05,
0x8c, 0x0b, 0x40, 0x02,
- 0xe8, 0x10, 0x5e, 0x68,
+ 0xe8, 0x10, 0x4a, 0xc8,
0xe1, 0x48, 0x41, 0x86,
0x80, 0x18, 0x80, 0x04,
0xe0, 0x90, 0x42, 0x0a,
@@ -10010,7 +10302,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0xa2, 0x2f, 0xf3, 0x7c,
0xf8, 0x80, 0x42, 0x20,
0x7e, 0x04, 0x80, 0x16,
- 0x70, 0xd8, 0x83, 0x11,
+ 0x5b, 0xb8, 0x83, 0x11,
0x01, 0x86, 0xe8, 0x1c,
0x80, 0x04, 0xe1, 0x98,
0x0c, 0x0b, 0xa3, 0x0b,
@@ -10020,10 +10312,10 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x80, 0x85, 0x80, 0x15,
0x68, 0x00, 0x49, 0xc8,
0x03, 0x01, 0x8c, 0x0b,
- 0x45, 0x58, 0x81, 0x11,
+ 0x45, 0x18, 0x81, 0x11,
0x8c, 0x2b, 0x6f, 0xfc,
0x0c, 0x0c, 0xa8, 0xf1,
- 0x1a, 0x38, 0xf2, 0x7c,
+ 0x1c, 0x38, 0xf2, 0x7c,
0xc1, 0xc3, 0xff, 0xf8,
0xf8, 0x7c, 0x04, 0x0c,
0x63, 0x09, 0x00, 0x19,
@@ -10098,7 +10390,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0xc1, 0xc3, 0xdd, 0x93,
0xfa, 0x84, 0x04, 0x0c,
0x81, 0x01, 0x00, 0x6b,
- 0x68, 0x1c, 0x65, 0xe8,
+ 0x68, 0x1c, 0x50, 0xc8,
0x0c, 0x1b, 0x81, 0x11,
0x40, 0x0a, 0x68, 0x91,
0x00, 0x60, 0x80, 0x7b,
@@ -10113,16 +10405,16 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x80, 0x04, 0x8c, 0x2b,
0xe0, 0x19, 0x80, 0x18,
0x83, 0x01, 0x00, 0x16,
- 0x6f, 0xf8, 0x79, 0xc8,
- 0x4e, 0xd8, 0x81, 0x11,
- 0x50, 0xb8, 0xef, 0xf8,
- 0x8c, 0x0b, 0x68, 0x10,
+ 0x6f, 0xf8, 0x79, 0x88,
+ 0x50, 0xd8, 0x81, 0x11,
+ 0x7d, 0x18, 0xef, 0xf8,
+ 0x8c, 0x0b, 0x68, 0x0c,
0x61, 0x8d, 0x0c, 0x0b,
0x83, 0x11, 0x40, 0x1c,
0x4c, 0x03, 0x82, 0x01,
0x40, 0x1c, 0x61, 0x8d,
0x0c, 0x0c, 0x8e, 0x0b,
- 0x22, 0xd8, 0xf2, 0x84,
+ 0x0d, 0xb8, 0xf2, 0x84,
0xc1, 0xc3, 0xe0, 0x1c,
0xfa, 0x00, 0x04, 0x0c,
0x43, 0x86, 0x02, 0x6b,
@@ -10139,16 +10431,17 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0xc0, 0xfe, 0x73, 0xfd,
0x4c, 0x13, 0xa0, 0x1f,
0xc0, 0x15, 0x6e, 0x09,
- 0xef, 0xf8, 0x4b, 0xc8,
+ 0xef, 0xf8, 0x4d, 0xc8,
0x81, 0x11, 0x01, 0x01,
0x0c, 0x0c, 0x8c, 0x2b,
- 0x36, 0x18, 0xf2, 0x00,
+ 0x35, 0xd8, 0xf2, 0x00,
0xc1, 0xc3, 0xff, 0xf8,
0xe1, 0x00, 0x01, 0x86,
0x80, 0x08, 0x80, 0x04,
0x82, 0x09, 0x5d, 0x93,
0xc7, 0x13, 0xc1, 0x83,
- 0xc1, 0xc3, 0xdd, 0x93,
+ 0x00, 0x0c, 0xdd, 0x93,
+ 0xc0, 0x00, 0x61, 0x01,
0xfa, 0x0c, 0x04, 0x0c,
0x81, 0x01, 0x00, 0x6b,
0x82, 0x8b, 0x04, 0x7b,
@@ -10160,13 +10453,13 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x8c, 0x0b, 0x03, 0x11,
0xe8, 0x00, 0x4e, 0x28,
0x80, 0xd5, 0xa1, 0x0b,
- 0x68, 0x48, 0x70, 0x88,
+ 0x68, 0x48, 0x59, 0x88,
0xa1, 0x0b, 0x8c, 0x0b,
0x0c, 0x0c, 0x80, 0x85,
0xdd, 0x93, 0xf2, 0x0c,
0x45, 0x76, 0x01, 0x11,
0x09, 0x31, 0xe0, 0x00,
- 0x74, 0x58, 0x8c, 0x0b,
+ 0x5d, 0x58, 0x8c, 0x0b,
0xa3, 0x8b, 0xe8, 0x48,
0xa1, 0x0b, 0xfc, 0xb5,
0x0c, 0x0b, 0xfc, 0x75,
@@ -10278,7 +10571,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x92, 0x95, 0xa3, 0x1b,
0x65, 0x41, 0x02, 0x60,
0x8c, 0x0b, 0x40, 0xb1,
- 0xe8, 0x48, 0x79, 0xe8,
+ 0xe8, 0x48, 0x62, 0xe8,
0x90, 0x95, 0xa1, 0x0b,
0x4c, 0x01, 0x83, 0x01,
0xc0, 0x2c, 0x65, 0x39,
@@ -10309,7 +10602,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0xe0, 0x84, 0x5e, 0x01,
0x60, 0x8c, 0x5e, 0x01,
0x5e, 0x21, 0x8c, 0x0b,
- 0x75, 0xf8, 0xe0, 0x88,
+ 0x5e, 0xf8, 0xe0, 0x88,
0xa1, 0x0b, 0xe8, 0x48,
0x4c, 0x71, 0x80, 0xb5,
0xc0, 0x2c, 0x65, 0x39,
@@ -10320,7 +10613,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x80, 0x6b, 0x02, 0x7b,
0x64, 0x90, 0x02, 0xf0,
0xe4, 0x80, 0x04, 0xf0,
- 0xe8, 0x10, 0x60, 0x28,
+ 0xe8, 0x10, 0x49, 0x68,
0x60, 0x90, 0x1e, 0x89,
0xe0, 0x04, 0x0e, 0x2a,
0xe0, 0x80, 0x1e, 0x79,
@@ -10355,7 +10648,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x02, 0xb4, 0x00, 0x2c,
0x40, 0x91, 0xfa, 0x80,
0x00, 0x2c, 0x41, 0x71,
- 0x54, 0x18, 0x8c, 0x0b,
+ 0x4f, 0x58, 0x8c, 0x0b,
0x1e, 0x89, 0xe8, 0x00,
0x00, 0x80, 0x60, 0x90,
0x02, 0x04, 0xe4, 0x04,
@@ -10370,152 +10663,114 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0xf6, 0x7c, 0x0c, 0xcc,
0xc1, 0xc3, 0xdd, 0x93,
0xfa, 0x7c, 0x04, 0x0c,
- 0xee, 0x70, 0x1e, 0xf0,
+ 0xee, 0x50, 0x1e, 0xf0,
0xa1, 0x1b, 0x00, 0x6b,
0x65, 0x39, 0x0c, 0x09,
0x84, 0x8b, 0x40, 0x2c,
- 0x42, 0x66, 0x8a, 0x85,
+ 0x42, 0x66, 0x8a, 0x25,
0xa5, 0x0b, 0x60, 0x04,
0x6c, 0x1d, 0x4c, 0x11,
0x81, 0x91, 0x40, 0x2b,
- 0x81, 0xa1, 0x02, 0xc5,
+ 0x81, 0xb1, 0x02, 0xc5,
0x8c, 0x0b, 0x05, 0x11,
0xef, 0xfc, 0x72, 0x68,
- 0xa1, 0xab, 0x80, 0xab,
- 0xc0, 0x00, 0x10, 0x58,
- 0x68, 0x04, 0x6e, 0xa8,
- 0x80, 0xab, 0x8c, 0x0b,
+ 0xa1, 0xbb, 0x80, 0xbb,
+ 0xc0, 0x00, 0x0b, 0xa8,
+ 0x68, 0x04, 0x54, 0x48,
+ 0x80, 0xbb, 0x8c, 0x0b,
0xe4, 0x40, 0x10, 0x8a,
- 0xc0, 0x00, 0x0d, 0x68,
- 0x0d, 0x38, 0xa1, 0xab,
- 0x0c, 0x29, 0xc0, 0x00,
+ 0xa1, 0xbb, 0xa2, 0x75,
+ 0x0c, 0x29, 0xa2, 0x35,
0x40, 0x2b, 0x6c, 0x1d,
0xe0, 0x00, 0x42, 0xb6,
- 0x68, 0x04, 0x7e, 0x28,
- 0x54, 0xb6, 0x8c, 0x0b,
+ 0x68, 0x04, 0x63, 0xe8,
+ 0x56, 0xb6, 0x8c, 0x0b,
0x23, 0x0b, 0xe0, 0x00,
- 0x0c, 0x78, 0x81, 0x81,
- 0x9d, 0xa5, 0xc0, 0x00,
- 0x40, 0xa6, 0x23, 0x0b,
- 0x4c, 0x01, 0xe0, 0x04,
- 0xc0, 0x2b, 0x6c, 0x1d,
- 0x03, 0x11, 0x82, 0x25,
- 0x6f, 0xd8, 0x8c, 0x0b,
- 0x80, 0xab, 0xef, 0xfc,
- 0x0d, 0xc8, 0xa1, 0xab,
- 0x00, 0xc6, 0xc0, 0x00,
+ 0x9e, 0xd5, 0x81, 0x81,
+ 0x23, 0x0b, 0x95, 0x25,
+ 0xe0, 0x04, 0x40, 0xa6,
+ 0x6c, 0x1d, 0x4c, 0x01,
+ 0x82, 0x05, 0xc0, 0x2b,
+ 0x8c, 0x0b, 0x03, 0x11,
+ 0xef, 0xfc, 0x70, 0x08,
+ 0xa1, 0xbb, 0x80, 0xbb,
+ 0x00, 0xc6, 0xa4, 0x95,
0x02, 0xf0, 0x60, 0x08,
- 0x01, 0x55, 0xe4, 0x40,
- 0x45, 0x86, 0x81, 0x81,
+ 0x01, 0x55, 0xe4, 0x20,
+ 0x45, 0xb6, 0x81, 0xb1,
0xec, 0x04, 0x00, 0x00,
0xfe, 0x95, 0xa1, 0x0b,
- 0x81, 0x01, 0x3e, 0x6e,
- 0x81, 0x01, 0x7e, 0x0e,
- 0x65, 0x71, 0x12, 0x60,
- 0x17, 0x06, 0x40, 0xb0,
- 0x7c, 0x0e, 0xe0, 0x04,
- 0x89, 0x55, 0x81, 0x71,
- 0x78, 0x81, 0x12, 0x09,
+ 0x10, 0x60, 0x01, 0x01,
+ 0xc0, 0xb0, 0x65, 0x71,
+ 0x81, 0x01, 0x3e, 0x0e,
+ 0x15, 0x06, 0x3c, 0x0e,
+ 0x89, 0x55, 0xe0, 0x04,
+ 0x78, 0x81, 0x10, 0x09,
0x95, 0x11, 0x40, 0x01,
- 0x14, 0x04, 0x8e, 0x6b,
- 0x9e, 0x09, 0x61, 0x90,
- 0xe6, 0x86, 0x42, 0xaa,
- 0x01, 0x0a, 0x82, 0x03,
- 0x80, 0xf5, 0xe6, 0x30,
- 0xe1, 0x34, 0x03, 0x46,
- 0x84, 0x14, 0x84, 0x14,
- 0x82, 0xf5, 0xb7, 0x1b,
- 0x03, 0x36, 0x3e, 0x04,
- 0x0f, 0x36, 0xe0, 0x08,
- 0x00, 0x29, 0xe0, 0x08,
- 0xc0, 0x2b, 0x6c, 0x1d,
- 0xe8, 0x04, 0x79, 0x68,
- 0x00, 0xc6, 0x23, 0x0b,
- 0x88, 0x05, 0xe0, 0x08,
- 0x06, 0xd5, 0xa1, 0x6b,
- 0xdc, 0x00, 0x4e, 0x60,
- 0x04, 0xf0, 0x24, 0x18,
- 0x16, 0x0a, 0xe4, 0x40,
- 0x80, 0x23, 0x61, 0x40,
- 0x5e, 0xa5, 0x88, 0x16,
- 0x0e, 0x06, 0x00, 0x0c,
- 0x5e, 0xa5, 0x80, 0x00,
- 0x82, 0xc5, 0x80, 0x08,
- 0x81, 0x71, 0x7e, 0x04,
- 0xfa, 0x80, 0x00, 0x04,
- 0xfb, 0x80, 0x40, 0xa2,
- 0xfc, 0x04, 0xfe, 0x0e,
- 0xfa, 0x80, 0x00, 0x04,
- 0xfa, 0x80, 0x40, 0xa2,
- 0x16, 0xb0, 0xfc, 0x0e,
- 0x82, 0x91, 0x6c, 0x04,
- 0xee, 0x75, 0xa1, 0xbb,
- 0x17, 0x46, 0x3e, 0x64,
- 0x87, 0xe5, 0xe1, 0x34,
- 0x7a, 0x80, 0x02, 0x84,
- 0x5f, 0xb8, 0x8c, 0x0b,
- 0xa1, 0x0b, 0xe8, 0x00,
- 0xac, 0x04, 0x80, 0xb5,
- 0xb9, 0x0b, 0x80, 0x04,
- 0x40, 0x62, 0x8c, 0x55,
- 0x95, 0x11, 0x70, 0xa0,
- 0x6b, 0x51, 0x00, 0x09,
- 0x12, 0x04, 0xc0, 0x2c,
- 0x9e, 0x09, 0x61, 0x90,
- 0xe6, 0x86, 0x54, 0x9a,
- 0x15, 0x0a, 0x80, 0xa3,
- 0x80, 0xb5, 0xe6, 0x30,
- 0x80, 0x04, 0xac, 0x04,
- 0x82, 0xd5, 0xb9, 0x0b,
- 0x6c, 0x1d, 0x0c, 0x29,
- 0x03, 0x36, 0x40, 0x2b,
- 0x74, 0x58, 0xe0, 0x08,
- 0x8c, 0x0b, 0x68, 0x04,
- 0x14, 0xc6, 0xa3, 0x0b,
- 0x0f, 0x36, 0x40, 0x08,
- 0x00, 0xf0, 0x80, 0x08,
- 0x9f, 0x11, 0x64, 0x40,
- 0x80, 0x16, 0x94, 0x03,
- 0xfc, 0x14, 0xfe, 0x04,
- 0xfa, 0x80, 0x00, 0x04,
- 0x7b, 0x80, 0x40, 0x92,
- 0xfa, 0x80, 0x02, 0x14,
- 0x40, 0x92, 0x7e, 0x0e,
- 0xfc, 0x0e, 0xfa, 0x84,
- 0x10, 0x0a, 0x82, 0x81,
- 0xf0, 0x35, 0xe0, 0x80,
- 0x8e, 0xab, 0x21, 0x7b,
- 0xfc, 0x04, 0x8c, 0xf5,
- 0xfa, 0x80, 0x00, 0x04,
- 0x7e, 0x04, 0xc4, 0x07,
- 0xe4, 0x10, 0x0e, 0x00,
- 0x7a, 0x80, 0x12, 0x04,
- 0x67, 0x18, 0x8c, 0x0b,
- 0xc4, 0x97, 0x68, 0x00,
- 0x80, 0xab, 0x03, 0xd5,
- 0x88, 0xd5, 0xa1, 0xab,
- 0x61, 0xa1, 0x40, 0xf6,
- 0x81, 0x11, 0x40, 0x00,
- 0x42, 0x0a, 0x81, 0xb5,
- 0x90, 0x2b, 0x60, 0x80,
- 0x5c, 0x00, 0x10, 0x29,
- 0xe4, 0x40, 0x06, 0xf0,
- 0x82, 0x11, 0x02, 0x33,
- 0x02, 0x0a, 0x8c, 0x26,
- 0xfc, 0x95, 0xe2, 0x30,
- 0x90, 0x1b, 0x0c, 0x0b,
- 0xe8, 0x04, 0x61, 0x08,
- 0x4f, 0x76, 0x00, 0xab,
- 0xa1, 0xab, 0xe0, 0x00,
- 0x02, 0x94, 0x82, 0x75,
- 0x04, 0x74, 0x7a, 0x80,
- 0x06, 0xf0, 0xfa, 0x80,
- 0x8c, 0x0b, 0x64, 0x40,
- 0xe8, 0x48, 0x5b, 0xe8,
- 0x14, 0x0b, 0x80, 0xab,
- 0xe6, 0x70, 0x1e, 0xf0,
- 0xf2, 0x7c, 0x0c, 0x0c,
- 0xc1, 0xc3, 0xdd, 0x93,
+ 0x61, 0x90, 0x12, 0x04,
+ 0x42, 0x9a, 0x9e, 0x09,
+ 0x82, 0x03, 0xe6, 0x86,
+ 0xe6, 0x30, 0x01, 0x0a,
+ 0x03, 0x46, 0x80, 0xf5,
+ 0x84, 0x14, 0xe1, 0x34,
+ 0xb7, 0x1b, 0x84, 0x14,
+ 0x0c, 0x29, 0x82, 0xf5,
+ 0x40, 0x2b, 0x6c, 0x1d,
+ 0xe0, 0x08, 0x03, 0x36,
+ 0x68, 0x04, 0x5f, 0xa8,
+ 0x0f, 0x36, 0x8c, 0x0b,
+ 0x23, 0x0b, 0xe0, 0x08,
+ 0xe0, 0x08, 0x00, 0xc6,
+ 0xa1, 0xbb, 0x88, 0x05,
+ 0x4e, 0xb0, 0x06, 0xd5,
+ 0x20, 0x18, 0xdc, 0x00,
+ 0xe4, 0x20, 0x04, 0xf0,
+ 0x61, 0x40, 0x14, 0x0a,
+ 0x88, 0x16, 0x80, 0x23,
+ 0x00, 0x04, 0x5e, 0x95,
+ 0x80, 0x00, 0x0e, 0x06,
+ 0x80, 0x00, 0x5e, 0x95,
+ 0x3e, 0x04, 0x82, 0xc5,
+ 0x00, 0x04, 0x81, 0x71,
+ 0x40, 0x92, 0xfa, 0x80,
+ 0xbe, 0x0e, 0xfb, 0x80,
+ 0x00, 0x04, 0xbc, 0x04,
+ 0x40, 0x92, 0xfa, 0x80,
+ 0xbc, 0x0e, 0xfa, 0x80,
+ 0x6c, 0x04, 0x14, 0xa0,
+ 0x8e, 0xbb, 0x82, 0x81,
+ 0xee, 0x75, 0xa1, 0xab,
+ 0x8c, 0xf5, 0xa1, 0xbb,
+ 0x00, 0x04, 0xbc, 0x04,
+ 0xc4, 0x07, 0xfa, 0x80,
+ 0x0e, 0x00, 0x3e, 0x04,
+ 0x12, 0x04, 0xe4, 0x10,
+ 0x8c, 0x0b, 0x7a, 0x80,
+ 0x68, 0x00, 0x54, 0xa8,
+ 0x03, 0xd5, 0xc4, 0x97,
+ 0xa1, 0xbb, 0x80, 0xbb,
+ 0x40, 0xf6, 0x88, 0xd5,
+ 0x40, 0x00, 0x61, 0xa1,
+ 0x81, 0xb5, 0x81, 0x11,
+ 0x60, 0x80, 0x42, 0x0a,
+ 0x10, 0x29, 0x90, 0x2b,
+ 0x06, 0xf0, 0x5c, 0x00,
+ 0x02, 0x33, 0xe4, 0x20,
+ 0x8c, 0x26, 0x82, 0x11,
+ 0xe2, 0x30, 0x02, 0x0a,
+ 0x0c, 0x0b, 0xfc, 0x95,
+ 0x4b, 0x58, 0x90, 0x1b,
+ 0x00, 0xbb, 0xe8, 0x04,
+ 0xe0, 0x00, 0x4f, 0x76,
+ 0x82, 0x75, 0xa1, 0xbb,
+ 0x7a, 0x80, 0x02, 0x94,
+ 0xfa, 0x80, 0x04, 0x74,
+ 0x64, 0x20, 0x06, 0xf0,
+ 0x49, 0x98, 0x8c, 0x0b,
+ 0x80, 0xbb, 0xe8, 0x48,
+ 0x1e, 0xf0, 0x16, 0x0b,
+ 0x0c, 0x0c, 0xe6, 0x50,
+ 0xdd, 0x93, 0xf2, 0x7c,
0xfa, 0x7c, 0x04, 0x0c,
0xec, 0x30, 0x1e, 0xf0,
0x82, 0x8b, 0x00, 0x9b,
@@ -10523,7 +10778,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0xc0, 0xaf, 0x64, 0x71,
0xf0, 0xa0, 0x54, 0x62,
0xe2, 0x80, 0x14, 0x19,
- 0xe8, 0x00, 0x55, 0x08,
+ 0xe8, 0x00, 0x4c, 0x88,
0x80, 0x7b, 0x42, 0x87,
0x67, 0xc0, 0x00, 0xa0,
0x3c, 0x6e, 0x90, 0x63,
@@ -10535,7 +10790,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0xf8, 0x04, 0x12, 0x09,
0x44, 0x0a, 0xa4, 0x18,
0xd0, 0x07, 0xe0, 0x80,
- 0x48, 0x00, 0x5f, 0x68,
+ 0x48, 0x00, 0x4d, 0x08,
0x0e, 0x0f, 0xa2, 0x0f,
0xfb, 0x80, 0x02, 0x64,
0x82, 0x45, 0x83, 0x0b,
@@ -10553,169 +10808,6 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x01, 0x01, 0xf6, 0x75,
0x0c, 0x0c, 0x98, 0xf1,
0xdd, 0x93, 0xf2, 0x7c,
- 0xfa, 0x7c, 0x04, 0x0c,
- 0xec, 0x30, 0x1e, 0xf0,
- 0x82, 0x9b, 0x00, 0x6b,
- 0x6c, 0x41, 0x0c, 0x09,
- 0x83, 0xa1, 0x40, 0x2b,
- 0x6c, 0x39, 0x0c, 0x19,
- 0xa1, 0x9b, 0x40, 0x2b,
- 0x16, 0x90, 0x04, 0x8b,
- 0xfc, 0x0e, 0xe4, 0x24,
- 0x6c, 0x49, 0x0c, 0x09,
- 0x3e, 0x0e, 0xc0, 0x2b,
- 0x4c, 0x03, 0x81, 0x01,
- 0x40, 0x16, 0x65, 0x51,
- 0xe0, 0x80, 0x00, 0x86,
- 0x65, 0x59, 0x4c, 0x03,
- 0x91, 0x01, 0x40, 0x16,
- 0x6a, 0xa9, 0x4c, 0xa1,
- 0x4c, 0x01, 0xc0, 0x2c,
- 0xc0, 0x2c, 0x6a, 0xb9,
- 0x6a, 0xad, 0x4c, 0xa1,
- 0x4c, 0x01, 0xc0, 0x2c,
- 0xc0, 0x2c, 0x6a, 0xbd,
- 0x00, 0x90, 0x82, 0x65,
- 0x82, 0x7b, 0x6c, 0x04,
- 0x6a, 0x91, 0x4c, 0xa1,
- 0x04, 0x04, 0x40, 0x2c,
- 0x01, 0xb5, 0xfa, 0x80,
- 0x21, 0x1b, 0x81, 0x11,
- 0x02, 0x85, 0x82, 0x7b,
- 0x4c, 0xa1, 0x81, 0x01,
- 0x40, 0x2c, 0x6a, 0x91,
- 0x81, 0x21, 0x81, 0x11,
- 0x90, 0x3b, 0x0c, 0x0b,
- 0xe8, 0x00, 0x46, 0x88,
- 0x17, 0x0a, 0x83, 0x01,
- 0x4c, 0xa1, 0xf4, 0x30,
- 0x00, 0x2c, 0x0a, 0x95,
- 0x84, 0x28, 0x12, 0x90,
- 0x04, 0x94, 0x04, 0x45,
- 0xfc, 0x14, 0x9a, 0x80,
- 0x42, 0x2a, 0xbe, 0x24,
- 0x04, 0xb4, 0x66, 0x86,
- 0xc5, 0x17, 0xfa, 0x80,
- 0x02, 0x10, 0x8e, 0x13,
- 0xc5, 0x1d, 0xec, 0x04,
- 0x4c, 0xa1, 0x90, 0x25,
- 0xc0, 0x2c, 0x6a, 0x95,
- 0x8c, 0x0b, 0x03, 0x11,
- 0x68, 0x00, 0x44, 0xa8,
- 0x00, 0x80, 0x90, 0x3b,
- 0x01, 0x0a, 0xe4, 0x1c,
- 0x82, 0xb5, 0xf4, 0x20,
- 0x6a, 0x99, 0x4c, 0xa1,
- 0x00, 0x80, 0x40, 0x2c,
- 0x06, 0x04, 0xe4, 0x20,
- 0x85, 0x11, 0x7a, 0x80,
- 0x8e, 0x2b, 0x0c, 0x0b,
- 0xe8, 0x00, 0x43, 0x88,
- 0x82, 0xa5, 0xa1, 0x8b,
- 0x6a, 0x9d, 0x4c, 0xa1,
- 0x00, 0x80, 0x40, 0x2c,
- 0x06, 0x04, 0xec, 0x04,
- 0x87, 0x11, 0x7a, 0x80,
- 0x8e, 0x2b, 0x0c, 0x0b,
- 0xe8, 0x00, 0x42, 0xa8,
- 0x64, 0x85, 0x4c, 0xa1,
- 0x00, 0x60, 0x40, 0x26,
- 0xc0, 0xb2, 0x66, 0x91,
- 0x89, 0x11, 0x01, 0xb5,
- 0x14, 0xa4, 0x41, 0x28,
- 0x02, 0x10, 0xfa, 0x80,
- 0x84, 0xa3, 0xec, 0x04,
- 0x64, 0x85, 0x4c, 0xa1,
- 0xa1, 0x1b, 0xc0, 0x26,
- 0x81, 0x91, 0xfc, 0xd5,
- 0x98, 0xf1, 0x12, 0x0b,
- 0xf2, 0x7c, 0x0c, 0x0c,
- 0xa1, 0x0b, 0xdd, 0x93,
- 0x0c, 0x29, 0xf0, 0xf5,
- 0x40, 0x2b, 0x6c, 0x1d,
- 0xe0, 0x0c, 0x02, 0x76,
- 0x68, 0x04, 0x5f, 0xc8,
- 0x12, 0x76, 0x8c, 0x0b,
- 0xa3, 0x0b, 0xe0, 0x0c,
- 0xfd, 0xd5, 0xee, 0x75,
- 0xfa, 0x7c, 0x04, 0x0c,
- 0xec, 0x30, 0x1e, 0xf0,
- 0x84, 0x7b, 0x00, 0x8b,
- 0x70, 0x84, 0x40, 0x82,
- 0x00, 0x29, 0x86, 0x6b,
- 0x40, 0x2c, 0x6a, 0xa1,
- 0x40, 0x71, 0xc6, 0x17,
- 0x40, 0x26, 0x64, 0x95,
- 0x66, 0xa1, 0x06, 0x00,
- 0x40, 0x61, 0xc0, 0xb2,
- 0x40, 0x26, 0x64, 0xb5,
- 0x23, 0x2b, 0x81, 0xa1,
- 0x7c, 0x1e, 0x91, 0x21,
- 0x04, 0x16, 0x83, 0x11,
- 0x02, 0x86, 0x40, 0x00,
- 0xbe, 0x3e, 0xc0, 0x00,
- 0x64, 0xd5, 0x40, 0x21,
- 0x40, 0x11, 0xc0, 0x26,
- 0xc0, 0x26, 0x64, 0xf5,
- 0x90, 0x03, 0xfc, 0x04,
- 0x87, 0xb5, 0xbc, 0x0e,
- 0x00, 0x74, 0x7c, 0x94,
- 0x42, 0x60, 0xe0, 0x90,
- 0x56, 0x02, 0xf0, 0x3c,
- 0x90, 0x0b, 0x79, 0x84,
- 0x7a, 0x80, 0x02, 0xb4,
- 0x43, 0x58, 0x94, 0x93,
- 0x6e, 0x38, 0xe8, 0x00,
- 0xa1, 0x11, 0x68, 0x4c,
- 0x61, 0x8c, 0x02, 0x94,
- 0x3e, 0x19, 0x8e, 0x99,
- 0x10, 0x13, 0x83, 0x31,
- 0x02, 0x29, 0xb3, 0x3f,
- 0x40, 0x2c, 0x6b, 0x41,
- 0x48, 0x6a, 0x9d, 0x41,
- 0x3c, 0x34, 0xe6, 0x92,
- 0x42, 0x21, 0xa6, 0x2f,
- 0x40, 0x2c, 0x6b, 0x41,
- 0x14, 0x33, 0x8e, 0x43,
- 0x46, 0x41, 0x82, 0xa1,
- 0xc0, 0x2c, 0x6a, 0xc1,
- 0x6b, 0x51, 0x46, 0xb1,
- 0x46, 0x01, 0xc0, 0x2c,
- 0xc0, 0x2c, 0x6b, 0xd1,
- 0x80, 0x08, 0xbe, 0x04,
- 0xe0, 0x04, 0x00, 0x4a,
- 0x62, 0x00, 0x00, 0x0c,
- 0xe0, 0x04, 0x00, 0x1a,
- 0x62, 0x00, 0x00, 0x1c,
- 0x80, 0x73, 0x80, 0x63,
- 0xf0, 0xb5, 0xb1, 0xab,
- 0x0c, 0x0c, 0x98, 0xf1,
- 0xdd, 0x93, 0xf2, 0x7c,
- 0x61, 0x90, 0x04, 0x14,
- 0x44, 0x2a, 0xa9, 0x31,
- 0x06, 0x14, 0x66, 0x8e,
- 0x8e, 0x39, 0xe1, 0x84,
- 0x81, 0x21, 0x04, 0x03,
- 0x81, 0x31, 0x06, 0x03,
- 0x00, 0x00, 0x01, 0xe5,
- 0xc0, 0x9c, 0x67, 0x81,
- 0x70, 0x14, 0x00, 0x49,
- 0xe0, 0x80, 0x42, 0x0a,
- 0xc1, 0x90, 0x08, 0x44,
- 0x25, 0x4f, 0x9e, 0x49,
- 0xa8, 0x3f, 0x88, 0x21,
- 0xe0, 0x40, 0x04, 0x0a,
- 0x5d, 0x93, 0xfc, 0x95,
- 0xfb, 0x80, 0x00, 0x34,
- 0xe4, 0x7c, 0x03, 0x0a,
- 0x04, 0x14, 0x82, 0xb5,
- 0x8e, 0x19, 0x61, 0x8c,
- 0x00, 0x09, 0x84, 0x03,
- 0xc0, 0x2c, 0x6b, 0x41,
- 0xe4, 0x84, 0x40, 0x4a,
- 0xe2, 0x00, 0x00, 0x0c,
- 0x5d, 0x93, 0xdd, 0x93,
- 0xc1, 0xc3, 0x81, 0x01,
0xe5, 0x7c, 0x03, 0x0a,
0x04, 0x14, 0x82, 0xb5,
0x8e, 0x19, 0x61, 0x8c,
@@ -10731,7 +10823,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x00, 0x0b, 0xe0, 0x84,
0x80, 0x13, 0x7c, 0x08,
0xe5, 0x00, 0x02, 0x19,
- 0x68, 0x4c, 0x66, 0x08,
+ 0x68, 0x4c, 0x68, 0x28,
0xd0, 0x07, 0x82, 0x11,
0xf2, 0x00, 0x08, 0x4c,
0xc1, 0xc3, 0xdd, 0x93,
@@ -10747,7 +10839,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x00, 0x29, 0x82, 0x95,
0x40, 0x2b, 0x6c, 0x1d,
0xe0, 0x08, 0x42, 0x96,
- 0x68, 0x04, 0x51, 0xa8,
+ 0x68, 0x04, 0x50, 0x68,
0xe0, 0x08, 0x56, 0x96,
0x84, 0x45, 0xa3, 0x0b,
0xe0, 0x22, 0x40, 0x7a,
@@ -10773,7 +10865,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x00, 0x29, 0x82, 0x95,
0x40, 0x2b, 0x6c, 0x1d,
0xe0, 0x08, 0x42, 0x96,
- 0x68, 0x04, 0x4e, 0x68,
+ 0x68, 0x04, 0x4d, 0x28,
0xe0, 0x08, 0x56, 0x96,
0x84, 0x05, 0xa3, 0x0b,
0xe0, 0x22, 0x40, 0x7a,
@@ -10786,6 +10878,22 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x96, 0x0b, 0x81, 0xb1,
0xf2, 0x7c, 0x0c, 0x4c,
0xc1, 0xc3, 0xdd, 0x93,
+ 0x61, 0x90, 0x04, 0x14,
+ 0x44, 0x2a, 0xa9, 0x31,
+ 0x06, 0x14, 0x66, 0x8e,
+ 0x8e, 0x39, 0xe1, 0x84,
+ 0x81, 0x21, 0x04, 0x03,
+ 0x81, 0x31, 0x06, 0x03,
+ 0x00, 0x00, 0x01, 0xe5,
+ 0xc0, 0x9c, 0x67, 0x81,
+ 0x70, 0x14, 0x00, 0x49,
+ 0xe0, 0x80, 0x42, 0x0a,
+ 0xc1, 0x90, 0x08, 0x44,
+ 0x25, 0x4f, 0x9e, 0x49,
+ 0xa8, 0x3f, 0x88, 0x21,
+ 0xe0, 0x40, 0x04, 0x0a,
+ 0x5d, 0x93, 0xfc, 0x95,
+ 0xfb, 0x80, 0x00, 0x34,
0x9f, 0x21, 0x01, 0x11,
0x81, 0x31, 0x03, 0x95,
0x68, 0x84, 0x08, 0x24,
@@ -10820,7 +10928,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0xfa, 0x80, 0x0e, 0x94,
0x6e, 0xf1, 0x0c, 0xb9,
0x94, 0x0b, 0x40, 0x2b,
- 0x6f, 0xfc, 0x73, 0x08,
+ 0x6f, 0xfc, 0x71, 0x08,
0x00, 0x0a, 0x8e, 0x1b,
0x86, 0xb5, 0xf0, 0x04,
0x6c, 0xe9, 0x14, 0x09,
@@ -10850,7 +10958,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x45, 0x2a, 0x81, 0x55,
0xec, 0x04, 0x10, 0x80,
0xa1, 0x8b, 0xc1, 0x2c,
- 0x77, 0x38, 0xfe, 0x75,
+ 0x77, 0x58, 0xfe, 0x75,
0x94, 0x0b, 0x68, 0x44,
0x0c, 0x0c, 0xb8, 0xf1,
0xdd, 0x93, 0xf2, 0x7c,
@@ -10867,7 +10975,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0xfa, 0x7c, 0x04, 0x0c,
0xec, 0xd0, 0x1e, 0xf0,
0x02, 0xf0, 0x00, 0x9b,
- 0x5b, 0xb8, 0xe4, 0xc0,
+ 0x5c, 0x18, 0xe4, 0xc0,
0x04, 0xf0, 0x68, 0x0c,
0x12, 0x39, 0xe4, 0xb0,
0xc0, 0x2b, 0x6c, 0x49,
@@ -10896,94 +11004,88 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x40, 0x26, 0x64, 0xd1,
0xe4, 0xa0, 0x02, 0xf0,
0x64, 0xf1, 0x52, 0xa1,
- 0x67, 0x78, 0xc0, 0x26,
+ 0x67, 0xd8, 0xc0, 0x26,
0x80, 0x7b, 0xe8, 0x0c,
- 0x80, 0xc5, 0xa1, 0x7b,
- 0xe8, 0xf1, 0x0e, 0x0b,
- 0xf2, 0x7c, 0x0c, 0x0c,
- 0x45, 0xb7, 0xdd, 0x93,
- 0xe1, 0x88, 0x06, 0x64,
- 0xa1, 0xbb, 0x7c, 0xbe,
- 0xa1, 0x3b, 0x80, 0x65,
- 0x12, 0x29, 0x82, 0xf5,
- 0x40, 0x2b, 0x6c, 0x1d,
- 0xe0, 0x08, 0x42, 0x96,
- 0x86, 0x6b, 0x12, 0x0b,
- 0x68, 0x00, 0x7d, 0x68,
- 0xe0, 0x08, 0x4e, 0x96,
- 0x8c, 0x3b, 0x23, 0x0b,
- 0x0d, 0x04, 0xf8, 0xc5,
- 0x7c, 0x14, 0xc5, 0x87,
- 0xe0, 0x0c, 0x4b, 0xf6,
- 0x60, 0x0e, 0x48, 0x8a,
- 0xc5, 0x07, 0x81, 0xb1,
- 0xe0, 0x06, 0x44, 0x0a,
- 0x8b, 0x14, 0x8f, 0x04,
- 0xbc, 0x4e, 0xbe, 0x2e,
- 0x42, 0x4a, 0x02, 0x03,
- 0x09, 0x24, 0xe6, 0x8a,
- 0xec, 0x04, 0x00, 0x00,
- 0x84, 0xa3, 0xfe, 0x0e,
- 0x6c, 0x04, 0x00, 0xa0,
- 0x8d, 0x0e, 0x81, 0xa1,
- 0x65, 0x3d, 0x52, 0x11,
- 0x8b, 0xe5, 0xc0, 0x2c,
- 0xf0, 0xac, 0x4c, 0x92,
- 0x6e, 0xf1, 0x0c, 0x09,
- 0x4c, 0x51, 0xc0, 0x2b,
- 0xc0, 0x2c, 0x62, 0xb1,
- 0x63, 0xf1, 0x4c, 0x51,
- 0x42, 0x00, 0xc0, 0x2c,
- 0xc5, 0x1d, 0xf0, 0x3c,
- 0x8d, 0x44, 0x92, 0xd5,
- 0x92, 0x75, 0xc8, 0x1d,
- 0xc9, 0x07, 0x7e, 0x14,
- 0x90, 0xf5, 0xc2, 0x0d,
- 0xc3, 0x0d, 0x8f, 0x14,
- 0x00, 0xb4, 0x90, 0x95,
- 0x44, 0xb0, 0x61, 0x8c,
- 0x3e, 0x09, 0xf0, 0x1c,
- 0x12, 0x03, 0x83, 0x41,
- 0xe8, 0x88, 0x04, 0x44,
- 0x65, 0xc1, 0x00, 0x19,
- 0x86, 0x8b, 0x40, 0x2c,
- 0x7a, 0x80, 0x08, 0xa4,
- 0xe4, 0x90, 0x0a, 0xf0,
- 0x58, 0x12, 0x7c, 0x14,
- 0x0b, 0x34, 0xf9, 0x88,
- 0xfa, 0x80, 0x04, 0x34,
- 0x65, 0xc1, 0x40, 0xc1,
- 0x92, 0x0b, 0x40, 0x2c,
- 0xfa, 0x80, 0x02, 0x14,
- 0x6f, 0xfc, 0x64, 0x88,
- 0xfa, 0x80, 0x06, 0x34,
- 0xa1, 0x7b, 0x80, 0x7b,
- 0x3e, 0x04, 0xe2, 0x55,
- 0xe4, 0x80, 0x0a, 0xf0,
- 0xe0, 0x90, 0x1e, 0x49,
- 0xe0, 0xa0, 0x1e, 0x39,
- 0x02, 0x04, 0x3c, 0x04,
- 0x4c, 0x41, 0xfa, 0x80,
+ 0xa6, 0x55, 0xa1, 0x7b,
+ 0x06, 0x64, 0x45, 0xb7,
+ 0x7c, 0xbe, 0xe1, 0x88,
+ 0x80, 0x65, 0xa1, 0xbb,
+ 0x82, 0xf5, 0xa1, 0x3b,
+ 0x6c, 0x1d, 0x12, 0x29,
+ 0x42, 0x96, 0x40, 0x2b,
+ 0x12, 0x0b, 0xe0, 0x08,
+ 0x7a, 0x78, 0x86, 0x6b,
+ 0x4e, 0x96, 0x68, 0x00,
+ 0x23, 0x0b, 0xe0, 0x08,
+ 0xa0, 0x85, 0x8c, 0x3b,
+ 0xc5, 0x87, 0x0d, 0x04,
+ 0x4b, 0xf6, 0x7c, 0x14,
+ 0x48, 0x8a, 0xe0, 0x0c,
+ 0x81, 0xb1, 0x60, 0x0e,
+ 0x44, 0x0a, 0xc5, 0x07,
+ 0x8f, 0x04, 0xe0, 0x06,
+ 0xbe, 0x2e, 0x8b, 0x14,
+ 0x02, 0x03, 0xbc, 0x4e,
+ 0xe6, 0x8a, 0x42, 0x4a,
+ 0x00, 0x00, 0x09, 0x24,
+ 0xfe, 0x0e, 0xec, 0x04,
+ 0x00, 0xa0, 0x84, 0xa3,
+ 0x81, 0xa1, 0x6c, 0x04,
+ 0x52, 0x11, 0x8d, 0x0e,
+ 0xc0, 0x2c, 0x65, 0x3d,
+ 0x4c, 0x92, 0x8b, 0xe5,
+ 0x0c, 0x09, 0xf0, 0xac,
+ 0xc0, 0x2b, 0x6e, 0xf1,
+ 0x62, 0xb1, 0x4c, 0x51,
+ 0x4c, 0x51, 0xc0, 0x2c,
0xc0, 0x2c, 0x63, 0xf1,
- 0x7a, 0x80, 0x04, 0x04,
- 0x66, 0x58, 0x92, 0x0b,
- 0x80, 0x7b, 0xef, 0xfc,
- 0xdc, 0xb5, 0xa1, 0x7b,
- 0x60, 0x80, 0x1e, 0x09,
- 0x10, 0x3b, 0x82, 0xa1,
- 0xe0, 0x0c, 0x4b, 0xf6,
- 0x62, 0xb1, 0x4c, 0x01,
- 0x89, 0x24, 0xc0, 0x2c,
- 0x17, 0x0a, 0x82, 0xb1,
- 0xe8, 0x25, 0xe5, 0x3c,
- 0x68, 0x00, 0x41, 0x08,
- 0x80, 0x7b, 0x92, 0x0b,
- 0xd8, 0x35, 0xa1, 0x7b,
- 0x60, 0xb0, 0x1e, 0x29,
- 0x1e, 0x19, 0x92, 0x0b,
- 0x4a, 0x78, 0xe0, 0xc0,
- 0x6b, 0x95, 0xef, 0xfc,
- 0xc1, 0xc3, 0x80, 0x7b,
+ 0xf0, 0x3c, 0x42, 0x00,
+ 0x92, 0xd5, 0xc5, 0x1d,
+ 0xc8, 0x1d, 0x8d, 0x44,
+ 0x7e, 0x14, 0x92, 0x75,
+ 0xc2, 0x0d, 0xc9, 0x07,
+ 0x8f, 0x14, 0x90, 0xf5,
+ 0x90, 0x95, 0xc3, 0x0d,
+ 0x61, 0x8c, 0x00, 0xb4,
+ 0xf0, 0x1c, 0x44, 0xb0,
+ 0x83, 0x41, 0x3e, 0x09,
+ 0x04, 0x44, 0x12, 0x03,
+ 0x00, 0x19, 0xe8, 0x88,
+ 0x40, 0x2c, 0x65, 0xc1,
+ 0x08, 0xa4, 0x86, 0x8b,
+ 0x0a, 0xf0, 0x7a, 0x80,
+ 0x7c, 0x14, 0xe4, 0x90,
+ 0xf9, 0x88, 0x58, 0x12,
+ 0x04, 0x34, 0x0b, 0x34,
+ 0x40, 0xc1, 0xfa, 0x80,
+ 0x40, 0x2c, 0x65, 0xc1,
+ 0x02, 0x14, 0x92, 0x0b,
+ 0x62, 0xd8, 0xfa, 0x80,
+ 0x06, 0x34, 0x6f, 0xfc,
+ 0x80, 0x7b, 0xfa, 0x80,
+ 0x8a, 0x15, 0xa1, 0x7b,
+ 0x0a, 0xf0, 0x3e, 0x04,
+ 0x1e, 0x49, 0xe4, 0x80,
+ 0x1e, 0x39, 0xe0, 0x90,
+ 0x3c, 0x04, 0xe0, 0xa0,
+ 0xfa, 0x80, 0x02, 0x04,
+ 0x63, 0xf1, 0x4c, 0x41,
+ 0x04, 0x04, 0xc0, 0x2c,
+ 0x92, 0x0b, 0x7a, 0x80,
+ 0xef, 0xfc, 0x64, 0xa8,
+ 0xa1, 0x7b, 0x80, 0x7b,
+ 0x1e, 0x09, 0x84, 0x75,
+ 0x82, 0xa1, 0x60, 0x80,
+ 0x4b, 0xf6, 0x10, 0x3b,
+ 0x4c, 0x01, 0xe0, 0x0c,
+ 0xc0, 0x2c, 0x62, 0xb1,
+ 0x82, 0xb1, 0x89, 0x24,
+ 0xe5, 0x3c, 0x17, 0x0a,
+ 0x40, 0x98, 0xe8, 0x25,
+ 0x92, 0x0b, 0x68, 0x00,
+ 0x0e, 0x0b, 0x80, 0x7b,
+ 0x0c, 0x0c, 0xe8, 0xf1,
+ 0xdd, 0x93, 0xf2, 0x7c,
0xfa, 0x1c, 0x04, 0x0c,
0xec, 0x30, 0x1e, 0xf0,
0x81, 0x81, 0x00, 0x6b,
@@ -10991,9 +11093,9 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0xa3, 0x0b, 0xc0, 0x2b,
0x02, 0xf0, 0x8a, 0x85,
0x8c, 0x0b, 0x64, 0x20,
- 0xe8, 0x0c, 0x5c, 0x68,
+ 0xe8, 0x0c, 0x5d, 0x88,
0x88, 0xd5, 0xa1, 0x0b,
- 0x6f, 0xdc, 0x01, 0x86,
+ 0x6f, 0xdc, 0x40, 0x06,
0x80, 0x08, 0x81, 0x91,
0xe0, 0x80, 0x40, 0x4a,
0x04, 0xf1, 0x00, 0x60,
@@ -11031,7 +11133,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x63, 0xfc, 0x12, 0x0a,
0xfc, 0x2e, 0x81, 0x01,
0x90, 0x0c, 0xbe, 0x4e,
- 0x80, 0x00, 0x0b, 0xa8,
+ 0x80, 0x00, 0x0b, 0x98,
0x10, 0x50, 0x49, 0x37,
0xc0, 0xb0, 0x66, 0xb1,
0x0e, 0x50, 0x3c, 0x3e,
@@ -11046,7 +11148,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0xa0, 0x18, 0xc0, 0x2c,
0x86, 0x15, 0x83, 0x0b,
0x7a, 0x80, 0x02, 0xb4,
- 0x56, 0xb8, 0x8a, 0x0b,
+ 0x55, 0x78, 0x8a, 0x0b,
0x00, 0x0a, 0xef, 0xfc,
0x1e, 0x55, 0xf0, 0x04,
0x82, 0xd5, 0xc0, 0x0c,
@@ -11060,7 +11162,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x82, 0x71, 0x82, 0x81,
0xe5, 0x3c, 0x17, 0x0a,
0xa1, 0xab, 0xf4, 0xe5,
- 0x0a, 0x8b, 0xa0, 0x05,
+ 0x0a, 0x8b, 0x9e, 0xe5,
0xc0, 0x15, 0x6a, 0x7d,
0xc9, 0x87, 0xbc, 0x14,
0xfb, 0x80, 0x00, 0x14,
@@ -11080,7 +11182,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x44, 0x11, 0x8a, 0x23,
0xc0, 0x2c, 0x61, 0x71,
0xfe, 0x15, 0xa1, 0xab,
- 0x81, 0x31, 0x8b, 0x85,
+ 0x81, 0x31, 0x8b, 0x75,
0x00, 0x34, 0x85, 0x05,
0x02, 0xf0, 0x60, 0x88,
0x02, 0x15, 0xe4, 0x50,
@@ -11099,35 +11201,34 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0xc0, 0x2c, 0x61, 0x71,
0xf8, 0x15, 0x95, 0x3b,
0x94, 0x7b, 0x21, 0x06,
- 0x83, 0xa3, 0xa1, 0x43,
- 0xe8, 0x00, 0x12, 0xcc,
+ 0x83, 0x23, 0xa1, 0x43,
+ 0x4e, 0x8a, 0xab, 0xe3,
+ 0x8a, 0x25, 0xec, 0x20,
+ 0x64, 0x50, 0x12, 0xf0,
+ 0x82, 0xb1, 0xff, 0xb1,
+ 0x88, 0x45, 0xd5, 0xbd,
+ 0x00, 0x50, 0x24, 0x64,
+ 0xc0, 0xaf, 0x64, 0x71,
+ 0xe4, 0x40, 0x04, 0xf0,
+ 0x60, 0x84, 0x02, 0x64,
+ 0x00, 0x0b, 0x80, 0x63,
+ 0x0c, 0x19, 0xfc, 0x04,
+ 0x73, 0xd8, 0xe5, 0x00,
+ 0x21, 0x08, 0xef, 0xfc,
+ 0x0c, 0x19, 0x88, 0x91,
+ 0x83, 0x0b, 0xe5, 0x00,
+ 0x05, 0x01, 0x02, 0x60,
+ 0x0e, 0x74, 0x40, 0x01,
+ 0x42, 0x01, 0xdb, 0x80,
+ 0x0e, 0x70, 0x40, 0x00,
+ 0x7e, 0x54, 0xc4, 0x04,
0xec, 0x20, 0x4e, 0x8a,
- 0x12, 0xf0, 0x8a, 0x25,
- 0xff, 0xb1, 0x64, 0x50,
- 0xd5, 0xbd, 0x82, 0xb1,
- 0x24, 0x64, 0x88, 0x45,
- 0x64, 0x71, 0x00, 0x50,
- 0x04, 0xf0, 0xc0, 0xaf,
- 0x02, 0x64, 0xe4, 0x40,
- 0x80, 0x63, 0x60, 0x84,
- 0xfc, 0x04, 0x00, 0x0b,
- 0xe5, 0x00, 0x0c, 0x19,
- 0xef, 0xfc, 0x73, 0xc8,
- 0x88, 0x91, 0x21, 0x08,
- 0xe5, 0x00, 0x0c, 0x19,
- 0x02, 0x60, 0x83, 0x0b,
- 0x40, 0x01, 0x05, 0x01,
- 0xdb, 0x80, 0x0e, 0x74,
- 0x40, 0x00, 0x42, 0x01,
- 0xc4, 0x04, 0x0e, 0x70,
- 0x4e, 0x8a, 0x7e, 0x54,
- 0xf6, 0xb5, 0xec, 0x20,
- 0x3e, 0x04, 0xc1, 0xc3,
- 0x80, 0x7c, 0xc8, 0x77,
- 0xf8, 0xf1, 0x01, 0x01,
- 0xf0, 0x00, 0x18, 0xfc,
- 0xf2, 0x7c, 0x0c, 0x0c,
- 0xc1, 0xc3, 0xdd, 0x93,
+ 0xc1, 0xc3, 0xf6, 0xb5,
+ 0xc8, 0x77, 0x3e, 0x04,
+ 0x01, 0x01, 0x80, 0x7c,
+ 0x18, 0xfc, 0xf8, 0xf1,
+ 0x0c, 0x0c, 0xf0, 0x00,
+ 0xdd, 0x93, 0xf2, 0x7c,
0xfa, 0x00, 0x04, 0x0c,
0x02, 0x46, 0x02, 0x6b,
0x04, 0x14, 0xe1, 0x28,
@@ -11139,7 +11240,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x82, 0x31, 0x40, 0x1b,
0xa1, 0x11, 0x23, 0x2f,
0x88, 0x0b, 0x21, 0x2f,
- 0xef, 0xe8, 0x5b, 0x68,
+ 0xef, 0xe8, 0x75, 0x48,
0x81, 0x01, 0x18, 0x0e,
0xf2, 0x00, 0x0c, 0x0c,
0xc1, 0xc3, 0xdd, 0x93,
@@ -11178,7 +11279,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x40, 0x80, 0x40, 0x00,
0x42, 0x70, 0xdc, 0x00,
0x48, 0x50, 0x5c, 0x00,
- 0x6c, 0xb8, 0xdc, 0x00,
+ 0x6c, 0xd8, 0xdc, 0x00,
0x81, 0x01, 0xcf, 0xfc,
0x0c, 0x0c, 0xa8, 0xf1,
0xdd, 0x93, 0xf2, 0x7c,
@@ -11192,7 +11293,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x8d, 0x0b, 0x82, 0x25,
0x02, 0x94, 0x80, 0xf5,
0x8e, 0x0b, 0x7a, 0x80,
- 0xef, 0xfc, 0x45, 0xa8,
+ 0xef, 0xfc, 0x44, 0x88,
0x82, 0x91, 0x80, 0x83,
0xe1, 0x40, 0x12, 0x0a,
0x90, 0x0b, 0xfa, 0xb5,
@@ -11206,19 +11307,19 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x08, 0x8b, 0x8a, 0x7b,
0x00, 0x08, 0x86, 0x9b,
0x7e, 0x1e, 0x84, 0xab,
- 0x4b, 0x18, 0x91, 0x11,
+ 0x64, 0xf8, 0x91, 0x11,
0x00, 0x2b, 0xef, 0xe8,
0xe4, 0x40, 0x00, 0xf0,
0x0a, 0x84, 0x3e, 0x0e,
0x3c, 0x7e, 0xe0, 0x90,
0x64, 0xe1, 0x06, 0x60,
0x16, 0x0b, 0xc0, 0xad,
- 0x6d, 0xd8, 0x94, 0x1b,
+ 0x4d, 0xf8, 0x94, 0x1b,
0x92, 0x4b, 0x6f, 0xb4,
0xa1, 0x7b, 0x80, 0x7b,
0x0c, 0x29, 0x82, 0x65,
0x40, 0x2b, 0x6c, 0x1d,
- 0x56, 0xb8, 0x8c, 0x0b,
+ 0x54, 0x58, 0x8c, 0x0b,
0x8e, 0x1b, 0x68, 0x00,
0x81, 0x01, 0x23, 0x0b,
0x09, 0x04, 0x80, 0xe5,
@@ -11228,57 +11329,38 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x04, 0x0c, 0xa8, 0xf1,
0x0c, 0x0c, 0x8e, 0x0b,
0xdd, 0x93, 0xf2, 0x7c,
- 0xfa, 0x7c, 0x04, 0x0c,
- 0xec, 0x30, 0x1e, 0xf0,
- 0x02, 0x00, 0x02, 0x6b,
+ 0xfa, 0x3c, 0x04, 0x0c,
+ 0x0e, 0x00, 0x02, 0x6b,
0xc0, 0xb0, 0x65, 0x71,
- 0x16, 0x00, 0x7c, 0x1e,
- 0xc0, 0xaf, 0x66, 0xf1,
- 0x81, 0x91, 0x3e, 0x0e,
- 0x7f, 0xf4, 0x4e, 0x0e,
- 0x01, 0xa1, 0x9d, 0x81,
- 0x03, 0xa5, 0x81, 0x01,
- 0xac, 0x18, 0x81, 0x31,
- 0x70, 0x3c, 0x44, 0x10,
- 0x44, 0x2a, 0xc9, 0x17,
- 0x82, 0x23, 0xe6, 0xa2,
- 0x82, 0xb5, 0x8d, 0x2b,
- 0x16, 0x19, 0xfc, 0x04,
- 0xb4, 0x03, 0xe2, 0x80,
- 0x78, 0x81, 0x00, 0x0b,
- 0x82, 0x11, 0x40, 0x01,
- 0xe8, 0x48, 0x65, 0x88,
- 0x83, 0x01, 0x00, 0x3b,
- 0x6c, 0x08, 0x14, 0xa0,
- 0x8f, 0xab, 0x82, 0xb1,
- 0xa1, 0x0b, 0xf8, 0xf5,
- 0xbe, 0x84, 0x86, 0x35,
- 0x4e, 0x82, 0x83, 0x45,
- 0x0e, 0x09, 0xf0, 0xa4,
- 0xc0, 0x2c, 0x6a, 0xc1,
- 0x82, 0x95, 0x8d, 0x0b,
- 0x7a, 0x80, 0x02, 0x94,
- 0x7b, 0x18, 0x90, 0x0b,
- 0x86, 0xab, 0x6f, 0xf8,
- 0xa1, 0x0b, 0x14, 0x3b,
- 0x0b, 0xd1, 0x0e, 0x39,
- 0x82, 0x91, 0xc0, 0x2c,
- 0xe0, 0x80, 0x12, 0x0a,
- 0x00, 0x34, 0xfa, 0x75,
- 0x98, 0xf1, 0x60, 0xa0,
- 0xf2, 0x7c, 0x0c, 0x0c,
- 0xc1, 0xc3, 0xdd, 0x93,
+ 0x64, 0x71, 0x10, 0x00,
+ 0x81, 0x01, 0x40, 0xaf,
+ 0x60, 0x04, 0x13, 0x06,
+ 0x83, 0x75, 0x9d, 0xa1,
+ 0x78, 0x81, 0x0e, 0x19,
+ 0x44, 0x10, 0xc0, 0x01,
+ 0xc9, 0x17, 0x70, 0x3c,
+ 0xe6, 0xaa, 0x44, 0x2a,
+ 0x8d, 0x2b, 0x82, 0x23,
+ 0x80, 0x00, 0x0e, 0x19,
+ 0x80, 0x00, 0x10, 0x0b,
+ 0x08, 0x48, 0x67, 0x28,
+ 0x84, 0x04, 0x02, 0x10,
+ 0x6c, 0x04, 0x12, 0x90,
+ 0x84, 0x81, 0x82, 0x71,
+ 0xfa, 0x35, 0xa1, 0x9b,
+ 0x0c, 0x0c, 0xd0, 0x07,
+ 0xdd, 0x93, 0xf2, 0x3c,
0xfa, 0x00, 0x04, 0x0c,
0x02, 0x06, 0x00, 0x6b,
- 0x5a, 0x98, 0xe2, 0x80,
+ 0x5d, 0xf8, 0xe2, 0x80,
0x43, 0xf6, 0xe8, 0x48,
0x05, 0x86, 0x60, 0x0c,
- 0x48, 0x78, 0xe0, 0x10,
- 0x8c, 0x0b, 0x6f, 0xac,
+ 0x7b, 0x98, 0xe0, 0x10,
+ 0x8c, 0x0b, 0x6f, 0xa8,
0x45, 0x76, 0x01, 0x11,
0x0c, 0x0b, 0xe0, 0x00,
0x0c, 0x0c, 0x8c, 0x3b,
- 0x3a, 0xd8, 0xf2, 0x00,
+ 0x3e, 0x38, 0xf2, 0x00,
0xc1, 0xc3, 0xe0, 0x40,
0xfa, 0x9c, 0x04, 0x0c,
0x40, 0x96, 0x00, 0x6b,
@@ -11286,7 +11368,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x40, 0x2b, 0x6c, 0x1d,
0x02, 0x06, 0x82, 0x7b,
0x8c, 0x0b, 0x62, 0x80,
- 0xe8, 0x48, 0x58, 0xa8,
+ 0xe8, 0x48, 0x5c, 0x08,
0xe4, 0x40, 0x0e, 0x8a,
0x0c, 0x29, 0x82, 0xd5,
0x40, 0x2b, 0x6c, 0x1d,
@@ -11309,7 +11391,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0xe0, 0x40, 0x02, 0x0a,
0x01, 0x11, 0xfc, 0xb5,
0x0c, 0x0b, 0x9f, 0x21,
- 0x64, 0x58, 0x8c, 0x3b,
+ 0x67, 0xb8, 0x8c, 0x3b,
0x80, 0x8b, 0xe8, 0x40,
0x84, 0x55, 0xa1, 0x8b,
0x6a, 0xa9, 0x0c, 0x09,
@@ -11324,7 +11406,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0xf2, 0x9c, 0x0c, 0x0c,
0x0c, 0x0b, 0xdd, 0x93,
0x0c, 0x0c, 0x8c, 0x1b,
- 0x15, 0x78, 0xf2, 0x9c,
+ 0x1c, 0x78, 0xf2, 0x9c,
0xc1, 0xc3, 0xe0, 0x3c,
0xfa, 0x00, 0x04, 0x0c,
0x61, 0x00, 0x4c, 0x46,
@@ -11336,7 +11418,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x84, 0x28, 0x98, 0x14,
0xf3, 0xf8, 0x44, 0x20,
0x43, 0x46, 0x04, 0x26,
- 0x5e, 0xf8, 0xe0, 0x1c,
+ 0x62, 0x58, 0xe0, 0x1c,
0x83, 0x21, 0x68, 0x44,
0x80, 0x18, 0x98, 0x04,
0xf3, 0xf4, 0x42, 0x10,
@@ -11354,23 +11436,23 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x83, 0x01, 0x00, 0x16,
0x6c, 0x25, 0x46, 0x21,
0x81, 0x11, 0x40, 0x2b,
- 0x6f, 0xf0, 0x5e, 0xa8,
+ 0x6f, 0xf0, 0x78, 0xa8,
0x08, 0x0c, 0x86, 0x2b,
- 0x33, 0x98, 0xf2, 0x80,
- 0xc1, 0xc3, 0xff, 0xec,
+ 0x0f, 0xd8, 0xf2, 0x80,
+ 0xc1, 0xc3, 0xff, 0xf0,
0xfa, 0x3c, 0x04, 0x0c,
0x81, 0x01, 0x00, 0x6b,
- 0x68, 0x14, 0x48, 0x28,
+ 0x68, 0x14, 0x4d, 0x48,
0x81, 0x81, 0x81, 0x11,
- 0x68, 0x28, 0x65, 0x08,
+ 0x68, 0x28, 0x6f, 0xc8,
0x12, 0x86, 0x80, 0x7b,
0xa4, 0x04, 0xe1, 0x3c,
0x42, 0x10, 0x80, 0x18,
0x80, 0x16, 0xf3, 0xbc,
- 0xe8, 0x30, 0x68, 0x48,
+ 0xe8, 0x30, 0x72, 0xc8,
0x95, 0x11, 0x03, 0xa1,
0x8c, 0x0b, 0x03, 0x21,
- 0xe8, 0x44, 0x5a, 0xc8,
+ 0xe8, 0x44, 0x5e, 0x28,
0xe1, 0x10, 0x41, 0x46,
0x84, 0x86, 0x80, 0x14,
0x80, 0xa6, 0x80, 0x04,
@@ -11398,7 +11480,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0xe1, 0x18, 0x00, 0xc6,
0x00, 0x86, 0x80, 0x04,
0x0c, 0x0c, 0x8e, 0x0b,
- 0x03, 0x58, 0xf2, 0x3c,
+ 0x08, 0x78, 0xf2, 0x3c,
0xc1, 0xc3, 0xe0, 0x14,
0xfa, 0x3c, 0x04, 0x0c,
0x81, 0x61, 0x02, 0xab,
@@ -11408,10 +11490,10 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x6c, 0x1d, 0x4e, 0x01,
0x84, 0x9b, 0x40, 0x2b,
0x50, 0x04, 0x4c, 0x60,
- 0x42, 0x18, 0x81, 0x01,
+ 0x47, 0x38, 0x81, 0x01,
0x81, 0x11, 0x68, 0x14,
0x42, 0x56, 0x00, 0x8b,
- 0x57, 0xd8, 0xe0, 0x00,
+ 0x5c, 0xf8, 0xe0, 0x00,
0x8e, 0x0b, 0x68, 0x14,
0x01, 0x06, 0x21, 0x6b,
0x4e, 0x01, 0xe0, 0x04,
@@ -11433,7 +11515,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x84, 0x75, 0xa3, 0x0b,
0x72, 0xc1, 0x02, 0x06,
0x8e, 0x0b, 0x40, 0x20,
- 0xef, 0xec, 0x5a, 0xa8,
+ 0xef, 0xec, 0x76, 0xe8,
0x01, 0x36, 0x81, 0xf5,
0x94, 0x1b, 0x60, 0x04,
0x6c, 0x1d, 0x4e, 0x01,
@@ -11443,12 +11525,12 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x68, 0x00, 0x41, 0x68,
0x42, 0x96, 0x8e, 0x0b,
0x8e, 0x0b, 0x60, 0x00,
- 0xe8, 0x14, 0x53, 0xe8,
+ 0xe8, 0x14, 0x59, 0x08,
0x60, 0x00, 0x42, 0x66,
- 0x53, 0x98, 0x8e, 0x0b,
+ 0x58, 0xb8, 0x8e, 0x0b,
0x03, 0x11, 0xe8, 0x14,
- 0x7d, 0x38, 0x90, 0x0b,
- 0x8c, 0x0b, 0xe8, 0x10,
+ 0x42, 0x58, 0x90, 0x0b,
+ 0x8c, 0x0b, 0xe8, 0x14,
0xf2, 0x3c, 0x0c, 0x0c,
0xc1, 0xc3, 0xdd, 0x93,
0xfa, 0x84, 0x04, 0x0c,
@@ -11459,277 +11541,316 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x40, 0x15, 0x6e, 0x09,
0x4c, 0x01, 0x81, 0x01,
0xc0, 0x2b, 0x64, 0xd5,
- 0xe8, 0x00, 0x78, 0x88,
+ 0xe8, 0x00, 0x7d, 0x68,
0x8c, 0x0b, 0x00, 0x7b,
- 0xe8, 0x18, 0x59, 0x28,
- 0x68, 0x00, 0x77, 0xa8,
- 0x42, 0xd8, 0x8c, 0x0b,
+ 0xe8, 0x18, 0x5e, 0x48,
+ 0x68, 0x00, 0x7c, 0x88,
+ 0x47, 0xf8, 0x8c, 0x0b,
0xa1, 0x7b, 0xe8, 0x0c,
- 0x4a, 0x18, 0x86, 0x25,
+ 0x49, 0xf8, 0x86, 0x25,
0x8c, 0x0b, 0x68, 0x00,
0x68, 0x00, 0x41, 0x88,
- 0x01, 0x46, 0x8c, 0x0b,
+ 0x01, 0xc6, 0x8c, 0x0b,
0x42, 0x46, 0x6f, 0xdc,
0x42, 0x1e, 0xe0, 0x04,
0x02, 0x16, 0x83, 0x11,
0xe0, 0x1c, 0x43, 0x46,
0xf8, 0x08, 0x40, 0x15,
- 0xef, 0xf0, 0x4f, 0x28,
+ 0xef, 0xf0, 0x69, 0x28,
0x0c, 0x0c, 0x8c, 0x0b,
- 0x05, 0x58, 0xf2, 0x84,
+ 0x0a, 0x78, 0xf2, 0x84,
0x0c, 0x0c, 0xe0, 0x0c,
0xdd, 0x93, 0xf2, 0x84,
0x63, 0x49, 0x00, 0x19,
- 0x81, 0x21, 0x40, 0x2d,
- 0x6e, 0x51, 0x40, 0x21,
- 0xa1, 0x31, 0x40, 0x2c,
- 0x68, 0x09, 0x40, 0x23,
- 0x40, 0x23, 0xc0, 0x0a,
- 0x40, 0x0a, 0x68, 0x0d,
- 0x40, 0x25, 0xe0, 0x19,
- 0x40, 0x0a, 0x61, 0x1d,
- 0x40, 0x21, 0xaf, 0x21,
- 0x40, 0x28, 0x64, 0x91,
- 0xe0, 0x0c, 0x45, 0xf6,
- 0x67, 0xc9, 0x40, 0x21,
- 0x04, 0x06, 0x40, 0x2d,
- 0x40, 0x23, 0xe0, 0x08,
- 0x40, 0x13, 0x69, 0x85,
- 0x40, 0x11, 0x91, 0x21,
+ 0x06, 0x56, 0x40, 0x2d,
+ 0xc0, 0x01, 0x60, 0x01,
+ 0x64, 0x01, 0x40, 0x35,
+ 0x83, 0x31, 0x40, 0x05,
+ 0x68, 0x15, 0x40, 0x33,
+ 0x81, 0x21, 0x40, 0x0a,
+ 0x65, 0x45, 0x40, 0x31,
+ 0x07, 0x06, 0x40, 0x22,
+ 0x40, 0x31, 0xe0, 0x08,
+ 0x40, 0x1b, 0x65, 0x6d,
+ 0x40, 0x31, 0xe0, 0x19,
+ 0x40, 0x22, 0x65, 0x4d,
+ 0x40, 0x31, 0xa1, 0x41,
+ 0x40, 0x28, 0x64, 0x89,
+ 0x40, 0x11, 0xaf, 0x31,
0x40, 0x2d, 0x63, 0x49,
0x60, 0x11, 0x02, 0x26,
- 0x40, 0x21, 0xc0, 0xc0,
- 0x40, 0x27, 0x63, 0x15,
- 0xe0, 0x10, 0x05, 0x86,
- 0x65, 0x65, 0x40, 0x31,
- 0x40, 0x33, 0xc0, 0x1b,
- 0xc0, 0x14, 0x62, 0x41,
- 0x69, 0x81, 0x40, 0x33,
- 0x40, 0x31, 0xc0, 0x13,
- 0x40, 0x27, 0x63, 0x11,
- 0xe0, 0x8c, 0x06, 0x06,
+ 0x40, 0x31, 0xc0, 0xc0,
+ 0x40, 0x28, 0x64, 0x91,
+ 0xe0, 0x0c, 0x47, 0xf6,
0x63, 0x29, 0x40, 0x15,
- 0x02, 0x56, 0x40, 0x0b,
- 0xc0, 0x01, 0x60, 0x01,
- 0x69, 0x91, 0x40, 0x23,
- 0x45, 0x86, 0x40, 0x13,
+ 0x91, 0x11, 0x40, 0x0b,
+ 0x67, 0xc9, 0x40, 0x31,
+ 0x06, 0x06, 0x40, 0x2d,
+ 0x40, 0x33, 0xe0, 0x08,
+ 0x40, 0x13, 0x69, 0x85,
+ 0xe0, 0x8c, 0x06, 0x06,
+ 0x68, 0x11, 0x40, 0x13,
+ 0x40, 0x11, 0xc0, 0x0a,
+ 0x40, 0x27, 0x63, 0x15,
+ 0xe0, 0x10, 0x03, 0x86,
+ 0x69, 0x91, 0x40, 0x13,
+ 0x43, 0x86, 0x40, 0x13,
0x40, 0x33, 0xe0, 0x00,
0x40, 0x13, 0x69, 0x95,
0xe0, 0x00, 0x46, 0x86,
- 0x64, 0x01, 0x40, 0x15,
- 0x8b, 0x11, 0x40, 0x05,
- 0x63, 0x31, 0x40, 0x21,
- 0x89, 0x21, 0x40, 0x27,
+ 0x63, 0x31, 0x40, 0x11,
+ 0x89, 0x11, 0x40, 0x27,
0x63, 0x35, 0x40, 0x31,
0x00, 0x3b, 0xc0, 0x27,
0xc0, 0x0a, 0x69, 0x31,
- 0x68, 0x11, 0x40, 0x13,
- 0x83, 0x11, 0x40, 0x0a,
- 0x6c, 0x61, 0x40, 0x21,
- 0x85, 0x21, 0x40, 0x22,
- 0x6c, 0x65, 0x40, 0x21,
- 0x9d, 0x21, 0x40, 0x22,
- 0x68, 0x15, 0x40, 0x13,
- 0x40, 0x11, 0xc0, 0x0a,
- 0x40, 0x22, 0x65, 0x45,
- 0xe0, 0x08, 0x03, 0x06,
- 0x6f, 0xb1, 0x40, 0x21,
- 0x04, 0x34, 0x40, 0x22,
- 0x40, 0x11, 0xfc, 0xa8,
- 0xc0, 0x1b, 0x65, 0x6d,
- 0x65, 0x4d, 0x40, 0x11,
- 0x40, 0x11, 0xc0, 0x22,
- 0x40, 0x28, 0x64, 0x89,
- 0x40, 0x11, 0x95, 0x11,
- 0xc0, 0x28, 0x64, 0x8d,
- 0x6f, 0xb5, 0x40, 0x11,
- 0x40, 0x23, 0xc0, 0x22,
- 0xc0, 0x0a, 0x69, 0x31,
- 0xc1, 0xc3, 0xdd, 0x93,
- 0xf8, 0x1c, 0x04, 0x0c,
- 0x53, 0xc6, 0x01, 0xc1,
- 0x40, 0xc1, 0xe0, 0x04,
- 0x40, 0x15, 0x62, 0x05,
- 0xe0, 0x08, 0x0e, 0x06,
- 0x63, 0x6d, 0x40, 0xc1,
- 0x59, 0xf6, 0x40, 0x2d,
+ 0x6c, 0x61, 0x40, 0x11,
+ 0x85, 0x11, 0x40, 0x22,
+ 0x6c, 0x65, 0x40, 0x11,
+ 0x9d, 0x11, 0x40, 0x22,
+ 0x6f, 0xb1, 0x40, 0x11,
+ 0x02, 0x34, 0x40, 0x22,
+ 0x40, 0x21, 0xfc, 0xa8,
+ 0xc0, 0x2c, 0x6e, 0x51,
+ 0x68, 0x09, 0x40, 0x23,
+ 0x40, 0x23, 0xc0, 0x0a,
+ 0xc0, 0x0a, 0x68, 0x0d,
+ 0x61, 0x1d, 0x40, 0x25,
+ 0x95, 0x21, 0x40, 0x0a,
+ 0x65, 0x65, 0x40, 0x41,
+ 0x40, 0x43, 0xc0, 0x1b,
+ 0xc0, 0x14, 0x62, 0x41,
+ 0x64, 0x8d, 0x40, 0x21,
+ 0x40, 0x43, 0xc0, 0x28,
+ 0xc0, 0x13, 0x69, 0x81,
+ 0x63, 0x11, 0x40, 0x41,
+ 0x40, 0x21, 0xc0, 0x27,
+ 0xc0, 0x22, 0x6f, 0xb5,
+ 0x69, 0x31, 0x40, 0x13,
+ 0xdd, 0x93, 0xc0, 0x0a,
+ 0xf8, 0x7c, 0x04, 0x0c,
+ 0x60, 0x0c, 0x14, 0x86,
+ 0x63, 0xc0, 0x04, 0x0e,
+ 0x40, 0xa3, 0xc0, 0xbb,
+ 0x40, 0x15, 0x6d, 0xb5,
+ 0xef, 0xfc, 0x55, 0xf6,
+ 0x6d, 0xc1, 0x40, 0xa3,
+ 0x55, 0xf6, 0x40, 0x15,
+ 0x40, 0xa1, 0xe0, 0x0c,
+ 0x40, 0x2c, 0x6c, 0xfd,
+ 0xe0, 0x7c, 0x07, 0x06,
+ 0x63, 0x69, 0x40, 0xa1,
+ 0x55, 0xf6, 0x40, 0x2d,
0xc0, 0x20, 0x72, 0xfd,
- 0x6e, 0x81, 0x40, 0x91,
- 0xb7, 0x91, 0x40, 0x2c,
- 0x64, 0xe1, 0x40, 0xc5,
- 0x49, 0x86, 0x40, 0x0b,
- 0x40, 0xc5, 0xef, 0xf0,
- 0x40, 0x0b, 0x64, 0xe5,
- 0x0b, 0x86, 0xbd, 0xc1,
- 0x0d, 0xc6, 0x60, 0x24,
- 0x40, 0x91, 0xe0, 0x5c,
- 0x40, 0x2c, 0x6e, 0x89,
- 0xe0, 0x0c, 0x10, 0x86,
- 0x63, 0xa9, 0x40, 0xc1,
- 0xab, 0x91, 0x40, 0x2d,
- 0x02, 0x0e, 0x0d, 0xc1,
- 0xc0, 0xbb, 0x63, 0xc1,
- 0x6b, 0x19, 0x40, 0x43,
- 0x07, 0x06, 0x40, 0x15,
- 0x40, 0x53, 0xe0, 0x7c,
- 0x40, 0x15, 0x6b, 0x1d,
- 0x40, 0x63, 0x99, 0x41,
+ 0x64, 0x59, 0x40, 0x25,
+ 0x05, 0x06, 0x40, 0x05,
+ 0x40, 0xa5, 0xe0, 0x08,
+ 0x40, 0x0b, 0x64, 0xe1,
+ 0xe0, 0x04, 0x57, 0xc6,
+ 0x64, 0xe5, 0x40, 0xa5,
+ 0xbd, 0xa1, 0x40, 0x0b,
+ 0x6e, 0x25, 0x40, 0x21,
+ 0x83, 0x21, 0x40, 0x29,
+ 0x6e, 0x81, 0x40, 0xb1,
+ 0xb7, 0xb1, 0x40, 0x2c,
+ 0x63, 0xa9, 0x40, 0xa1,
+ 0x14, 0x56, 0x40, 0x2d,
+ 0xc0, 0x20, 0x70, 0x01,
+ 0x6a, 0xe1, 0x40, 0x33,
+ 0x12, 0x06, 0x40, 0x15,
+ 0x40, 0x33, 0xe0, 0x08,
+ 0x40, 0x1c, 0x62, 0x6d,
+ 0xe0, 0x00, 0x46, 0x86,
+ 0x60, 0x24, 0x0d, 0x86,
+ 0xe0, 0x5c, 0x11, 0xc6,
+ 0x6e, 0x89, 0x40, 0xb1,
+ 0xab, 0xb1, 0x40, 0x2c,
+ 0x62, 0x25, 0x40, 0x33,
+ 0x46, 0xc6, 0x40, 0x1c,
+ 0x40, 0x21, 0xe0, 0x00,
+ 0x40, 0x2b, 0x65, 0x11,
+ 0x40, 0x21, 0xa3, 0x51,
+ 0x40, 0x2b, 0x65, 0xd1,
+ 0xe0, 0x40, 0x0e, 0x06,
+ 0x66, 0x81, 0x40, 0x21,
+ 0x81, 0x11, 0x40, 0x2b,
+ 0x66, 0x85, 0x40, 0x21,
+ 0x91, 0xc1, 0x40, 0x2b,
+ 0x6b, 0x8d, 0x40, 0x21,
+ 0x85, 0x41, 0x40, 0x2b,
+ 0x6b, 0x91, 0x40, 0x21,
+ 0x40, 0x21, 0xc0, 0x2b,
+ 0xc0, 0x2c, 0x6d, 0x61,
+ 0x6e, 0x5d, 0x40, 0x21,
+ 0x40, 0x21, 0xc0, 0x2c,
+ 0xc0, 0x2c, 0x6e, 0x61,
+ 0x6e, 0x91, 0x40, 0x21,
+ 0x40, 0x21, 0xc0, 0x2c,
+ 0xc0, 0x2c, 0x6e, 0x99,
+ 0x63, 0x31, 0x40, 0x21,
+ 0x40, 0xa5, 0xc0, 0x2d,
+ 0xc0, 0x0b, 0x64, 0xed,
+ 0x64, 0xf1, 0x40, 0xa5,
+ 0x8d, 0xa1, 0x40, 0x0b,
+ 0x68, 0x1d, 0x40, 0x21,
+ 0x40, 0x21, 0xc0, 0x2d,
+ 0xc0, 0x2d, 0x69, 0xd9,
+ 0x69, 0xdd, 0x40, 0x21,
+ 0x40, 0x21, 0xc0, 0x2d,
+ 0xc0, 0x2d, 0x6a, 0x7d,
+ 0x64, 0xd5, 0x40, 0x21,
+ 0xa9, 0x21, 0x40, 0x38,
+ 0x6b, 0x1d, 0x40, 0x63,
+ 0x0c, 0x06, 0x40, 0x15,
+ 0x40, 0x83, 0xf9, 0x00,
0x40, 0x15, 0x6d, 0xb1,
- 0xf9, 0x00, 0x0a, 0x06,
- 0x6d, 0xb5, 0x40, 0x83,
- 0x0c, 0xd6, 0x40, 0x15,
- 0x40, 0x91, 0xe0, 0xcc,
- 0x40, 0x2c, 0x6e, 0x95,
- 0xef, 0xfc, 0x51, 0xf6,
- 0x63, 0xd1, 0x40, 0xc1,
- 0x12, 0xc6, 0x40, 0x2d,
- 0x40, 0x71, 0xe0, 0x0c,
- 0x40, 0x29, 0x6e, 0x21,
- 0x72, 0xbd, 0x59, 0xf6,
- 0x40, 0x71, 0xc0, 0x20,
- 0x40, 0x29, 0x6e, 0x29,
- 0x40, 0x71, 0x85, 0x21,
+ 0xe0, 0xcc, 0x10, 0xd6,
+ 0x6e, 0x95, 0x40, 0xb1,
+ 0x16, 0xc6, 0x40, 0x2c,
+ 0x40, 0xa1, 0xe0, 0x0c,
+ 0x40, 0x2d, 0x63, 0xd1,
+ 0x72, 0xbd, 0x55, 0xf6,
+ 0x40, 0x23, 0xc0, 0x20,
+ 0x40, 0x1c, 0x62, 0x11,
+ 0xe0, 0x10, 0x44, 0xc6,
+ 0x62, 0x29, 0x40, 0x33,
+ 0x07, 0x06, 0x40, 0x1c,
+ 0x40, 0x91, 0xe0, 0x18,
+ 0xc0, 0x29, 0x6e, 0x21,
+ 0x6e, 0x29, 0x40, 0x91,
+ 0x40, 0x91, 0xc0, 0x29,
0x40, 0x2c, 0x6e, 0x9d,
- 0x40, 0x15, 0xb5, 0x71,
- 0x40, 0x05, 0x64, 0x59,
- 0xe0, 0x08, 0x03, 0x06,
- 0x6a, 0xe1, 0x40, 0x33,
- 0xa3, 0x31, 0x40, 0x15,
- 0x66, 0x41, 0x40, 0x41,
- 0x08, 0x0e, 0x40, 0x2b,
- 0x40, 0x55, 0xff, 0xc0,
- 0x40, 0x0a, 0x6d, 0x95,
- 0xe0, 0x40, 0x0a, 0x06,
- 0x6d, 0xb9, 0x40, 0x63,
- 0x4c, 0x66, 0x40, 0x15,
- 0x40, 0x83, 0xe0, 0x00,
- 0x40, 0x15, 0x6d, 0xc1,
- 0xe0, 0x0c, 0x51, 0xf6,
- 0x63, 0x49, 0x40, 0x91,
- 0x13, 0x86, 0x40, 0x2d,
- 0x40, 0x71, 0xe0, 0x60,
- 0xc0, 0x2d, 0x63, 0x29,
- 0x63, 0x39, 0x40, 0x71,
- 0x40, 0x71, 0xc0, 0x2d,
- 0xc0, 0x2d, 0x63, 0xd9,
- 0x64, 0x09, 0x40, 0x71,
- 0x0e, 0x66, 0x40, 0x2d,
- 0xc0, 0x20, 0x68, 0x01,
- 0x64, 0xf9, 0x40, 0xc5,
- 0x40, 0xc5, 0xc0, 0x0b,
- 0x40, 0x0b, 0x64, 0xfd,
- 0x60, 0x01, 0x18, 0x06,
- 0x40, 0x11, 0xc0, 0x20,
- 0x40, 0x29, 0x6e, 0x25,
- 0x40, 0x31, 0x83, 0x11,
+ 0x40, 0x51, 0xb5, 0x91,
0x40, 0x2b, 0x65, 0xc9,
- 0x40, 0x45, 0x91, 0x31,
- 0x40, 0x0a, 0x6d, 0x99,
- 0x40, 0x55, 0x89, 0x41,
- 0x40, 0x0a, 0x6d, 0x9d,
- 0x40, 0x61, 0x8b, 0x51,
- 0x40, 0x2b, 0x6b, 0x95,
- 0x40, 0x93, 0x8f, 0x61,
- 0x40, 0x16, 0x69, 0xa9,
- 0x40, 0x81, 0x87, 0x91,
- 0xc0, 0x2c, 0x6c, 0xfd,
- 0x63, 0x69, 0x40, 0x81,
- 0x10, 0x56, 0x40, 0x2d,
- 0xc0, 0x20, 0x70, 0x01,
- 0x65, 0x05, 0x40, 0xc5,
- 0x40, 0xc5, 0xc0, 0x0b,
- 0x40, 0x0b, 0x65, 0x09,
- 0x40, 0x75, 0xb9, 0xc1,
- 0xc0, 0x0b, 0x65, 0x11,
- 0x65, 0x15, 0x40, 0x75,
- 0x93, 0x71, 0x40, 0x0b,
- 0x65, 0x11, 0x40, 0x11,
- 0x40, 0x21, 0xc0, 0x2b,
+ 0xef, 0xf0, 0x4b, 0x86,
+ 0x6d, 0x95, 0x40, 0x65,
+ 0x0c, 0x0e, 0x40, 0x0a,
+ 0x40, 0x83, 0xff, 0xc0,
+ 0x40, 0x15, 0x6d, 0xb9,
+ 0xe0, 0x00, 0x50, 0x66,
+ 0x63, 0x49, 0x40, 0xb1,
+ 0x17, 0x86, 0x40, 0x2d,
+ 0x40, 0x23, 0xe0, 0x60,
+ 0x40, 0x1c, 0x62, 0x15,
+ 0x40, 0x33, 0xa1, 0x21,
+ 0x40, 0x1c, 0x62, 0x2d,
+ 0xe0, 0xf8, 0x46, 0x06,
+ 0x63, 0x29, 0x40, 0x91,
+ 0x40, 0x91, 0xc0, 0x2d,
+ 0xc0, 0x2d, 0x63, 0x39,
+ 0x63, 0xd9, 0x40, 0x91,
+ 0x40, 0x91, 0xc0, 0x2d,
+ 0x40, 0x2d, 0x64, 0x09,
+ 0x60, 0x01, 0x12, 0x06,
+ 0x40, 0xa5, 0xc0, 0x20,
+ 0xc0, 0x0b, 0x64, 0xf9,
+ 0x64, 0xfd, 0x40, 0xa5,
+ 0x14, 0x66, 0x40, 0x0b,
+ 0xc0, 0x20, 0x68, 0x01,
+ 0x6b, 0x19, 0x40, 0x53,
+ 0x99, 0x51, 0x40, 0x15,
+ 0x6d, 0x99, 0x40, 0x65,
+ 0x89, 0x61, 0x40, 0x0a,
+ 0x6d, 0x9d, 0x40, 0x75,
+ 0x8b, 0x71, 0x40, 0x0a,
+ 0x6b, 0x95, 0x40, 0x81,
+ 0x8f, 0x81, 0x40, 0x2b,
+ 0x69, 0xa9, 0x40, 0xb3,
+ 0x87, 0xb1, 0x40, 0x16,
+ 0x62, 0x31, 0x40, 0x33,
+ 0x46, 0x46, 0x40, 0x1c,
+ 0x40, 0x95, 0xe0, 0xf8,
+ 0xc0, 0x0b, 0x65, 0x05,
+ 0x65, 0x09, 0x40, 0x95,
+ 0xb9, 0x91, 0x40, 0x0b,
+ 0x65, 0x11, 0x40, 0xa5,
+ 0x40, 0xa5, 0xc0, 0x0b,
+ 0x40, 0x0b, 0x65, 0x15,
+ 0x40, 0x23, 0x93, 0xa1,
+ 0xc0, 0x1c, 0x62, 0x21,
+ 0x62, 0x41, 0x40, 0x23,
+ 0x40, 0x23, 0xc0, 0x1c,
+ 0x40, 0x1c, 0x62, 0x45,
+ 0xe0, 0x18, 0x04, 0x06,
+ 0x62, 0x05, 0x40, 0x11,
+ 0x40, 0x41, 0xc0, 0x15,
0xc0, 0x2b, 0x65, 0x31,
- 0x65, 0xcd, 0x40, 0x31,
- 0x40, 0x11, 0xc0, 0x2b,
- 0xc0, 0x2b, 0x65, 0xd1,
- 0x66, 0x81, 0x40, 0x11,
- 0x40, 0x11, 0xc0, 0x2b,
- 0xc0, 0x2b, 0x66, 0x85,
- 0x6a, 0xa1, 0x40, 0x51,
- 0x40, 0x41, 0xc0, 0x2b,
- 0xc0, 0x2b, 0x6a, 0xa5,
- 0x6b, 0x89, 0x40, 0x41,
- 0x40, 0x11, 0xc0, 0x2b,
- 0xc0, 0x2b, 0x6b, 0x8d,
- 0x6b, 0x91, 0x40, 0x11,
+ 0x65, 0xcd, 0x40, 0xc1,
+ 0x40, 0x51, 0xc0, 0x2b,
+ 0xc0, 0x2b, 0x66, 0x41,
+ 0x6a, 0xa1, 0x40, 0x71,
0x40, 0x61, 0xc0, 0x2b,
+ 0xc0, 0x2b, 0x6a, 0xa5,
+ 0x6b, 0x89, 0x40, 0x61,
+ 0x40, 0x81, 0xc0, 0x2b,
0xc0, 0x2c, 0x6d, 0x51,
- 0x6d, 0x61, 0x40, 0x11,
+ 0x6e, 0x59, 0x40, 0x81,
0x40, 0x61, 0xc0, 0x2c,
- 0xc0, 0x2c, 0x6e, 0x59,
- 0x6e, 0x5d, 0x40, 0x11,
- 0x40, 0x11, 0xc0, 0x2c,
- 0xc0, 0x2c, 0x6e, 0x61,
- 0x6e, 0x65, 0x40, 0x41,
- 0x40, 0x41, 0xc0, 0x2c,
- 0xc0, 0x2c, 0x6e, 0x69,
- 0x6e, 0x85, 0x40, 0x31,
- 0x40, 0x21, 0xc0, 0x2c,
- 0xc0, 0x2c, 0x6e, 0x8d,
- 0x6e, 0x91, 0x40, 0x11,
- 0x40, 0x11, 0xc0, 0x2c,
- 0xc0, 0x2c, 0x6e, 0x99,
- 0x6e, 0xa5, 0x40, 0x31,
- 0x40, 0x51, 0xc0, 0x2c,
- 0xc0, 0x2d, 0x63, 0x25,
- 0x63, 0x31, 0x40, 0x11,
- 0x40, 0x51, 0xc0, 0x2d,
+ 0xc0, 0x2c, 0x6e, 0x65,
+ 0x6e, 0x69, 0x40, 0x61,
+ 0x40, 0xc1, 0xc0, 0x2c,
+ 0xc0, 0x2c, 0x6e, 0x85,
+ 0x6e, 0x8d, 0x40, 0x41,
+ 0x40, 0xc1, 0xc0, 0x2c,
+ 0xc0, 0x2c, 0x6e, 0xa5,
+ 0x63, 0x25, 0x40, 0x71,
+ 0x40, 0x71, 0xc0, 0x2d,
0xc0, 0x2d, 0x63, 0x35,
- 0x63, 0x41, 0x40, 0x21,
- 0x40, 0x51, 0xc0, 0x2d,
+ 0x63, 0x41, 0x40, 0x41,
+ 0x40, 0x71, 0xc0, 0x2d,
0xc0, 0x2d, 0x63, 0x45,
- 0x63, 0x59, 0x40, 0x91,
- 0x40, 0x51, 0xc0, 0x2d,
+ 0x63, 0x59, 0x40, 0xb1,
+ 0x40, 0x71, 0xc0, 0x2d,
0xc0, 0x2d, 0x63, 0x5d,
- 0x63, 0x61, 0x40, 0x41,
- 0x40, 0x51, 0xc0, 0x2d,
+ 0x63, 0x61, 0x40, 0x61,
+ 0x40, 0x71, 0xc0, 0x2d,
0xc0, 0x2d, 0x63, 0x65,
- 0x63, 0x71, 0x40, 0x91,
- 0x40, 0x51, 0xc0, 0x2d,
- 0xc0, 0x2d, 0x63, 0xa1,
- 0x63, 0xa5, 0x40, 0x51,
- 0x40, 0x85, 0xc0, 0x2d,
- 0xc0, 0x0b, 0x64, 0xed,
- 0x64, 0xf1, 0x40, 0x85,
- 0x40, 0x51, 0xc0, 0x0b,
- 0xc0, 0x2d, 0x63, 0xd5,
- 0x64, 0x01, 0x40, 0x61,
- 0x40, 0x51, 0xc0, 0x2d,
- 0xc0, 0x2d, 0x64, 0x05,
- 0x64, 0x31, 0x40, 0x31,
- 0x40, 0x51, 0xc0, 0x2d,
- 0xc0, 0x2d, 0x64, 0x35,
- 0x64, 0x39, 0x40, 0xc1,
+ 0x63, 0x6d, 0x40, 0x11,
+ 0x40, 0xb1, 0xc0, 0x2d,
+ 0xc0, 0x2d, 0x63, 0x71,
+ 0x63, 0xa1, 0x40, 0x71,
0x40, 0x71, 0xc0, 0x2d,
- 0xc0, 0x2d, 0x64, 0x61,
- 0x64, 0x65, 0x40, 0x51,
+ 0xc0, 0x2d, 0x63, 0xa5,
+ 0x63, 0xd5, 0x40, 0x71,
+ 0x40, 0x81, 0xc0, 0x2d,
+ 0xc0, 0x2d, 0x64, 0x01,
+ 0x64, 0x05, 0x40, 0x71,
0x40, 0xc1, 0xc0, 0x2d,
- 0xc0, 0x2d, 0x64, 0x69,
- 0x65, 0x31, 0x40, 0x61,
+ 0xc0, 0x2d, 0x64, 0x31,
+ 0x64, 0x35, 0x40, 0x71,
+ 0x40, 0x91, 0xc0, 0x2d,
+ 0xc0, 0x2d, 0x64, 0x39,
+ 0x64, 0x61, 0x40, 0xa1,
+ 0x40, 0x71, 0xc0, 0x2d,
+ 0xc0, 0x2d, 0x64, 0x65,
+ 0x64, 0x69, 0x40, 0x91,
+ 0x40, 0x81, 0xc0, 0x2d,
+ 0xc0, 0x2d, 0x65, 0x31,
+ 0x65, 0x35, 0x40, 0x81,
0x40, 0x61, 0xc0, 0x2d,
- 0xc0, 0x2d, 0x65, 0x35,
- 0x68, 0x11, 0x40, 0x41,
- 0x40, 0x11, 0xc0, 0x2d,
- 0xc0, 0x2d, 0x68, 0x1d,
- 0x69, 0xd9, 0x40, 0x11,
- 0x40, 0x11, 0xc0, 0x2d,
- 0xc0, 0x2d, 0x69, 0xdd,
- 0x6a, 0x31, 0x40, 0x21,
- 0x40, 0x31, 0xc0, 0x2d,
+ 0xc0, 0x2d, 0x68, 0x11,
+ 0x6a, 0x31, 0x40, 0x41,
+ 0x40, 0xc1, 0xc0, 0x2d,
0xc0, 0x2d, 0x6a, 0x35,
- 0x6a, 0x39, 0x40, 0x91,
- 0x40, 0x41, 0xc0, 0x2d,
+ 0x6a, 0x39, 0x40, 0xb1,
+ 0x40, 0x61, 0xc0, 0x2d,
0xc0, 0x2d, 0x6a, 0x71,
- 0x6a, 0x7d, 0x40, 0x11,
- 0x0c, 0x0c, 0xc0, 0x2d,
- 0xdd, 0x93, 0xf0, 0x1c,
+ 0x64, 0xd1, 0x40, 0x11,
+ 0x40, 0x13, 0xc0, 0x38,
+ 0xc0, 0x1c, 0x62, 0x19,
+ 0x62, 0x1d, 0x40, 0x53,
+ 0x40, 0x33, 0xc0, 0x1c,
+ 0xc0, 0x1c, 0x62, 0x35,
+ 0x62, 0x39, 0x40, 0x13,
+ 0x40, 0x13, 0xc0, 0x1c,
+ 0xc0, 0x1c, 0x62, 0x3d,
+ 0x62, 0x49, 0x40, 0x23,
+ 0x40, 0x23, 0xc0, 0x1c,
+ 0xc0, 0x1c, 0x62, 0x4d,
+ 0x62, 0x51, 0x40, 0x23,
+ 0x40, 0x13, 0xc0, 0x1c,
+ 0xc0, 0x1c, 0x62, 0x55,
+ 0xf0, 0x7c, 0x0c, 0x0c,
+ 0xc1, 0xc3, 0xdd, 0x93,
0xf8, 0x3c, 0x04, 0x4c,
0x61, 0x4c, 0x44, 0x46,
0xe4, 0x50, 0x0a, 0x00,
@@ -11973,7 +12094,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0xdd, 0x93, 0x80, 0x00,
0xfa, 0xfc, 0x04, 0x0c,
0x81, 0x01, 0x00, 0x6b,
- 0x68, 0x0c, 0x7b, 0x88,
+ 0x68, 0x0c, 0x7b, 0xc8,
0x81, 0x81, 0x81, 0x11,
0x61, 0x34, 0x56, 0x86,
0x2c, 0x04, 0x80, 0x7b,
@@ -11984,10 +12105,10 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0xa4, 0x04, 0x80, 0xa6,
0x0c, 0x15, 0x80, 0x86,
0xc0, 0x0b, 0x69, 0xf9,
- 0x40, 0x06, 0xa1, 0x1b,
+ 0x40, 0x86, 0xa1, 0x1b,
0x00, 0x15, 0x8f, 0xdc,
0x8c, 0x0b, 0x00, 0x00,
- 0xe8, 0x40, 0x4f, 0x48,
+ 0xe8, 0x40, 0x4d, 0xc8,
0x83, 0x11, 0x2c, 0x04,
0x40, 0x46, 0x00, 0xa6,
0x80, 0x04, 0xe1, 0x34,
@@ -11995,9 +12116,9 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0xa4, 0x04, 0x80, 0x86,
0xa4, 0x04, 0x80, 0xa6,
0x8c, 0x0b, 0x00, 0x86,
- 0xe8, 0x10, 0x67, 0x68,
+ 0xe8, 0x10, 0x67, 0xa8,
0x8e, 0x0b, 0x03, 0x11,
- 0xe8, 0x0c, 0x78, 0x88,
+ 0xe8, 0x0c, 0x78, 0xc8,
0x67, 0xcd, 0x0c, 0x09,
0xa4, 0x09, 0xc0, 0x2d,
0x82, 0x75, 0xa5, 0x0b,
@@ -12005,22 +12126,22 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0xa7, 0x0b, 0xc0, 0x2b,
0x8c, 0x0b, 0x80, 0xd5,
0xf2, 0xfc, 0x0c, 0x0c,
- 0xe0, 0x2c, 0x0c, 0x88,
+ 0xe0, 0x2c, 0x12, 0x28,
0xf2, 0xfc, 0x0c, 0x0c,
0xc1, 0xc3, 0xdd, 0x93,
0xfa, 0x7c, 0x04, 0x0c,
0xed, 0x50, 0x1e, 0xf0,
0x97, 0x11, 0x00, 0x6b,
- 0xe8, 0x10, 0x4c, 0xe8,
- 0xef, 0xdc, 0x03, 0xc6,
+ 0xe8, 0x10, 0x4d, 0x28,
+ 0xef, 0xdc, 0x42, 0x46,
0x40, 0x00, 0x84, 0x08,
0x84, 0x06, 0xf3, 0xf8,
0x62, 0x65, 0x0c, 0x09,
0x40, 0x4a, 0xc0, 0x15,
- 0x21, 0xb8, 0xe0, 0x8c,
+ 0x22, 0x58, 0xe0, 0x8c,
0x0c, 0x09, 0x80, 0x00,
0xc0, 0x2d, 0x6b, 0x85,
- 0x21, 0x58, 0xa1, 0x0b,
+ 0x21, 0xf8, 0xa1, 0x0b,
0x06, 0x60, 0x80, 0x00,
0x40, 0xb6, 0x67, 0xa1,
0xe0, 0x04, 0x00, 0x06,
@@ -12277,27 +12398,41 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x69, 0xed, 0x4c, 0x25,
0x02, 0x0a, 0xc0, 0x0b,
0xf4, 0xb5, 0xe1, 0x00,
- 0x03, 0xc6, 0x24, 0x0f,
- 0x04, 0x08, 0xef, 0xdc,
- 0x04, 0x25, 0xa1, 0x0b,
- 0x93, 0xf8, 0x40, 0x00,
- 0x84, 0x06, 0xc2, 0x09,
- 0x6e, 0x0d, 0x0c, 0x09,
- 0xa3, 0x0b, 0xc0, 0x36,
- 0x80, 0x00, 0x00, 0x16,
- 0x03, 0x11, 0x4c, 0x01,
- 0x81, 0x45, 0x80, 0x38,
+ 0xa1, 0x0b, 0xa4, 0x0f,
+ 0x0c, 0x09, 0x88, 0x05,
+ 0xc0, 0x38, 0x64, 0xc5,
+ 0x64, 0xc1, 0x0c, 0x19,
+ 0x43, 0x0d, 0xc0, 0x38,
+ 0x64, 0xc5, 0x00, 0x60,
+ 0x86, 0xf5, 0xc0, 0xe1,
+ 0xef, 0xdc, 0x42, 0x46,
+ 0x88, 0x18, 0x82, 0x2b,
+ 0x88, 0x16, 0xc2, 0x19,
+ 0x6e, 0x0d, 0x0c, 0x19,
+ 0xa3, 0x1b, 0xc0, 0x36,
+ 0x80, 0x00, 0x02, 0x16,
+ 0x03, 0x11, 0x4c, 0x11,
+ 0x81, 0xf5, 0x80, 0x38,
0xc2, 0x09, 0x84, 0x08,
- 0x1e, 0xf0, 0x84, 0x06,
+ 0x83, 0x25, 0x84, 0x06,
+ 0xef, 0xdc, 0x40, 0x46,
+ 0x84, 0x08, 0x80, 0x1b,
+ 0xf3, 0xf8, 0x40, 0x00,
+ 0x00, 0x60, 0x04, 0x06,
+ 0xc0, 0xe1, 0x64, 0xc5,
+ 0x02, 0x0a, 0x80, 0x18,
+ 0x02, 0x10, 0xe3, 0xfc,
+ 0x40, 0x11, 0xc4, 0x04,
+ 0x1e, 0xf0, 0xc0, 0x00,
0x0c, 0x0c, 0xe5, 0x50,
0xdd, 0x93, 0xf2, 0x7c,
- 0xef, 0xdc, 0x01, 0xc6,
+ 0xef, 0xdc, 0x40, 0x46,
0x80, 0x28, 0x80, 0x18,
0x04, 0x19, 0xc2, 0x17,
0xf3, 0xf4, 0x44, 0x20,
0x80, 0x26, 0xa2, 0x2f,
0xc1, 0xc3, 0xdd, 0x93,
- 0xef, 0xdc, 0x02, 0x06,
+ 0xef, 0xdc, 0x02, 0x86,
0xe0, 0x70, 0x02, 0x29,
0xe0, 0x84, 0x44, 0x0a,
0x9a, 0x00, 0x5c, 0x08,
@@ -12306,7 +12441,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x80, 0x00, 0x02, 0x29,
0x9c, 0x20, 0x44, 0x20,
0x80, 0x00, 0x42, 0x21,
- 0xff, 0xfc, 0x16, 0x28,
+ 0xff, 0xfc, 0x14, 0x68,
0xfa, 0x00, 0x04, 0x0c,
0x6c, 0x51, 0x00, 0x19,
0x00, 0x29, 0xc0, 0x2b,
@@ -12324,7 +12459,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x00, 0x29, 0xdd, 0x93,
0x40, 0x2b, 0x6c, 0x1d,
0xe0, 0x08, 0x42, 0x96,
- 0x6f, 0xf8, 0x4c, 0x88,
+ 0x6f, 0xf8, 0x45, 0xe8,
0xe0, 0x08, 0x4c, 0x96,
0x0c, 0x06, 0xa3, 0x0b,
0x8c, 0x0b, 0xc0, 0x00,
@@ -12347,7 +12482,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x00, 0x29, 0xdd, 0x93,
0x40, 0x2b, 0x6c, 0x1d,
0xe0, 0x08, 0x42, 0x96,
- 0x6f, 0xf8, 0x49, 0xa8,
+ 0x6f, 0xf8, 0x43, 0x08,
0xe0, 0x08, 0x4c, 0x96,
0x0c, 0x06, 0xa3, 0x0b,
0x8c, 0x0b, 0xc0, 0x00,
@@ -12369,7 +12504,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x0f, 0xf6, 0x40, 0x2b,
0x03, 0xf6, 0xe0, 0x08,
0x8c, 0x0b, 0x60, 0x08,
- 0xef, 0xf8, 0x46, 0xe8,
+ 0xef, 0xf8, 0x40, 0x48,
0x0d, 0x78, 0xa3, 0x0b,
0x0c, 0x19, 0x80, 0x00,
0xc0, 0x15, 0x61, 0x41,
@@ -12387,8 +12522,8 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x40, 0x2b, 0x6c, 0x1d,
0xe0, 0x08, 0x4e, 0x76,
0x60, 0x08, 0x42, 0x76,
- 0x44, 0x98, 0x8c, 0x0b,
- 0xa3, 0x0b, 0xef, 0xf8,
+ 0x7d, 0xf8, 0x8c, 0x0b,
+ 0xa3, 0x0b, 0xef, 0xf4,
0x80, 0x00, 0x0b, 0x28,
0x61, 0x41, 0x0c, 0x19,
0x0c, 0x09, 0xc0, 0x15,
@@ -12411,7 +12546,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x4e, 0x76, 0x40, 0x2b,
0x42, 0x76, 0xe0, 0x08,
0x8c, 0x0b, 0x60, 0x08,
- 0xef, 0xf8, 0x41, 0xa8,
+ 0xef, 0xf4, 0x7b, 0x08,
0xa0, 0x65, 0xa3, 0x0b,
0x61, 0x51, 0x0c, 0x09,
0x00, 0x0a, 0xc0, 0x15,
@@ -12428,7 +12563,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x40, 0x2b, 0x6c, 0x1d,
0xe0, 0x08, 0x4e, 0x06,
0x60, 0x08, 0x42, 0x06,
- 0x7f, 0x78, 0x8c, 0x0b,
+ 0x78, 0xd8, 0x8c, 0x0b,
0xa3, 0x0b, 0xef, 0xf4,
0x0c, 0x09, 0x98, 0x05,
0xc0, 0x15, 0x61, 0x49,
@@ -12446,7 +12581,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x40, 0x2b, 0x6c, 0x1d,
0xe0, 0x08, 0x4e, 0x16,
0x60, 0x08, 0x42, 0x16,
- 0x7d, 0x38, 0x8c, 0x0b,
+ 0x76, 0x98, 0x8c, 0x0b,
0xa3, 0x0b, 0xef, 0xf4,
0x0c, 0x09, 0x8e, 0x85,
0xc0, 0x15, 0x61, 0x41,
@@ -12466,7 +12601,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x4e, 0x36, 0x40, 0x2b,
0x42, 0x36, 0xe0, 0x08,
0x8c, 0x0b, 0x60, 0x08,
- 0xef, 0xf4, 0x7a, 0xc8,
+ 0xef, 0xf4, 0x74, 0x28,
0x03, 0x55, 0xa3, 0x0b,
0xc0, 0x00, 0x0e, 0x06,
0x61, 0x51, 0x0c, 0x09,
@@ -12484,33 +12619,11 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x4e, 0x26, 0x40, 0x2b,
0x42, 0x26, 0xe0, 0x08,
0x8c, 0x0b, 0x60, 0x08,
- 0xef, 0xf4, 0x78, 0x88,
+ 0xef, 0xf4, 0x71, 0xe8,
0x0e, 0x06, 0xa3, 0x0b,
0x8e, 0x0b, 0xc0, 0x00,
0xf2, 0x04, 0x0c, 0x4c,
0xc1, 0xc3, 0xdd, 0x93,
- 0x6c, 0x51, 0x00, 0x19,
- 0x00, 0x29, 0xc0, 0x2b,
- 0xc0, 0x2b, 0x6c, 0x55,
- 0x61, 0x88, 0x06, 0x14,
- 0x40, 0x11, 0x83, 0x11,
- 0x40, 0x2b, 0x6c, 0x59,
- 0xe1, 0x88, 0x08, 0x24,
- 0xe6, 0x92, 0x44, 0x3a,
- 0x6c, 0x41, 0x40, 0x31,
- 0x04, 0x0a, 0xc0, 0x2b,
- 0x89, 0x21, 0x60, 0x40,
- 0x6c, 0x49, 0x40, 0x21,
- 0x40, 0x21, 0xc0, 0x2b,
- 0xc0, 0x2b, 0x6c, 0x4d,
- 0x6c, 0x45, 0x40, 0x41,
- 0x40, 0x11, 0xc0, 0x2b,
- 0xc0, 0x2c, 0x6c, 0x79,
- 0x0c, 0x69, 0x40, 0x21,
- 0x40, 0x21, 0x80, 0x2b,
- 0x80, 0x2b, 0x0c, 0x6d,
- 0x0c, 0x81, 0x40, 0x11,
- 0xdd, 0x93, 0x80, 0x2c,
0xfa, 0x00, 0x04, 0xcc,
0x81, 0x01, 0x00, 0x6b,
0x66, 0x35, 0x0c, 0x1b,
@@ -12519,10 +12632,10 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x42, 0x06, 0x60, 0x80,
0x4c, 0x11, 0xe0, 0x04,
0xc0, 0x2b, 0x6c, 0x1d,
- 0x80, 0x00, 0x0c, 0x98,
- 0x6f, 0xfc, 0x6b, 0x28,
+ 0x80, 0x00, 0x0c, 0x58,
+ 0x6f, 0xfc, 0x6d, 0xe8,
0xa1, 0x0b, 0x8c, 0x0b,
- 0xc0, 0x00, 0x0c, 0x38,
+ 0xc0, 0x00, 0x0b, 0xf8,
0x61, 0x41, 0x0c, 0x09,
0x04, 0xf0, 0x40, 0x15,
0x0c, 0x19, 0xe4, 0x20,
@@ -12531,7 +12644,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0xe4, 0x30, 0x02, 0xf0,
0x63, 0x09, 0x4c, 0x01,
0x8c, 0x0b, 0x40, 0x15,
- 0xe8, 0x00, 0x4b, 0xc8,
+ 0xe8, 0x00, 0x4b, 0x88,
0x61, 0x49, 0x0c, 0x09,
0x99, 0x18, 0xc0, 0x15,
0x61, 0x4d, 0x0c, 0x29,
@@ -12551,16 +12664,14 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x6c, 0x51, 0x4c, 0x11,
0x4c, 0x21, 0xc0, 0x2b,
0xc0, 0x2b, 0x6c, 0x55,
- 0x06, 0x0a, 0x82, 0x15,
- 0x80, 0xb5, 0xf0, 0x04,
- 0x6f, 0xfc, 0x78, 0x08,
- 0x8f, 0x25, 0x8c, 0x0b,
+ 0x06, 0x0a, 0x80, 0x95,
+ 0x9c, 0x45, 0xf0, 0x04,
0xf4, 0x0c, 0x07, 0x0a,
0x4c, 0x21, 0x84, 0x55,
0x40, 0x2b, 0x6c, 0x4d,
0x4c, 0x31, 0xea, 0x0d,
0xc0, 0x2b, 0x6c, 0x45,
- 0x60, 0x58, 0x8c, 0x25,
+ 0x63, 0x58, 0x8c, 0x25,
0x8c, 0x0b, 0x6f, 0xfc,
0x9c, 0x55, 0xa1, 0x0b,
0x6c, 0x41, 0x0c, 0x09,
@@ -12571,14 +12682,14 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0xc0, 0x2b, 0x6c, 0x4d,
0x6c, 0x45, 0x4c, 0x31,
0x86, 0x85, 0xc0, 0x2b,
- 0x6f, 0xfc, 0x5f, 0x08,
+ 0x6f, 0xfc, 0x62, 0x08,
0xa1, 0x0b, 0x8c, 0x0b,
0x0c, 0x09, 0x96, 0xb5,
0xc0, 0x2b, 0x6c, 0x41,
0x86, 0x15, 0xab, 0x0b,
- 0x6f, 0xfc, 0x61, 0x48,
+ 0x6f, 0xfc, 0x64, 0x48,
0xfd, 0x15, 0x8c, 0x0b,
- 0x6f, 0xfc, 0x61, 0x08,
+ 0x6f, 0xfc, 0x64, 0x08,
0xa1, 0x0b, 0x8c, 0x0b,
0x0c, 0x09, 0x92, 0xf5,
0xc0, 0x15, 0x61, 0x41,
@@ -12614,11 +12725,11 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x44, 0x98, 0xc0, 0x16,
0x8c, 0x0b, 0x68, 0x00,
0x82, 0x95, 0xa1, 0x0b,
- 0x6f, 0xf0, 0x65, 0x48,
+ 0x6f, 0xf0, 0x64, 0xe8,
0xa1, 0x0b, 0x8c, 0x0b,
- 0x6c, 0xd8, 0x80, 0xf5,
+ 0x73, 0xb8, 0x80, 0xf5,
0x8c, 0x0b, 0x68, 0x24,
- 0x68, 0x30, 0x4b, 0xa8,
+ 0x68, 0x30, 0x4f, 0x08,
0x21, 0x11, 0x8c, 0x0b,
0x4c, 0x11, 0x83, 0x21,
0xc0, 0x1b, 0x65, 0x61,
@@ -12677,7 +12788,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x4e, 0x56, 0x40, 0x2b,
0x42, 0x56, 0xe0, 0x08,
0x8c, 0x0b, 0x60, 0x08,
- 0xef, 0xf4, 0x60, 0x68,
+ 0xef, 0xf4, 0x5c, 0xc8,
0x88, 0x05, 0xa3, 0x0b,
0x6c, 0x51, 0x0c, 0x19,
0x81, 0x21, 0x40, 0x2b,
@@ -12788,7 +12899,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x00, 0x29, 0xdd, 0x93,
0x40, 0x2b, 0x6c, 0x1d,
0xe0, 0x08, 0x42, 0x56,
- 0x6f, 0xf4, 0x52, 0x88,
+ 0x6f, 0xf4, 0x4e, 0xe8,
0xe0, 0x08, 0x4c, 0x56,
0x0c, 0x06, 0xa3, 0x0b,
0x8c, 0x0b, 0xc0, 0x00,
@@ -12809,8 +12920,8 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x80, 0x04, 0xe1, 0x48,
0x02, 0x14, 0x80, 0x18,
0x80, 0x16, 0xfc, 0x9c,
- 0xef, 0xe0, 0x7e, 0x08,
- 0x6f, 0x9c, 0x72, 0xc8,
+ 0xef, 0xe4, 0x56, 0xa8,
+ 0x6f, 0x9c, 0x62, 0x48,
0xc1, 0xc3, 0x81, 0x01,
0xfa, 0x00, 0x00, 0x4c,
0x61, 0x48, 0x41, 0xc6,
@@ -12821,8 +12932,8 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0xe1, 0x48, 0x43, 0x86,
0x80, 0x18, 0x84, 0x04,
0xfc, 0x9c, 0x02, 0x14,
- 0x7c, 0x78, 0x80, 0x16,
- 0x71, 0x38, 0xef, 0xe0,
+ 0x55, 0x18, 0x80, 0x16,
+ 0x60, 0xb8, 0xef, 0xe4,
0x81, 0x01, 0x6f, 0x9c,
0xfa, 0x00, 0x00, 0x4c,
0x61, 0x48, 0x41, 0xc6,
@@ -12833,8 +12944,8 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0xe1, 0x48, 0x43, 0x86,
0x80, 0x18, 0x84, 0x04,
0xfc, 0x9c, 0x02, 0x14,
- 0x7a, 0xf8, 0x80, 0x16,
- 0x6f, 0xb8, 0xef, 0xe0,
+ 0x53, 0x98, 0x80, 0x16,
+ 0x5f, 0x38, 0xef, 0xe4,
0x81, 0x01, 0x6f, 0x9c,
0xfa, 0x00, 0x00, 0x4c,
0x61, 0x48, 0x41, 0xc6,
@@ -12845,8 +12956,8 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0xe1, 0x48, 0x43, 0x86,
0x80, 0x18, 0x84, 0x04,
0xfc, 0x9c, 0x02, 0x14,
- 0x79, 0x78, 0x80, 0x16,
- 0x6e, 0x38, 0xef, 0xe0,
+ 0x52, 0x18, 0x80, 0x16,
+ 0x5d, 0xb8, 0xef, 0xe4,
0x81, 0x01, 0x6f, 0x9c,
0xfa, 0x00, 0x00, 0x4c,
0x61, 0x48, 0x41, 0xc6,
@@ -12857,8 +12968,8 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0xe1, 0x48, 0x43, 0x86,
0x80, 0x18, 0x84, 0x04,
0xfc, 0x9c, 0x02, 0x14,
- 0x77, 0xf8, 0x80, 0x16,
- 0x6c, 0xb8, 0xef, 0xe0,
+ 0x50, 0x98, 0x80, 0x16,
+ 0x5c, 0x38, 0xef, 0xe4,
0x81, 0x01, 0x6f, 0x9c,
0xfa, 0x00, 0x00, 0x4c,
0x61, 0x48, 0x41, 0xc6,
@@ -12869,8 +12980,8 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0xe1, 0x48, 0x43, 0x86,
0x80, 0x18, 0x84, 0x04,
0xfc, 0x9c, 0x02, 0x14,
- 0x76, 0x78, 0x80, 0x16,
- 0x6b, 0x38, 0xef, 0xe0,
+ 0x4f, 0x18, 0x80, 0x16,
+ 0x5a, 0xb8, 0xef, 0xe4,
0x81, 0x01, 0x6f, 0x9c,
0xfa, 0x00, 0x00, 0x4c,
0x61, 0x48, 0x41, 0xc6,
@@ -12881,8 +12992,8 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0xe1, 0x48, 0x43, 0x86,
0x80, 0x18, 0x84, 0x04,
0xfc, 0x9c, 0x02, 0x14,
- 0x74, 0xf8, 0x80, 0x16,
- 0x69, 0xb8, 0xef, 0xe0,
+ 0x4d, 0x98, 0x80, 0x16,
+ 0x59, 0x38, 0xef, 0xe4,
0x81, 0x01, 0x6f, 0x9c,
0xfa, 0x00, 0x00, 0x4c,
0xe2, 0xc0, 0x00, 0x2c,
@@ -12892,136 +13003,148 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0xe1, 0x48, 0x41, 0x86,
0x80, 0x18, 0x80, 0x04,
0xfc, 0x9c, 0x02, 0x14,
- 0x73, 0x98, 0x80, 0x16,
- 0x68, 0x58, 0xef, 0xe0,
+ 0x4c, 0x38, 0x80, 0x16,
+ 0x57, 0xd8, 0xef, 0xe4,
0x81, 0x01, 0x6f, 0x9c,
- 0xfa, 0x1c, 0x04, 0x0c,
- 0xec, 0x30, 0x1e, 0xf0,
- 0x6f, 0xf8, 0x44, 0xc8,
+ 0xfe, 0x1c, 0x04, 0xcc,
+ 0x6f, 0xf8, 0x46, 0x28,
0x80, 0x7b, 0x80, 0x6b,
- 0x96, 0x25, 0xa1, 0x7b,
- 0x81, 0x91, 0x05, 0x01,
- 0x6c, 0x1d, 0x4c, 0x01,
- 0x00, 0x06, 0x40, 0x2b,
- 0x00, 0x9e, 0xe1, 0x94,
- 0x64, 0x1d, 0x10, 0x60,
- 0x66, 0xd8, 0xc0, 0xaf,
- 0xa1, 0x0b, 0xef, 0xe8,
- 0x87, 0x01, 0x82, 0x65,
- 0x43, 0xf8, 0xa0, 0x06,
- 0x44, 0x38, 0xef, 0xf8,
- 0x71, 0x58, 0xef, 0xf8,
- 0x66, 0x78, 0xef, 0xe0,
- 0x01, 0x11, 0xef, 0xe8,
- 0xee, 0x10, 0x45, 0x06,
- 0x6f, 0x9c, 0x7b, 0x68,
- 0x00, 0x06, 0x8c, 0x0b,
- 0x81, 0x11, 0x6f, 0xdc,
- 0x6f, 0x9c, 0x7b, 0x08,
- 0xe0, 0x00, 0x44, 0xc6,
- 0x60, 0x0c, 0x00, 0x86,
- 0x4c, 0x05, 0x8b, 0x11,
+ 0xe0, 0x00, 0x0e, 0x2a,
+ 0x40, 0x01, 0x05, 0xf8,
+ 0x05, 0x01, 0x80, 0x00,
+ 0x4c, 0x01, 0x81, 0x91,
+ 0x40, 0x2b, 0x6c, 0x1d,
+ 0xe1, 0x94, 0x00, 0x06,
+ 0x10, 0x60, 0x00, 0x9e,
+ 0xc0, 0xaf, 0x64, 0x1d,
+ 0xef, 0xe8, 0x7d, 0x68,
+ 0x82, 0x65, 0xa1, 0x0b,
+ 0xa0, 0x06, 0x87, 0x01,
+ 0xef, 0xf8, 0x45, 0x28,
+ 0xef, 0xf8, 0x45, 0x68,
+ 0xef, 0xe4, 0x49, 0xe8,
+ 0xef, 0xe8, 0x7d, 0x08,
+ 0x45, 0x86, 0x01, 0x11,
+ 0x6a, 0xd8, 0xee, 0x10,
+ 0x8c, 0x0b, 0x6f, 0x9c,
+ 0x6f, 0xdc, 0x00, 0x86,
+ 0x6a, 0x78, 0x81, 0x11,
+ 0x44, 0xc6, 0x6f, 0x9c,
+ 0x00, 0x86, 0xe0, 0x00,
+ 0x42, 0x86, 0x60, 0x0c,
+ 0x4c, 0x15, 0xe0, 0x3c,
+ 0x40, 0x0e, 0x60, 0xd9,
+ 0x60, 0x01, 0x02, 0x06,
+ 0x4c, 0x05, 0xc0, 0x7d,
0xc0, 0x0e, 0x60, 0xcd,
0x60, 0xd1, 0x4c, 0x05,
0x4c, 0x05, 0xc0, 0x0e,
0x40, 0x0e, 0x60, 0xd5,
- 0xe0, 0x3c, 0x40, 0x86,
- 0x60, 0xd9, 0x4c, 0x05,
- 0x00, 0x06, 0x40, 0x0e,
- 0xc0, 0x7d, 0x60, 0x01,
- 0x60, 0xdd, 0x4c, 0x15,
- 0x83, 0x11, 0x40, 0x0e,
- 0x6d, 0x49, 0x4c, 0x05,
- 0x01, 0xe6, 0x40, 0x0a,
- 0x4c, 0x11, 0xe0, 0x50,
- 0x40, 0x2c, 0x6e, 0x91,
- 0xe4, 0x00, 0x02, 0x06,
- 0x67, 0x39, 0x4c, 0x03,
- 0x40, 0x16, 0x40, 0x16,
- 0x4c, 0x13, 0xe0, 0x00,
- 0x40, 0x16, 0x67, 0x3d,
- 0x60, 0x09, 0x02, 0x76,
- 0x4c, 0x03, 0xc0, 0x20,
- 0xc0, 0x15, 0x6e, 0x01,
- 0x83, 0x05, 0x84, 0x96,
- 0x61, 0x94, 0x00, 0x06,
- 0x64, 0x1c, 0x10, 0x60,
- 0x80, 0x14, 0xc0, 0xaf,
- 0x83, 0x11, 0x23, 0x1b,
- 0x6c, 0x1d, 0x4c, 0x11,
- 0x02, 0x06, 0x40, 0x2b,
- 0x40, 0x15, 0xc0, 0x00,
- 0x44, 0x98, 0xc0, 0x00,
- 0x18, 0xf0, 0xef, 0xe4,
- 0x8c, 0x0b, 0x64, 0x10,
- 0xe8, 0x10, 0x5e, 0xe8,
- 0xa1, 0x0b, 0xbe, 0x04,
- 0xfc, 0x94, 0x82, 0x55,
- 0x80, 0xe5, 0xa1, 0x9b,
- 0xe1, 0x34, 0x01, 0x46,
- 0x80, 0x04, 0x80, 0x04,
- 0x88, 0xb5, 0xa3, 0x0b,
- 0x68, 0x0c, 0x5d, 0xa8,
- 0x20, 0x28, 0x8c, 0x0b,
- 0xe0, 0x08, 0x10, 0xb6,
- 0x60, 0x08, 0x02, 0xb6,
- 0x7c, 0x58, 0x8c, 0x0b,
- 0x4b, 0x58, 0xef, 0xf0,
- 0x8c, 0x0b, 0x68, 0x38,
- 0x68, 0x04, 0x50, 0xc8,
- 0xa1, 0x8b, 0x8c, 0x0b,
- 0x6f, 0xf4, 0x7c, 0x48,
- 0x9c, 0x00, 0x50, 0x00,
- 0xef, 0xf4, 0x7c, 0x68,
- 0xef, 0xe0, 0x69, 0x88,
- 0x83, 0x11, 0x01, 0x01,
- 0x6f, 0xe4, 0x54, 0x08,
- 0x10, 0x0b, 0x8c, 0x2b,
- 0x0c, 0x0c, 0x98, 0xf1,
- 0xdd, 0x93, 0xf2, 0x1c,
- 0x68, 0x0c, 0x79, 0x08,
+ 0x4c, 0x05, 0x8b, 0x01,
+ 0x40, 0x0e, 0x60, 0xdd,
+ 0x4c, 0x15, 0x83, 0x01,
+ 0x40, 0x0a, 0x6d, 0x49,
+ 0xe0, 0x40, 0x43, 0x56,
+ 0x6e, 0x91, 0x4c, 0x01,
+ 0x01, 0xb6, 0x40, 0x2c,
+ 0x4c, 0x13, 0xe3, 0x48,
+ 0x40, 0x16, 0x67, 0x39,
+ 0xe0, 0x00, 0x42, 0x16,
+ 0x67, 0x3d, 0x4c, 0x03,
+ 0x00, 0x76, 0x40, 0x16,
+ 0xc0, 0x20, 0x60, 0x09,
+ 0x6e, 0x01, 0x4c, 0x13,
+ 0x87, 0x11, 0x40, 0x15,
+ 0x4c, 0x11, 0x80, 0x96,
+ 0xc0, 0x38, 0x64, 0xc1,
+ 0x00, 0x06, 0x83, 0x05,
+ 0x10, 0x60, 0x61, 0x94,
+ 0xc0, 0xaf, 0x64, 0x1c,
+ 0x23, 0x1b, 0x80, 0x14,
+ 0x4c, 0x11, 0x83, 0x11,
+ 0x40, 0x2b, 0x6c, 0x1d,
+ 0xc0, 0x00, 0x02, 0x06,
+ 0xc0, 0x00, 0x40, 0x15,
+ 0xef, 0xe4, 0x5a, 0xa8,
+ 0x64, 0x60, 0x18, 0xf0,
+ 0x60, 0x18, 0x8c, 0x0b,
+ 0x8d, 0x04, 0xe8, 0x10,
+ 0x82, 0x55, 0xa1, 0x0b,
+ 0xa1, 0x9b, 0x8f, 0x94,
+ 0x01, 0x46, 0x80, 0xe5,
+ 0x80, 0x04, 0xe1, 0x34,
+ 0xa3, 0x0b, 0x80, 0x04,
+ 0x5e, 0xd8, 0x88, 0x95,
+ 0x8c, 0x0b, 0x68, 0x0c,
+ 0x10, 0xb6, 0x20, 0x28,
+ 0x02, 0xb6, 0xe0, 0x08,
+ 0x8c, 0x0b, 0x60, 0x08,
+ 0xef, 0xf0, 0x78, 0x68,
+ 0x68, 0x38, 0x4a, 0xc8,
+ 0x51, 0xf8, 0x8c, 0x0b,
+ 0x8c, 0x0b, 0x68, 0x04,
+ 0x7d, 0x38, 0xa1, 0x8b,
+ 0x50, 0x00, 0x6f, 0xf4,
+ 0x7d, 0x58, 0x9c, 0x00,
+ 0x41, 0xd8, 0xef, 0xf4,
+ 0x01, 0x01, 0xef, 0xe4,
+ 0x6a, 0x18, 0x83, 0x11,
+ 0x8c, 0x2b, 0x6f, 0xe4,
+ 0x0c, 0xcc, 0x90, 0x0b,
+ 0xdd, 0x93, 0xf6, 0x1c,
+ 0x68, 0x0c, 0x7a, 0x48,
0x00, 0x8b, 0x8c, 0x0b,
0xa1, 0x8b, 0x8c, 0x0b,
- 0x4c, 0x78, 0x80, 0x85,
- 0xfb, 0xe5, 0xef, 0xf4,
- 0xe8, 0x14, 0x5e, 0x08,
+ 0x48, 0x78, 0x80, 0x85,
+ 0xfb, 0xf5, 0xef, 0xf4,
+ 0xe8, 0x14, 0x64, 0xe8,
0xa1, 0x8b, 0x80, 0x8b,
- 0x79, 0x18, 0xf6, 0x35,
- 0x8c, 0x0b, 0x6f, 0xf4,
- 0xe8, 0x00, 0x44, 0x48,
- 0x8a, 0xa5, 0xa1, 0x7b,
- 0x6f, 0xf4, 0x4b, 0x88,
- 0x42, 0xf8, 0x8c, 0x0b,
+ 0x7a, 0x18, 0xf6, 0x55,
0x8c, 0x0b, 0x6f, 0xf4,
- 0x6f, 0xdc, 0x01, 0x46,
- 0xe0, 0x04, 0x42, 0x46,
- 0x83, 0x11, 0x42, 0x1e,
- 0x43, 0x46, 0x02, 0x16,
- 0x40, 0x15, 0xe0, 0x1c,
- 0x50, 0x98, 0xf8, 0x08,
- 0x46, 0xf8, 0xef, 0xe4,
- 0x8c, 0x0b, 0x68, 0x00,
- 0x61, 0x4c, 0x00, 0xc6,
- 0x00, 0x04, 0x97, 0x11,
- 0x00, 0x16, 0xa3, 0x9b,
- 0xe1, 0x4c, 0x00, 0x46,
- 0x9d, 0x11, 0x00, 0x04,
- 0x82, 0x75, 0x80, 0x16,
- 0x68, 0x0c, 0x73, 0x48,
- 0x00, 0x8b, 0x8c, 0x0b,
- 0x45, 0xf8, 0x8c, 0x0b,
+ 0xe8, 0x00, 0x45, 0x88,
+ 0x40, 0x01, 0x04, 0x48,
+ 0x8c, 0x0b, 0x00, 0x00,
+ 0xef, 0xf4, 0x47, 0x68,
+ 0x6f, 0xf0, 0x7f, 0x08,
+ 0x01, 0xc6, 0x8c, 0x0b,
+ 0x42, 0x46, 0x6f, 0xdc,
+ 0x42, 0x1e, 0xe0, 0x04,
+ 0x02, 0x16, 0x83, 0x11,
+ 0xe0, 0x1c, 0x43, 0x46,
+ 0xf8, 0x08, 0x40, 0x15,
+ 0xef, 0xe4, 0x66, 0xa8,
+ 0x68, 0x00, 0x48, 0x28,
+ 0x00, 0xc6, 0x8c, 0x0b,
+ 0x97, 0x11, 0x61, 0x4c,
+ 0xa3, 0x9b, 0x00, 0x04,
+ 0x81, 0x81, 0x01, 0x91,
+ 0x00, 0x46, 0x00, 0x16,
+ 0x00, 0x04, 0xe1, 0x4c,
+ 0x80, 0x16, 0x9d, 0x11,
+ 0x74, 0x58, 0x80, 0xb5,
+ 0x8c, 0x0b, 0x68, 0x0c,
+ 0x02, 0x0e, 0x80, 0x8b,
+ 0x40, 0x10, 0x60, 0x01,
+ 0xe5, 0x40, 0x00, 0x06,
+ 0x02, 0x2b, 0x81, 0x85,
+ 0xec, 0x04, 0x00, 0x00,
+ 0x02, 0x33, 0xc9, 0x34,
+ 0xc6, 0x9f, 0x84, 0x1b,
+ 0xfe, 0x15, 0xa1, 0x0b,
+ 0x72, 0xfd, 0x41, 0xc6,
+ 0x00, 0x9e, 0xc0, 0x20,
+ 0x44, 0x18, 0x8c, 0x0b,
0xa1, 0x8b, 0xe8, 0x38,
- 0x81, 0x45, 0xea, 0x55,
- 0x68, 0x38, 0x45, 0xa8,
- 0x0c, 0x0b, 0x8c, 0x0b,
- 0x59, 0xd8, 0x8e, 0x1b,
- 0x8e, 0x2b, 0x6f, 0xe8,
- 0xa1, 0x8b, 0x80, 0x8b,
- 0x01, 0x11, 0xe6, 0xd5,
- 0x03, 0x31, 0x9f, 0x21,
- 0x4f, 0xb8, 0x8c, 0x0b,
- 0x73, 0x75, 0xe8, 0x34,
- 0xc1, 0xc3, 0x80, 0x8b,
+ 0x81, 0x35, 0xe4, 0xb5,
+ 0xe8, 0x38, 0x43, 0xc8,
+ 0x8e, 0x1b, 0x0c, 0x0b,
+ 0x6f, 0xe8, 0x6f, 0x08,
+ 0x80, 0x8b, 0x8e, 0x2b,
+ 0xe2, 0x55, 0xa1, 0x8b,
+ 0x9f, 0x21, 0x01, 0x11,
+ 0x8c, 0x0b, 0x03, 0x31,
+ 0xe8, 0x34, 0x4d, 0xe8,
+ 0x80, 0x8b, 0x71, 0x35,
0x61, 0x20, 0x00, 0xc6,
0x80, 0x04, 0x81, 0x11,
0x01, 0x06, 0x00, 0x16,
@@ -13100,7 +13223,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x81, 0x93, 0x81, 0x83,
0x01, 0x61, 0xc1, 0x83,
0xe0, 0x3c, 0x41, 0xf6,
- 0x6f, 0xa0, 0x67, 0xa8,
+ 0x6f, 0xa0, 0x55, 0xa8,
0x01, 0x06, 0x81, 0x11,
0x4f, 0x06, 0x61, 0x98,
0x00, 0x1a, 0xe1, 0x4c,
@@ -13112,8 +13235,8 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x10, 0x16, 0x83, 0x11,
0x88, 0x04, 0x83, 0x11,
0x41, 0xf6, 0x00, 0x66,
- 0x66, 0x18, 0xe0, 0x3c,
- 0x76, 0x38, 0xef, 0xa0,
+ 0x54, 0x18, 0xe0, 0x3c,
+ 0x7b, 0xd8, 0xef, 0xa0,
0x1c, 0x04, 0xe8, 0x14,
0x4d, 0x18, 0x81, 0x11,
0xa8, 0xf1, 0xe8, 0x08,
@@ -13159,7 +13282,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x81, 0x93, 0x81, 0x83,
0x41, 0xf6, 0xc1, 0x83,
0x81, 0x11, 0x60, 0x3c,
- 0xef, 0xa0, 0x60, 0x48,
+ 0xef, 0xa0, 0x4e, 0x48,
0x61, 0x4c, 0x4d, 0x06,
0x98, 0x04, 0xa5, 0x11,
0x6c, 0x1d, 0x40, 0x11,
@@ -13177,7 +13300,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x80, 0x18, 0x88, 0x04,
0xf3, 0xf8, 0x42, 0x10,
0x98, 0x04, 0x80, 0x16,
- 0xe8, 0x34, 0x77, 0x28,
+ 0xe8, 0x34, 0x75, 0x68,
0x02, 0x26, 0x18, 0x04,
0x45, 0x18, 0xe0, 0x10,
0x9c, 0x04, 0xe8, 0x08,
@@ -13195,7 +13318,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x43, 0x78, 0x98, 0x04,
0x41, 0xf6, 0xe8, 0x08,
0x83, 0x11, 0x60, 0x3c,
- 0xef, 0xa0, 0x5b, 0xc8,
+ 0xef, 0xa0, 0x49, 0xc8,
0x1f, 0x0c, 0xa8, 0xf1,
0x0f, 0xfc, 0xf0, 0x04,
0xbc, 0xf4, 0xf6, 0x84,
@@ -13210,7 +13333,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x81, 0x93, 0x81, 0x83,
0x41, 0xf6, 0xc1, 0x83,
0x81, 0x11, 0x60, 0x3c,
- 0xef, 0xa0, 0x59, 0xe8,
+ 0xef, 0xa0, 0x47, 0xe8,
0x61, 0x4c, 0x4d, 0x06,
0x98, 0x04, 0xa7, 0x11,
0x6c, 0x1d, 0x40, 0x11,
@@ -13264,10 +13387,10 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x6e, 0x09, 0x40, 0x13,
0x02, 0x36, 0x40, 0x15,
0x7a, 0x98, 0xe0, 0x40,
- 0x75, 0x18, 0xe8, 0x04,
- 0x41, 0xf6, 0xef, 0xdc,
+ 0x4c, 0x38, 0xe8, 0x04,
+ 0x41, 0xf6, 0xef, 0xe0,
0x83, 0x11, 0x60, 0x3c,
- 0xef, 0xa0, 0x52, 0xc8,
+ 0xef, 0xa0, 0x40, 0xc8,
0x1f, 0x0c, 0xa8, 0xf1,
0x0f, 0xfc, 0xf0, 0x04,
0xbc, 0xf4, 0xf6, 0x84,
@@ -13282,7 +13405,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x81, 0x93, 0x81, 0x83,
0x41, 0xf6, 0xc1, 0x83,
0x81, 0x11, 0x60, 0x3c,
- 0xef, 0xa0, 0x50, 0xe8,
+ 0xef, 0x9c, 0x7e, 0xe8,
0x61, 0x4c, 0x4d, 0x06,
0x98, 0x04, 0xa9, 0x11,
0x6c, 0x1d, 0x40, 0x11,
@@ -13420,7 +13543,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x7f, 0x98, 0xe0, 0x0c,
0x41, 0xf6, 0xe8, 0x00,
0x83, 0x11, 0x60, 0x3c,
- 0xef, 0x9c, 0x7f, 0xa8,
+ 0xef, 0x9c, 0x6d, 0xa8,
0x1f, 0x0c, 0xa8, 0xf1,
0x0f, 0xfc, 0xf0, 0x04,
0xbc, 0xf4, 0xf6, 0x84,
@@ -13435,7 +13558,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x81, 0x93, 0x81, 0x83,
0x01, 0x61, 0xc1, 0x83,
0xe0, 0x3c, 0x41, 0xf6,
- 0x6f, 0x9c, 0x7d, 0xc8,
+ 0x6f, 0x9c, 0x6b, 0xc8,
0x4f, 0x06, 0x81, 0x11,
0x03, 0x06, 0x61, 0x4c,
0x1c, 0x04, 0xe1, 0x98,
@@ -13449,9 +13572,9 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x80, 0x66, 0x8c, 0x04,
0x63, 0x98, 0x9c, 0x04,
0x9c, 0x04, 0xe8, 0x04,
- 0xef, 0xe0, 0x5c, 0x48,
+ 0xef, 0xe0, 0x71, 0x28,
0x60, 0x3c, 0x41, 0xf6,
- 0x7b, 0xb8, 0x83, 0x11,
+ 0x69, 0xb8, 0x83, 0x11,
0xa8, 0xf1, 0xef, 0x9c,
0xf0, 0x04, 0x1f, 0x0c,
0xf6, 0x84, 0x0f, 0xfc,
@@ -13467,20 +13590,20 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x81, 0x93, 0x81, 0x83,
0x01, 0x61, 0xc1, 0x83,
0xe0, 0x3c, 0x41, 0xf6,
- 0x6f, 0x9c, 0x79, 0xc8,
+ 0x6f, 0x9c, 0x67, 0xc8,
0x4f, 0x06, 0x81, 0x11,
0xad, 0x01, 0x61, 0x4c,
0x83, 0x81, 0x1c, 0x14,
0x6c, 0x1d, 0x42, 0x01,
0x83, 0x01, 0x40, 0x2b,
- 0xef, 0xe4, 0x5d, 0x68,
+ 0xef, 0xe4, 0x72, 0x88,
0xe1, 0x3c, 0x41, 0xc6,
0x04, 0x86, 0x80, 0x14,
0x80, 0x04, 0x8d, 0x11,
0x9c, 0x04, 0x80, 0x66,
0xe8, 0x04, 0x5f, 0xc8,
0x60, 0x3c, 0x41, 0xf6,
- 0x78, 0x18, 0x83, 0x11,
+ 0x66, 0x18, 0x83, 0x11,
0xa0, 0xf1, 0xef, 0x9c,
0xf0, 0x04, 0x1f, 0x0c,
0xf6, 0x8c, 0x0f, 0xfc,
@@ -13496,15 +13619,15 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x81, 0x93, 0x81, 0x83,
0x41, 0xf6, 0xc1, 0x83,
0x81, 0x11, 0x60, 0x3c,
- 0x6f, 0x9c, 0x76, 0x28,
+ 0x6f, 0x9c, 0x64, 0x28,
0x4f, 0x06, 0x81, 0x61,
0xaf, 0x01, 0x61, 0x4c,
0x42, 0x01, 0x9c, 0x14,
0x40, 0x2b, 0x6c, 0x1d,
- 0x59, 0xd8, 0x81, 0x01,
+ 0x6e, 0xf8, 0x81, 0x01,
0x1c, 0x04, 0xef, 0xe4,
0x5c, 0x98, 0x8f, 0x11,
- 0x00, 0x06, 0xe8, 0x04,
+ 0x00, 0x86, 0xe8, 0x04,
0x80, 0x18, 0xef, 0xdc,
0xf8, 0xc0, 0x02, 0x0a,
0x80, 0x18, 0x80, 0xe5,
@@ -13522,7 +13645,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x84, 0x45, 0xe0, 0x84,
0x68, 0x04, 0x5a, 0x88,
0xe0, 0x10, 0x02, 0x76,
- 0x53, 0xb8, 0x9c, 0x04,
+ 0x68, 0xd8, 0x9c, 0x04,
0x9c, 0x04, 0xef, 0xe4,
0x6e, 0x09, 0x00, 0x1b,
0x42, 0x10, 0xc0, 0x15,
@@ -13533,7 +13656,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x00, 0x16, 0x80, 0x04,
0x00, 0x66, 0x83, 0x11,
0xe0, 0x3c, 0x41, 0xf6,
- 0xef, 0x9c, 0x71, 0x88,
+ 0xef, 0x9c, 0x5f, 0x88,
0x1f, 0x0c, 0xa8, 0xf1,
0x0f, 0xfc, 0xf0, 0x04,
0xbc, 0xf4, 0xf6, 0x84,
@@ -13620,112 +13743,112 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0xc0, 0x00, 0x1d, 0x48,
0x63, 0x29, 0x0c, 0x39,
0x40, 0x4e, 0x40, 0x2d,
- 0xc0, 0x10, 0x6c, 0xb9,
+ 0xc0, 0x10, 0x6c, 0xdd,
0x63, 0x21, 0x0c, 0x19,
0x0c, 0x29, 0xc0, 0x2d,
0xc0, 0x2d, 0x63, 0x25,
0x61, 0x84, 0x08, 0x34,
- 0x66, 0x78, 0x82, 0x39,
+ 0x54, 0x78, 0x82, 0x39,
0x82, 0x49, 0x6f, 0x9c,
0x1b, 0xf8, 0xa1, 0x0b,
0x0c, 0x39, 0xc0, 0x00,
0x40, 0x2d, 0x63, 0x39,
- 0x6c, 0xc1, 0x40, 0x0e,
+ 0x6c, 0xe5, 0x40, 0x0e,
0x0c, 0x19, 0xc0, 0x10,
0xc0, 0x2d, 0x63, 0x31,
0x63, 0x35, 0x0c, 0x29,
0x08, 0x34, 0xc0, 0x2d,
0x82, 0x39, 0x61, 0x84,
- 0x6f, 0x9c, 0x65, 0x28,
+ 0x6f, 0x9c, 0x53, 0x28,
0xa1, 0x0b, 0x82, 0x49,
0xc0, 0x00, 0x1a, 0xa8,
0x63, 0x49, 0x0c, 0x39,
0x01, 0x0e, 0x40, 0x2d,
- 0xc0, 0x10, 0x6c, 0xc9,
+ 0xc0, 0x10, 0x6c, 0xed,
0x63, 0x41, 0x0c, 0x19,
0x0c, 0x29, 0xc0, 0x2d,
0xc0, 0x2d, 0x63, 0x45,
0x61, 0x84, 0x08, 0x34,
- 0x63, 0xd8, 0x82, 0x39,
+ 0x51, 0xd8, 0x82, 0x39,
0x82, 0x49, 0x6f, 0x9c,
0x19, 0x58, 0xa1, 0x0b,
0x0c, 0x3b, 0xc0, 0x00,
0x40, 0x16, 0x69, 0xa9,
- 0x6c, 0xd5, 0x01, 0xce,
+ 0x6c, 0xf9, 0x01, 0xce,
0x0c, 0x19, 0xc0, 0x10,
0xc0, 0x2d, 0x63, 0x59,
0x63, 0x5d, 0x0c, 0x29,
0x08, 0x34, 0xc0, 0x2d,
0x82, 0x39, 0x61, 0x84,
- 0x6f, 0x9c, 0x62, 0x88,
+ 0x6f, 0x9c, 0x50, 0x88,
0xa1, 0x0b, 0x82, 0x49,
0xc0, 0x00, 0x18, 0x08,
0x63, 0x71, 0x0c, 0x39,
0x41, 0xce, 0x40, 0x2d,
- 0xc0, 0x10, 0x6c, 0xe5,
+ 0xc0, 0x10, 0x6d, 0x09,
0x63, 0x61, 0x0c, 0x19,
0x0c, 0x29, 0xc0, 0x2d,
0xc0, 0x2d, 0x63, 0x65,
0x61, 0x84, 0x08, 0x34,
- 0x61, 0x38, 0x82, 0x39,
+ 0x4f, 0x38, 0x82, 0x39,
0x82, 0x49, 0x6f, 0x9c,
0x16, 0xb8, 0xa1, 0x0b,
0x0c, 0x39, 0xc0, 0x00,
0x40, 0x2d, 0x63, 0xa9,
- 0x6d, 0x0d, 0x40, 0x0e,
+ 0x6d, 0x31, 0x40, 0x0e,
0x0c, 0x19, 0xc0, 0x10,
0xc0, 0x2d, 0x63, 0xa1,
0x63, 0xa5, 0x0c, 0x29,
0x08, 0x34, 0xc0, 0x2d,
0x82, 0x39, 0x61, 0x84,
- 0x6f, 0x9c, 0x5f, 0xe8,
+ 0x6f, 0x9c, 0x4d, 0xe8,
0xa1, 0x0b, 0x82, 0x49,
0xc0, 0x00, 0x15, 0x68,
0x63, 0xd9, 0x0c, 0x39,
0x40, 0x0e, 0x40, 0x2d,
- 0xc0, 0x10, 0x6d, 0x15,
+ 0xc0, 0x10, 0x6d, 0x39,
0x63, 0xd1, 0x0c, 0x19,
0x0c, 0x29, 0xc0, 0x2d,
0xc0, 0x2d, 0x63, 0xd5,
0x61, 0x84, 0x08, 0x34,
- 0x5e, 0x98, 0x82, 0x39,
+ 0x4c, 0x98, 0x82, 0x39,
0x82, 0x49, 0x6f, 0x9c,
0x14, 0x18, 0xa1, 0x0b,
0x0c, 0x39, 0xc0, 0x00,
0x40, 0x2d, 0x64, 0x09,
- 0x6d, 0x1d, 0x01, 0x4e,
+ 0x6d, 0x41, 0x01, 0x4e,
0x0c, 0x19, 0xc0, 0x10,
0xc0, 0x2d, 0x64, 0x01,
0x64, 0x05, 0x0c, 0x29,
0x08, 0x34, 0xc0, 0x2d,
0x82, 0x39, 0x61, 0x84,
- 0x6f, 0x9c, 0x5d, 0x48,
+ 0x6f, 0x9c, 0x4b, 0x48,
0xa1, 0x0b, 0x82, 0x49,
0xc0, 0x00, 0x12, 0xc8,
0x64, 0x39, 0x0c, 0x39,
0x40, 0x4e, 0x40, 0x2d,
- 0xc0, 0x10, 0x6d, 0x29,
+ 0xc0, 0x10, 0x6d, 0x4d,
0x64, 0x31, 0x0c, 0x19,
0x0c, 0x29, 0xc0, 0x2d,
0xc0, 0x2d, 0x64, 0x35,
- 0x5c, 0x18, 0x82, 0x39,
+ 0x4a, 0x18, 0x82, 0x39,
0x86, 0x4b, 0x6f, 0x9c,
0x11, 0x98, 0xa1, 0x0b,
0x0c, 0x39, 0xc0, 0x00,
0x40, 0x2d, 0x64, 0x69,
- 0x6d, 0x31, 0x00, 0xce,
+ 0x6d, 0x55, 0x00, 0xce,
0x0c, 0x19, 0xc0, 0x10,
0xc0, 0x2d, 0x64, 0x61,
0x64, 0x65, 0x0c, 0x29,
0x08, 0x34, 0xc0, 0x2d,
0x82, 0x39, 0x61, 0x84,
- 0x6f, 0x9c, 0x5a, 0xc8,
+ 0x6f, 0x9c, 0x48, 0xc8,
0xa1, 0x0b, 0x82, 0x49,
0xc0, 0x00, 0x10, 0x48,
- 0x6f, 0x9c, 0x61, 0x48,
+ 0x6f, 0x9c, 0x4f, 0x48,
0x41, 0xf6, 0x81, 0x01,
0x83, 0x11, 0x60, 0x3c,
- 0xef, 0x9c, 0x59, 0x88,
+ 0xef, 0x9c, 0x47, 0x88,
0x63, 0x29, 0x0c, 0x09,
0x03, 0xc6, 0x40, 0x2d,
0x84, 0x14, 0xe1, 0x38,
@@ -13855,7 +13978,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x0e, 0xa6, 0x40, 0x2b,
0x02, 0xa6, 0xe0, 0x08,
0x8c, 0x0b, 0x60, 0x08,
- 0xef, 0xec, 0x4d, 0x28,
+ 0xef, 0xec, 0x48, 0x08,
0x0e, 0x06, 0xa3, 0x0b,
0x8e, 0x0b, 0xc0, 0x00,
0xf2, 0x04, 0x0c, 0x4c,
@@ -13866,64 +13989,64 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x0c, 0x09, 0x80, 0x6b,
0xc0, 0x2d, 0x63, 0x21,
0x63, 0x25, 0x0c, 0x19,
- 0x4c, 0xd8, 0xc0, 0x2d,
- 0xa1, 0x0b, 0xef, 0x9c,
+ 0x7a, 0xd8, 0xc0, 0x2d,
+ 0xa1, 0x0b, 0xef, 0x98,
0x0c, 0x09, 0x94, 0x35,
0xc0, 0x2d, 0x63, 0x31,
0x63, 0x35, 0x0c, 0x19,
- 0x4c, 0x38, 0xc0, 0x2d,
- 0xa1, 0x0b, 0xef, 0x9c,
+ 0x7a, 0x38, 0xc0, 0x2d,
+ 0xa1, 0x0b, 0xef, 0x98,
0x0c, 0x09, 0x90, 0xf5,
0xc0, 0x2d, 0x63, 0x41,
0x63, 0x45, 0x0c, 0x19,
- 0x4b, 0x98, 0xc0, 0x2d,
- 0xa1, 0x0b, 0xef, 0x9c,
+ 0x79, 0x98, 0xc0, 0x2d,
+ 0xa1, 0x0b, 0xef, 0x98,
0x0c, 0x09, 0x8e, 0xb5,
0xc0, 0x2d, 0x63, 0x59,
0x63, 0x5d, 0x0c, 0x19,
- 0x4a, 0xf8, 0xc0, 0x2d,
- 0xa1, 0x0b, 0xef, 0x9c,
+ 0x78, 0xf8, 0xc0, 0x2d,
+ 0xa1, 0x0b, 0xef, 0x98,
0x0c, 0x09, 0x8c, 0x75,
0xc0, 0x2d, 0x63, 0x61,
0x63, 0x65, 0x0c, 0x19,
- 0x4a, 0x58, 0xc0, 0x2d,
- 0xa1, 0x0b, 0xef, 0x9c,
+ 0x78, 0x58, 0xc0, 0x2d,
+ 0xa1, 0x0b, 0xef, 0x98,
0x0c, 0x09, 0x8a, 0x35,
0xc0, 0x2d, 0x63, 0xa1,
0x63, 0xa5, 0x0c, 0x19,
- 0x49, 0xb8, 0xc0, 0x2d,
- 0xa1, 0x0b, 0xef, 0x9c,
+ 0x77, 0xb8, 0xc0, 0x2d,
+ 0xa1, 0x0b, 0xef, 0x98,
0x0c, 0x09, 0x86, 0xf5,
0xc0, 0x2d, 0x63, 0xd1,
0x63, 0xd5, 0x0c, 0x19,
- 0x49, 0x18, 0xc0, 0x2d,
- 0xa1, 0x0b, 0xef, 0x9c,
+ 0x77, 0x18, 0xc0, 0x2d,
+ 0xa1, 0x0b, 0xef, 0x98,
0x0c, 0x09, 0x84, 0xb5,
0xc0, 0x2d, 0x64, 0x01,
0x64, 0x05, 0x0c, 0x19,
- 0x48, 0x78, 0xc0, 0x2d,
- 0xa1, 0x0b, 0xef, 0x9c,
+ 0x76, 0x78, 0xc0, 0x2d,
+ 0xa1, 0x0b, 0xef, 0x98,
0x0c, 0x09, 0x82, 0x75,
0xc0, 0x2d, 0x64, 0x31,
0x64, 0x35, 0x0c, 0x19,
- 0x47, 0xd8, 0xc0, 0x2d,
- 0xa1, 0x0b, 0xef, 0x9c,
+ 0x75, 0xd8, 0xc0, 0x2d,
+ 0xa1, 0x0b, 0xef, 0x98,
0x0c, 0x0c, 0x80, 0x85,
0xdd, 0x93, 0xf2, 0x00,
0x64, 0x61, 0x0c, 0x09,
0x0c, 0x19, 0xc0, 0x2d,
0xc0, 0x2d, 0x64, 0x65,
0xf2, 0x00, 0x0c, 0x0c,
- 0xff, 0x9c, 0x06, 0xe8,
+ 0xff, 0x98, 0x34, 0xe8,
0xfa, 0x80, 0x00, 0x0c,
0x6c, 0x1d, 0x00, 0x29,
- 0x45, 0x58, 0xc0, 0x2b,
+ 0x40, 0x38, 0xc0, 0x2b,
0xa3, 0x0b, 0xef, 0xec,
0x41, 0xf6, 0x82, 0x55,
0x81, 0x11, 0x60, 0x3c,
- 0xef, 0x9c, 0x41, 0x08,
+ 0xef, 0x98, 0x6f, 0x08,
0xf2, 0x80, 0x08, 0x0c,
- 0xff, 0xd8, 0x22, 0xc8,
+ 0xff, 0xd8, 0x39, 0xe8,
0xf2, 0x80, 0x08, 0x0c,
0xc1, 0xc3, 0xdd, 0x93,
0xfa, 0x0c, 0x04, 0x0c,
@@ -13933,8 +14056,8 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x0c, 0x29, 0x82, 0x35,
0x40, 0x2b, 0x6c, 0x1d,
0x0c, 0x0c, 0x8c, 0x0b,
- 0x03, 0x58, 0xf2, 0x0c,
- 0x0f, 0xc6, 0xff, 0xec,
+ 0x3e, 0x38, 0xf2, 0x0c,
+ 0x4e, 0x46, 0xff, 0xe8,
0x0e, 0x09, 0xef, 0xdc,
0xc2, 0x09, 0xf8, 0x10,
0xf8, 0x10, 0x4e, 0x01,
@@ -13944,7 +14067,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x8c, 0x0b, 0x60, 0x00,
0xe8, 0x00, 0x5b, 0x88,
0x60, 0x04, 0x42, 0x46,
- 0x58, 0xf8, 0x83, 0x21,
+ 0x57, 0x38, 0x83, 0x21,
0x8c, 0x0b, 0x68, 0x30,
0x81, 0x81, 0x1c, 0x08,
0xf3, 0xf8, 0x40, 0x00,
@@ -13956,8 +14079,8 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x73, 0xfd, 0x40, 0x00,
0x4c, 0x03, 0xc0, 0xfd,
0x40, 0x15, 0x6e, 0x09,
- 0x7f, 0x58, 0x8c, 0x0b,
- 0x7b, 0x18, 0xe8, 0x1c,
+ 0x40, 0xf8, 0x8c, 0x0b,
+ 0x75, 0xf8, 0xe8, 0x20,
0x8c, 0x0b, 0x6f, 0xe8,
0x61, 0x44, 0x00, 0xc6,
0xe0, 0x00, 0x42, 0x46,
@@ -13966,7 +14089,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x00, 0x86, 0x80, 0x04,
0x58, 0xb8, 0x8c, 0x0b,
0x0c, 0x0c, 0xe8, 0x00,
- 0x1d, 0x58, 0xf2, 0x0c,
+ 0x34, 0x78, 0xf2, 0x0c,
0x42, 0x56, 0xff, 0xd8,
0x8c, 0x0b, 0x60, 0x00,
0xe8, 0x00, 0x58, 0x28,
@@ -13984,16 +14107,16 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x72, 0xc1, 0x02, 0x06,
0x8c, 0x0b, 0xc0, 0x20,
0xf2, 0x0c, 0x0c, 0x0c,
- 0xff, 0xd8, 0x1b, 0xc8,
+ 0xff, 0xd8, 0x32, 0xe8,
0xfa, 0x00, 0x04, 0x0c,
0x82, 0x25, 0xa1, 0x1b,
- 0x6f, 0x98, 0x78, 0xc8,
+ 0x6f, 0x98, 0x66, 0xc8,
0x40, 0x06, 0x83, 0x11,
0x0c, 0x0c, 0xfa, 0x02,
0xdd, 0x93, 0xf2, 0x00,
0x7a, 0x02, 0x4c, 0x06,
0xe0, 0x3c, 0x41, 0xf6,
- 0x6f, 0x98, 0x78, 0x08,
+ 0x6f, 0x98, 0x66, 0x08,
0x8c, 0x0b, 0x81, 0x11,
0xf2, 0x00, 0x0c, 0x0c,
0xc1, 0xc3, 0xdd, 0x93,
@@ -14018,11 +14141,11 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x8e, 0x1b, 0x0c, 0x0b,
0xe8, 0x00, 0x4d, 0x08,
0xe0, 0xc8, 0x00, 0x0a,
- 0x5c, 0xd8, 0x8a, 0xb5,
+ 0x62, 0x38, 0x8a, 0xb5,
0x2c, 0x04, 0xe8, 0x1c,
0x83, 0x21, 0x81, 0x11,
0x95, 0x11, 0x00, 0x16,
- 0x68, 0x30, 0x4f, 0x48,
+ 0x68, 0x30, 0x4d, 0x88,
0x2c, 0x04, 0x8c, 0x0b,
0x80, 0x16, 0x83, 0x11,
0x80, 0x08, 0xa8, 0x04,
@@ -14043,12 +14166,12 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x0c, 0x4c, 0xee, 0x05,
0xdd, 0x93, 0xf2, 0x7c,
0xfa, 0x0c, 0x04, 0x0c,
- 0x6f, 0xec, 0x7b, 0x08,
+ 0x6f, 0xec, 0x7a, 0xc8,
0x0e, 0x16, 0x80, 0x6b,
0x42, 0xc6, 0x60, 0x08,
0x4c, 0x71, 0xe0, 0x10,
0x40, 0x2b, 0x6c, 0x1d,
- 0x4b, 0xf8, 0x81, 0x21,
+ 0x4a, 0x38, 0x81, 0x21,
0x8c, 0x0b, 0x68, 0x30,
0x61, 0x44, 0x00, 0xc6,
0xe1, 0x24, 0x50, 0x86,
@@ -14057,36 +14180,36 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0xe0, 0x80, 0x46, 0x4a,
0x44, 0x4a, 0x84, 0x65,
0xfe, 0x25, 0xe0, 0x8c,
- 0xef, 0xec, 0x7a, 0x48,
+ 0xef, 0xec, 0x7a, 0x08,
0x6c, 0x1d, 0x0c, 0x29,
0x02, 0x16, 0x40, 0x2b,
- 0x73, 0x78, 0xe0, 0x08,
+ 0x6e, 0x58, 0xe0, 0x08,
0x8c, 0x0b, 0x6f, 0xe8,
0x80, 0x95, 0xa3, 0x0b,
- 0xe8, 0x30, 0x51, 0x08,
- 0x50, 0xd8, 0x81, 0x95,
+ 0xe8, 0x30, 0x4f, 0x48,
+ 0x4f, 0x18, 0x81, 0x95,
0xa0, 0x04, 0xe8, 0x30,
0x40, 0x0a, 0x80, 0x08,
0x80, 0xd5, 0xe0, 0x84,
0x8e, 0x0b, 0x81, 0x71,
0xf2, 0x0c, 0x0c, 0x0c,
- 0x78, 0x98, 0xdd, 0x93,
+ 0x78, 0x58, 0xdd, 0x93,
0x0c, 0x29, 0xef, 0xec,
0x40, 0x2b, 0x6c, 0x1d,
0xe0, 0x08, 0x0e, 0x26,
0x60, 0x08, 0x02, 0x26,
- 0x71, 0x98, 0x8c, 0x0b,
+ 0x6c, 0x78, 0x8c, 0x0b,
0xa3, 0x0b, 0xef, 0xe8,
0xc0, 0x00, 0x0e, 0x06,
0x0c, 0x0c, 0x8e, 0x0b,
0xdd, 0x93, 0xf2, 0x0c,
0xfa, 0x0c, 0x04, 0x0c,
- 0x6f, 0xec, 0x76, 0x48,
+ 0x6f, 0xec, 0x76, 0x08,
0x00, 0x26, 0x80, 0x6b,
0x42, 0x86, 0x60, 0x08,
0x4c, 0x01, 0xe0, 0x3c,
0x40, 0x2b, 0x6c, 0x1d,
- 0x47, 0x38, 0x81, 0x21,
+ 0x45, 0x78, 0x81, 0x21,
0x8c, 0x0b, 0x68, 0x30,
0x61, 0x44, 0x00, 0xc6,
0xe1, 0x24, 0x50, 0x46,
@@ -14095,24 +14218,24 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0xe0, 0x80, 0x46, 0x4a,
0x44, 0x4a, 0x84, 0xa5,
0xfe, 0x25, 0xe0, 0x8c,
- 0xef, 0xec, 0x75, 0x88,
+ 0xef, 0xec, 0x75, 0x48,
0x6c, 0x1d, 0x0c, 0x29,
0x0e, 0x46, 0x40, 0x2b,
0x02, 0x46, 0xe0, 0x08,
0x8c, 0x0b, 0x60, 0x08,
- 0xef, 0xe8, 0x6e, 0x88,
+ 0xef, 0xe8, 0x69, 0x68,
0x80, 0x95, 0xa3, 0x0b,
- 0xe8, 0x30, 0x4c, 0x28,
- 0x4b, 0xf8, 0x83, 0x75,
+ 0xe8, 0x30, 0x4a, 0x68,
+ 0x4a, 0x38, 0x83, 0x75,
0xa0, 0x04, 0xe8, 0x30,
0x40, 0x0a, 0x80, 0x08,
0x82, 0xe5, 0xe0, 0x84,
- 0xef, 0xec, 0x74, 0x08,
+ 0xef, 0xec, 0x73, 0xc8,
0x6c, 0x1d, 0x0c, 0x29,
0x0e, 0x56, 0x40, 0x2b,
0x02, 0x56, 0xe0, 0x08,
0x8c, 0x0b, 0x60, 0x08,
- 0xef, 0xe8, 0x6d, 0x08,
+ 0xef, 0xe8, 0x67, 0xe8,
0x80, 0x45, 0xa3, 0x0b,
0x00, 0x86, 0x81, 0x71,
0x80, 0x04, 0xe1, 0x3c,
@@ -14122,12 +14245,12 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0xc1, 0xc3, 0xdd, 0x93,
0xfa, 0x1c, 0x04, 0x4c,
0x80, 0x6b, 0x02, 0x7b,
- 0xef, 0xec, 0x71, 0x28,
+ 0xef, 0xec, 0x70, 0xe8,
0x60, 0x08, 0x00, 0x36,
0xe0, 0x04, 0x42, 0x26,
0x6c, 0x1d, 0x4c, 0x01,
0x81, 0x21, 0x40, 0x2b,
- 0x68, 0x30, 0x42, 0x28,
+ 0x68, 0x30, 0x40, 0x68,
0x00, 0xc6, 0x8c, 0x0b,
0x52, 0xc6, 0x61, 0x44,
0x80, 0x04, 0xe1, 0x24,
@@ -14135,16 +14258,16 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x46, 0x4a, 0x84, 0x38,
0x84, 0xa5, 0xe0, 0x80,
0xe0, 0x8c, 0x44, 0x4a,
- 0x70, 0x78, 0xfe, 0x25,
+ 0x70, 0x38, 0xfe, 0x25,
0x0c, 0x29, 0xef, 0xec,
0x40, 0x2b, 0x6c, 0x1d,
0xe0, 0x08, 0x10, 0x66,
0x60, 0x08, 0x02, 0x66,
- 0x69, 0x78, 0x8c, 0x0b,
+ 0x64, 0x58, 0x8c, 0x0b,
0xa3, 0x0b, 0xef, 0xe8,
- 0x47, 0x18, 0x80, 0x95,
+ 0x45, 0x58, 0x80, 0x95,
0x81, 0xe5, 0xe8, 0x30,
- 0xe8, 0x30, 0x46, 0xe8,
+ 0xe8, 0x30, 0x45, 0x28,
0x80, 0x08, 0xa4, 0x04,
0xe0, 0x84, 0x40, 0x0a,
0x10, 0x06, 0x00, 0xe5,
@@ -14152,12 +14275,12 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0xe0, 0x00, 0x51, 0x26,
0x90, 0x0b, 0x80, 0xa5,
0xf2, 0x1c, 0x0c, 0x4c,
- 0x6e, 0x58, 0xdd, 0x93,
+ 0x6e, 0x18, 0xdd, 0x93,
0x0c, 0x29, 0xef, 0xec,
0x40, 0x2b, 0x6c, 0x1d,
0xe0, 0x08, 0x0e, 0x76,
0x60, 0x08, 0x02, 0x76,
- 0x67, 0x58, 0x8c, 0x0b,
+ 0x62, 0x38, 0x8c, 0x0b,
0xa3, 0x0b, 0xef, 0xe8,
0xc0, 0x00, 0x0e, 0x06,
0x0c, 0x4c, 0x8e, 0x0b,
@@ -14395,7 +14518,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0xf0, 0x8c, 0x4e, 0x62,
0x00, 0x20, 0x8c, 0x23,
0x40, 0xbd, 0x67, 0xc1,
- 0x7c, 0x38, 0xa9, 0x21,
+ 0x6a, 0x38, 0xa9, 0x21,
0x40, 0x06, 0xef, 0x90,
0x4e, 0x05, 0xfc, 0x06,
0xc0, 0x0b, 0x6d, 0xc9,
@@ -14475,7 +14598,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x61, 0x4c, 0x4d, 0x06,
0xe1, 0x98, 0x03, 0x46,
0x81, 0x21, 0x18, 0x04,
- 0x6e, 0x10, 0x47, 0x06,
+ 0x6e, 0x10, 0x47, 0x86,
0xe1, 0x00, 0x0a, 0xc6,
0x03, 0x86, 0x04, 0x0c,
0x04, 0x2e, 0xe1, 0x98,
@@ -14491,30 +14614,30 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x40, 0xb9, 0x67, 0xf1,
0xe1, 0x00, 0x05, 0x06,
0x94, 0x4e, 0x98, 0x04,
- 0x78, 0x78, 0x88, 0x1e,
+ 0x76, 0xf8, 0x88, 0x1e,
0x18, 0x04, 0xef, 0xf0,
0x40, 0x71, 0xb5, 0x71,
0xc0, 0x2b, 0x6c, 0x1d,
0xef, 0xf4, 0x4e, 0xa8,
0x42, 0xc6, 0x18, 0x04,
0x84, 0x0e, 0xe1, 0x98,
- 0xe8, 0x2c, 0x4b, 0x68,
+ 0xe8, 0x2c, 0x49, 0xa8,
0x45, 0x86, 0x18, 0x14,
0x88, 0x0e, 0xe1, 0x98,
- 0x68, 0x2c, 0x4b, 0x48,
+ 0x68, 0x2c, 0x49, 0x88,
0x42, 0x86, 0x82, 0x0b,
0x04, 0x0e, 0xe1, 0x98,
0xe0, 0x3c, 0x41, 0xf6,
- 0x6f, 0x94, 0x78, 0x08,
+ 0x6f, 0x94, 0x66, 0x08,
0x00, 0x1c, 0x81, 0x11,
0x50, 0x06, 0xe2, 0xc0,
0xc0, 0x00, 0x61, 0x99,
0x00, 0x46, 0x20, 0x0e,
- 0x68, 0x18, 0xe1, 0x9c,
+ 0x56, 0x18, 0xe1, 0x9c,
0xa0, 0x04, 0xef, 0x94,
0xe3, 0x40, 0x00, 0x1c,
0x60, 0x3c, 0x41, 0xf6,
- 0x76, 0xd8, 0x83, 0x11,
+ 0x64, 0xd8, 0x83, 0x11,
0x83, 0x81, 0x6f, 0x94,
0x43, 0x86, 0x18, 0x04,
0xc4, 0x80, 0x60, 0x15,
@@ -14530,7 +14653,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0xc1, 0xc3, 0xff, 0xd5,
0xfa, 0x0c, 0x04, 0x0c,
0x41, 0xf6, 0x00, 0x7b,
- 0x74, 0xd8, 0xe0, 0x3c,
+ 0x62, 0xd8, 0xe0, 0x3c,
0x81, 0x11, 0x6f, 0x94,
0x09, 0x01, 0x81, 0x61,
0x4e, 0x01, 0xb7, 0x11,
@@ -14544,15 +14667,15 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x0e, 0x19, 0x82, 0xe5,
0xc0, 0x2b, 0x64, 0xc5,
0x8a, 0xf5, 0xa7, 0x1b,
- 0xef, 0xdc, 0x02, 0x06,
+ 0xef, 0xdc, 0x02, 0x86,
0x42, 0x0a, 0x84, 0x18,
0x8a, 0x25, 0xe0, 0x80,
0xe0, 0x80, 0x40, 0x0a,
0x05, 0x11, 0x88, 0xc5,
0x4f, 0x98, 0x8e, 0x0b,
- 0x59, 0xd8, 0xef, 0xfc,
+ 0x5f, 0x78, 0xef, 0xfc,
0xa1, 0x0b, 0xe8, 0x08,
- 0x59, 0xf8, 0x80, 0xb5,
+ 0x5f, 0x98, 0x80, 0xb5,
0x8e, 0x0b, 0x68, 0x08,
0x0e, 0x0b, 0x80, 0x6b,
0x40, 0x15, 0x6e, 0x09,
@@ -14560,18 +14683,18 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0xc0, 0xff, 0x72, 0xfd,
0x6e, 0x09, 0x4e, 0x03,
0x41, 0xf6, 0x40, 0x15,
- 0x71, 0x18, 0xe0, 0x3c,
+ 0x5f, 0x18, 0xe0, 0x3c,
0xa1, 0x6b, 0xef, 0x94,
0x07, 0x11, 0xa4, 0xd5,
0x4d, 0xd8, 0x8e, 0x0b,
- 0x5b, 0xd8, 0xef, 0xfc,
+ 0x72, 0xf8, 0xef, 0xfc,
0x8e, 0x0b, 0x6f, 0xd4,
0x80, 0x6b, 0x11, 0xe5,
0x8e, 0x0b, 0x09, 0x11,
0xef, 0xfc, 0x4d, 0x48,
0x64, 0xd5, 0x0e, 0x09,
0xa7, 0x0b, 0xc0, 0x2b,
- 0x10, 0x06, 0x92, 0xd5,
+ 0x10, 0x86, 0x92, 0xd5,
0xa0, 0x08, 0xef, 0xdc,
0xf8, 0xc0, 0x00, 0x0a,
0xa0, 0x08, 0x80, 0xe5,
@@ -14587,31 +14710,31 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x8a, 0xe5, 0xe0, 0x8c,
0x8e, 0x0b, 0x1b, 0x11,
0xef, 0xfc, 0x4b, 0x08,
- 0x6f, 0xd4, 0x7f, 0xe8,
+ 0x6f, 0xd8, 0x54, 0xc8,
0x1d, 0x11, 0x8e, 0x0b,
0x4a, 0x98, 0x8e, 0x0b,
- 0x7a, 0x78, 0xef, 0xfc,
+ 0x7c, 0x18, 0xef, 0xfc,
0x8e, 0x0b, 0x68, 0x18,
0x64, 0xcd, 0x0e, 0x05,
0xe2, 0x14, 0xc0, 0x05,
0x86, 0xe5, 0xc2, 0x0d,
0xc8, 0x09, 0xa0, 0x08,
0x8e, 0x0b, 0x20, 0x06,
- 0xe8, 0x18, 0x7d, 0x88,
+ 0xe8, 0x18, 0x7f, 0x28,
0x6e, 0x09, 0x0e, 0x0b,
0x83, 0x11, 0x40, 0x15,
0xfc, 0x98, 0x00, 0x04,
0x6e, 0x09, 0x4e, 0x03,
0x41, 0xf6, 0x40, 0x15,
- 0x6b, 0xb8, 0xe0, 0x3c,
+ 0x59, 0xb8, 0xe0, 0x3c,
0x0b, 0x11, 0xef, 0x94,
0x48, 0x98, 0x8e, 0x0b,
- 0x7b, 0x98, 0xef, 0xfc,
- 0x81, 0x55, 0xe8, 0x08,
+ 0x41, 0x38, 0xef, 0xfc,
+ 0x81, 0x55, 0xe8, 0x0c,
0x8e, 0x0b, 0x1f, 0x11,
0xef, 0xfc, 0x48, 0x28,
0x60, 0x3c, 0x41, 0xf6,
- 0x6a, 0xb8, 0x83, 0x11,
+ 0x58, 0xb8, 0x83, 0x11,
0x0e, 0x09, 0xef, 0x94,
0xc0, 0x2b, 0x6c, 0x11,
0xe0, 0x98, 0x40, 0x4a,
@@ -14622,8 +14745,8 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x40, 0x06, 0x85, 0x05,
0x4e, 0x05, 0xfc, 0x06,
0x40, 0x0e, 0x60, 0xfd,
- 0x69, 0xb8, 0x8e, 0x0b,
- 0x51, 0x18, 0xe8, 0x08,
+ 0x6f, 0x58, 0x8e, 0x0b,
+ 0x56, 0xb8, 0xe8, 0x08,
0x8e, 0x0b, 0x68, 0x08,
0xfc, 0x06, 0x40, 0x06,
0x60, 0xf9, 0x0e, 0x25,
@@ -14638,7 +14761,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0xf8, 0x15, 0xa1, 0x0b,
0xc3, 0x13, 0xc1, 0x83,
0x60, 0x3c, 0x41, 0xf6,
- 0x67, 0x58, 0x83, 0x11,
+ 0x55, 0x58, 0x83, 0x11,
0x00, 0x64, 0xef, 0x94,
0x0c, 0x0c, 0xfa, 0x80,
0xdd, 0x93, 0xf2, 0x0c,
@@ -14655,7 +14778,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x44, 0x20, 0x84, 0x14,
0xc0, 0xff, 0x72, 0xf1,
0x6e, 0x09, 0x40, 0x23,
- 0x07, 0xd8, 0xc0, 0x15,
+ 0x1e, 0xf8, 0xc0, 0x15,
0xdd, 0x93, 0xff, 0xd4,
0xfa, 0x84, 0x04, 0x0c,
0x41, 0x06, 0x00, 0x6b,
@@ -14667,13 +14790,13 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x00, 0x76, 0x85, 0x11,
0xe1, 0x28, 0x40, 0x06,
0x00, 0x76, 0x80, 0x04,
- 0x7e, 0x98, 0x8c, 0x0b,
+ 0x7c, 0xd8, 0x8c, 0x0b,
0x40, 0x46, 0xe8, 0x28,
0xbd, 0x11, 0x61, 0x28,
0x83, 0x21, 0x00, 0x04,
0x8c, 0x0b, 0x00, 0x76,
0xf2, 0x84, 0x0c, 0x0c,
- 0xe0, 0x28, 0x3d, 0xe8,
+ 0xe0, 0x28, 0x3c, 0x28,
0xfa, 0x7c, 0x04, 0x4c,
0x41, 0x86, 0x00, 0x8b,
0x00, 0x04, 0xe1, 0x28,
@@ -14687,7 +14810,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x41, 0xc6, 0x00, 0x76,
0x80, 0x04, 0xe1, 0x28,
0x02, 0x06, 0x00, 0x16,
- 0x7c, 0x18, 0xe0, 0x10,
+ 0x7a, 0x58, 0xe0, 0x10,
0x90, 0x0b, 0x68, 0x28,
0x61, 0x44, 0x00, 0xc6,
0xe1, 0x2c, 0x02, 0x46,
@@ -14701,7 +14824,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0xfc, 0x95, 0xa5, 0x3b,
0x6c, 0x1d, 0x10, 0x29,
0x02, 0xc6, 0x40, 0x2b,
- 0x63, 0x58, 0xe0, 0x08,
+ 0x5e, 0x38, 0xe0, 0x08,
0x90, 0x0b, 0x6f, 0xe4,
0xe0, 0x08, 0x12, 0xc6,
0x8c, 0xd5, 0xa1, 0x0b,
@@ -14711,7 +14834,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x41, 0xc6, 0x18, 0x0e,
0x80, 0x04, 0xe1, 0x28,
0x02, 0x06, 0x00, 0x16,
- 0x79, 0x18, 0xe0, 0x10,
+ 0x77, 0x58, 0xe0, 0x10,
0x90, 0x0b, 0x68, 0x28,
0x61, 0x44, 0x00, 0xc6,
0xe1, 0x2c, 0x02, 0x46,
@@ -14725,7 +14848,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0xfc, 0x95, 0xa7, 0x3b,
0x6c, 0x1d, 0x10, 0x29,
0x02, 0xc6, 0x40, 0x2b,
- 0x60, 0x58, 0xe0, 0x08,
+ 0x5b, 0x38, 0xe0, 0x08,
0x90, 0x0b, 0x6f, 0xe4,
0xe0, 0x08, 0x12, 0xc6,
0x80, 0xd5, 0xa1, 0x0b,
@@ -14738,7 +14861,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x61, 0x28, 0x42, 0x46,
0x04, 0x14, 0x81, 0x61,
0x04, 0x66, 0x83, 0x21,
- 0x75, 0xb8, 0x83, 0x11,
+ 0x73, 0xf8, 0x83, 0x11,
0x40, 0x06, 0xe8, 0x28,
0x80, 0x04, 0xe1, 0x28,
0x41, 0x06, 0x00, 0x66,
@@ -14944,7 +15067,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0xf3, 0xf0, 0x46, 0x30,
0x06, 0x36, 0xc4, 0x39,
0xe0, 0x08, 0x02, 0xe6,
- 0xef, 0xe4, 0x45, 0x08,
+ 0xef, 0xe0, 0x7f, 0xe8,
0x82, 0x55, 0xa1, 0x0b,
0x00, 0x56, 0x81, 0x85,
0x80, 0x18, 0xe1, 0x94,
@@ -14955,7 +15078,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0xc1, 0xc3, 0xdd, 0x93,
0xfa, 0x00, 0x04, 0x0c,
0x02, 0x06, 0x00, 0x6b,
- 0x4d, 0xf8, 0xe2, 0x80,
+ 0x4c, 0x38, 0xe2, 0x80,
0x5a, 0x98, 0xe8, 0x2c,
0x8c, 0x0b, 0x6f, 0xfc,
0x45, 0xf6, 0x01, 0x11,
@@ -14973,7 +15096,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0xc1, 0xc3, 0xdd, 0x93,
0xfa, 0x0c, 0x04, 0x0c,
0xb9, 0x11, 0x00, 0x6b,
- 0x68, 0x2c, 0x4b, 0xc8,
+ 0x68, 0x2c, 0x4a, 0x08,
0xe4, 0x10, 0x0e, 0x60,
0x81, 0x21, 0x29, 0x11,
0x8e, 0x3b, 0x0c, 0x0b,
@@ -15220,7 +15343,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x4e, 0x66, 0x40, 0x2b,
0x42, 0x66, 0xe0, 0x0c,
0x8c, 0x0b, 0x60, 0x0c,
- 0xef, 0xe0, 0x62, 0x88,
+ 0xef, 0xe0, 0x5d, 0x68,
0x0c, 0x0c, 0x8e, 0x0b,
0xdd, 0x93, 0xf2, 0x0c,
0x69, 0x84, 0x08, 0x24,
@@ -15269,7 +15392,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x61, 0x98, 0x4f, 0x06,
0x1c, 0x6e, 0x80, 0x6b,
0xe1, 0x00, 0x02, 0x06,
- 0xe8, 0x28, 0x66, 0xc8,
+ 0xe8, 0x28, 0x65, 0x08,
0x8c, 0x0b, 0x1c, 0x14,
0xe8, 0x00, 0x40, 0x88,
0x8c, 0x0b, 0x1c, 0x14,
@@ -15283,24 +15406,24 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x40, 0x2b, 0x6c, 0x1d,
0x64, 0x11, 0x00, 0x60,
0x09, 0x21, 0xc0, 0x11,
- 0x68, 0xb8, 0x81, 0x31,
+ 0x6a, 0x98, 0x81, 0x31,
0x00, 0x60, 0xe8, 0x18,
0x40, 0x11, 0x64, 0x21,
0x65, 0x01, 0x02, 0x70,
0x29, 0x21, 0xc0, 0x89,
- 0x68, 0x18, 0x81, 0x31,
+ 0x69, 0xf8, 0x81, 0x31,
0x00, 0x60, 0xe8, 0x18,
0x40, 0x11, 0x64, 0x71,
0x65, 0x61, 0x02, 0x70,
0x21, 0x21, 0xc0, 0x89,
- 0x67, 0x78, 0x81, 0x31,
+ 0x69, 0x58, 0x81, 0x31,
0x00, 0x60, 0xe8, 0x18,
0x40, 0x11, 0x64, 0xb1,
0x65, 0xa1, 0x02, 0x70,
0x45, 0x06, 0xc0, 0x89,
0x89, 0x31, 0x60, 0x18,
0xf2, 0x84, 0x0c, 0x0c,
- 0xe0, 0x18, 0x26, 0xa8,
+ 0xe0, 0x18, 0x28, 0x88,
0xfa, 0x7c, 0x04, 0x0c,
0xec, 0xf0, 0x1e, 0xf0,
0x82, 0xbb, 0x00, 0x6b,
@@ -15336,8 +15459,8 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x65, 0x41, 0x0a, 0x60,
0x3e, 0x1e, 0xc0, 0x54,
0x3c, 0x0e, 0x94, 0x1b,
- 0x7f, 0x98, 0x92, 0x0b,
- 0x8e, 0x2b, 0x6f, 0xc0,
+ 0x55, 0x38, 0x92, 0x0b,
+ 0x8e, 0x2b, 0x6f, 0xc4,
0x63, 0x21, 0x0c, 0x09,
0x4e, 0x0a, 0x40, 0x38,
0x00, 0x1a, 0xe1, 0x9c,
@@ -15348,8 +15471,8 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x4c, 0x01, 0xc0, 0xd8,
0x40, 0x2b, 0x6c, 0x1d,
0x14, 0x1b, 0x92, 0x0b,
- 0x77, 0xf8, 0x8e, 0x2b,
- 0x96, 0x4b, 0x6f, 0xbc,
+ 0x4d, 0x98, 0x8e, 0x2b,
+ 0x96, 0x4b, 0x6f, 0xc0,
0x4e, 0x0a, 0x0d, 0xa5,
0x40, 0x46, 0xe1, 0x9c,
0x43, 0x46, 0x60, 0x08,
@@ -15383,7 +15506,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x96, 0x4b, 0x3e, 0x4e,
0xbc, 0xce, 0x9b, 0x8e,
0x9d, 0x2e, 0x95, 0x1e,
- 0xef, 0xb4, 0x73, 0xe8,
+ 0xef, 0xb8, 0x49, 0x88,
0xa1, 0x8b, 0x80, 0x8b,
0x40, 0x56, 0x88, 0x75,
0x0a, 0x60, 0x60, 0x08,
@@ -15400,7 +15523,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x9b, 0x24, 0x9d, 0x14,
0x86, 0x1b, 0x3e, 0x1e,
0x92, 0x3b, 0x3c, 0xae,
- 0xef, 0xb0, 0x7a, 0x08,
+ 0xef, 0xb4, 0x4e, 0xe8,
0xa1, 0x8b, 0x80, 0x8b,
0xa1, 0x8b, 0x8a, 0x45,
0x6e, 0x89, 0x0c, 0x05,
@@ -15419,7 +15542,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x4c, 0x33, 0xc0, 0x0a,
0xc0, 0x0a, 0x69, 0x49,
0x0c, 0x1d, 0x0c, 0x29,
- 0x49, 0x98, 0xc0, 0x2b,
+ 0x44, 0x78, 0xc0, 0x2b,
0x10, 0x0b, 0xcf, 0xe0,
0x0c, 0x0c, 0xf8, 0xf1,
0xdd, 0x93, 0xf2, 0x7c,
@@ -15434,7 +15557,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x8e, 0x2b, 0x7c, 0x2e,
0x95, 0x14, 0xbe, 0x1e,
0xbc, 0x1e, 0x93, 0x44,
- 0x53, 0xb8, 0x9d, 0x14,
+ 0x69, 0x58, 0x9d, 0x14,
0x17, 0xb4, 0xef, 0xb4,
0xa1, 0x8b, 0x80, 0x8b,
0x9f, 0xfc, 0x30, 0x18,
@@ -15444,7 +15567,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x41, 0x06, 0x00, 0x8b,
0x00, 0x8e, 0xe1, 0x98,
0xe1, 0x00, 0x02, 0x06,
- 0x68, 0x28, 0x50, 0xe8,
+ 0x68, 0x28, 0x4f, 0x28,
0x01, 0x91, 0x90, 0x0b,
0xe6, 0xd4, 0x54, 0x06,
0x83, 0x61, 0x17, 0xb1,
@@ -15498,13 +15621,13 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x64, 0x11, 0x00, 0x70,
0x02, 0x80, 0xc0, 0x11,
0x40, 0x6d, 0x65, 0x71,
- 0x4d, 0xd8, 0x89, 0x21,
+ 0x4f, 0xb8, 0x89, 0x21,
0x81, 0x31, 0x68, 0x18,
0x64, 0x21, 0x00, 0x70,
0x02, 0x80, 0x40, 0x11,
0xc0, 0x6d, 0x65, 0x21,
0x81, 0x31, 0x29, 0x21,
- 0xe8, 0x18, 0x4d, 0x28,
+ 0xe8, 0x18, 0x4f, 0x08,
0x60, 0x88, 0x00, 0x64,
0x65, 0x80, 0x02, 0x80,
0x02, 0x25, 0xc0, 0x6d,
@@ -15529,7 +15652,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x02, 0x80, 0x40, 0x11,
0xc0, 0x6e, 0x65, 0x01,
0xf2, 0x0c, 0x0c, 0x0c,
- 0xe0, 0x18, 0x0a, 0x08,
+ 0xe0, 0x18, 0x0b, 0xe8,
0xfa, 0x3c, 0x04, 0x0c,
0x15, 0xc6, 0x00, 0x6b,
0x10, 0x60, 0xe1, 0xa0,
@@ -15539,17 +15662,17 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x67, 0x61, 0x0e, 0x60,
0x10, 0x0b, 0xc0, 0xae,
0x0c, 0x2b, 0x92, 0x1b,
- 0x53, 0x18, 0x8e, 0x3b,
+ 0x6a, 0x38, 0x8e, 0x3b,
0xa1, 0x0b, 0xef, 0xcc,
0x28, 0x24, 0x84, 0x55,
0x12, 0x1b, 0x90, 0x0b,
- 0x54, 0xf8, 0x8e, 0x3b,
+ 0x6c, 0x18, 0x8e, 0x3b,
0xa1, 0x0b, 0xef, 0xcc,
0x00, 0x00, 0x14, 0x25,
0x9c, 0x00, 0x40, 0x80,
0x1c, 0x00, 0x42, 0x90,
0x9c, 0x00, 0x46, 0x70,
- 0x8f, 0xcc, 0x51, 0xc8,
+ 0x8f, 0xcc, 0x68, 0xe8,
0x6e, 0x89, 0x0c, 0x15,
0xa1, 0x0b, 0x40, 0x0a,
0x6e, 0x8d, 0x0c, 0x25,
@@ -15568,7 +15691,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x0e, 0x56, 0x40, 0x2b,
0x02, 0x56, 0xe0, 0x0c,
0x8c, 0x0b, 0x60, 0x0c,
- 0xef, 0xdc, 0x77, 0x08,
+ 0xef, 0xdc, 0x71, 0xe8,
0x0c, 0x0c, 0x8e, 0x0b,
0xdd, 0x93, 0xf2, 0x3c,
0xf8, 0x7c, 0x04, 0x0c,
@@ -15686,6 +15809,51 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x01, 0x01, 0xd0, 0x55,
0x0c, 0x0c, 0xb0, 0xf1,
0xdd, 0x93, 0xf0, 0x7c,
+ 0xf8, 0x1c, 0x04, 0x0c,
+ 0x63, 0x15, 0x00, 0x19,
+ 0xa5, 0x1b, 0xc0, 0x38,
+ 0x00, 0x19, 0x94, 0x15,
+ 0xc0, 0x38, 0x64, 0xd1,
+ 0x92, 0x75, 0xa1, 0x1b,
+ 0x61, 0x41, 0x00, 0x19,
+ 0x81, 0x31, 0x40, 0x15,
+ 0x61, 0x45, 0x00, 0x29,
+ 0x89, 0x41, 0x40, 0x15,
+ 0xe6, 0x86, 0x44, 0x2a,
+ 0x62, 0x11, 0x00, 0x19,
+ 0x07, 0x95, 0xc0, 0x15,
+ 0xfa, 0x80, 0x04, 0x24,
+ 0x70, 0xb0, 0x4a, 0x02,
+ 0xe6, 0x86, 0x58, 0xca,
+ 0x67, 0x41, 0x0a, 0x50,
+ 0x81, 0x61, 0x40, 0x57,
+ 0x98, 0x83, 0x85, 0x85,
+ 0xf0, 0xa0, 0x4e, 0x02,
+ 0x6e, 0x41, 0x0e, 0x99,
+ 0xab, 0x9b, 0xc0, 0x1a,
+ 0xc2, 0x87, 0x86, 0xf5,
+ 0x10, 0x83, 0x80, 0x83,
+ 0xc0, 0x0c, 0x6d, 0x21,
+ 0xe1, 0xf4, 0x12, 0x84,
+ 0x00, 0x93, 0x86, 0x99,
+ 0x40, 0x1c, 0x62, 0x6d,
+ 0x10, 0x84, 0x92, 0x83,
+ 0x85, 0x87, 0xfb, 0x00,
+ 0x82, 0xd5, 0x92, 0x8d,
+ 0x6a, 0x41, 0x0e, 0x89,
+ 0x00, 0x99, 0xc0, 0x1a,
+ 0xc0, 0x38, 0x64, 0xd5,
+ 0xd2, 0x8d, 0xc3, 0x87,
+ 0x06, 0x41, 0x0e, 0x70,
+ 0x4e, 0x41, 0x80, 0x6b,
+ 0x82, 0x61, 0x80, 0x00,
+ 0x10, 0x64, 0x14, 0x78,
+ 0xcf, 0x8d, 0xfa, 0x80,
+ 0x82, 0x31, 0xf4, 0xb5,
+ 0xfa, 0x80, 0x18, 0x34,
+ 0xf0, 0xf5, 0xc5, 0xcd,
+ 0x0c, 0x0c, 0x81, 0x01,
+ 0xdd, 0x93, 0xf0, 0x1c,
0xf8, 0x04, 0x04, 0x0c,
0x61, 0x41, 0x00, 0x19,
0xfb, 0x31, 0x40, 0x15,
@@ -15748,7 +15916,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0xe0, 0x10, 0x00, 0x06,
0x5c, 0x00, 0x40, 0x60,
0xdc, 0x00, 0x42, 0x70,
- 0xcf, 0xdc, 0x4b, 0x08,
+ 0xcf, 0xdc, 0x42, 0xa8,
0x82, 0x71, 0x65, 0x0e,
0xe2, 0x30, 0x0e, 0x0a,
0x20, 0x14, 0xfa, 0xf5,
@@ -15770,14 +15938,14 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x65, 0x21, 0x08, 0x60,
0x0a, 0x60, 0x40, 0xa2,
0xc0, 0xa3, 0x66, 0xe1,
- 0x50, 0x98, 0xbc, 0xce,
+ 0x62, 0x18, 0xbc, 0xce,
0xa1, 0x0b, 0xef, 0xc8,
0x0e, 0x06, 0x02, 0xa5,
0x0c, 0x29, 0x80, 0x00,
0x40, 0x2b, 0x6c, 0x1d,
0xe0, 0x0c, 0x0e, 0x56,
0x60, 0x0c, 0x02, 0x56,
- 0x5c, 0xd8, 0x8c, 0x0b,
+ 0x52, 0x18, 0x8c, 0x0b,
0x0e, 0x0b, 0xef, 0xdc,
0x0c, 0x0c, 0x98, 0xf1,
0xdd, 0x93, 0xf2, 0x04,
@@ -15787,7 +15955,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0xfa, 0x7c, 0x04, 0x0c,
0xec, 0x30, 0x1e, 0xf0,
0x81, 0x01, 0x00, 0x8b,
- 0x6f, 0xf0, 0x5e, 0xc8,
+ 0x6f, 0xf0, 0x59, 0x28,
0x81, 0x71, 0x81, 0x11,
0x60, 0x04, 0x47, 0xc6,
0x10, 0x05, 0x80, 0x6b,
@@ -15796,14 +15964,14 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x10, 0x15, 0xc0, 0xad,
0xc0, 0x0a, 0x6d, 0x49,
0x6c, 0x1d, 0x50, 0x31,
- 0x4a, 0xd8, 0xc0, 0x2b,
+ 0x5c, 0x58, 0xc0, 0x2b,
0x80, 0x9b, 0xef, 0xc4,
0x82, 0xc5, 0xa1, 0x9b,
0x6c, 0x1d, 0x10, 0x29,
0x90, 0x0b, 0x40, 0x2b,
- 0x6f, 0xdc, 0x59, 0xe8,
+ 0x6f, 0xdc, 0x4f, 0x28,
0x03, 0x11, 0x92, 0x1b,
- 0x5c, 0xb8, 0x8c, 0x0b,
+ 0x57, 0x18, 0x8c, 0x0b,
0x15, 0x75, 0xef, 0xf0,
0x7c, 0x6e, 0x92, 0x7b,
0xe1, 0x04, 0x01, 0x46,
@@ -15812,17 +15980,17 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x10, 0x05, 0x80, 0x1e,
0xc0, 0x0a, 0x6d, 0x59,
0x6e, 0x0d, 0x10, 0x15,
- 0x4a, 0x78, 0xc0, 0x09,
+ 0x5b, 0xf8, 0xc0, 0x09,
0x00, 0x00, 0xef, 0xc4,
0xc0, 0x80, 0x64, 0x01,
0xe1, 0xc0, 0x12, 0x04,
- 0x6f, 0xcc, 0x55, 0x48,
+ 0x6f, 0xcc, 0x64, 0x88,
0x10, 0x0b, 0x92, 0x0b,
- 0x5c, 0x98, 0x92, 0x1b,
+ 0x6b, 0xd8, 0x92, 0x1b,
0x10, 0x0b, 0xef, 0xcc,
- 0x56, 0x98, 0x92, 0x1b,
+ 0x65, 0xd8, 0x92, 0x1b,
0x10, 0x0b, 0xef, 0xcc,
- 0x59, 0x58, 0x92, 0x1b,
+ 0x68, 0x98, 0x92, 0x1b,
0x01, 0x46, 0xef, 0xcc,
0x02, 0x86, 0x61, 0x18,
0x80, 0x04, 0xe1, 0x18,
@@ -15845,7 +16013,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0xd0, 0x19, 0x80, 0x18,
0x90, 0x0b, 0x00, 0x16,
0x60, 0xcd, 0x10, 0x15,
- 0x6b, 0x58, 0xc0, 0x0e,
+ 0x63, 0xf8, 0xc0, 0x0e,
0x10, 0x09, 0xe8, 0x20,
0x40, 0x38, 0x63, 0x15,
0xe1, 0x04, 0x14, 0x06,
@@ -15858,12 +16026,12 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x00, 0x16, 0xa8, 0x04,
0x10, 0x15, 0x90, 0x0b,
0xc0, 0x0e, 0x60, 0xd1,
- 0xe8, 0x20, 0x69, 0xc8,
+ 0xe8, 0x20, 0x62, 0x68,
0x8f, 0x61, 0x28, 0x04,
0x00, 0x66, 0x83, 0x21,
0x10, 0x15, 0x90, 0x0b,
0xc0, 0x0e, 0x60, 0xd5,
- 0xe8, 0x20, 0x69, 0x28,
+ 0xe8, 0x20, 0x61, 0xc8,
0x16, 0x76, 0x28, 0x04,
0x00, 0xb6, 0xe0, 0x04,
0x4c, 0x58, 0x90, 0x0b,
@@ -15881,13 +16049,13 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x40, 0x9a, 0x82, 0x01,
0x50, 0x03, 0xe0, 0x02,
0xc0, 0x15, 0x6e, 0x01,
- 0xef, 0xe0, 0x53, 0x48,
+ 0xef, 0xe0, 0x4d, 0x68,
0xe1, 0x18, 0x00, 0xc6,
0x80, 0xa6, 0x80, 0x04,
- 0xe8, 0x20, 0x6d, 0x68,
- 0xef, 0xc8, 0x7d, 0x88,
+ 0xe8, 0x20, 0x66, 0x08,
+ 0xef, 0xcc, 0x4f, 0x08,
0x8c, 0x0b, 0x03, 0x11,
- 0xef, 0xf0, 0x52, 0x48,
+ 0xef, 0xf0, 0x4c, 0xa8,
0x98, 0xf1, 0x0e, 0x0b,
0xf2, 0x7c, 0x0c, 0x0c,
0x10, 0x15, 0xdd, 0x93,
@@ -15915,11 +16083,11 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x83, 0x21, 0x00, 0x26,
0x60, 0xd1, 0x10, 0x15,
0x90, 0x0b, 0x40, 0x0e,
- 0xe8, 0x20, 0x62, 0xa8,
+ 0xe8, 0x20, 0x5b, 0x48,
0x83, 0x21, 0x28, 0x04,
0x90, 0x0b, 0x00, 0x66,
0x60, 0xd5, 0x10, 0x15,
- 0x62, 0x18, 0xc0, 0x0e,
+ 0x5a, 0xb8, 0xc0, 0x0e,
0xa8, 0x04, 0xe8, 0x20,
0x90, 0x0b, 0x00, 0xb6,
0xe8, 0x00, 0x45, 0x68,
@@ -15937,22 +16105,22 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0xee, 0xd5, 0xc1, 0x9d,
0x6c, 0x1d, 0x10, 0x29,
0x02, 0x36, 0x40, 0x2b,
- 0x48, 0xd8, 0xe0, 0x08,
- 0x90, 0x0b, 0x6f, 0xdc,
+ 0x7e, 0x18, 0xe0, 0x08,
+ 0x90, 0x0b, 0x6f, 0xd8,
0xe0, 0x08, 0x0e, 0x36,
0x83, 0x11, 0x00, 0xab,
- 0x4b, 0x78, 0xfc, 0x04,
+ 0x45, 0xd8, 0xfc, 0x04,
0x21, 0xab, 0xef, 0xf0,
0x3e, 0x94, 0x80, 0x6b,
0x80, 0x00, 0x0e, 0x06,
0x10, 0x29, 0xef, 0x15,
0x40, 0x2b, 0x6c, 0x1d,
0xe0, 0x08, 0x02, 0x36,
- 0x6f, 0xdc, 0x47, 0x88,
+ 0x6f, 0xd8, 0x7c, 0xc8,
0x0e, 0x36, 0x90, 0x0b,
0x00, 0xab, 0xe0, 0x08,
0xfc, 0x04, 0x83, 0x11,
- 0xef, 0xf0, 0x4a, 0x28,
+ 0xef, 0xf0, 0x44, 0x88,
0x80, 0x6b, 0x21, 0xab,
0x0e, 0x06, 0x6b, 0xf5,
0x10, 0x05, 0x80, 0x00,
@@ -15968,7 +16136,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0xfa, 0x00, 0x04, 0x0c,
0x60, 0xd9, 0x00, 0x15,
0x81, 0x21, 0x40, 0x0e,
- 0x68, 0x20, 0x5c, 0x08,
+ 0x68, 0x20, 0x54, 0xa8,
0x00, 0xc6, 0x81, 0x61,
0x03, 0x86, 0x61, 0x44,
0x80, 0x04, 0xe1, 0x00,
@@ -15982,7 +16150,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0xc1, 0xc3, 0xdd, 0x93,
0xfa, 0x1c, 0x04, 0x4c,
0x81, 0x01, 0x00, 0x6b,
- 0x6f, 0xf0, 0x46, 0x68,
+ 0x6f, 0xf0, 0x40, 0xc8,
0x81, 0x81, 0x81, 0x11,
0x01, 0x86, 0x00, 0x7b,
0x00, 0x04, 0xe1, 0x18,
@@ -16014,13 +16182,13 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0xe1, 0x04, 0x00, 0x46,
0x80, 0x18, 0x80, 0x04,
0xf3, 0xdc, 0x42, 0x10,
- 0x43, 0x98, 0x80, 0x16,
- 0xa4, 0x04, 0xef, 0xe0,
+ 0x7d, 0xb8, 0x80, 0x16,
+ 0xa4, 0x04, 0xef, 0xdc,
0x02, 0x14, 0x80, 0x18,
0x80, 0x16, 0xfc, 0x94,
- 0xef, 0xc8, 0x6c, 0xe8,
+ 0xef, 0xc8, 0x7e, 0x68,
0x8e, 0x0b, 0x03, 0x11,
- 0xef, 0xf0, 0x41, 0xa8,
+ 0xef, 0xec, 0x7c, 0x08,
0xe1, 0x18, 0x00, 0xc6,
0x80, 0x86, 0x80, 0x04,
0xf2, 0x1c, 0x0c, 0x4c,
@@ -16033,7 +16201,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x40, 0x0a, 0xc0, 0x2b,
0x0c, 0x09, 0xe0, 0x84,
0xc0, 0x2b, 0x05, 0xa9,
- 0x42, 0x86, 0x8c, 0x95,
+ 0x43, 0x06, 0x8c, 0x95,
0x84, 0x18, 0xef, 0xdc,
0x80, 0xb5, 0xa3, 0x1b,
0x66, 0xe9, 0x0c, 0x09,
@@ -16072,12 +16240,12 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x80, 0x16, 0xf3, 0xdc,
0x80, 0x18, 0x9c, 0x04,
0x00, 0x16, 0xc2, 0x19,
- 0x4e, 0xf8, 0x87, 0x11,
+ 0x47, 0x98, 0x87, 0x11,
0x8c, 0x0b, 0x68, 0x20,
0x83, 0x21, 0x1c, 0x04,
0xc4, 0x19, 0x80, 0x18,
0x99, 0x11, 0x00, 0x16,
- 0x68, 0x20, 0x4e, 0x68,
+ 0x68, 0x20, 0x47, 0x08,
0x9c, 0x04, 0x8c, 0x0b,
0xc8, 0x19, 0x80, 0x18,
0x0c, 0x4c, 0x80, 0x16,
@@ -16088,7 +16256,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0xc1, 0xc3, 0xdd, 0x93,
0xfa, 0x04, 0x04, 0x4c,
0x42, 0x46, 0x00, 0x7b,
- 0x4c, 0xf8, 0xe0, 0x04,
+ 0x45, 0x98, 0xe0, 0x04,
0x81, 0x21, 0x68, 0x20,
0x00, 0xc6, 0x81, 0x61,
0x03, 0x86, 0x61, 0x44,
@@ -16101,25 +16269,25 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x40, 0x2b, 0x6c, 0x1d,
0xe0, 0x08, 0x0c, 0x86,
0x60, 0x08, 0x02, 0x86,
- 0x74, 0x58, 0x8e, 0x0b,
+ 0x69, 0x98, 0x8e, 0x0b,
0xa3, 0x0b, 0xef, 0xd8,
0xc0, 0x00, 0x0c, 0x06,
- 0xe8, 0x20, 0x51, 0xe8,
+ 0xe8, 0x20, 0x4a, 0x88,
0x0c, 0x4c, 0x8c, 0x0b,
0xdd, 0x93, 0xf2, 0x04,
0xfa, 0x00, 0x04, 0x0c,
0x41, 0xf6, 0x01, 0x61,
- 0x6f, 0x78, 0xe0, 0x3c,
+ 0x57, 0xd8, 0xe0, 0x3c,
0x81, 0x11, 0x6f, 0x88,
0xe1, 0x44, 0x41, 0xc6,
0x80, 0x66, 0x80, 0x04,
- 0xef, 0xdc, 0x74, 0x88,
- 0xef, 0xdc, 0x77, 0x28,
- 0xef, 0xdc, 0x79, 0x08,
+ 0xef, 0xdc, 0x6e, 0xa8,
+ 0xef, 0xdc, 0x71, 0x48,
+ 0xef, 0xdc, 0x73, 0x28,
0x60, 0x3c, 0x41, 0xf6,
- 0x6e, 0x78, 0x83, 0x11,
+ 0x56, 0xd8, 0x83, 0x11,
0x0c, 0x0c, 0xef, 0x88,
- 0x21, 0xd8, 0xf2, 0x00,
+ 0x33, 0x58, 0xf2, 0x00,
0xc1, 0xc3, 0xff, 0xc8,
0xfa, 0x00, 0x04, 0x0c,
0x40, 0xc6, 0x00, 0x6b,
@@ -16129,7 +16297,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x4c, 0x05, 0xc0, 0x06,
0xc0, 0x0b, 0x66, 0x85,
0x66, 0x85, 0x0c, 0x05,
- 0x65, 0xf8, 0xc0, 0x0b,
+ 0x77, 0x78, 0xc0, 0x0b,
0x00, 0x04, 0xef, 0xc0,
0x4c, 0x05, 0xfb, 0x80,
0xc0, 0x0b, 0x66, 0x89,
@@ -16150,7 +16318,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x66, 0x79, 0x4c, 0x05,
0x0c, 0x09, 0xc0, 0x0b,
0xc0, 0x2b, 0x65, 0xcd,
- 0xef, 0xc0, 0x61, 0x28,
+ 0xef, 0xc0, 0x72, 0xa8,
0x6a, 0x05, 0x4c, 0x01,
0x0c, 0x05, 0xc0, 0x2d,
0xc0, 0x0b, 0x63, 0x7d,
@@ -16184,7 +16352,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x05, 0x41, 0x00, 0x60,
0x80, 0x08, 0xc0, 0xad,
0x91, 0x11, 0x04, 0x84,
- 0xef, 0xc0, 0x5c, 0xe8,
+ 0xef, 0xc0, 0x6e, 0x68,
0x6a, 0x05, 0x4c, 0x01,
0xa3, 0x7b, 0x40, 0x2d,
0x03, 0x89, 0x0c, 0x85,
@@ -16311,12 +16479,12 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x66, 0x81, 0x00, 0x90,
0x02, 0x70, 0xc0, 0x6d,
0x89, 0x21, 0x64, 0xa0,
- 0x68, 0x10, 0x68, 0x48,
+ 0x68, 0x10, 0x64, 0x88,
0x00, 0x90, 0x81, 0x31,
0x40, 0x6d, 0x67, 0x81,
0xe4, 0xb0, 0x02, 0x70,
0x81, 0x31, 0x09, 0x21,
- 0xe8, 0x10, 0x67, 0xa8,
+ 0xe8, 0x10, 0x63, 0xe8,
0x60, 0x18, 0x41, 0x06,
0xe4, 0xc0, 0x02, 0x70,
0x66, 0x82, 0x40, 0x6a,
@@ -16324,7 +16492,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x80, 0x83, 0x85, 0x31,
0x65, 0x01, 0x00, 0x80,
0x0c, 0x0c, 0xc0, 0x6e,
- 0x26, 0x98, 0xf2, 0x9c,
+ 0x22, 0xd8, 0xf2, 0x9c,
0xc1, 0xc3, 0xe0, 0x10,
0xfa, 0x0c, 0x04, 0x0c,
0x82, 0x6b, 0x00, 0x7b,
@@ -16343,15 +16511,15 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x04, 0x70, 0x00, 0x04,
0xc0, 0xb6, 0x66, 0x41,
0x64, 0xa0, 0x08, 0x60,
- 0x49, 0xf8, 0x8c, 0x3b,
- 0x00, 0x8b, 0xef, 0x98,
+ 0x62, 0x18, 0x8c, 0x3b,
+ 0x00, 0x8b, 0xef, 0x94,
0xe0, 0x08, 0x41, 0x26,
0x6c, 0x1d, 0x4e, 0x01,
0x00, 0x70, 0x40, 0x2b,
0xc0, 0x89, 0x65, 0xa1,
0x64, 0xc0, 0x02, 0x60,
0xe0, 0x24, 0x04, 0x06,
- 0x68, 0x10, 0x63, 0x48,
+ 0x68, 0x10, 0x5f, 0x88,
0x90, 0x0b, 0x85, 0x31,
0xf2, 0x0c, 0x0c, 0x0c,
0xc1, 0xc3, 0xdd, 0x93,
@@ -16376,8 +16544,8 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x04, 0x80, 0x00, 0x04,
0xc0, 0xb6, 0x66, 0x41,
0x64, 0xa0, 0x08, 0x70,
- 0x45, 0xd8, 0x8e, 0x3b,
- 0x12, 0x29, 0xef, 0x98,
+ 0x5d, 0xf8, 0x8e, 0x3b,
+ 0x12, 0x29, 0xef, 0x94,
0x40, 0x1b, 0x68, 0x81,
0x10, 0x0b, 0x80, 0x6b,
0x76, 0x18, 0x8e, 0x1b,
@@ -16412,7 +16580,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x80, 0x08, 0xc0, 0x09,
0xc5, 0x07, 0x88, 0x24,
0x44, 0x00, 0x08, 0x34,
- 0x55, 0x18, 0xf0, 0x0c,
+ 0x4d, 0xb8, 0xf0, 0x0c,
0x8c, 0x0b, 0x68, 0x20,
0x6c, 0xfd, 0x0c, 0x19,
0x81, 0x21, 0x40, 0x2c,
@@ -16440,7 +16608,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x4c, 0x05, 0x82, 0x01,
0xc0, 0x08, 0x69, 0x45,
0x91, 0x11, 0x04, 0x08,
- 0xef, 0xbc, 0x7c, 0xe8,
+ 0xef, 0xc0, 0x4e, 0x68,
0x65, 0x49, 0x4c, 0x01,
0x0c, 0x0c, 0xc0, 0x22,
0xdd, 0x93, 0xf2, 0x00,
@@ -16452,7 +16620,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x4c, 0x05, 0x82, 0x01,
0xc0, 0x06, 0x6d, 0x4d,
0x91, 0x11, 0x04, 0x08,
- 0xef, 0xbc, 0x7b, 0x68,
+ 0xef, 0xc0, 0x4c, 0xe8,
0x6d, 0x01, 0x0c, 0x19,
0x4c, 0x01, 0xc0, 0x2c,
0xc0, 0x1b, 0x65, 0x69,
@@ -16467,7 +16635,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x0c, 0x19, 0xc0, 0x22,
0xc0, 0x22, 0x65, 0x59,
0x69, 0x5d, 0x4c, 0x05,
- 0x48, 0x78, 0xc0, 0x08,
+ 0x59, 0xf8, 0xc0, 0x08,
0x4c, 0x05, 0xef, 0xc0,
0x40, 0x08, 0x69, 0x61,
0xe0, 0x0c, 0x43, 0xf6,
@@ -16475,14 +16643,14 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x0c, 0x0c, 0xc0, 0x22,
0xdd, 0x93, 0xf2, 0x00,
0xfa, 0x0c, 0x04, 0x0c,
- 0x68, 0x20, 0x75, 0x28,
+ 0x68, 0x20, 0x6d, 0xc8,
0x42, 0x78, 0x80, 0x6b,
0x8c, 0x0b, 0x68, 0x00,
0x66, 0x81, 0x00, 0x60,
0x02, 0x06, 0x40, 0x6d,
0xc0, 0x20, 0x63, 0x41,
0x60, 0x04, 0x04, 0x06,
- 0x52, 0xd8, 0x81, 0x31,
+ 0x4f, 0x18, 0x81, 0x31,
0x0e, 0x60, 0xe8, 0x10,
0x40, 0x6d, 0x67, 0x81,
0x81, 0xf5, 0xa1, 0x81,
@@ -16490,7 +16658,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x0c, 0x29, 0x8b, 0x31,
0xc0, 0x1b, 0x65, 0x69,
0x65, 0x79, 0x0c, 0x19,
- 0x45, 0x98, 0xc0, 0x1b,
+ 0x57, 0x18, 0xc0, 0x1b,
0x5d, 0x0e, 0xef, 0xc0,
0xec, 0x04, 0x10, 0x80,
0xfc, 0x35, 0xa1, 0x8b,
@@ -16498,12 +16666,12 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0xc1, 0xc3, 0xdd, 0x93,
0xfa, 0x9c, 0x04, 0x0c,
0x02, 0x06, 0x00, 0x6b,
- 0x4d, 0x18, 0xe0, 0x04,
+ 0x45, 0xb8, 0xe0, 0x04,
0x0e, 0x60, 0xe8, 0x20,
0x40, 0x6e, 0x64, 0x81,
0x01, 0x95, 0xa1, 0x81,
0x5d, 0x18, 0x8c, 0x9b,
- 0x66, 0xd8, 0x8c, 0x0b,
+ 0x5e, 0x78, 0x8c, 0x0b,
0x65, 0x0e, 0xef, 0xd4,
0xec, 0x04, 0x10, 0x80,
0xfe, 0x15, 0xa1, 0x8b,
@@ -16511,19 +16679,19 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x04, 0x06, 0x40, 0x6d,
0x01, 0x31, 0xe0, 0x04,
0x0c, 0x0c, 0x8c, 0x1b,
- 0x0f, 0x38, 0xf2, 0x9c,
+ 0x0b, 0x78, 0xf2, 0x9c,
0xc1, 0xc3, 0xe0, 0x10,
0x65, 0xa1, 0x00, 0x00,
0x02, 0x06, 0x40, 0x89,
0xc0, 0x20, 0x63, 0x1d,
0x60, 0x24, 0x04, 0x06,
- 0x0e, 0x78, 0x87, 0x31,
+ 0x0a, 0xb8, 0x87, 0x31,
0xc1, 0xc3, 0xe0, 0x10,
0x65, 0x01, 0x00, 0x00,
0x02, 0x06, 0x40, 0x6e,
0xc0, 0x20, 0x61, 0x01,
0x62, 0x40, 0x04, 0x06,
- 0x0d, 0xb8, 0x87, 0x31,
+ 0x09, 0xf8, 0x87, 0x31,
0xc1, 0xc3, 0xe0, 0x10,
0xfa, 0x7c, 0x04, 0x0c,
0x6d, 0x91, 0x1e, 0xf0,
@@ -16562,12 +16730,12 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x64, 0xd1, 0x02, 0xf0,
0x45, 0x06, 0xc0, 0x02,
0x81, 0x31, 0x60, 0x20,
- 0xe8, 0x10, 0x48, 0xe8,
+ 0xe8, 0x10, 0x45, 0x28,
0x66, 0x41, 0x00, 0x60,
0x02, 0xf0, 0x40, 0x92,
0x45, 0x06, 0xe4, 0x10,
0x81, 0x31, 0x60, 0x20,
- 0xe8, 0x10, 0x48, 0x48,
+ 0xe8, 0x10, 0x44, 0x88,
0x61, 0x30, 0x00, 0xc6,
0xe1, 0x30, 0x02, 0x46,
0x04, 0xc6, 0x00, 0x04,
@@ -16608,7 +16776,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0xc1, 0xc3, 0xdd, 0x93,
0xfa, 0x1c, 0x04, 0x4c,
0x81, 0x01, 0x00, 0x8b,
- 0x6f, 0xe8, 0x78, 0x28,
+ 0x6f, 0xe8, 0x72, 0x88,
0x81, 0x61, 0x81, 0x11,
0x00, 0x06, 0x00, 0x7b,
0x00, 0x04, 0xe1, 0x10,
@@ -16629,10 +16797,10 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x0c, 0x86, 0x40, 0x2b,
0x02, 0x86, 0xe0, 0x08,
0x90, 0x0b, 0x60, 0x08,
- 0xef, 0xd4, 0x72, 0x68,
+ 0xef, 0xd4, 0x67, 0xa8,
0x0b, 0x45, 0xa3, 0x0b,
0xc0, 0x00, 0x0c, 0x06,
- 0xef, 0xd8, 0x74, 0x68,
+ 0xef, 0xd8, 0x6e, 0x88,
0x6f, 0xf8, 0x74, 0x08,
0x45, 0x58, 0x90, 0x0b,
0x90, 0x0b, 0x68, 0x00,
@@ -16673,7 +16841,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0xef, 0xfc, 0x41, 0xf6,
0x68, 0x00, 0x49, 0x08,
0x03, 0x11, 0x81, 0x11,
- 0x6f, 0xf8, 0x8e, 0x0b,
+ 0x6a, 0x58, 0x8e, 0x0b,
0x8c, 0x0b, 0xef, 0xe8,
0xf2, 0x1c, 0x0c, 0x4c,
0xc1, 0xc3, 0xdd, 0x93,
@@ -16794,7 +16962,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x80, 0x04, 0x85, 0x11,
0xa0, 0x04, 0x80, 0x76,
0x8c, 0x0b, 0x00, 0x26,
- 0xe8, 0x18, 0x59, 0xa8,
+ 0xe8, 0x18, 0x52, 0x48,
0x02, 0x76, 0x20, 0x04,
0x4c, 0x11, 0xe0, 0x08,
0xc0, 0x2b, 0x6c, 0x1d,
@@ -16803,7 +16971,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0xfa, 0x0c, 0x04, 0x0c,
0x82, 0x7b, 0x04, 0x3b,
0x86, 0x1b, 0x01, 0x21,
- 0x68, 0x18, 0x73, 0xa8,
+ 0x68, 0x18, 0x6c, 0x48,
0x00, 0x06, 0x81, 0x61,
0x43, 0x46, 0x61, 0x28,
0x00, 0x04, 0xe1, 0x2c,
@@ -16820,7 +16988,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0xaa, 0xcf, 0x08, 0x49,
0x46, 0xc2, 0xa8, 0xcf,
0x87, 0x7b, 0xf8, 0x1c,
- 0x78, 0x58, 0xfa, 0x75,
+ 0x70, 0xf8, 0xfa, 0x75,
0x8c, 0x0b, 0xe8, 0x18,
0xf2, 0x0c, 0x0c, 0x0c,
0xc1, 0xc3, 0xdd, 0x93,
@@ -16852,7 +17020,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0xf3, 0xf4, 0x42, 0x10,
0x89, 0x11, 0x00, 0x16,
0x00, 0x16, 0xa4, 0x04,
- 0x6d, 0x78, 0x8b, 0x11,
+ 0x66, 0x18, 0x8b, 0x11,
0x8c, 0x0b, 0x68, 0x18,
0xe1, 0x14, 0x16, 0xc6,
0x80, 0x08, 0xac, 0x04,
@@ -16866,7 +17034,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x9b, 0x01, 0x60, 0x84,
0xa5, 0x1b, 0xa2, 0x65,
0x0b, 0x11, 0xa2, 0x25,
- 0x6b, 0xb8, 0x83, 0x21,
+ 0x64, 0x58, 0x83, 0x21,
0x8c, 0x0b, 0x68, 0x18,
0xe1, 0x10, 0x40, 0x46,
0x80, 0x08, 0x80, 0x04,
@@ -16877,7 +17045,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x24, 0x04, 0x9c, 0xe5,
0x83, 0x21, 0x8b, 0x11,
0x8c, 0x0b, 0x00, 0xa6,
- 0xe8, 0x18, 0x6a, 0x68,
+ 0xe8, 0x18, 0x63, 0x08,
0x80, 0x08, 0xac, 0x04,
0x60, 0x80, 0x40, 0x4a,
0x9a, 0x45, 0xa1, 0x01,
@@ -16890,7 +17058,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x2b, 0x1b, 0x96, 0xa5,
0xe1, 0x00, 0x15, 0xc6,
0x0b, 0x11, 0x96, 0x25,
- 0x68, 0xb8, 0x83, 0x21,
+ 0x61, 0x58, 0x83, 0x21,
0x8c, 0x0b, 0x68, 0x18,
0xe1, 0x10, 0x40, 0x46,
0x80, 0x08, 0x80, 0x04,
@@ -16901,7 +17069,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x24, 0x04, 0x90, 0xe5,
0x83, 0x21, 0x85, 0x11,
0x8b, 0x11, 0x00, 0x16,
- 0x68, 0x18, 0x67, 0x68,
+ 0x68, 0x18, 0x60, 0x08,
0xac, 0x04, 0x8c, 0x0b,
0x40, 0x4a, 0x80, 0x08,
0xa7, 0x01, 0x60, 0x80,
@@ -16927,7 +17095,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x41, 0x06, 0x00, 0xb6,
0x80, 0x04, 0xe1, 0x10,
0x8c, 0x0b, 0x00, 0xb6,
- 0xe8, 0x18, 0x64, 0x28,
+ 0xe8, 0x18, 0x5c, 0xc8,
0x80, 0x08, 0xa8, 0x04,
0x60, 0x90, 0x40, 0x4a,
0x80, 0xc5, 0x97, 0x01,
@@ -16946,7 +17114,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x81, 0x11, 0x00, 0x04,
0x91, 0x11, 0x00, 0x16,
0x00, 0x16, 0xa4, 0x04,
- 0x61, 0xb8, 0x8d, 0x11,
+ 0x5a, 0x58, 0x8d, 0x11,
0x8c, 0x0b, 0x68, 0x18,
0x02, 0x66, 0x20, 0x04,
0xf7, 0xab, 0x70, 0x01,
@@ -16977,7 +17145,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x4c, 0x11, 0xa0, 0x04,
0xc0, 0x2b, 0x6c, 0x1d,
0x8c, 0x0b, 0x00, 0x16,
- 0xe8, 0x1c, 0x42, 0xc8,
+ 0xe8, 0x18, 0x7b, 0x68,
0x6d, 0x15, 0x0c, 0x09,
0x80, 0x7b, 0x40, 0x2c,
0xe0, 0x84, 0x40, 0x4a,
@@ -17055,10 +17223,10 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x41, 0x38, 0xe4, 0x10,
0xec, 0x04, 0x04, 0x20,
0xa1, 0x2b, 0xc5, 0x36,
- 0x6c, 0x98, 0xfe, 0x75,
+ 0x65, 0x38, 0xfe, 0x75,
0x8c, 0x0b, 0x68, 0x1c,
0x8c, 0x1b, 0x0c, 0x0b,
- 0xe8, 0x04, 0x43, 0x68,
+ 0xe8, 0x04, 0x43, 0x28,
0x00, 0x60, 0x00, 0x7b,
0xc0, 0x6e, 0x64, 0x81,
0x02, 0xf0, 0x01, 0x75,
@@ -17068,7 +17236,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x0c, 0x09, 0xfe, 0x75,
0xc0, 0x2d, 0x67, 0xc9,
0x9c, 0xd5, 0xa5, 0x0b,
- 0x68, 0x00, 0x74, 0x88,
+ 0x68, 0x00, 0x74, 0x48,
0x0f, 0x25, 0x8c, 0x0b,
0x20, 0x04, 0x80, 0x7b,
0xe0, 0x04, 0x02, 0x46,
@@ -17077,7 +17245,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0xe1, 0x38, 0x00, 0x46,
0x85, 0x11, 0x00, 0x04,
0x8c, 0x0b, 0x00, 0x16,
- 0x68, 0x00, 0x7b, 0x68,
+ 0x68, 0x00, 0x7b, 0x28,
0x80, 0x7b, 0x8c, 0x1b,
0x8c, 0x05, 0xa1, 0x7b,
0x61, 0x38, 0x00, 0x06,
@@ -17093,11 +17261,11 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x00, 0x46, 0x00, 0x16,
0x00, 0x04, 0xe1, 0x38,
0x00, 0x16, 0x83, 0x11,
- 0x4b, 0xb8, 0x8c, 0x0b,
+ 0x44, 0x58, 0x8c, 0x0b,
0x0c, 0x09, 0xe8, 0x1c,
0x40, 0x2d, 0x67, 0xc9,
0xa1, 0x0b, 0x80, 0x7b,
- 0x70, 0xd8, 0x80, 0xb5,
+ 0x70, 0x98, 0x80, 0xb5,
0x8c, 0x0b, 0x68, 0x00,
0x00, 0x06, 0x80, 0x7b,
0xa1, 0x7b, 0x61, 0x38,
@@ -17122,7 +17290,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0xe0, 0x08, 0x01, 0x36,
0x6c, 0x1d, 0x4c, 0x01,
0x8c, 0x0b, 0x40, 0x2b,
- 0xef, 0xf0, 0x57, 0xe8,
+ 0xef, 0xf0, 0x52, 0x48,
0x80, 0x7b, 0x2c, 0x04,
0x8b, 0x11, 0x21, 0x7b,
0x11, 0xe8, 0x80, 0x1c,
@@ -17156,7 +17324,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x80, 0x04, 0xe1, 0x10,
0x42, 0x10, 0x80, 0x18,
0x00, 0x16, 0xf3, 0xf8,
- 0x47, 0x78, 0x95, 0x11,
+ 0x40, 0x18, 0x95, 0x11,
0x8c, 0x0b, 0x68, 0x18,
0x61, 0x10, 0x41, 0x46,
0x80, 0x14, 0x81, 0x21,
@@ -17185,17 +17353,17 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0xe1, 0x38, 0x00, 0x46,
0x87, 0x11, 0x00, 0x04,
0x8c, 0x0b, 0x00, 0x16,
- 0xe8, 0x00, 0x7b, 0xe8,
+ 0xe8, 0x00, 0x7b, 0xa8,
0x67, 0xc9, 0x0c, 0x09,
0x81, 0x71, 0x40, 0x2d,
0x80, 0xb5, 0xa7, 0x0b,
- 0x68, 0x00, 0x65, 0x68,
+ 0x68, 0x00, 0x65, 0x28,
0x80, 0x7b, 0x8c, 0x0b,
0x63, 0x11, 0x0c, 0x09,
0x40, 0x4a, 0xc0, 0x2d,
0x80, 0xe5, 0xe0, 0x80,
0x6f, 0xfc, 0x4c, 0x68,
- 0x7f, 0x58, 0x8c, 0x0b,
+ 0x77, 0xf8, 0x8c, 0x0b,
0x8c, 0x0b, 0x68, 0x14,
0xe0, 0x35, 0xa1, 0x7b,
0x6d, 0x15, 0x0c, 0x09,
@@ -17205,22 +17373,22 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x4c, 0x11, 0xe0, 0x04,
0xc0, 0x2b, 0x6c, 0x1d,
0x8c, 0x0b, 0x00, 0x16,
- 0xe8, 0x00, 0x7a, 0x08,
+ 0xe8, 0x00, 0x79, 0xc8,
0x67, 0xc9, 0x0c, 0x09,
0x80, 0x7b, 0x40, 0x2d,
0x80, 0xb5, 0xa9, 0x0b,
- 0x68, 0x00, 0x62, 0xe8,
+ 0x68, 0x00, 0x62, 0xa8,
0x80, 0x7b, 0x8c, 0x0b,
0xd8, 0xb5, 0xa1, 0x7b,
0x6d, 0x15, 0x0c, 0x09,
0x40, 0x0a, 0xc0, 0x2c,
0x84, 0x25, 0xe0, 0x90,
- 0x6f, 0xd4, 0x75, 0x28,
+ 0x6f, 0xd4, 0x6f, 0x48,
0x20, 0x04, 0x8c, 0x0b,
0xe0, 0x04, 0x02, 0x96,
0x6c, 0x1d, 0x4c, 0x11,
0x00, 0x16, 0xc0, 0x2b,
- 0x6c, 0x78, 0x8c, 0x0b,
+ 0x7b, 0xf8, 0x8c, 0x0b,
0x0c, 0x09, 0xef, 0xc4,
0xc0, 0x2c, 0x6d, 0x15,
0x60, 0x88, 0x40, 0x0a,
@@ -17240,9 +17408,9 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x6f, 0x18, 0x8c, 0x0b,
0x8c, 0x0b, 0x6f, 0xf8,
0x6f, 0xf8, 0x6f, 0x68,
- 0x79, 0x58, 0x8c, 0x0b,
+ 0x79, 0x18, 0x8c, 0x0b,
0x8c, 0x0b, 0x68, 0x00,
- 0x55, 0x38, 0x83, 0x35,
+ 0x4d, 0xd8, 0x83, 0x35,
0x8c, 0x0b, 0x68, 0x1c,
0x6f, 0xf8, 0x62, 0x88,
0x01, 0x95, 0x8c, 0x0b,
@@ -17253,7 +17421,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0xe0, 0x40, 0x0e, 0x0a,
0x21, 0x0b, 0xfc, 0xf5,
0x31, 0x38, 0x80, 0x7b,
- 0x7c, 0x78, 0xdf, 0xfc,
+ 0x7c, 0x38, 0xdf, 0xfc,
0x8c, 0x0b, 0x68, 0x00,
0x66, 0x35, 0x0c, 0x0b,
0x81, 0x71, 0x40, 0x16,
@@ -17271,7 +17439,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x0c, 0x09, 0x87, 0x65,
0xc0, 0x2d, 0x67, 0xc9,
0x82, 0x15, 0xa3, 0x0b,
- 0x68, 0x00, 0x5b, 0x28,
+ 0x68, 0x00, 0x5a, 0xe8,
0x80, 0x7b, 0x8c, 0x0b,
0x2d, 0xa8, 0xa1, 0x7b,
0x20, 0x04, 0xdf, 0xfc,
@@ -17299,7 +17467,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x4c, 0x11, 0xe0, 0x08,
0xc0, 0x2b, 0x6c, 0x1d,
0x83, 0x11, 0x00, 0x16,
- 0x68, 0x00, 0x7b, 0x88,
+ 0x68, 0x00, 0x7b, 0x48,
0x57, 0x35, 0x8c, 0x0b,
0xc1, 0xc3, 0x80, 0x7b,
0xfa, 0x7c, 0x04, 0x0c,
@@ -17326,168 +17494,166 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x80, 0x04, 0xe1, 0x10,
0xc2, 0x19, 0x80, 0x18,
0x8c, 0x0b, 0x00, 0x16,
- 0xef, 0xe4, 0x5f, 0xe8,
+ 0xef, 0xe4, 0x5a, 0x48,
0x81, 0x01, 0x3e, 0x0e,
0x50, 0x86, 0x3c, 0x0e,
0x03, 0x91, 0xe1, 0x24,
0xe1, 0x24, 0x4e, 0x46,
0x61, 0x24, 0x54, 0xc6,
- 0xa1, 0xb5, 0x81, 0x01,
+ 0xa1, 0x85, 0x81, 0x01,
0x00, 0x06, 0x7c, 0x0e,
0x4c, 0x01, 0xe0, 0x08,
0xc0, 0x2b, 0x6c, 0x1d,
- 0xef, 0xd4, 0x5f, 0x68,
+ 0xef, 0xd4, 0x59, 0x88,
0x60, 0x08, 0x00, 0x16,
0xe0, 0x10, 0x42, 0xc6,
0x6c, 0x1d, 0x4c, 0x01,
0x81, 0x21, 0x40, 0x2b,
- 0x68, 0x14, 0x70, 0x68,
+ 0x68, 0x14, 0x69, 0x08,
0x00, 0xc6, 0x8c, 0x0b,
0x80, 0x04, 0xe1, 0x44,
- 0x81, 0x95, 0x80, 0xb8,
- 0xef, 0xd4, 0x5f, 0x48,
- 0x63, 0x2d, 0x4c, 0x91,
- 0x4c, 0x91, 0xc0, 0x38,
- 0xc0, 0x38, 0x63, 0x29,
- 0x80, 0x08, 0xa0, 0x04,
- 0xe0, 0x80, 0x40, 0x0a,
- 0x0c, 0x09, 0x80, 0xc5,
- 0xc0, 0x38, 0x63, 0x29,
- 0x82, 0x45, 0xa1, 0x0b,
- 0xe0, 0x8c, 0x56, 0x0a,
- 0x0c, 0x09, 0xfa, 0x85,
- 0xc0, 0x38, 0x63, 0x29,
- 0xf8, 0xf5, 0xa1, 0x0b,
- 0x75, 0x18, 0xfd, 0x15,
- 0xa0, 0x04, 0xe8, 0x14,
- 0x40, 0x4a, 0x80, 0x08,
- 0x80, 0xc5, 0xe0, 0x84,
+ 0x81, 0x65, 0x80, 0xb8,
+ 0xef, 0xd4, 0x59, 0x68,
+ 0x63, 0x29, 0x4c, 0x91,
+ 0xa0, 0x04, 0xc0, 0x38,
+ 0x40, 0x0a, 0x80, 0x08,
+ 0x80, 0xc5, 0xe0, 0x80,
0x63, 0x29, 0x0c, 0x09,
0xa1, 0x0b, 0xc0, 0x38,
- 0x5c, 0xd8, 0x80, 0xc5,
- 0x4c, 0x91, 0xef, 0xd4,
+ 0x56, 0x0a, 0x82, 0x45,
+ 0xfa, 0xe5, 0xe0, 0x8c,
+ 0x63, 0x29, 0x0c, 0x09,
+ 0xa1, 0x0b, 0xc0, 0x38,
+ 0xfd, 0x45, 0xfa, 0x55,
+ 0xe8, 0x14, 0x6d, 0xe8,
+ 0x80, 0x08, 0xa0, 0x04,
+ 0xe0, 0x84, 0x40, 0x4a,
+ 0x0c, 0x09, 0x80, 0xc5,
0xc0, 0x38, 0x63, 0x29,
- 0xef, 0xc0, 0x44, 0x48,
- 0xef, 0xd4, 0x5b, 0x68,
- 0x60, 0x08, 0x00, 0x26,
- 0xe0, 0x3c, 0x42, 0x86,
- 0x6c, 0x1d, 0x4c, 0x01,
- 0x81, 0x21, 0x40, 0x2b,
- 0x68, 0x14, 0x6c, 0x68,
- 0x00, 0xc6, 0x8c, 0x0b,
- 0x80, 0x04, 0xe1, 0x44,
- 0x81, 0x65, 0x80, 0xb8,
- 0xef, 0xd4, 0x5b, 0x48,
+ 0x80, 0xc5, 0xa1, 0x0b,
+ 0xef, 0xd4, 0x57, 0x28,
0x63, 0x29, 0x4c, 0x91,
- 0x9c, 0x04, 0xc0, 0x38,
- 0x40, 0x4a, 0x80, 0x08,
- 0x82, 0x45, 0xe0, 0x80,
- 0xe0, 0x8c, 0x56, 0x0a,
- 0x0c, 0x09, 0xfc, 0x85,
+ 0x55, 0xf8, 0xc0, 0x38,
+ 0x55, 0xb8, 0xef, 0xc0,
+ 0x00, 0x26, 0xef, 0xd4,
+ 0x42, 0x86, 0x60, 0x08,
+ 0x4c, 0x01, 0xe0, 0x3c,
+ 0x40, 0x2b, 0x6c, 0x1d,
+ 0x65, 0x38, 0x81, 0x21,
+ 0x8c, 0x0b, 0x68, 0x14,
+ 0xe1, 0x44, 0x00, 0xc6,
+ 0x80, 0xb8, 0x80, 0x04,
+ 0x55, 0x98, 0x81, 0x65,
+ 0x4c, 0x91, 0xef, 0xd4,
0xc0, 0x38, 0x63, 0x29,
- 0xfa, 0xf5, 0xa1, 0x0b,
- 0x71, 0x98, 0xfd, 0x95,
- 0x9c, 0x04, 0xe8, 0x14,
- 0x40, 0x4a, 0x80, 0x08,
- 0x80, 0xc5, 0xe0, 0x84,
+ 0x80, 0x08, 0x9c, 0x04,
+ 0xe0, 0x80, 0x40, 0x4a,
+ 0x56, 0x0a, 0x82, 0x45,
+ 0xfc, 0x85, 0xe0, 0x8c,
0x63, 0x29, 0x0c, 0x09,
0xa1, 0x0b, 0xc0, 0x38,
- 0x59, 0x58, 0x82, 0x85,
- 0x00, 0x86, 0xef, 0xd4,
- 0x80, 0x04, 0xe1, 0x3c,
- 0xd0, 0x19, 0x80, 0x18,
- 0x4c, 0x91, 0x80, 0x16,
+ 0xfd, 0x95, 0xfa, 0xf5,
+ 0xe8, 0x14, 0x6a, 0x68,
+ 0x80, 0x08, 0x9c, 0x04,
+ 0xe0, 0x84, 0x40, 0x4a,
+ 0x0c, 0x09, 0x80, 0xc5,
0xc0, 0x38, 0x63, 0x29,
+ 0x82, 0x85, 0xa1, 0x0b,
+ 0xef, 0xd4, 0x53, 0xa8,
0xe1, 0x3c, 0x00, 0x86,
0x80, 0x18, 0x80, 0x04,
0x80, 0x16, 0xd0, 0x19,
- 0xef, 0xc0, 0x40, 0x08,
- 0x6e, 0xa9, 0x0c, 0x09,
- 0xa3, 0x0b, 0xc0, 0x2c,
- 0x81, 0x10, 0x01, 0x06,
- 0x80, 0x00, 0x00, 0x05,
- 0x80, 0x00, 0x40, 0x91,
- 0x00, 0xc6, 0x9e, 0x25,
- 0x80, 0x04, 0xe1, 0x14,
- 0x40, 0x0a, 0x80, 0x08,
- 0x9a, 0xa5, 0xe0, 0x84,
- 0xef, 0xd4, 0x56, 0x08,
- 0x60, 0x08, 0x00, 0x36,
- 0xe0, 0x04, 0x42, 0x26,
- 0x6c, 0x1d, 0x4c, 0x01,
- 0x81, 0x21, 0x40, 0x2b,
- 0x68, 0x14, 0x67, 0x08,
- 0x00, 0xc6, 0x8c, 0x0b,
- 0x80, 0x04, 0xe1, 0x44,
- 0x81, 0x65, 0x80, 0xb8,
- 0xef, 0xd4, 0x55, 0xe8,
0x63, 0x29, 0x4c, 0x91,
- 0xa8, 0x04, 0xc0, 0x38,
- 0x40, 0x4a, 0x80, 0x08,
- 0x82, 0x45, 0xe0, 0x80,
- 0xe0, 0x8c, 0x56, 0x0a,
- 0x0c, 0x09, 0xfc, 0x85,
+ 0x00, 0x86, 0xc0, 0x38,
+ 0x80, 0x04, 0xe1, 0x3c,
+ 0xd0, 0x19, 0x80, 0x18,
+ 0x51, 0xb8, 0x80, 0x16,
+ 0x0c, 0x09, 0xef, 0xc0,
+ 0xc0, 0x2c, 0x6e, 0xa9,
+ 0x01, 0x06, 0xa3, 0x0b,
+ 0x00, 0x05, 0x81, 0x10,
+ 0x40, 0x91, 0x80, 0x00,
+ 0x9e, 0x25, 0x80, 0x00,
+ 0xe1, 0x14, 0x00, 0xc6,
+ 0x80, 0x08, 0x80, 0x04,
+ 0xe0, 0x84, 0x40, 0x0a,
+ 0x50, 0x58, 0x9a, 0xa5,
+ 0x00, 0x36, 0xef, 0xd4,
+ 0x42, 0x26, 0x60, 0x08,
+ 0x4c, 0x01, 0xe0, 0x04,
+ 0x40, 0x2b, 0x6c, 0x1d,
+ 0x5f, 0xd8, 0x81, 0x21,
+ 0x8c, 0x0b, 0x68, 0x14,
+ 0xe1, 0x44, 0x00, 0xc6,
+ 0x80, 0xb8, 0x80, 0x04,
+ 0x50, 0x38, 0x81, 0x65,
+ 0x4c, 0x91, 0xef, 0xd4,
0xc0, 0x38, 0x63, 0x29,
- 0xfa, 0xf5, 0xa1, 0x0b,
- 0x6c, 0x38, 0xfd, 0x95,
- 0xa8, 0x04, 0xe8, 0x14,
- 0x40, 0x4a, 0x80, 0x08,
- 0x80, 0xc5, 0xe0, 0x84,
+ 0x80, 0x08, 0xa8, 0x04,
+ 0xe0, 0x80, 0x40, 0x4a,
+ 0x56, 0x0a, 0x82, 0x45,
+ 0xfc, 0x85, 0xe0, 0x8c,
0x63, 0x29, 0x0c, 0x09,
0xa1, 0x0b, 0xc0, 0x38,
- 0xfc, 0x04, 0x92, 0x25,
- 0x90, 0x25, 0xe9, 0x0d,
- 0xef, 0xbc, 0x7b, 0x88,
- 0x61, 0x10, 0x00, 0xc6,
- 0xe1, 0x10, 0x57, 0x46,
- 0x83, 0x21, 0x00, 0x04,
- 0x42, 0x10, 0x80, 0x18,
- 0x00, 0x16, 0xf3, 0xf8,
- 0xac, 0x04, 0x81, 0x11,
- 0x95, 0x11, 0x00, 0x16,
- 0x68, 0x14, 0x63, 0x68,
- 0x2c, 0x04, 0x8c, 0x0b,
- 0xe1, 0x10, 0x43, 0x46,
- 0xe1, 0x3c, 0x04, 0x86,
- 0x00, 0xc6, 0x00, 0x96,
- 0x80, 0x04, 0xe1, 0x14,
- 0x40, 0x4a, 0x80, 0x08,
- 0x02, 0x05, 0xe0, 0x84,
- 0x02, 0x06, 0x40, 0x00,
- 0x40, 0x11, 0xc0, 0x00,
- 0x88, 0x04, 0xc0, 0x00,
- 0x42, 0x10, 0x80, 0x18,
- 0x80, 0x16, 0xf3, 0xdc,
+ 0xfd, 0x95, 0xfa, 0xf5,
+ 0xe8, 0x14, 0x65, 0x08,
+ 0x80, 0x08, 0xa8, 0x04,
+ 0xe0, 0x84, 0x40, 0x4a,
+ 0x0c, 0x09, 0x80, 0xc5,
+ 0xc0, 0x38, 0x63, 0x29,
+ 0x92, 0x25, 0xa1, 0x0b,
+ 0xe9, 0x0d, 0xfc, 0x04,
+ 0x4d, 0x38, 0x90, 0x25,
+ 0x00, 0xc6, 0xef, 0xc0,
+ 0x57, 0x46, 0x61, 0x10,
+ 0x00, 0x04, 0xe1, 0x10,
+ 0x80, 0x18, 0x83, 0x21,
+ 0xf3, 0xf8, 0x42, 0x10,
+ 0x81, 0x11, 0x00, 0x16,
+ 0x00, 0x16, 0xac, 0x04,
+ 0x5c, 0x38, 0x95, 0x11,
+ 0x8c, 0x0b, 0x68, 0x14,
+ 0x43, 0x46, 0x2c, 0x04,
+ 0x04, 0x86, 0xe1, 0x10,
+ 0x00, 0x96, 0xe1, 0x3c,
+ 0xe1, 0x14, 0x00, 0xc6,
+ 0x80, 0x08, 0x80, 0x04,
+ 0xe0, 0x84, 0x40, 0x4a,
+ 0x40, 0x00, 0x02, 0x05,
+ 0xc0, 0x00, 0x02, 0x06,
+ 0xc0, 0x00, 0x40, 0x11,
0x80, 0x18, 0x88, 0x04,
- 0xf3, 0xbc, 0x42, 0x10,
- 0x00, 0xc6, 0x00, 0x16,
- 0x80, 0x04, 0xe1, 0x10,
- 0xc2, 0x19, 0x80, 0x18,
- 0x41, 0xf6, 0x00, 0x16,
- 0xbe, 0x0e, 0xe0, 0x0c,
- 0x82, 0x01, 0xfc, 0x04,
- 0x2f, 0x58, 0xe8, 0x0d,
- 0xbe, 0x04, 0x9f, 0xfc,
- 0x81, 0x85, 0xbc, 0x0e,
- 0xef, 0xd4, 0x4f, 0xc8,
- 0x63, 0x29, 0x4c, 0x91,
- 0x77, 0x38, 0xc0, 0x38,
- 0x0c, 0x09, 0xef, 0xbc,
- 0x40, 0x38, 0x63, 0x15,
- 0xe1, 0x14, 0x4f, 0x06,
- 0x82, 0x15, 0xa5, 0x0b,
- 0x6f, 0xf8, 0x70, 0x88,
- 0xbc, 0x0e, 0x8c, 0x0b,
- 0x63, 0x29, 0x4c, 0x01,
- 0x00, 0x86, 0xc0, 0x38,
- 0x80, 0x04, 0xe1, 0x3c,
- 0xe0, 0x19, 0x80, 0x18,
- 0x9c, 0x04, 0x80, 0x16,
+ 0xf3, 0xdc, 0x42, 0x10,
+ 0x88, 0x04, 0x80, 0x16,
0x42, 0x10, 0x80, 0x18,
- 0x80, 0x16, 0xf3, 0xbc,
- 0x98, 0xf1, 0x3c, 0x04,
- 0xf2, 0x7c, 0x0c, 0x0c,
- 0xc1, 0xc3, 0xdd, 0x93,
+ 0x00, 0x16, 0xf3, 0xbc,
+ 0xe1, 0x10, 0x00, 0xc6,
+ 0x80, 0x18, 0x80, 0x04,
+ 0x00, 0x16, 0xc2, 0x19,
+ 0xe0, 0x0c, 0x41, 0xf6,
+ 0xfc, 0x04, 0xbe, 0x0e,
+ 0xe8, 0x0d, 0x82, 0x01,
+ 0x9f, 0xfc, 0x2f, 0x88,
+ 0xbc, 0x0e, 0xbe, 0x04,
+ 0x4a, 0x18, 0x81, 0x85,
+ 0x4c, 0x91, 0xef, 0xd4,
+ 0xc0, 0x38, 0x63, 0x29,
+ 0xef, 0xc0, 0x48, 0xe8,
+ 0x63, 0x15, 0x0c, 0x09,
+ 0x4f, 0x06, 0x40, 0x38,
+ 0xa5, 0x0b, 0xe1, 0x14,
+ 0x70, 0xb8, 0x82, 0x15,
+ 0x8c, 0x0b, 0x6f, 0xf8,
+ 0x4c, 0x01, 0xbc, 0x0e,
+ 0xc0, 0x38, 0x63, 0x29,
+ 0xe1, 0x3c, 0x00, 0x86,
+ 0x80, 0x18, 0x80, 0x04,
+ 0x80, 0x16, 0xe0, 0x19,
+ 0x80, 0x18, 0x9c, 0x04,
+ 0xf3, 0xbc, 0x42, 0x10,
+ 0x3c, 0x04, 0x80, 0x16,
+ 0x0c, 0x0c, 0x98, 0xf1,
+ 0xdd, 0x93, 0xf2, 0x7c,
0xfa, 0x7c, 0x04, 0x0c,
0xec, 0x30, 0x1e, 0xf0,
0x08, 0x09, 0x80, 0x4b,
@@ -17511,12 +17677,12 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x73, 0xf1, 0x4c, 0x00,
0x28, 0xba, 0xc0, 0xff,
0x81, 0x6b, 0x88, 0x63,
- 0x74, 0xb8, 0x80, 0xf5,
+ 0x6d, 0x98, 0x80, 0xf5,
0x88, 0x0b, 0x68, 0x10,
0xa1, 0x0b, 0x3c, 0x44,
0xbe, 0x04, 0x8c, 0x15,
0x80, 0xf5, 0x81, 0x6b,
- 0x68, 0x10, 0x72, 0x48,
+ 0x68, 0x10, 0x6b, 0x28,
0x3c, 0x44, 0x88, 0x0b,
0x88, 0xf5, 0xa1, 0x0b,
0xa1, 0x0b, 0xa4, 0x0a,
@@ -17546,7 +17712,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x40, 0x2d, 0x67, 0xcd,
0xe0, 0x0c, 0x0e, 0x36,
0x60, 0x0c, 0x02, 0x36,
- 0x7f, 0xb8, 0x88, 0x0b,
+ 0x75, 0x38, 0x88, 0x0b,
0x23, 0x0b, 0xef, 0xcc,
0x0e, 0x06, 0x98, 0xf1,
0x8e, 0x0b, 0xc0, 0x00,
@@ -17562,21 +17728,21 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x83, 0x41, 0x00, 0x04,
0x8c, 0x0b, 0x00, 0x86,
0x63, 0x7d, 0x0c, 0x15,
- 0x40, 0x98, 0xc0, 0x0b,
- 0x82, 0x2b, 0x68, 0x18,
+ 0x79, 0x78, 0xc0, 0x0b,
+ 0x82, 0x2b, 0x68, 0x14,
0x63, 0x11, 0x0c, 0x09,
0x40, 0x4a, 0xc0, 0x2d,
0x82, 0xc5, 0xe0, 0x80,
- 0x6f, 0xf8, 0x5d, 0xc8,
- 0x4f, 0x38, 0x8c, 0x0b,
+ 0x6f, 0xf8, 0x5e, 0x08,
+ 0x48, 0x18, 0x8c, 0x0b,
0x8c, 0x0b, 0x68, 0x14,
0x79, 0x41, 0x02, 0x06,
0x8c, 0x0b, 0x5d, 0xcd,
- 0xef, 0xf8, 0x62, 0x88,
+ 0xef, 0xf8, 0x62, 0xc8,
0x0c, 0x0b, 0x81, 0x55,
- 0x63, 0xf8, 0x8e, 0x1b,
+ 0x64, 0x38, 0x8e, 0x1b,
0x00, 0x8b, 0xef, 0xf4,
- 0x4d, 0x58, 0x8c, 0x0b,
+ 0x46, 0x38, 0x8c, 0x0b,
0x0c, 0x09, 0xe8, 0x14,
0xc0, 0x2c, 0x6d, 0x01,
0x65, 0x3d, 0x4c, 0x01,
@@ -17616,11 +17782,11 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x12, 0x06, 0x04, 0x75,
0x02, 0x06, 0xc0, 0x00,
0x5d, 0xcd, 0x79, 0x41,
- 0x5d, 0x78, 0x8e, 0x0b,
+ 0x5d, 0xb8, 0x8e, 0x0b,
0x01, 0xd5, 0xef, 0xf8,
0x03, 0x31, 0x80, 0x8b,
0x0c, 0x1b, 0x8e, 0x0b,
- 0x61, 0xd8, 0x92, 0x2b,
+ 0x62, 0x18, 0x92, 0x2b,
0x00, 0x8b, 0xef, 0xf4,
0x12, 0x0a, 0x82, 0x91,
0xfc, 0xd5, 0xe0, 0x40,
@@ -17652,7 +17818,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x40, 0x16, 0x66, 0x35,
0x0e, 0x29, 0x8e, 0x0b,
0xc0, 0x2c, 0x6d, 0x09,
- 0x6f, 0xc4, 0x71, 0xa8,
+ 0x6f, 0xc8, 0x41, 0x88,
0x80, 0x8b, 0x82, 0x19,
0x6d, 0x41, 0x0e, 0x09,
0x82, 0x01, 0xc0, 0x2c,
@@ -17668,7 +17834,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x85, 0x31, 0x40, 0x0b,
0x63, 0x85, 0x00, 0x25,
0x81, 0x41, 0x40, 0x0b,
- 0xe0, 0x14, 0x33, 0x68,
+ 0xe0, 0x14, 0x2c, 0x48,
0xfa, 0x00, 0x04, 0x0c,
0x0c, 0x09, 0x80, 0x6b,
0xc0, 0x2c, 0x6d, 0x51,
@@ -17682,7 +17848,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x0c, 0x19, 0x8f, 0xfc,
0xc0, 0x2c, 0x6d, 0x51,
0xe0, 0x84, 0x42, 0x0a,
- 0x67, 0xb8, 0x82, 0x85,
+ 0x62, 0x58, 0x82, 0x85,
0x8c, 0x0b, 0x6f, 0xec,
0x67, 0xc9, 0x0c, 0x19,
0xb1, 0x1b, 0xc0, 0x2d,
@@ -17708,18 +17874,18 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0xe0, 0x80, 0x40, 0x0a,
0x0d, 0x11, 0x8c, 0x85,
0x79, 0x41, 0x04, 0x06,
- 0x4e, 0x78, 0xdd, 0xcd,
+ 0x4e, 0xb8, 0xdd, 0xcd,
0x8c, 0x0b, 0x6f, 0xf8,
0x80, 0x85, 0xa1, 0x0b,
0xf2, 0x84, 0x0c, 0x0c,
- 0x6b, 0x98, 0xdd, 0x93,
+ 0x6b, 0xd8, 0xdd, 0x93,
0x8c, 0x0b, 0x6f, 0xf4,
0x6a, 0xad, 0x0c, 0x09,
0x0c, 0x79, 0xc0, 0x2b,
0xc0, 0x2c, 0x6c, 0xfd,
0x1e, 0x79, 0xa3, 0x0b,
0x9c, 0x00, 0x40, 0x60,
- 0x08, 0x10, 0x72, 0xc8,
+ 0x08, 0x10, 0x6b, 0xa8,
0x9a, 0x80, 0x02, 0x74,
0x6d, 0x51, 0x0c, 0x09,
0x40, 0x0a, 0xc0, 0x2c,
@@ -17735,11 +17901,11 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x04, 0x06, 0x0f, 0x11,
0xdd, 0xcd, 0x79, 0x41,
0x0c, 0x0c, 0x8c, 0x0b,
- 0x0b, 0x18, 0xf2, 0x84,
+ 0x0b, 0x58, 0xf2, 0x84,
0xc1, 0xc3, 0xff, 0xf8,
0xfa, 0x04, 0x04, 0x4c,
0x81, 0x01, 0x00, 0x6b,
- 0x6f, 0xe0, 0x6a, 0xc8,
+ 0x6f, 0xe0, 0x65, 0x68,
0x00, 0x7b, 0x81, 0x11,
0xe1, 0x48, 0x41, 0x86,
0x80, 0x08, 0x80, 0x04,
@@ -17754,10 +17920,10 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0xc0, 0x2c, 0x6c, 0xfd,
0x88, 0xb5, 0xa1, 0x0b,
0x60, 0x3c, 0x41, 0xf6,
- 0x61, 0xd8, 0x83, 0x11,
+ 0x4a, 0x78, 0x83, 0x11,
0x42, 0x06, 0xef, 0x7c,
0x8c, 0x0b, 0x60, 0x00,
- 0xef, 0xe0, 0x7e, 0xa8,
+ 0xef, 0xe0, 0x79, 0x48,
0x61, 0x38, 0x01, 0x06,
0xe0, 0x0c, 0x43, 0xf6,
0x0c, 0x29, 0x80, 0x04,
@@ -17766,13 +17932,13 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0xc0, 0x00, 0x40, 0x15,
0x42, 0x16, 0xfe, 0x35,
0x8c, 0x0b, 0x60, 0x00,
- 0xef, 0xe0, 0x7d, 0x88,
+ 0xef, 0xe0, 0x78, 0x28,
0x67, 0xcd, 0x0c, 0x09,
0x40, 0x00, 0xc0, 0x2d,
0x4c, 0x01, 0xf3, 0xec,
0xc0, 0x2d, 0x67, 0xcd,
0x8e, 0x0b, 0x03, 0x11,
- 0xef, 0xe0, 0x66, 0xa8,
+ 0xef, 0xe0, 0x61, 0x48,
0x0c, 0x4c, 0x81, 0x01,
0xdd, 0x93, 0xf2, 0x04,
0xfe, 0x7c, 0x04, 0x0c,
@@ -17786,10 +17952,10 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x00, 0x98, 0xfe, 0x0e,
0xc0, 0x00, 0x40, 0x01,
0x64, 0x50, 0x02, 0xf0,
- 0x7f, 0xb8, 0x8c, 0x0b,
+ 0x77, 0x98, 0x8c, 0x0b,
0x80, 0xab, 0xef, 0xc8,
0x60, 0x48, 0x02, 0x06,
- 0x6b, 0xb8, 0x8c, 0x0b,
+ 0x64, 0x98, 0x8c, 0x0b,
0x00, 0x60, 0xe8, 0x14,
0x40, 0x09, 0x64, 0x01,
0x61, 0x01, 0x12, 0x06,
@@ -17813,12 +17979,12 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x45, 0x06, 0x50, 0xa0,
0x06, 0x46, 0xc0, 0x18,
0x40, 0x60, 0x40, 0x00,
- 0x6c, 0x78, 0xdc, 0x00,
+ 0x68, 0xf8, 0xdc, 0x00,
0x0b, 0x34, 0xe8, 0x04,
0xe4, 0x40, 0x0a, 0xf0,
0x8c, 0x1b, 0x0c, 0x0b,
0x96, 0x4b, 0x7c, 0x24,
- 0xef, 0xc8, 0x7d, 0xa8,
+ 0xef, 0xc8, 0x75, 0x88,
0xa1, 0xab, 0x80, 0xab,
0x7e, 0x14, 0x84, 0xb5,
0x91, 0x0a, 0x81, 0xa1,
@@ -17839,20 +18005,20 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0xdd, 0x93, 0x80, 0x16,
0xfa, 0x84, 0x04, 0x0c,
0x80, 0x7b, 0x02, 0x6b,
- 0xef, 0xec, 0x79, 0x48,
+ 0xef, 0xec, 0x79, 0x88,
0x82, 0xb5, 0xa1, 0x0b,
0x66, 0x35, 0x0e, 0x1b,
0x42, 0x0a, 0xc0, 0x16,
0x80, 0xe5, 0xe0, 0x80,
0x8c, 0x1b, 0x0e, 0x0b,
0xf2, 0x84, 0x0c, 0x0c,
- 0xe0, 0x10, 0x1e, 0x08,
+ 0xe0, 0x10, 0x16, 0xe8,
0xf2, 0x84, 0x0c, 0x0c,
0xc1, 0xc3, 0xdd, 0x93,
0x63, 0x89, 0x00, 0x15,
0x85, 0x31, 0x40, 0x0b,
0x04, 0x10, 0x83, 0x41,
- 0x1c, 0x58, 0xec, 0x28,
+ 0x15, 0x38, 0xec, 0x28,
0xc1, 0xc3, 0xe0, 0x14,
0xfa, 0x00, 0x04, 0x0c,
0x0c, 0x09, 0x80, 0x6b,
@@ -17868,72 +18034,42 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x10, 0xd8, 0xf2, 0x00,
0x0c, 0x0c, 0xff, 0xfc,
0xdd, 0x93, 0xf2, 0x00,
- 0xfa, 0x0c, 0x04, 0x0c,
- 0x81, 0x81, 0x00, 0x6b,
+ 0xfa, 0x84, 0x04, 0x0c,
+ 0x81, 0x71, 0x00, 0x6b,
0x6d, 0x15, 0x0c, 0x09,
0x40, 0x0a, 0xc0, 0x2c,
- 0x9c, 0x65, 0xe0, 0x90,
- 0x6f, 0xec, 0x5b, 0x28,
- 0x60, 0x18, 0x8c, 0x0b,
+ 0x8c, 0xc5, 0xe0, 0x90,
+ 0x6f, 0xec, 0x55, 0xc8,
+ 0x5a, 0xb8, 0x8c, 0x0b,
0x8c, 0x0b, 0x6f, 0xec,
- 0x64, 0xb1, 0x0c, 0x09,
- 0x80, 0x7b, 0x40, 0x38,
- 0x8e, 0x55, 0xa1, 0x0b,
- 0x60, 0x01, 0x01, 0x46,
- 0x03, 0x06, 0x40, 0x7d,
- 0xc0, 0x0a, 0x60, 0x01,
- 0x61, 0x09, 0x4c, 0x05,
- 0x00, 0x06, 0x40, 0x0e,
- 0xc0, 0x03, 0x60, 0x01,
- 0x61, 0x0d, 0x4c, 0x05,
- 0x40, 0xc6, 0x40, 0x0e,
- 0xc0, 0x64, 0x60, 0x01,
- 0x61, 0x15, 0x4c, 0x05,
- 0xa1, 0x01, 0x40, 0x0e,
- 0x61, 0x11, 0x4c, 0x15,
- 0x43, 0x06, 0x40, 0x0e,
- 0xc1, 0x2d, 0x60, 0x49,
- 0x62, 0x41, 0x4c, 0x03,
- 0x4c, 0x03, 0xc0, 0x1c,
- 0x40, 0x1c, 0x62, 0x45,
- 0xe0, 0x20, 0x00, 0x06,
- 0x61, 0x19, 0x4c, 0x15,
- 0x4c, 0x83, 0xc0, 0x0e,
- 0xc0, 0x1c, 0x62, 0x39,
- 0x62, 0x3d, 0x4c, 0x83,
- 0x4c, 0x03, 0xc0, 0x1c,
- 0xc0, 0x1c, 0x62, 0x49,
- 0x62, 0x4d, 0x4c, 0x03,
- 0x4c, 0x03, 0xc0, 0x1c,
- 0xc0, 0x1c, 0x62, 0x51,
- 0x62, 0x55, 0x4c, 0x83,
- 0x0c, 0x09, 0xc0, 0x1c,
- 0xc0, 0x38, 0x64, 0xb5,
- 0x00, 0x60, 0xa1, 0x0b,
- 0x00, 0xe1, 0x04, 0x21,
- 0x07, 0x01, 0x02, 0x60,
- 0x04, 0x60, 0x80, 0x54,
- 0x00, 0x54, 0x07, 0x41,
- 0x06, 0x41, 0x06, 0x60,
- 0x44, 0x98, 0x80, 0x58,
- 0x0c, 0x09, 0x8f, 0xd0,
- 0xc0, 0x38, 0x64, 0xb9,
- 0x00, 0x60, 0xa1, 0x0b,
- 0x00, 0x54, 0x07, 0x01,
- 0x07, 0x41, 0x02, 0x60,
- 0x49, 0x78, 0x80, 0x54,
- 0x04, 0x60, 0x0f, 0xd0,
- 0x80, 0x58, 0x06, 0x40,
- 0x63, 0x21, 0x0c, 0x09,
+ 0x6f, 0xec, 0x68, 0xe8,
+ 0x0c, 0x09, 0x8c, 0x0b,
+ 0x40, 0x38, 0x64, 0xb5,
+ 0xa1, 0x0b, 0x80, 0x7b,
+ 0x04, 0x21, 0x00, 0x60,
+ 0x02, 0x60, 0x00, 0xe1,
+ 0x80, 0x54, 0x07, 0x01,
+ 0x07, 0x41, 0x04, 0x60,
+ 0x06, 0x60, 0x00, 0x54,
+ 0x80, 0x58, 0x06, 0x41,
+ 0x8f, 0xd0, 0x42, 0xa8,
+ 0x64, 0xb9, 0x0c, 0x09,
0xa1, 0x0b, 0xc0, 0x38,
- 0x50, 0x70, 0x02, 0x05,
- 0x8c, 0x0b, 0x9c, 0x00,
- 0xf2, 0x0c, 0x0c, 0x0c,
- 0xff, 0xec, 0x27, 0xa8,
- 0x0c, 0x0c, 0x90, 0x0b,
- 0xdd, 0x93, 0xf2, 0x0c,
+ 0x07, 0x01, 0x00, 0x60,
+ 0x02, 0x60, 0x00, 0x54,
+ 0x80, 0x54, 0x07, 0x41,
+ 0x0f, 0xd0, 0x47, 0x88,
+ 0x06, 0x40, 0x04, 0x60,
+ 0x0c, 0x09, 0x80, 0x58,
+ 0xc0, 0x38, 0x63, 0x21,
+ 0x80, 0xc5, 0xa1, 0x0b,
+ 0x0c, 0x0c, 0x8c, 0x0b,
+ 0x2b, 0xb8, 0xf2, 0x84,
+ 0x8e, 0x0b, 0xff, 0xec,
+ 0xf2, 0x84, 0x0c, 0x0c,
+ 0xc1, 0xc3, 0xdd, 0x93,
0xfa, 0x0c, 0x04, 0x0c,
- 0x0a, 0x06, 0x00, 0x6b,
+ 0x0a, 0x86, 0x00, 0x6b,
0x0c, 0x09, 0xef, 0xdc,
0xc0, 0x2c, 0x6d, 0x0d,
0x6d, 0x15, 0x0c, 0x19,
@@ -17966,7 +18102,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x40, 0x10, 0x40, 0x2c,
0x4c, 0x01, 0x93, 0xf0,
0x80, 0x2c, 0x0d, 0x15,
- 0x54, 0x38, 0x80, 0x85,
+ 0x54, 0x78, 0x80, 0x85,
0x8c, 0x0b, 0x68, 0x04,
0x63, 0x11, 0x0c, 0x09,
0x40, 0x0a, 0xc0, 0x2d,
@@ -17989,21 +18125,21 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0xdd, 0x93, 0xf2, 0x0c,
0xfa, 0x00, 0x04, 0x0c,
0x68, 0x00, 0x43, 0x08,
- 0x48, 0x58, 0x80, 0x6b,
+ 0x48, 0x98, 0x80, 0x6b,
0x8c, 0x0b, 0x68, 0x0c,
0x6c, 0x11, 0x0c, 0x09,
0x40, 0x0a, 0xc0, 0x2b,
0x84, 0x65, 0xe0, 0x94,
- 0xef, 0xdc, 0x01, 0x86,
+ 0xef, 0xdc, 0x40, 0x06,
0x40, 0x0a, 0x80, 0x08,
0x82, 0xb5, 0xe0, 0x80,
0x6c, 0x21, 0x0c, 0x09,
0xa7, 0x0b, 0xc0, 0x2b,
- 0x4b, 0xf8, 0x82, 0xb5,
+ 0x4f, 0xb8, 0x82, 0xb5,
0x8c, 0x0b, 0x6f, 0xfc,
- 0x68, 0x04, 0x6a, 0xc8,
+ 0x68, 0x04, 0x6b, 0x08,
0x81, 0x45, 0x8c, 0x0b,
- 0x6f, 0xd4, 0x51, 0x88,
+ 0x6f, 0xd4, 0x4e, 0xa8,
0xa1, 0x0b, 0x8c, 0x0b,
0x57, 0x58, 0x82, 0x55,
0x8c, 0x0b, 0x68, 0x00,
@@ -18026,7 +18162,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x85, 0x15, 0x80, 0x2b,
0xe0, 0x00, 0x42, 0x46,
0x6c, 0x1d, 0x40, 0x11,
- 0x02, 0x06, 0x40, 0x2b,
+ 0x02, 0x86, 0x40, 0x2b,
0x84, 0x28, 0xef, 0xdc,
0xf0, 0xc0, 0x44, 0x20,
0xe0, 0x40, 0x04, 0x0a,
@@ -18043,13 +18179,13 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x6e, 0x09, 0x00, 0x1b,
0xc4, 0x19, 0xc0, 0x15,
0x6e, 0x09, 0x40, 0x13,
- 0x00, 0x06, 0x40, 0x15,
+ 0x00, 0x86, 0x40, 0x15,
0x80, 0x18, 0xef, 0xdc,
0xf3, 0xf8, 0x42, 0x10,
0xdd, 0x93, 0x80, 0x16,
0xfa, 0x9c, 0x04, 0x0c,
0x81, 0x01, 0x00, 0x7b,
- 0x6f, 0xe0, 0x44, 0x08,
+ 0x6f, 0xe0, 0x42, 0x68,
0x81, 0x81, 0x81, 0x11,
0x6c, 0x21, 0x0e, 0x09,
0x80, 0x6b, 0x40, 0x2b,
@@ -18063,16 +18199,16 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x00, 0x04, 0xc0, 0xff,
0x4e, 0x03, 0xfc, 0x94,
0x40, 0x15, 0x6e, 0x09,
- 0x4d, 0x58, 0x8e, 0x0b,
+ 0x60, 0x98, 0x8e, 0x0b,
0x48, 0x38, 0xef, 0xbc,
0x8e, 0x0b, 0x68, 0x00,
0x64, 0xd5, 0x0e, 0x09,
0xa7, 0x0b, 0xc0, 0x2b,
0xa5, 0x0b, 0x86, 0x05,
- 0x00, 0x06, 0x08, 0xc5,
+ 0x00, 0x86, 0x08, 0xc5,
0xa3, 0x0b, 0x8f, 0xdc,
0x03, 0xd5, 0x88, 0xf5,
- 0xef, 0xdc, 0x00, 0x06,
+ 0xef, 0xdc, 0x00, 0x86,
0x6e, 0x09, 0x0e, 0x0b,
0x40, 0x00, 0xc0, 0x15,
0xc0, 0xff, 0x73, 0x71,
@@ -18080,7 +18216,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x6e, 0x09, 0x4e, 0x03,
0x0c, 0x0c, 0xc0, 0x15,
0xdd, 0x93, 0xf2, 0x9c,
- 0xef, 0xdc, 0x00, 0x06,
+ 0xef, 0xdc, 0x00, 0x86,
0x42, 0x4a, 0x80, 0x18,
0x80, 0xe5, 0xe0, 0x8c,
0x6c, 0x15, 0x0e, 0x19,
@@ -18089,21 +18225,21 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x01, 0x55, 0x80, 0x08,
0xfc, 0x08, 0x00, 0x04,
0xc8, 0x09, 0x80, 0x08,
- 0xef, 0xdc, 0x02, 0x06,
- 0x51, 0x38, 0x84, 0x06,
+ 0xef, 0xdc, 0x02, 0x86,
+ 0x4f, 0x98, 0x84, 0x06,
0x8e, 0x0b, 0x6f, 0xe4,
- 0xef, 0xdc, 0x12, 0x06,
+ 0xef, 0xdc, 0x12, 0x86,
0x40, 0x0a, 0xa4, 0x08,
0x82, 0xb5, 0xe0, 0x80,
0x40, 0x0a, 0xa4, 0x08,
0x82, 0xf5, 0xe0, 0x88,
0x8e, 0x0b, 0x3d, 0x11,
- 0xef, 0xe0, 0x54, 0x08,
+ 0xef, 0xe0, 0x52, 0x68,
0x68, 0x00, 0x49, 0x68,
0x87, 0x25, 0x8e, 0x0b,
0x8e, 0x0b, 0x3f, 0x11,
0xf2, 0x9c, 0x0c, 0x0c,
- 0xff, 0xe0, 0x13, 0x68,
+ 0xff, 0xe0, 0x11, 0xc8,
0x6e, 0x09, 0x0e, 0x05,
0x02, 0x06, 0x40, 0x09,
0xc0, 0xfa, 0x60, 0x01,
@@ -18121,14 +18257,14 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0xfc, 0x98, 0x00, 0x04,
0x6e, 0x09, 0x4e, 0x03,
0x8e, 0x0b, 0x40, 0x15,
- 0xef, 0xe0, 0x51, 0x28,
+ 0xef, 0xe0, 0x4f, 0x88,
0x60, 0x3c, 0x41, 0xf6,
- 0x73, 0xb8, 0x83, 0x11,
- 0x43, 0xd8, 0xef, 0x78,
+ 0x60, 0x18, 0x83, 0x11,
+ 0x47, 0xd8, 0xef, 0x78,
0x52, 0x81, 0xef, 0xf0,
0x03, 0x11, 0xe0, 0xa0,
0x0c, 0x0c, 0x8c, 0x0b,
- 0x3a, 0x18, 0xf2, 0x9c,
+ 0x38, 0x78, 0xf2, 0x9c,
0xc1, 0xc3, 0xff, 0xdc,
0xfa, 0x00, 0x04, 0x0c,
0x01, 0x46, 0x00, 0x6b,
@@ -18141,8 +18277,8 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x88, 0x24, 0x80, 0x08,
0x08, 0x34, 0xc5, 0x07,
0xf0, 0x0c, 0x44, 0x00,
- 0x68, 0x10, 0x7d, 0x08,
- 0x02, 0x06, 0x8c, 0x0b,
+ 0x68, 0x10, 0x79, 0xa8,
+ 0x02, 0x86, 0x8c, 0x0b,
0x48, 0x86, 0x6f, 0xdc,
0x86, 0x0e, 0xe0, 0x3c,
0xc4, 0x24, 0x86, 0x04,
@@ -18178,20 +18314,20 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x41, 0xf6, 0x00, 0x6b,
0x4c, 0x01, 0xe0, 0x08,
0x40, 0x2b, 0x6c, 0x1d,
- 0x49, 0xf8, 0xb7, 0x11,
+ 0x48, 0x58, 0xb7, 0x11,
0x8c, 0x0b, 0x6f, 0xe0,
0x64, 0xcd, 0x0c, 0x15,
0x02, 0x8a, 0xc0, 0x05,
0x80, 0xf5, 0xe5, 0x94,
0x8c, 0x0b, 0x01, 0x21,
0xf2, 0x00, 0x0c, 0x0c,
- 0xe0, 0x10, 0x0a, 0x28,
+ 0xe0, 0x10, 0x06, 0xc8,
0x8c, 0x0b, 0x3b, 0x11,
- 0xef, 0xe0, 0x48, 0xe8,
+ 0xef, 0xe0, 0x47, 0x48,
0x60, 0x04, 0x42, 0x46,
0x8c, 0x0b, 0x81, 0x21,
0xf2, 0x00, 0x0c, 0x0c,
- 0xe0, 0x10, 0x09, 0x68,
+ 0xe0, 0x10, 0x06, 0x08,
0xfa, 0x7c, 0x04, 0x4c,
0x00, 0x06, 0x00, 0x6b,
0x00, 0x04, 0xe1, 0x38,
@@ -18200,12 +18336,12 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0xa1, 0xab, 0x80, 0xa8,
0x0c, 0x29, 0x82, 0x65,
0x40, 0x2b, 0x6c, 0x1d,
- 0x6d, 0xf8, 0x8c, 0x0b,
+ 0x67, 0x38, 0x8c, 0x0b,
0x94, 0x1b, 0x6f, 0xc8,
0x0e, 0x08, 0xa1, 0x0b,
0x0e, 0x60, 0xc0, 0x00,
0x40, 0xb3, 0x64, 0x51,
- 0x62, 0x58, 0x8c, 0x0b,
+ 0x60, 0xb8, 0x8c, 0x0b,
0x8e, 0x1b, 0x6f, 0xe0,
0x67, 0xcd, 0x0c, 0x09,
0x02, 0x04, 0xc0, 0x2d,
@@ -18233,7 +18369,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x81, 0x91, 0x13, 0xa5,
0xfb, 0xfc, 0x16, 0x0a,
0x13, 0x11, 0xa6, 0x05,
- 0x43, 0x18, 0x8c, 0x0b,
+ 0x41, 0x78, 0x8c, 0x0b,
0x12, 0x0a, 0xef, 0xe0,
0x41, 0x06, 0x7b, 0xfc,
0x4c, 0x01, 0xe0, 0x00,
@@ -18241,26 +18377,26 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x41, 0x26, 0x9c, 0xa5,
0x4c, 0x01, 0xe0, 0x00,
0x40, 0x2b, 0x6c, 0x1d,
- 0x5d, 0x98, 0x8c, 0x0b,
+ 0x5d, 0xd8, 0x8c, 0x0b,
0x0f, 0x14, 0xe8, 0x00,
- 0x64, 0xd8, 0x8c, 0x0b,
+ 0x63, 0x38, 0x8c, 0x0b,
0x19, 0x11, 0xef, 0xe0,
- 0x41, 0x98, 0x8c, 0x0b,
- 0x41, 0x66, 0xef, 0xe0,
+ 0x7f, 0xf8, 0x8c, 0x0b,
+ 0x41, 0x66, 0xef, 0xdc,
0x4c, 0x01, 0xe0, 0x00,
0x40, 0x2b, 0x6c, 0x1d,
- 0x6e, 0xf8, 0x8c, 0x0b,
+ 0x6f, 0x38, 0x8c, 0x0b,
0x80, 0xab, 0xe8, 0x00,
0x98, 0xf5, 0xa1, 0xab,
0xe0, 0x00, 0x41, 0x36,
0x6c, 0x1d, 0x4c, 0x01,
0x8c, 0x0b, 0x40, 0x2b,
- 0xe8, 0x10, 0x5c, 0xc8,
+ 0xe8, 0x10, 0x59, 0x68,
0xa1, 0xab, 0x80, 0xab,
0x41, 0x46, 0x96, 0x95,
0x4c, 0x01, 0xe0, 0x00,
0x40, 0x2b, 0x6c, 0x1d,
- 0x4d, 0xd8, 0x8c, 0x0b,
+ 0x4a, 0x78, 0x8c, 0x0b,
0x80, 0xab, 0xe8, 0x14,
0x94, 0x35, 0xa1, 0xab,
0x6d, 0x09, 0x0c, 0x09,
@@ -18271,7 +18407,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x6c, 0x1d, 0x4c, 0x01,
0x9e, 0x29, 0x40, 0x2b,
0x8c, 0x0b, 0x02, 0x19,
- 0xef, 0xc0, 0x64, 0x48,
+ 0xef, 0xc0, 0x77, 0xe8,
0xa1, 0xab, 0x80, 0xab,
0x41, 0x76, 0x8e, 0x95,
0x4c, 0x01, 0xe0, 0x00,
@@ -18284,7 +18420,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x4c, 0x11, 0x80, 0x04,
0x40, 0x2b, 0x6c, 0x1d,
0x00, 0x1c, 0x85, 0x11,
- 0x5a, 0x38, 0x8c, 0x0b,
+ 0x5e, 0x38, 0x8c, 0x0b,
0x80, 0xab, 0xef, 0xf4,
0x88, 0x35, 0xa1, 0xab,
0x6c, 0x71, 0x0c, 0x09,
@@ -18304,16 +18440,16 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0xa1, 0xab, 0x83, 0x91,
0x83, 0x91, 0xe4, 0x25,
0x8e, 0x1b, 0x0c, 0x0b,
- 0xef, 0xe0, 0x56, 0x08,
+ 0xef, 0xe0, 0x54, 0x68,
0x90, 0x1b, 0x0c, 0x0b,
- 0xef, 0xe0, 0x59, 0x48,
+ 0xef, 0xe0, 0x57, 0xa8,
0xd8, 0xe5, 0xa1, 0xab,
0x6c, 0x91, 0x0c, 0x09,
0x21, 0x0b, 0xc0, 0x2c,
0xe0, 0x00, 0x41, 0xa6,
0x6c, 0x1d, 0x4c, 0x01,
0x40, 0x60, 0x40, 0x2b,
- 0x5a, 0x98, 0x9c, 0x00,
+ 0x53, 0xd8, 0x9c, 0x00,
0x94, 0x0b, 0x8f, 0xc8,
0xf2, 0x7c, 0x0c, 0x4c,
0xc1, 0xc3, 0xdd, 0x93,
@@ -18363,7 +18499,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x42, 0x0a, 0x40, 0x0b,
0x4c, 0x21, 0xe0, 0x9c,
0xc0, 0x2c, 0x6c, 0xf5,
- 0x64, 0x58, 0x80, 0xe5,
+ 0x68, 0x58, 0x80, 0xe5,
0x8c, 0x0b, 0x6f, 0xf0,
0x66, 0x35, 0x0c, 0x1b,
0x42, 0x0a, 0xc0, 0x16,
@@ -18376,41 +18512,43 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x67, 0xe5, 0x0c, 0x29,
0x0c, 0x19, 0xc0, 0x27,
0xc0, 0x27, 0x67, 0xe1,
- 0xe8, 0x04, 0x41, 0x48,
+ 0xe8, 0x04, 0x41, 0x88,
0xa1, 0x7b, 0x80, 0x7b,
- 0x0c, 0x1b, 0x9e, 0x75,
+ 0x0c, 0x1b, 0x9e, 0xf5,
0xc0, 0x16, 0x66, 0x35,
0xe0, 0xa4, 0x42, 0x0a,
0x03, 0x11, 0x82, 0x85,
- 0x7a, 0xd8, 0x81, 0x21,
- 0x8c, 0x0b, 0x6f, 0xbc,
+ 0x4e, 0x78, 0x81, 0x21,
+ 0x8c, 0x0b, 0x6f, 0xc0,
0xa1, 0x7b, 0x80, 0x7b,
- 0x0c, 0x1b, 0x9a, 0xb5,
+ 0x0c, 0x1b, 0x9c, 0x35,
0xc0, 0x16, 0x66, 0x35,
0xe0, 0xb8, 0x42, 0x0a,
- 0x7f, 0x58, 0x80, 0xe5,
+ 0x7b, 0xf8, 0x80, 0xe5,
0x8c, 0x0b, 0x68, 0x0c,
0xa1, 0x7b, 0x80, 0x7b,
- 0x0c, 0x09, 0x98, 0x35,
+ 0x0c, 0x09, 0x98, 0xb5,
0xc0, 0x2d, 0x63, 0x11,
0xe0, 0x80, 0x40, 0x0a,
0xdc, 0x00, 0x40, 0x60,
- 0xcf, 0xec, 0x63, 0xc8,
+ 0xcf, 0xec, 0x67, 0xc8,
0x65, 0x51, 0x0c, 0x09,
0x43, 0x46, 0x40, 0x2b,
- 0x84, 0x14, 0xe1, 0x04,
- 0xec, 0x04, 0x00, 0x00,
- 0x04, 0x06, 0x8e, 0x09,
- 0xe0, 0x08, 0x42, 0x06,
- 0x63, 0x15, 0x0c, 0x09,
- 0x4c, 0x11, 0xc0, 0x38,
+ 0x04, 0x14, 0xe1, 0x04,
+ 0x00, 0x00, 0x85, 0x51,
+ 0x8e, 0x09, 0xec, 0x04,
+ 0x0c, 0x09, 0x84, 0x06,
+ 0xc0, 0x38, 0x63, 0x2d,
+ 0x40, 0x06, 0x21, 0x0b,
+ 0x4c, 0x01, 0xe0, 0x08,
0xc0, 0x2b, 0x6c, 0x1d,
- 0x02, 0x85, 0xa5, 0x0b,
- 0x80, 0x00, 0x0a, 0x76,
- 0x02, 0x05, 0xa3, 0x0b,
+ 0x0c, 0x09, 0x82, 0xf5,
+ 0xc0, 0x38, 0x63, 0x15,
+ 0x02, 0x45, 0xa5, 0x0b,
+ 0x80, 0x00, 0x0a, 0x86,
+ 0x00, 0xc5, 0xa3, 0x0b,
0x80, 0x00, 0x0a, 0x66,
- 0x0a, 0x26, 0xa1, 0x0b,
- 0x0a, 0x46, 0xc0, 0x00,
+ 0x0a, 0x46, 0xa1, 0x0b,
0x02, 0x60, 0x80, 0x00,
0x40, 0x54, 0x65, 0x41,
0x64, 0x11, 0x04, 0x60,
@@ -18418,8 +18556,8 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x40, 0xa2, 0x66, 0x71,
0xe4, 0x30, 0x00, 0xf0,
0x06, 0xf0, 0x21, 0x56,
- 0x63, 0xb8, 0xe4, 0x10,
- 0xa1, 0x0b, 0xef, 0x84,
+ 0x7f, 0x58, 0xe4, 0x10,
+ 0xa1, 0x0b, 0xef, 0x80,
0x0c, 0x1d, 0x0c, 0x29,
0x02, 0x06, 0x40, 0x2b,
0x84, 0xb5, 0xc0, 0x04,
@@ -18428,8 +18566,8 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x4c, 0x21, 0xc0, 0x9e,
0x40, 0x2b, 0x6c, 0x1d,
0x64, 0xa1, 0x02, 0x60,
- 0x5c, 0x78, 0xc0, 0xa3,
- 0xa1, 0x0b, 0xef, 0x84,
+ 0x78, 0x18, 0xc0, 0xa3,
+ 0xa1, 0x0b, 0xef, 0x80,
0x0c, 0x29, 0x86, 0x05,
0x40, 0x2b, 0x6c, 0x1d,
0xe0, 0x04, 0x02, 0x16,
@@ -18438,7 +18576,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x4c, 0x05, 0xe0, 0x0c,
0x40, 0x0a, 0x6e, 0x89,
0xe0, 0x0c, 0x02, 0x56,
- 0x6f, 0xc8, 0x50, 0x48,
+ 0x6f, 0xc8, 0x49, 0x48,
0x0e, 0x0b, 0x8c, 0x0b,
0x0c, 0x0c, 0xa8, 0xf1,
0xdd, 0x93, 0xf2, 0x04,
@@ -18457,7 +18595,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x0c, 0x19, 0xc0, 0xa3,
0xc0, 0x15, 0x63, 0x09,
0x6c, 0x1d, 0x4c, 0x51,
- 0x4e, 0xb8, 0xc0, 0x2b,
+ 0x62, 0x78, 0xc0, 0x2b,
0x0c, 0x09, 0xef, 0xa0,
0xc0, 0x2b, 0x6c, 0x11,
0x60, 0x94, 0x40, 0x4a,
@@ -18470,12 +18608,12 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x64, 0xc1, 0x04, 0x60,
0x06, 0x60, 0x40, 0xad,
0xc0, 0xad, 0x65, 0x21,
- 0x6f, 0xac, 0x5d, 0x48,
+ 0x6f, 0xac, 0x72, 0x88,
0x66, 0x20, 0x08, 0x60,
0x00, 0x60, 0xc0, 0xae,
0x40, 0xd8, 0x65, 0x61,
- 0x44, 0x58, 0x81, 0x11,
- 0x04, 0xc6, 0x6f, 0x74,
+ 0x70, 0x78, 0x81, 0x11,
+ 0x04, 0xc6, 0x6f, 0x70,
0x77, 0x65, 0xe0, 0x10,
0xc1, 0xc3, 0x81, 0x71,
0xf8, 0x7c, 0x04, 0xcc,
@@ -18483,7 +18621,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x03, 0x16, 0x40, 0x2c,
0x40, 0x11, 0xe0, 0x08,
0x40, 0x2b, 0x6c, 0x1d,
- 0xef, 0xdc, 0x09, 0x86,
+ 0xef, 0xdc, 0x48, 0x06,
0x6c, 0x79, 0x00, 0x19,
0x00, 0x79, 0xc0, 0x2c,
0x40, 0x2c, 0x6c, 0x75,
@@ -18541,7 +18679,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x58, 0x80, 0x01, 0x55,
0x58, 0xc0, 0xfc, 0x18,
0x08, 0xbb, 0xf3, 0xe0,
- 0xef, 0xdc, 0x09, 0x86,
+ 0xef, 0xdc, 0x48, 0x06,
0x6d, 0x0d, 0x40, 0xc1,
0x58, 0x0a, 0x40, 0x2c,
0x82, 0xc5, 0xe0, 0x84,
@@ -18626,7 +18764,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0xf0, 0x7c, 0x0c, 0xcc,
0xc1, 0xc3, 0xdd, 0x93,
0xfa, 0x04, 0x04, 0x4c,
- 0x68, 0x0c, 0x4a, 0x28,
+ 0x68, 0x0c, 0x46, 0x88,
0x0e, 0x01, 0x80, 0x7b,
0x40, 0x2c, 0x6d, 0x01,
0x00, 0x8a, 0x81, 0x61,
@@ -18635,7 +18773,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x0c, 0x46, 0x40, 0x2b,
0x02, 0x46, 0xe0, 0x0c,
0x8e, 0x0b, 0x60, 0x0c,
- 0xef, 0xc4, 0x77, 0xa8,
+ 0xef, 0xc4, 0x70, 0xa8,
0x0c, 0x06, 0xa1, 0x0b,
0x8c, 0x0b, 0x80, 0x00,
0xf2, 0x04, 0x0c, 0x4c,
@@ -18660,7 +18798,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x0c, 0x09, 0x86, 0x25,
0xc0, 0x2c, 0x6c, 0x89,
0x84, 0x85, 0xa1, 0x0b,
- 0x68, 0x0c, 0x45, 0xe8,
+ 0x68, 0x0c, 0x42, 0x48,
0x0c, 0x11, 0x8c, 0x0b,
0xc0, 0x2c, 0x6d, 0x05,
0x6c, 0x89, 0x0c, 0x29,
@@ -18687,7 +18825,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x84, 0x85, 0xa5, 0x3b,
0x84, 0x85, 0xa7, 0x3b,
0x5c, 0x08, 0xa1, 0x3b,
- 0x23, 0xb8, 0xda, 0x00,
+ 0x0f, 0xd8, 0xda, 0x00,
0x89, 0x75, 0xff, 0x70,
0x5c, 0x08, 0xa1, 0x2b,
0x45, 0x34, 0x9a, 0x00,
@@ -18857,7 +18995,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0xdd, 0x93, 0xf0, 0x1c,
0xfa, 0x04, 0x04, 0x4c,
0x42, 0x16, 0x00, 0x6b,
- 0x66, 0x38, 0xe0, 0x00,
+ 0x62, 0x98, 0xe0, 0x00,
0x0c, 0x09, 0xe8, 0x0c,
0x40, 0x2b, 0x6c, 0x45,
0xe1, 0x0c, 0x42, 0x46,
@@ -18894,7 +19032,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x8c, 0x0b, 0x40, 0x2b,
0x6c, 0x41, 0x0c, 0x19,
0x74, 0x78, 0xc0, 0x2b,
- 0x46, 0x38, 0xef, 0xfc,
+ 0x42, 0x98, 0xef, 0xfc,
0x8c, 0x0b, 0x68, 0x10,
0x0c, 0x4c, 0x81, 0x01,
0xdd, 0x93, 0xf2, 0x04,
@@ -18915,10 +19053,10 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x5e, 0x01, 0xe0, 0xd0,
0x5e, 0x01, 0xe0, 0xc0,
0x8c, 0x0b, 0x60, 0xb0,
- 0xe8, 0x0c, 0x5f, 0x08,
+ 0xe8, 0x0c, 0x5b, 0x68,
0x9f, 0x21, 0x01, 0x11,
0x8c, 0x3b, 0x0c, 0x0b,
- 0xe8, 0x04, 0x6d, 0x48,
+ 0xe8, 0x04, 0x69, 0xa8,
0x60, 0x90, 0x00, 0x84,
0xe1, 0x8c, 0x02, 0x84,
0x40, 0x00, 0x0d, 0x8e,
@@ -18941,7 +19079,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x92, 0x83, 0x07, 0x65,
0x6c, 0x1d, 0x0c, 0x29,
0x43, 0x76, 0x40, 0x2b,
- 0x51, 0x58, 0xe0, 0x00,
+ 0x4a, 0x58, 0xe0, 0x00,
0x8c, 0x0b, 0x6f, 0xc4,
0x5e, 0xb1, 0xa1, 0x0b,
0x5e, 0xa1, 0xc1, 0x30,
@@ -18991,7 +19129,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x83, 0x85, 0x80, 0xd0,
0x6c, 0x1d, 0x0c, 0x29,
0x43, 0x76, 0x40, 0x2b,
- 0x4b, 0x18, 0xe0, 0x00,
+ 0x44, 0x18, 0xe0, 0x00,
0x8c, 0x0b, 0x6f, 0xc4,
0xe0, 0x00, 0x4f, 0x76,
0x0f, 0x48, 0xa1, 0x0b,
@@ -19070,7 +19208,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0xfb, 0x80, 0x42, 0x12,
0x04, 0x04, 0x91, 0x04,
0x8c, 0x0b, 0x7a, 0x80,
- 0xe8, 0x04, 0x5a, 0x48,
+ 0xe8, 0x04, 0x56, 0xa8,
0xa1, 0x7b, 0x80, 0x7b,
0x0c, 0x0b, 0x90, 0x35,
0x4c, 0xd8, 0x8c, 0x1b,
@@ -19170,7 +19308,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x81, 0xc5, 0xea, 0x15,
0x6c, 0x1d, 0x00, 0x29,
0x43, 0x66, 0x40, 0x2b,
- 0x74, 0xb8, 0xe0, 0x08,
+ 0x6d, 0xb8, 0xe0, 0x08,
0x4d, 0x66, 0x6f, 0xc0,
0xa1, 0x0b, 0xe0, 0x08,
0x81, 0x61, 0x80, 0x55,
@@ -19246,7 +19384,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0xe0, 0x80, 0x40, 0x0a,
0x05, 0x01, 0x00, 0x60,
0x02, 0x06, 0x40, 0x9b,
- 0x63, 0xd8, 0xc0, 0x00,
+ 0x4f, 0xf8, 0xc0, 0x00,
0x04, 0x06, 0x4f, 0x6c,
0x0c, 0x09, 0xc0, 0x18,
0xc0, 0x2b, 0x6c, 0x21,
@@ -19256,10 +19394,10 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0xc2, 0x09, 0xf3, 0xf0,
0x6d, 0x21, 0x4c, 0x01,
0x8c, 0x0b, 0x40, 0x2c,
- 0xef, 0xf4, 0x7b, 0x08,
+ 0xef, 0xf4, 0x7a, 0xc8,
0x6d, 0x21, 0x0c, 0x09,
0x80, 0x7b, 0x40, 0x2c,
- 0x42, 0x86, 0x21, 0x7b,
+ 0x43, 0x06, 0x21, 0x7b,
0x83, 0x21, 0xef, 0xdc,
0x40, 0x00, 0x04, 0x26,
0xc4, 0x09, 0xf3, 0xf0,
@@ -19267,7 +19405,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x82, 0x65, 0xc0, 0x2c,
0x6c, 0x1d, 0x0c, 0x29,
0x8c, 0x0b, 0x40, 0x2b,
- 0x6f, 0xc0, 0x68, 0xa8,
+ 0x6f, 0xc0, 0x61, 0xa8,
0xa1, 0x0b, 0x8e, 0x1b,
0xc0, 0x00, 0x0c, 0x38,
0x81, 0x11, 0x01, 0x71,
@@ -19292,12 +19430,12 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x4c, 0x21, 0xc0, 0x27,
0xc0, 0x27, 0x67, 0xed,
0x80, 0xf5, 0xa1, 0x7b,
- 0x6f, 0xf4, 0x76, 0x88,
+ 0x6f, 0xf4, 0x76, 0x48,
0x80, 0x7b, 0x8c, 0x0b,
0x82, 0x45, 0xa1, 0x7b,
0x6c, 0x1d, 0x0c, 0x29,
0x8c, 0x0b, 0x40, 0x2b,
- 0x6f, 0xc0, 0x64, 0xe8,
+ 0x6f, 0xc0, 0x5d, 0xe8,
0xa1, 0x0b, 0x8e, 0x1b,
0x02, 0xf0, 0xa0, 0xf5,
0x8c, 0x0b, 0x64, 0x20,
@@ -19363,8 +19501,8 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x67, 0xf5, 0x4c, 0x01,
0x4c, 0xa1, 0xc0, 0x27,
0x40, 0x26, 0x6c, 0xf1,
- 0x60, 0x98, 0x8c, 0x0b,
- 0x40, 0x86, 0xef, 0xb4,
+ 0x73, 0xd8, 0x8c, 0x0b,
+ 0x41, 0x06, 0xef, 0xb4,
0x81, 0x11, 0x6f, 0xdc,
0x0e, 0x0b, 0x80, 0x16,
0x0c, 0x0c, 0x98, 0xf1,
@@ -19422,7 +19560,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x6d, 0x59, 0x0c, 0x05,
0x91, 0x21, 0x40, 0x0a,
0x6e, 0x0d, 0x0c, 0x15,
- 0x49, 0x78, 0xc0, 0x09,
+ 0x5e, 0xb8, 0xc0, 0x09,
0x0c, 0x29, 0xef, 0xa8,
0x40, 0x2b, 0x65, 0x51,
0xe1, 0x18, 0x43, 0x46,
@@ -19432,17 +19570,17 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x9e, 0x49, 0xc0, 0x0b,
0x8e, 0x19, 0xc9, 0x17,
0x02, 0x24, 0x23, 0x5f,
- 0x4e, 0xb8, 0xe0, 0x90,
+ 0x63, 0xf8, 0xe0, 0x90,
0x04, 0x54, 0x6f, 0xa8,
- 0x42, 0xb8, 0xe8, 0x90,
+ 0x46, 0x78, 0xe8, 0x90,
0x80, 0x8b, 0x6f, 0xe8,
0x60, 0x10, 0x02, 0x06,
- 0x50, 0x58, 0x90, 0x2b,
+ 0x65, 0x98, 0x90, 0x2b,
0x8e, 0x3b, 0x6f, 0xa8,
0xa1, 0x7b, 0x80, 0x7b,
0x0c, 0x29, 0x82, 0xe5,
0x40, 0x2b, 0x6c, 0x1d,
- 0x52, 0xb8, 0x8c, 0x0b,
+ 0x4b, 0xb8, 0x8c, 0x0b,
0x8e, 0x1b, 0x6f, 0xc0,
0x0e, 0x06, 0xa3, 0x0b,
0x8e, 0x0b, 0xc0, 0x00,
@@ -19493,7 +19631,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x40, 0x0b, 0x63, 0x15,
0x40, 0x33, 0xa4, 0x3f,
0x40, 0x16, 0x66, 0x35,
- 0xef, 0xdc, 0x08, 0x06,
+ 0xef, 0xdc, 0x08, 0x86,
0x60, 0x24, 0x02, 0x29,
0xfc, 0x0c, 0x06, 0x34,
0xc2, 0x27, 0x90, 0x58,
@@ -19667,35 +19805,6 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x89, 0x16, 0xc0, 0x0a,
0x65, 0xb9, 0x0c, 0x19,
0x11, 0x36, 0xc0, 0x2b,
- 0x3c, 0x0e, 0x89, 0x31,
- 0x8f, 0x16, 0x81, 0x01,
- 0x65, 0xb5, 0x0c, 0x19,
- 0x1b, 0x36, 0xc0, 0x2b,
- 0x8b, 0x06, 0x8f, 0x31,
- 0x82, 0x19, 0x0d, 0x26,
- 0x02, 0x16, 0x1f, 0x16,
- 0xc0, 0x40, 0x70, 0x11,
- 0xa1, 0x26, 0x9d, 0x36,
- 0xa5, 0x26, 0xa3, 0x26,
- 0x13, 0x06, 0xa7, 0x06,
- 0x8b, 0x1e, 0x8c, 0x0b,
- 0x97, 0x26, 0x95, 0x26,
- 0x63, 0x38, 0x99, 0x26,
- 0x1e, 0x1b, 0xef, 0xfc,
- 0x67, 0x58, 0x8c, 0x0b,
- 0xb0, 0xf1, 0xef, 0xfc,
- 0xf2, 0x00, 0x0c, 0x0c,
- 0xc1, 0xc3, 0xdd, 0x93,
- 0xfa, 0x00, 0x04, 0x0c,
- 0xec, 0x60, 0x1e, 0xf0,
- 0x83, 0x21, 0x00, 0x6b,
- 0x61, 0xd1, 0x0c, 0x19,
- 0x0c, 0x39, 0xc0, 0x15,
- 0xc0, 0x15, 0x62, 0x19,
- 0x6d, 0x65, 0x0c, 0x05,
- 0x89, 0x16, 0xc0, 0x0a,
- 0x65, 0xb9, 0x0c, 0x19,
- 0x11, 0x36, 0xc0, 0x2b,
0x3c, 0x0e, 0x87, 0x31,
0x8f, 0x16, 0x81, 0x01,
0x65, 0xb5, 0x0c, 0x19,
@@ -19709,9 +19818,9 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x13, 0x06, 0xa7, 0x06,
0x8b, 0x1e, 0x8c, 0x0b,
0x97, 0x26, 0x95, 0x26,
- 0x5f, 0x98, 0x99, 0x26,
+ 0x63, 0x38, 0x99, 0x26,
0x1e, 0x1b, 0xef, 0xfc,
- 0x63, 0xb8, 0x8c, 0x0b,
+ 0x67, 0x58, 0x8c, 0x0b,
0xb0, 0xf1, 0xef, 0xfc,
0xf2, 0x00, 0x0c, 0x0c,
0xc1, 0xc3, 0xdd, 0x93,
@@ -19735,9 +19844,9 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0xaf, 0x46, 0xad, 0x26,
0x95, 0x26, 0x93, 0x46,
0x99, 0x26, 0x97, 0x26,
- 0xef, 0xfc, 0x5c, 0x68,
+ 0xef, 0xfc, 0x60, 0x08,
0x8c, 0x0b, 0x1e, 0x1b,
- 0xef, 0xfc, 0x60, 0x88,
+ 0xef, 0xfc, 0x64, 0x28,
0x0c, 0x0c, 0xb0, 0xf1,
0xdd, 0x93, 0xf2, 0x00,
0xfa, 0x00, 0x04, 0x0c,
@@ -19759,9 +19868,9 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0xad, 0x26, 0x8c, 0x0b,
0x95, 0x26, 0xaf, 0x26,
0x99, 0x26, 0x97, 0x26,
- 0xef, 0xfc, 0x59, 0x68,
+ 0xef, 0xfc, 0x5d, 0x08,
0x8c, 0x0b, 0x1e, 0x1b,
- 0xef, 0xfc, 0x5d, 0x88,
+ 0xef, 0xfc, 0x61, 0x28,
0x0c, 0x0c, 0xb0, 0xf1,
0xdd, 0x93, 0xf2, 0x00,
0xfa, 0x0c, 0x04, 0x0c,
@@ -19873,7 +19982,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x11, 0xa6, 0x40, 0x2b,
0x03, 0xa6, 0xe0, 0x08,
0x8c, 0x0b, 0x60, 0x08,
- 0xef, 0xbc, 0x5c, 0xe8,
+ 0xef, 0xbc, 0x59, 0x88,
0x9a, 0x85, 0xa3, 0x0b,
0xe1, 0x2c, 0x54, 0xc6,
0x80, 0x08, 0xa8, 0x04,
@@ -19885,7 +19994,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x11, 0xa6, 0x40, 0x2b,
0x03, 0xa6, 0xe0, 0x08,
0x8c, 0x0b, 0x60, 0x08,
- 0xef, 0xbc, 0x5b, 0x68,
+ 0xef, 0xbc, 0x58, 0x08,
0x94, 0x85, 0xa3, 0x0b,
0xe4, 0x7d, 0x24, 0x04,
0x88, 0xd5, 0x80, 0x18,
@@ -19925,7 +20034,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x6c, 0x1d, 0x0c, 0x29,
0x11, 0xc6, 0x40, 0x2b,
0x03, 0xc6, 0xe0, 0x08,
- 0x56, 0x58, 0xe0, 0x08,
+ 0x52, 0xf8, 0xe0, 0x08,
0x8c, 0x0b, 0x6f, 0xbc,
0x80, 0x45, 0xa3, 0x0b,
0x73, 0xd8, 0x81, 0x81,
@@ -20023,7 +20132,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x40, 0x2b, 0x6c, 0x1d,
0xe0, 0x08, 0x0f, 0xa6,
0x60, 0x08, 0x03, 0xa6,
- 0x4a, 0x18, 0x8c, 0x0b,
+ 0x46, 0xb8, 0x8c, 0x0b,
0xa3, 0x0b, 0xef, 0xbc,
0x28, 0x04, 0x8a, 0x45,
0xe0, 0x3c, 0x42, 0x86,
@@ -20043,7 +20152,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x40, 0x2b, 0x6c, 0x1d,
0xe0, 0x08, 0x0f, 0xc6,
0x60, 0x08, 0x03, 0xc6,
- 0x47, 0x98, 0x8c, 0x0b,
+ 0x44, 0x38, 0x8c, 0x0b,
0xa3, 0x0b, 0xef, 0xbc,
0x81, 0x71, 0x80, 0x45,
0xe8, 0x00, 0x65, 0x28,
@@ -20220,7 +20329,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x6f, 0xfc, 0x44, 0x68,
0x8c, 0x0b, 0x80, 0x6b,
0xf2, 0x00, 0x0c, 0x0c,
- 0xff, 0xf0, 0x02, 0x88,
+ 0xff, 0xf0, 0x05, 0xe8,
0x00, 0x00, 0x5d, 0x93,
0xc0, 0x28, 0x65, 0x41,
0x00, 0x00, 0x5d, 0x93,
@@ -20443,7 +20552,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x0c, 0x19, 0xc0, 0x2b,
0xc0, 0x2b, 0x65, 0x39,
0x65, 0x35, 0x0c, 0x09,
- 0x4b, 0xd8, 0xc0, 0x2b,
+ 0x64, 0xb8, 0xc0, 0x2b,
0x00, 0x8b, 0xef, 0xa0,
0xe1, 0x04, 0x01, 0x46,
0x90, 0x2b, 0x00, 0x04,
@@ -20451,29 +20560,29 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0xc0, 0x09, 0x6e, 0x0d,
0x65, 0x41, 0x0c, 0x39,
0x92, 0x0b, 0xc0, 0x2b,
- 0x6f, 0xa0, 0x4b, 0xa8,
+ 0x6f, 0xa0, 0x64, 0x88,
0x4c, 0x05, 0x94, 0x1b,
0x40, 0x0b, 0x63, 0x6d,
0x0c, 0x39, 0x92, 0x0b,
0x40, 0x2b, 0x65, 0x49,
- 0x4a, 0xf8, 0x94, 0x1b,
+ 0x63, 0xd8, 0x94, 0x1b,
0x90, 0x2b, 0x6f, 0xa0,
0x63, 0x65, 0x4c, 0x05,
0x92, 0x0b, 0x40, 0x0b,
0x65, 0x45, 0x0c, 0x39,
0x94, 0x1b, 0x40, 0x2b,
- 0x6f, 0xa0, 0x4a, 0x48,
+ 0x6f, 0xa0, 0x63, 0x28,
0x4c, 0x05, 0x90, 0x2b,
0x40, 0x0b, 0x63, 0x71,
0x0c, 0x39, 0x92, 0x0b,
0x40, 0x2b, 0x65, 0x4d,
- 0x49, 0x98, 0x94, 0x1b,
+ 0x62, 0x78, 0x94, 0x1b,
0x90, 0x2b, 0x6f, 0xa0,
0x6d, 0x59, 0x0c, 0x15,
0x91, 0x21, 0x40, 0x0a,
0x63, 0x69, 0x4c, 0x05,
0x02, 0x0b, 0xc0, 0x0b,
- 0x46, 0x18, 0x94, 0x1b,
+ 0x5e, 0xf8, 0x94, 0x1b,
0x4c, 0x05, 0xef, 0xa0,
0x40, 0x06, 0x6d, 0x49,
0xe1, 0x1c, 0x02, 0x86,
@@ -20559,7 +20668,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x80, 0xad, 0x05, 0x45,
0x05, 0x41, 0x00, 0x60,
0x80, 0x88, 0xc0, 0xad,
- 0x6f, 0x9c, 0x75, 0x28,
+ 0x6f, 0xa0, 0x4e, 0x08,
0x02, 0x94, 0x90, 0x0b,
0x81, 0x41, 0x7a, 0x80,
0x61, 0x02, 0x46, 0x1a,
@@ -20644,9 +20753,9 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x50, 0x01, 0xe0, 0x08,
0x40, 0x2b, 0x6c, 0x1d,
0x06, 0x7b, 0x88, 0xab,
- 0x75, 0x38, 0x84, 0x9b,
- 0x82, 0x0b, 0x6f, 0x9c,
- 0x6f, 0x9c, 0x76, 0x88,
+ 0x4e, 0x18, 0x84, 0x9b,
+ 0x82, 0x0b, 0x6f, 0xa0,
+ 0x6f, 0xa0, 0x4f, 0x68,
0x21, 0x0b, 0x80, 0x6b,
0x02, 0x06, 0xff, 0x11,
0xa3, 0xab, 0x00, 0x00,
@@ -20686,7 +20795,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x00, 0x29, 0xc6, 0x2d,
0x40, 0x2b, 0x0c, 0x1d,
0xc0, 0x08, 0x42, 0x96,
- 0xcf, 0xb4, 0x77, 0x48,
+ 0xcf, 0xb4, 0x73, 0xe8,
0x60, 0x01, 0x00, 0x06,
0x81, 0x31, 0x7d, 0x09,
0xe0, 0x1e, 0x40, 0x0a,
@@ -20696,13 +20805,13 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x42, 0x22, 0xc7, 0xa1,
0x04, 0x0e, 0x72, 0x8c,
0xc0, 0x03, 0x74, 0x24,
- 0x6f, 0x60, 0x44, 0xc8,
+ 0x6f, 0x5c, 0x74, 0x88,
0x0c, 0x4c, 0x81, 0x31,
0xdd, 0x93, 0xf2, 0x04,
0xfa, 0x00, 0x04, 0x0c,
0x6c, 0x01, 0x0c, 0x12,
0x81, 0x11, 0x40, 0x28,
- 0x6f, 0x60, 0x6d, 0xe8,
+ 0x6f, 0x60, 0x5d, 0xa8,
0x8c, 0x0b, 0x8c, 0x2b,
0xf2, 0x00, 0x0c, 0x0c,
0xc1, 0xc3, 0xdd, 0x93,
@@ -20715,7 +20824,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x82, 0x45, 0x87, 0x1b,
0x60, 0x08, 0x03, 0x66,
0xe0, 0x08, 0x0d, 0x66,
- 0xef, 0xb4, 0x73, 0xa8,
+ 0xef, 0xb4, 0x70, 0x48,
0x0c, 0x06, 0xa1, 0x0b,
0x8c, 0x0b, 0x80, 0x00,
0xf2, 0x00, 0x0c, 0x0c,
@@ -20729,7 +20838,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x82, 0x45, 0x87, 0x1b,
0x60, 0x08, 0x03, 0x76,
0xe0, 0x08, 0x0d, 0x76,
- 0xef, 0xb4, 0x71, 0xe8,
+ 0xef, 0xb4, 0x6e, 0x88,
0x0c, 0x06, 0xa1, 0x0b,
0x8c, 0x0b, 0x80, 0x00,
0xf2, 0x00, 0x0c, 0x0c,
@@ -20744,7 +20853,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x82, 0x45, 0x87, 0x1b,
0x60, 0x08, 0x03, 0x86,
0xe0, 0x08, 0x0d, 0x86,
- 0xef, 0xb4, 0x70, 0x08,
+ 0xef, 0xb4, 0x6c, 0xa8,
0x0c, 0x06, 0xa1, 0x0b,
0x8c, 0x0b, 0x80, 0x00,
0xf2, 0x00, 0x0c, 0x0c,
@@ -20758,7 +20867,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x87, 0x1b, 0x9e, 0x39,
0x03, 0x96, 0x82, 0x45,
0x0d, 0x96, 0x60, 0x08,
- 0x6e, 0x38, 0xe0, 0x08,
+ 0x6a, 0xd8, 0xe0, 0x08,
0xa1, 0x0b, 0xef, 0xb4,
0x80, 0x00, 0x0c, 0x06,
0x0c, 0x0c, 0x8c, 0x0b,
@@ -20824,7 +20933,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x00, 0x60, 0xe0, 0x90,
0x40, 0x99, 0x06, 0xf1,
0xc0, 0x00, 0x02, 0x06,
- 0x4f, 0x60, 0x5e, 0xa8,
+ 0x4f, 0x60, 0x4e, 0x68,
0xc0, 0x18, 0x04, 0x06,
0x15, 0x86, 0x0f, 0xbe,
0x01, 0x01, 0xe1, 0x00,
@@ -20835,7 +20944,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x8c, 0x0b, 0x00, 0xb6,
0xef, 0xf8, 0x7b, 0xe8,
0x60, 0x3c, 0x42, 0x86,
- 0x4b, 0x18, 0x8c, 0x0b,
+ 0x52, 0x78, 0x8c, 0x0b,
0x00, 0x7b, 0xef, 0xe0,
0x75, 0xb8, 0x8c, 0x0b,
0x0c, 0x09, 0xef, 0xf8,
@@ -20846,10 +20955,10 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x84, 0x08, 0xc0, 0x26,
0x41, 0xf6, 0x82, 0x65,
0x81, 0x11, 0x60, 0x3c,
- 0xef, 0x64, 0x5f, 0x68,
+ 0xef, 0x64, 0x4f, 0x28,
0x60, 0x0c, 0x43, 0x06,
- 0x5e, 0xb8, 0x8c, 0x0b,
- 0x51, 0xd8, 0xef, 0xc8,
+ 0x60, 0x78, 0x8c, 0x0b,
+ 0x59, 0x38, 0xef, 0xc8,
0x0c, 0x19, 0xef, 0xdc,
0xc0, 0x2b, 0x65, 0xb5,
0xe0, 0x90, 0x42, 0x0a,
@@ -20880,10 +20989,10 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x66, 0xed, 0x4c, 0x21,
0x04, 0x06, 0xc0, 0x26,
0xe0, 0x3c, 0x41, 0xf6,
- 0x6f, 0x64, 0x5b, 0x28,
+ 0x6f, 0x64, 0x4a, 0xe8,
0x43, 0x06, 0x81, 0x11,
0x8c, 0x0b, 0x60, 0x0c,
- 0xef, 0xc8, 0x5a, 0x68,
+ 0xef, 0xc8, 0x5c, 0x28,
0x42, 0x0a, 0x85, 0x95,
0x44, 0x86, 0x60, 0x94,
0x08, 0x24, 0xe1, 0x00,
@@ -20921,7 +21030,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x4c, 0x01, 0xe0, 0x00,
0x40, 0x2b, 0x6c, 0x1d,
0x69, 0x58, 0x8c, 0x0b,
- 0x6a, 0xd8, 0xef, 0xf4,
+ 0x6e, 0x38, 0xef, 0xf4,
0x8c, 0x0b, 0x6f, 0xe8,
0x0c, 0x19, 0xa1, 0x0b,
0x80, 0x2c, 0x0d, 0x15,
@@ -20977,7 +21086,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x83, 0x45, 0xfc, 0x15,
0x6c, 0x1d, 0x0c, 0x29,
0x42, 0x96, 0x40, 0x2b,
- 0x52, 0xd8, 0xe0, 0x08,
+ 0x4f, 0x78, 0xe0, 0x08,
0x8c, 0x0b, 0x6f, 0xb4,
0xe0, 0x08, 0x4e, 0x96,
0x66, 0x71, 0x0c, 0x1b,
@@ -20997,99 +21106,63 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x6e, 0x19, 0x40, 0x13,
0xdd, 0x93, 0xc0, 0x15,
0xf8, 0x7c, 0x04, 0x0c,
- 0xec, 0xa0, 0x1e, 0xf0,
+ 0xec, 0x60, 0x1e, 0xf0,
0x6c, 0x41, 0x00, 0x69,
- 0x87, 0x91, 0x40, 0x2b,
- 0x6c, 0x49, 0x00, 0x29,
- 0x8f, 0x31, 0x40, 0x2b,
+ 0x9f, 0x71, 0x40, 0x2b,
+ 0x6c, 0x49, 0x00, 0x39,
+ 0x81, 0x81, 0x40, 0x2b,
0x6c, 0x51, 0x00, 0x49,
- 0x85, 0x81, 0x40, 0x2b,
- 0x8d, 0x91, 0x13, 0x96,
- 0x66, 0x9a, 0x42, 0x2a,
- 0x15, 0x96, 0x8b, 0x71,
- 0x42, 0x1a, 0x93, 0x91,
- 0x89, 0xb1, 0x60, 0x12,
- 0x99, 0x91, 0x17, 0x96,
- 0xbe, 0x1e, 0xbd, 0x36,
+ 0x81, 0x91, 0x40, 0x2b,
+ 0x42, 0x3a, 0xaf, 0x76,
+ 0x42, 0x1a, 0xe6, 0x9a,
+ 0xbe, 0x1e, 0xe0, 0x12,
0x6c, 0x4d, 0x00, 0x19,
- 0x1f, 0x36, 0xc0, 0x2b,
- 0x5e, 0x91, 0x9b, 0x31,
- 0x3c, 0x1e, 0xe0, 0x90,
+ 0x3c, 0x1e, 0xc0, 0x2b,
0x60, 0x31, 0x02, 0x0e,
- 0x0d, 0x1e, 0xc2, 0x41,
+ 0x7c, 0x1e, 0xc2, 0x41,
0xe0, 0x40, 0x02, 0x16,
- 0x6c, 0x45, 0x00, 0xa9,
- 0x1d, 0x1c, 0xc0, 0x2b,
- 0x19, 0x96, 0x95, 0x11,
- 0x00, 0xc9, 0x83, 0x91,
- 0x40, 0x2b, 0x6c, 0x55,
- 0xbf, 0x16, 0xa9, 0xab,
- 0x97, 0x11, 0x21, 0x16,
- 0x91, 0x91, 0x1b, 0x96,
- 0xe0, 0x80, 0x5e, 0x81,
- 0x9f, 0x81, 0x25, 0x86,
- 0xe0, 0x94, 0x5e, 0x31,
- 0x9d, 0x31, 0x23, 0x36,
- 0xe0, 0x8c, 0x5e, 0x11,
- 0x81, 0x11, 0x2b, 0x16,
- 0xe0, 0x84, 0x5e, 0x71,
- 0xe0, 0x88, 0x5e, 0x91,
- 0x12, 0x06, 0x29, 0x96,
- 0x5e, 0x31, 0xc0, 0x00,
- 0x5e, 0x81, 0xe0, 0x98,
- 0x2f, 0x86, 0xe0, 0x9c,
- 0xc0, 0x00, 0x10, 0x06,
- 0x91, 0x16, 0xad, 0x36,
- 0xa7, 0x76, 0x9d, 0xb6,
- 0x01, 0x71, 0x92, 0x15,
- 0x83, 0x95, 0x81, 0x91,
- 0x64, 0x60, 0x0a, 0xf0,
- 0x0a, 0x39, 0x82, 0xb1,
- 0x80, 0x33, 0xfc, 0x0c,
- 0x68, 0x81, 0x46, 0x71,
- 0x82, 0x71, 0x40, 0x1b,
- 0x6c, 0x41, 0x00, 0x69,
- 0x0a, 0x64, 0xc0, 0x2b,
- 0x06, 0xb4, 0x7a, 0x80,
- 0x94, 0x53, 0xfa, 0x80,
- 0xfa, 0xb5, 0xcb, 0x3d,
- 0x6c, 0x45, 0x00, 0xb9,
- 0x82, 0x91, 0x40, 0x2b,
- 0xf4, 0x2c, 0x52, 0x8a,
- 0xc0, 0x88, 0x06, 0x94,
- 0x13, 0xf1, 0x54, 0x30,
- 0x7a, 0xd5, 0xc0, 0x03,
- 0xdc, 0x00, 0x56, 0xa0,
- 0x6c, 0x81, 0x00, 0x39,
- 0xa3, 0x3b, 0xc0, 0x2c,
- 0xdf, 0xfc, 0x51, 0xee,
- 0x68, 0xbd, 0x40, 0x81,
- 0x85, 0x75, 0xc0, 0x1b,
+ 0x8f, 0x11, 0x0d, 0x1c,
+ 0x95, 0x11, 0x1d, 0x16,
+ 0x85, 0x11, 0x1f, 0x16,
+ 0x8b, 0x11, 0x21, 0x16,
+ 0x91, 0x11, 0x23, 0x16,
+ 0x97, 0x11, 0x25, 0x16,
+ 0x99, 0x11, 0x27, 0x16,
+ 0x9b, 0x11, 0x29, 0x16,
+ 0x9d, 0x11, 0x2b, 0x16,
+ 0x81, 0x11, 0x2d, 0x16,
+ 0x6c, 0x55, 0x00, 0xc9,
+ 0x83, 0x65, 0xc0, 0x2b,
0x64, 0x20, 0x0a, 0xf0,
- 0x0a, 0x39, 0x82, 0xb1,
- 0x80, 0x33, 0xfc, 0x0c,
- 0x68, 0x81, 0x46, 0x81,
+ 0x0a, 0x29, 0x82, 0xb1,
+ 0x80, 0x23, 0xfc, 0x08,
+ 0x68, 0x81, 0x44, 0x81,
0x82, 0x81, 0x40, 0x1b,
0x6c, 0x41, 0x00, 0x69,
0x0a, 0x64, 0xc0, 0x2b,
- 0x06, 0xb4, 0x7a, 0x80,
+ 0x04, 0xb4, 0x7a, 0x80,
0x94, 0x53, 0xfa, 0x80,
- 0xfa, 0xb5, 0xcb, 0x3d,
- 0x6c, 0x45, 0x00, 0xa9,
- 0x82, 0x91, 0x40, 0x2b,
- 0xf4, 0x28, 0x52, 0x8a,
- 0xda, 0x80, 0x06, 0x94,
- 0xc6, 0x9e, 0x54, 0x3a,
- 0x56, 0xa0, 0x7a, 0xf5,
- 0x47, 0xe6, 0xdc, 0x00,
- 0x40, 0x31, 0xe0, 0x0c,
- 0xc0, 0x1b, 0x68, 0xbd,
- 0xbc, 0x54, 0xbe, 0x34,
- 0xe0, 0x12, 0x44, 0x2a,
- 0xfa, 0x80, 0x06, 0x34,
+ 0xfa, 0xb5, 0xcb, 0x2d,
+ 0x00, 0x29, 0x82, 0x91,
+ 0x40, 0x2b, 0x6c, 0x45,
+ 0xfa, 0x80, 0x14, 0x94,
+ 0x04, 0x94, 0xc5, 0xad,
+ 0x54, 0x20, 0xc0, 0x88,
+ 0xc0, 0x03, 0x13, 0xf1,
+ 0x56, 0xa0, 0x7a, 0xb5,
+ 0x00, 0x29, 0xdc, 0x00,
+ 0x40, 0x2c, 0x6c, 0x81,
+ 0xfa, 0x80, 0x18, 0xc4,
+ 0xe0, 0x12, 0x46, 0x3a,
+ 0xa3, 0x2b, 0x3c, 0x24,
+ 0xdf, 0xfc, 0x4f, 0xee,
+ 0x68, 0xbd, 0x40, 0x71,
+ 0x3e, 0x24, 0xc0, 0x1b,
+ 0xfa, 0x80, 0x0a, 0x24,
0x60, 0x32, 0x48, 0x5a,
0x64, 0x80, 0x0a, 0x00,
- 0x87, 0x25, 0xc0, 0x6e,
+ 0x07, 0x45, 0xc0, 0x6e,
+ 0xfa, 0x80, 0x04, 0x24,
0x6e, 0x19, 0x00, 0xcb,
0x58, 0x0a, 0xc0, 0x15,
0x59, 0xe6, 0xe4, 0x84,
@@ -21102,27 +21175,27 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x00, 0x79, 0xc0, 0x2b,
0xc0, 0x2c, 0x6c, 0xe9,
0xe0, 0x1a, 0x50, 0xca,
- 0xe0, 0x0a, 0x52, 0x7a,
+ 0xe0, 0x0e, 0x52, 0x7a,
0xe1, 0x1a, 0x58, 0xca,
0xe6, 0x92, 0x50, 0x8a,
- 0xe1, 0x0a, 0x4c, 0x7a,
+ 0xe1, 0x0e, 0x4c, 0x7a,
0x58, 0xca, 0x10, 0x93,
- 0x0e, 0x94, 0xe6, 0x8a,
+ 0x0e, 0x94, 0xe6, 0x8e,
0x50, 0x02, 0x7a, 0x80,
0x4e, 0x7a, 0xf0, 0x84,
- 0x8c, 0xc3, 0x66, 0x8e,
+ 0x8c, 0xc3, 0x66, 0x8a,
0x64, 0x81, 0x0c, 0x80,
0x8e, 0xc3, 0xc0, 0x6e,
0x02, 0x11, 0x98, 0xc6,
0x02, 0x0a, 0x82, 0x51,
0xf2, 0xb5, 0xe0, 0x40,
- 0x0c, 0x0c, 0xd0, 0xf1,
+ 0x0c, 0x0c, 0xb0, 0xf1,
0xdd, 0x93, 0xf0, 0x7c,
0x00, 0x00, 0x10, 0x14,
- 0x00, 0x43, 0x49, 0x38,
+ 0x00, 0x43, 0x4a, 0xb0,
0x00, 0x00, 0x09, 0x2c,
0x00, 0x00, 0x1a, 0x24,
- 0x00, 0x43, 0x53, 0x48,
+ 0x00, 0x43, 0x54, 0xc0,
0x00, 0x00, 0x00, 0x20,
0x00, 0x00, 0x19, 0x44,
0x00, 0x00, 0x00, 0x00,
@@ -21439,7 +21512,7 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x00, 0x00, 0x00, 0x64,
0x00, 0x00, 0xbb, 0x80,
0x00, 0x00, 0x1a, 0x48,
- 0x00, 0x00, 0xfb, 0x78,
+ 0x00, 0x00, 0xfb, 0x80,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
@@ -21467,100 +21540,6 @@ const uint8_t VL53L8CX_FIRMWARE[] = {
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x01,
- 0x00, 0x00, 0x00, 0x00,
- 0xab, 0xcd, 0x33, 0x0e,
- 0xe6, 0x6d, 0x12, 0x34,
- 0x00, 0x05, 0xde, 0xec,
- 0x00, 0x00, 0x00, 0x0b,
- 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00,
};
@@ -21740,7 +21719,7 @@ const uint8_t VL53L8CX_DEFAULT_CONFIGURATION[] = {
0xB5, 0xF0, 0x00, 0x40,
0x00, 0xFF, 0x00, 0x00,
0xB3, 0x9C, 0x01, 0x00,
- 0x40, 0x00, 0x05, 0x1E,
+ 0x34, 0x9B, 0x04, 0x35,
0x02, 0x1B, 0x08, 0x7C,
0x80, 0x00, 0x12, 0x01,
0x00, 0x01, 0x08, 0x00,
@@ -22032,6 +22011,9 @@ const uint8_t VL53L8CX_GET_NVM_CMD[] = {
0x02, 0x02, 0x00, 0x24
};
-#endif /* VL53L8CX_BUFFERS_H_ */
+#ifdef __cplusplus
+}
+#endif
+#endif /* VL53L8CX_BUFFERS_H_ */
diff --git a/src/vl53l8cx_class.h b/src/vl53l8cx_class.h
deleted file mode 100644
index 7cb6e7a..0000000
--- a/src/vl53l8cx_class.h
+++ /dev/null
@@ -1,834 +0,0 @@
-/**
- ******************************************************************************
- * @file vl53l8cx_class.h
- * @author STMicroelectronics
- * @version V1.0.0
- * @date 13 January 2023
- * @brief Abstract Class for VL53L8CX sensor.
- ******************************************************************************
- * @attention
- *
- * © COPYRIGHT(c) 2021 STMicroelectronics
- *
- * Redistribution and use in source and binary forms, with or without modification,
- * are permitted provided that the following conditions are met:
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * 3. Neither the name of STMicroelectronics nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
- * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- ******************************************************************************
- */
-
-#ifndef __VL53L8CX_CLASS_H
-#define __VL53L8CX_CLASS_H
-
-/* Includes ------------------------------------------------------------------*/
-#include "Arduino.h"
-#include "platform.h"
-#include "vl53l8cx_api.h"
-#include "vl53l8cx_plugin_detection_thresholds.h"
-#include "vl53l8cx_plugin_motion_indicator.h"
-#include "vl53l8cx_plugin_xtalk.h"
-
-
-
-
-/* Classes -------------------------------------------------------------------*/
-/** Class representing a VL53LX sensor component
- */
-
-class VL53L8CX {
- public:
- /** Constructor
- * @param[in] i2c device I2C to be used for communication
- * @param[in] lpn_pin pin to be used as component LPn
- * @param[in] i2c_rst_pin pin to be used as component I2C_RST
- */
- VL53L8CX(TwoWire *i2c, int lpn_pin, int i2c_rst_pin = -1)
- {
- memset((void *)&_dev, 0x0, sizeof(VL53L8CX_Configuration));
- _dev.platform.address = VL53L8CX_DEFAULT_I2C_ADDRESS;
- _dev.platform.dev_i2c = i2c;
- _dev.platform.dev_spi = NULL;
- _dev.platform.lpn_pin = lpn_pin;
- _dev.platform.i2c_rst_pin = i2c_rst_pin;
- p_dev = &_dev;
- }
-
- /** Constructor
- * @param spi object of an helper class which handles the SPI peripheral
- * @param cs_pin the chip select pin
- * @param spi_speed the SPI speed
- * @param[in] lpn_pin pin to be used as component LPn
- * @param[in] i2c_rst_pin pin to be used as component I2C_RST
- */
- VL53L8CX(SPIClass *spi, int cs_pin, int lpn_pin = -1, uint32_t spi_speed = 2000000, int i2c_rst_pin = -1)
- {
- memset((void *)&_dev, 0x0, sizeof(VL53L8CX_Configuration));
- _dev.platform.address = VL53L8CX_DEFAULT_I2C_ADDRESS;
- _dev.platform.dev_i2c = NULL;
- _dev.platform.dev_spi = spi;
- _dev.platform.cs_pin = cs_pin;
- _dev.platform.spi_speed = spi_speed ;
- _dev.platform.lpn_pin = lpn_pin;
- _dev.platform.i2c_rst_pin = i2c_rst_pin;
- p_dev = &_dev;
- }
-
-
- /** Destructor
- */
- virtual ~VL53L8CX() {}
- /* warning: VL53LX class inherits from GenericSensor, RangeSensor and LightSensor, that haven`t a destructor.
- The warning should request to introduce a virtual destructor to make sure to delete the object */
-
- virtual int begin()
- {
- if (_dev.platform.lpn_pin >= 0) {
- pinMode(_dev.platform.lpn_pin, OUTPUT);
- digitalWrite(_dev.platform.lpn_pin, LOW);
- }
- if (_dev.platform.i2c_rst_pin >= 0) {
- pinMode(_dev.platform.i2c_rst_pin, OUTPUT);
- if (_dev.platform.dev_i2c) {
- digitalWrite(_dev.platform.i2c_rst_pin, LOW);
- }
- if (_dev.platform.dev_spi) {
- digitalWrite(_dev.platform.i2c_rst_pin, HIGH);
- }
- }
-
- if (_dev.platform.dev_spi) {
- // Configure CS pin
- pinMode(_dev.platform.cs_pin, OUTPUT);
- digitalWrite(_dev.platform.cs_pin, HIGH);
- }
- return 0;
- }
-
- virtual int end()
- {
- if (_dev.platform.lpn_pin >= 0) {
- pinMode(_dev.platform.lpn_pin, INPUT);
- }
- if (_dev.platform.i2c_rst_pin >= 0) {
- pinMode(_dev.platform.i2c_rst_pin, INPUT);
- }
- /* Reset CS configuration */
- if (_dev.platform.dev_spi) {
- // Configure CS pin
- pinMode(_dev.platform.cs_pin, INPUT);
- }
- return 0;
- }
-
- /*** Interface Methods ***/
- /*** High level API ***/
- /**
- * @brief PowerOn the sensor
- * @return void
- */
- virtual void vl53l8cx_on(void)
- {
- if (_dev.platform.lpn_pin >= 0) {
- digitalWrite(_dev.platform.lpn_pin, HIGH);
- }
- delay(10);
- }
-
- /**
- * @brief PowerOff the sensor
- * @return void
- */
- virtual void vl53l8cx_off(void)
- {
- if (_dev.platform.lpn_pin >= 0) {
- digitalWrite(_dev.platform.lpn_pin, LOW);
- }
- delay(10);
- }
-
- /**
- * @brief Reset I2C peripheral of the sensor
- * @return void
- */
- virtual void vl53l8cx_i2c_reset(void)
- {
- if (_dev.platform.dev_i2c && _dev.platform.i2c_rst_pin >= 0) {
- digitalWrite(_dev.platform.i2c_rst_pin, LOW);
- delay(10);
- digitalWrite(_dev.platform.i2c_rst_pin, HIGH);
- delay(10);
- digitalWrite(_dev.platform.i2c_rst_pin, LOW);
- delay(10);
- }
- }
-
- /**
- * @brief Initialize the sensor
- * @param (uint8_t) addr : New I2C address.
- * @return (uint8_t) status : 0 if init_sensor is OK.
- */
- int init_sensor(uint8_t addr = VL53L8CX_DEFAULT_I2C_ADDRESS)
- {
- uint8_t status = VL53L8CX_STATUS_OK;
- uint8_t isAlive = 0;
-
- // Reset the sensor by toggling the LPN pin
- vl53l8cx_off();
- vl53l8cx_on();
- if (_dev.platform.dev_i2c && (addr != _dev.platform.address)) {
- status = vl53l8cx_set_i2c_address(addr);
- if (status != VL53L8CX_STATUS_OK) {
- return VL53L8CX_STATUS_ERROR;
- }
- }
-
- status = vl53l8cx_is_alive(&isAlive);
-
-
- if (!isAlive || status != VL53L8CX_STATUS_OK) {
- return VL53L8CX_STATUS_ERROR;
- }
-
- // Init VL53L8CX sensor
- status = vl53l8cx_init();
- if (status != VL53L8CX_STATUS_OK) {
- ;
- return VL53L8CX_STATUS_ERROR;
- }
-
- return (int)status;
- }
-
-
- /* vl53l8cx_api.h */
- /**
- * @brief This function is used to check if the sensor is alive.
- * @param (uint8_t) *p_is_alive : 1 if the sensor is alive, 0 in case of error.
- * @return (uint8_t) status : 0 if is_alive is OK.
- */
- uint8_t vl53l8cx_is_alive(
- uint8_t *p_is_alive);
-
- /**
- * @brief Mandatory function used to initialize the sensor. This function must
- * be called after a power on, to load the firmware into the VL53L8CX. It takes
- * a few hundred milliseconds.
- * @return (uint8_t) status : 0 if initialization is OK.
- */
-
- uint8_t vl53l8cx_init();
-
- /**
- * @brief This function is used to change the I2C address of the sensor. If
- * multiple VL53L7 sensors are connected to the same I2C line, all other LPn
- * pins needs to be set to Low. The default sensor address is 0x52.
- * @param (uint16_t) i2c_address : New I2C address.
- * @return (uint8_t) status : 0 if new address is OK
- */
-
- uint8_t vl53l8cx_set_i2c_address(
- uint16_t i2c_address);
-
- /**
- * @brief This function is used to get the current sensor power mode.
- * @param (uint8_t) *p_power_mode : Current power mode. The value of this
- * pointer is equal to 0 if the sensor is in low power,
- * (VL53L8CX_POWER_MODE_SLEEP), or 1 if sensor is in standard mode
- * (VL53L8CX_POWER_MODE_WAKEUP).
- * @return (uint8_t) status : 0 if power mode is OK
- */
-
- uint8_t vl53l8cx_get_power_mode(
- uint8_t *p_power_mode);
-
- /**
- * @brief This function is used to set the sensor in Low Power mode, for
- * example if the sensor is not used during a long time. The macro
- * VL53L8CX_POWER_MODE_SLEEP can be used to enable the low power mode. When user
- * want to restart the sensor, he can use macro VL53L8CX_POWER_MODE_WAKEUP.
- * Please ensure that the device is not streaming before calling the function.
- * @param (uint8_t) power_mode : Selected power mode (VL53L8CX_POWER_MODE_SLEEP
- * or VL53L8CX_POWER_MODE_WAKEUP)
- * @return (uint8_t) status : 0 if power mode is OK, or 127 if power mode
- * requested by user is not valid.
- */
-
- uint8_t vl53l8cx_set_power_mode(
- uint8_t power_mode);
-
- /**
- * @brief This function starts a ranging session. When the sensor streams, host
- * cannot change settings 'on-the-fly'.
- * @return (uint8_t) status : 0 if start is OK.
- */
-
- uint8_t vl53l8cx_start_ranging();
-
- /**
- * @brief This function stops the ranging session. It must be used when the
- * sensor streams, after calling vl53l8cx_start_ranging().
- * @return (uint8_t) status : 0 if stop is OK
- */
-
- uint8_t vl53l8cx_stop_ranging();
-
- /**
- * @brief This function checks if a new data is ready by polling I2C. If a new
- * data is ready, a flag will be raised.
- * @param (uint8_t) *p_isReady : Value of this pointer be updated to 0 if data
- * is not ready, or 1 if a new data is ready.
- * @return (uint8_t) status : 0 if I2C reading is OK
- */
-
- uint8_t vl53l8cx_check_data_ready(
- uint8_t *p_isReady);
-
- /**
- * @brief This function gets the ranging data, using the selected output and the
- * resolution.
- * @param (VL53L8CX_ResultsData) *p_results : VL53L7 results structure.
- * @return (uint8_t) status : 0 data are successfully get.
- */
-
- uint8_t vl53l8cx_get_ranging_data(
- VL53L8CX_ResultsData *p_results);
-
- /**
- * @brief This function gets the current resolution (4x4 or 8x8).
- * @param (uint8_t) *p_resolution : Value of this pointer will be equal to 16
- * for 4x4 mode, and 64 for 8x8 mode.
- * @return (uint8_t) status : 0 if resolution is OK.
- */
-
- uint8_t vl53l8cx_get_resolution(
- uint8_t *p_resolution);
-
- /**
- * @brief This function sets a new resolution (4x4 or 8x8).
- * @param (uint8_t) resolution : Use macro VL53L8CX_RESOLUTION_4X4 or
- * VL53L8CX_RESOLUTION_8X8 to set the resolution.
- * @return (uint8_t) status : 0 if set resolution is OK.
- */
-
- uint8_t vl53l8cx_set_resolution(
- uint8_t resolution);
-
- /**
- * @brief This function gets the current ranging frequency in Hz. Ranging
- * frequency corresponds to the time between each measurement.
- * @param (uint8_t) *p_frequency_hz: Contains the ranging frequency in Hz.
- * @return (uint8_t) status : 0 if ranging frequency is OK.
- */
-
- uint8_t vl53l8cx_get_ranging_frequency_hz(
- uint8_t *p_frequency_hz);
-
- /**
- * @brief This function sets a new ranging frequency in Hz. Ranging frequency
- * corresponds to the measurements frequency. This setting depends of
- * the resolution, so please select your resolution before using this function.
- * @param (uint8_t) frequency_hz : Contains the ranging frequency in Hz.
- * - For 4x4, min and max allowed values are : [1;60]
- * - For 8x8, min and max allowed values are : [1;15]
- * @return (uint8_t) status : 0 if ranging frequency is OK, or 127 if the value
- * is not correct.
- */
-
- uint8_t vl53l8cx_set_ranging_frequency_hz(
- uint8_t frequency_hz);
-
- /**
- * @brief This function gets the current integration time in ms.
- * @param (uint32_t) *p_time_ms: Contains integration time in ms.
- * @return (uint8_t) status : 0 if integration time is OK.
- */
-
- uint8_t vl53l8cx_get_integration_time_ms(
- uint32_t *p_time_ms);
-
- /**
- * @brief This function sets a new integration time in ms. Integration time must
- * be computed to be lower than the ranging period, for a selected resolution.
- * Please note that this function has no impact on ranging mode continuous.
- * @param (uint32_t) time_ms : Contains the integration time in ms. For all
- * resolutions and frequency, the minimum value is 2ms, and the maximum is
- * 1000ms.
- * @return (uint8_t) status : 0 if set integration time is OK.
- */
-
- uint8_t vl53l8cx_set_integration_time_ms(
- uint32_t integration_time_ms);
-
- /**
- * @brief This function gets the current sharpener in percent. Sharpener can be
- * changed to blur more or less zones depending of the application.
- * @param (uint32_t) *p_sharpener_percent: Contains the sharpener in percent.
- * @return (uint8_t) status : 0 if get sharpener is OK.
- */
-
- uint8_t vl53l8cx_get_sharpener_percent(
- uint8_t *p_sharpener_percent);
-
- /**
- * @brief This function sets a new sharpener value in percent. Sharpener can be
- * changed to blur more or less zones depending of the application. Min value is
- * 0 (disabled), and max is 99.
- * @param (uint32_t) sharpener_percent : Value between 0 (disabled) and 99%.
- * @return (uint8_t) status : 0 if set sharpener is OK.
- */
-
- uint8_t vl53l8cx_set_sharpener_percent(
- uint8_t sharpener_percent);
-
- /**
- * @brief This function gets the current target order (closest or strongest).
- * @param (uint8_t) *p_target_order: Contains the target order.
- * @return (uint8_t) status : 0 if get target order is OK.
- */
-
- uint8_t vl53l8cx_get_target_order(
- uint8_t *p_target_order);
-
- /**
- * @brief This function sets a new target order. Please use macros
- * VL53L8CX_TARGET_ORDER_STRONGEST and VL53L8CX_TARGET_ORDER_CLOSEST to define
- * the new output order. By default, the sensor is configured with the strongest
- * output.
- * @param (uint8_t) target_order : Required target order.
- * @return (uint8_t) status : 0 if set target order is OK, or 127 if target
- * order is unknown.
- */
-
- uint8_t vl53l8cx_set_target_order(
- uint8_t target_order);
-
- /**
- * @brief This function is used to get the ranging mode. Two modes are
- * available using ULD : Continuous and autonomous. The default
- * mode is Autonomous.
- * @param (uint8_t) *p_ranging_mode : current ranging mode
- * @return (uint8_t) status : 0 if get ranging mode is OK.
- */
-
- uint8_t vl53l8cx_get_ranging_mode(
- uint8_t *p_ranging_mode);
-
- /**
- * @brief This function is used to set the ranging mode. Two modes are
- * available using ULD : Continuous and autonomous. The default
- * mode is Autonomous.
- * @param (uint8_t) ranging_mode : Use macros VL53L8CX_RANGING_MODE_CONTINUOUS,
- * VL53L8CX_RANGING_MODE_CONTINUOUS.
- * @return (uint8_t) status : 0 if set ranging mode is OK.
- */
-
- uint8_t vl53l8cx_set_ranging_mode(
- uint8_t ranging_mode);
-
-
- /**
- * @brief This function is used to enable or disable the synchronization pin. When
- * it is enabled, the sensor waits an interrupt on B1 pin to start the next
- * measurement. It is useful for multi-devices synchronization. By default the sync
- * pin is disabled.
- * @param (uint8_t) enable_sync_pin : Ste the value to 1 to enable the sync
- * pin, or 0 to disable it.
- * @return (uint8_t) status : 0 if set sync pin OK.
- */
- uint8_t vl53l8cx_set_external_sync_pin_enable(
- uint8_t enable_sync_pin);
-
- /**
- * @brief This function is used to check if the synchronization pin is enabled
- * or disabled. When it is enabled, the sensor waits an interrupt on B1 pin
- * to start the next measurement. It is useful for multi-devices
- * synchronization. By default the sync pin is disabled.
- * @param (uint8_t*) p_is_sync_pin_enabled : Pointer of sync pin status. Value
- * overridden to 0 if the pin is disabled, or 1 if the pin is enabled.
- * @return (uint8_t) status : 0 if get sync pin OK.
- */
- uint8_t vl53l8cx_get_external_sync_pin_enable(
- uint8_t *p_is_sync_pin_enabled);
-
- /**
- * @brief This function can be used to read 'extra data' from DCI. Using a known
- * index, the function fills the casted structure passed in argument.
- * @param (uint8_t) *data : This field can be a casted structure, or a simple
- * array. Please note that the FW only accept data of 32 bits. So field data can
- * only have a size of 32, 64, 96, 128, bits ....
- * @param (uint32_t) index : Index of required value.
- * @param (uint16_t)*data_size : This field must be the structure or array size
- * (using sizeof() function).
- * @return (uint8_t) status : 0 if OK
- */
-
- uint8_t vl53l8cx_dci_read_data(
- uint8_t *data,
- uint32_t index,
- uint16_t data_size);
-
- /**
- * @brief This function can be used to write 'extra data' to DCI. The data can
- * be simple data, or casted structure.
- * @param (uint8_t) *data : This field can be a casted structure, or a simple
- * array. Please note that the FW only accept data of 32 bits. So field data can
- * only have a size of 32, 64, 96, 128, bits ..
- * @param (uint32_t) index : Index of required value.
- * @param (uint16_t)*data_size : This field must be the structure or array size
- * (using sizeof() function).
- * @return (uint8_t) status : 0 if OK
- */
-
- uint8_t vl53l8cx_dci_write_data(
- uint8_t *data,
- uint32_t index,
- uint16_t data_size);
-
- /**
- * @brief This function can be used to replace 'extra data' in DCI. The data can
- * be simple data, or casted structure.
- * @param (uint8_t) *data : This field can be a casted structure, or a simple
- * array. Please note that the FW only accept data of 32 bits. So field data can
- * only have a size of 32, 64, 96, 128, bits ..
- * @param (uint32_t) index : Index of required value.
- * @param (uint16_t)*data_size : This field must be the structure or array size
- * (using sizeof() function).
- * @param (uint8_t) *new_data : Contains the new fields.
- * @param (uint16_t) new_data_size : New data size.
- * @param (uint16_t) new_data_pos : New data position into the buffer.
- * @return (uint8_t) status : 0 if OK
- */
-
- uint8_t vl53l8cx_dci_replace_data(
- uint8_t *data,
- uint32_t index,
- uint16_t data_size,
- uint8_t *new_data,
- uint16_t new_data_size,
- uint16_t new_data_pos);
-
-
- /* Thresholds Detection APIs */
-
- /**
- * @brief This function allows indicating if the detection thresholds are
- * enabled.
- * @param (uint8_t) *p_enabled : Set to 1 if enabled, or 0 if disable.
- * @return (uint8_t) status : 0 if OK
- */
-
- uint8_t vl53l8cx_get_detection_thresholds_enable(
- uint8_t *p_enabled);
-
- /**
- * @brief This function allows enable the detection thresholds.
- * @param (uint8_t) enabled : Set to 1 to enable, or 0 to disable thresholds.
- * @return (uint8_t) status : 0 if programming is OK
- */
-
- uint8_t vl53l8cx_set_detection_thresholds_enable(
- uint8_t enabled);
-
- /**
- * @brief This function allows getting the detection thresholds.
- * @param (VL53L8CX_DetectionThresholds) *p_thresholds : Array of 64 thresholds.
- * @return (uint8_t) status : 0 if programming is OK
- */
-
- uint8_t vl53l8cx_get_detection_thresholds(
- VL53L8CX_DetectionThresholds *p_thresholds);
-
- /**
- * @brief This function allows programming the detection thresholds.
- * @param (VL53L8CX_DetectionThresholds) *p_thresholds : Array of 64 thresholds.
- * @return (uint8_t) status : 0 if programming is OK
- */
-
- uint8_t vl53l8cx_set_detection_thresholds(
- VL53L8CX_DetectionThresholds *p_thresholds);
-
- uint8_t vl53l8cx_get_detection_thresholds_auto_stop(
- uint8_t *p_auto_stop);
-
- uint8_t vl53l8cx_set_detection_thresholds_auto_stop(
- uint8_t p_auto_stop);
-
- /* Motion Indicator APIs */
-
- /**
- * @brief This function is used to initialized the motion indicator. By default,
- * indicator is programmed to monitor movements between 400mm and 1500mm.
- * @param (VL53L8CX_Motion_Configuration) *p_motion_config : Structure
- * containing the initialized motion configuration.
- * @param (uint8_t) resolution : Wanted resolution, defined by macros
- * VL53L8CX_RESOLUTION_4X4 or VL53L8CX_RESOLUTION_8X8.
- * @return (uint8_t) status : 0 if OK, or 127 is the resolution is unknown.
- */
-
- uint8_t vl53l8cx_motion_indicator_init(
- VL53L8CX_Motion_Configuration *p_motion_config,
- uint8_t resolution);
-
- /**
- * @brief This function can be used to change the working distance of motion
- * indicator. By default, indicator is programmed to monitor movements between
- * 400mm and 1500mm.
- * @param (VL53L8CX_Motion_Configuration) *p_motion_config : Structure
- * containing the initialized motion configuration.
- * @param (uint16_t) distance_min_mm : Minimum distance for indicator (min value
- * 400mm, max 4000mm).
- * @param (uint16_t) distance_max_mm : Maximum distance for indicator (min value
- * 400mm, max 4000mm).
- * VL53L8CX_RESOLUTION_4X4 or VL53L8CX_RESOLUTION_8X8.
- * @return (uint8_t) status : 0 if OK, or 127 if an argument is invalid.
- */
-
- uint8_t vl53l8cx_motion_indicator_set_distance_motion(
- VL53L8CX_Motion_Configuration *p_motion_config,
- uint16_t distance_min_mm,
- uint16_t distance_max_mm);
-
- /**
- * @brief This function is used to update the internal motion indicator map.
- * @param (VL53L8CX_Motion_Configuration) *p_motion_config : Structure
- * containing the initialized motion configuration.
- * @param (uint8_t) resolution : Wanted SCI resolution, defined by macros
- * VL53L8CX_RESOLUTION_4X4 or VL53L8CX_RESOLUTION_8X8.
- * @return (uint8_t) status : 0 if OK, or 127 is the resolution is unknown.
- */
-
- uint8_t vl53l8cx_motion_indicator_set_resolution(
- VL53L8CX_Motion_Configuration *p_motion_config,
- uint8_t resolution);
-
- /* XTalk APIs */
-
- /**
- * @brief This function starts the VL53L8CX sensor in order to calibrate Xtalk.
- * This calibration is recommended is user wants to use a coverglass.
- * @param (uint16_t) reflectance_percent : Target reflectance in percent. This
- * value is include between 1 and 99%. For a better efficiency, ST recommends a
- * 3% target reflectance.
- * @param (uint8_t) nb_samples : Nb of samples used for calibration. A higher
- * number of samples means a higher accuracy, but it increases the calibration
- * time. Minimum is 1 and maximum is 16.
- * @param (uint16_t) distance_mm : Target distance in mm. The minimum allowed
- * distance is 600mm, and maximum is 3000mm. The target must stay in Full FOV,
- * so short distance are easier for calibration.
- * @return (uint8_t) status : 0 if calibration OK, 127 if an argument has an
- * incorrect value, or 255 is something failed.
- */
-
- uint8_t vl53l8cx_calibrate_xtalk(
- uint16_t reflectance_percent,
- uint8_t nb_samples,
- uint16_t distance_mm);
-
- /**
- * @brief This function gets the Xtalk buffer. The buffer is available after
- * using the function vl53l8cx_calibrate_xtalk().
- * @param (uint8_t) *p_xtalk_data : Buffer with a size defined by
- * macro VL53L8CX_XTALK_SIZE.
- * @return (uint8_t) status : 0 if buffer reading OK
- */
-
- uint8_t vl53l8cx_get_caldata_xtalk(
- uint8_t *p_xtalk_data);
-
- /**
- * @brief This function sets the Xtalk buffer. This function can be used to
- * override default Xtalk buffer.
- * @param (uint8_t) *p_xtalk_data : Buffer with a size defined by
- * macro VL53L8CX_XTALK_SIZE.
- * @return (uint8_t) status : 0 if buffer OK
- */
-
- uint8_t vl53l8cx_set_caldata_xtalk(
- uint8_t *p_xtalk_data);
-
- /**
- * @brief This function gets the Xtalk margin. This margin is used to increase
- * the Xtalk threshold. It can also be used to avoid false positives after the
- * Xtalk calibration. The default value is 50 kcps/spads.
- * @param (uint32_t) *p_xtalk_margin : Xtalk margin in kcps/spads.
- * @return (uint8_t) status : 0 if reading OK
- */
-
- uint8_t vl53l8cx_get_xtalk_margin(
- uint32_t *p_xtalk_margin);
-
- /**
- * @brief This function sets the Xtalk margin. This margin is used to increase
- * the Xtalk threshold. It can also be used to avoid false positives after the
- * Xtalk calibration. The default value is 50 kcps/spads.
- * @param (uint32_t) xtalk_margin : New Xtalk margin in kcps/spads. Min value is
- * 0 kcps/spads, and max is 10.000 kcps/spads
- * @return (uint8_t) status : 0 if set margin is OK, or 127 is the margin is
- * invalid.
- */
-
- uint8_t vl53l8cx_set_xtalk_margin(
- uint32_t xtalk_margin);
-
- /**
- * @brief Mandatory function, used to swap a buffer. The buffer size is always a
- * multiple of 4 (4, 8, 12, 16, ...).
- * @param (uint8_t*) buffer : Buffer to swap, generally uint32_t
- * @param (uint16_t) size : Buffer size to swap
- */
-
- void SwapBuffer(
- uint8_t *buffer,
- uint16_t size);
-
- /* Helpful APIs */
- uint8_t get_stream_count(void)
- {
- return _dev.streamcount;
- };
-
- protected:
-
- /**
- * @brief Inner function, not available outside this file. This function is used
- * to wait for an answer from VL53L8CX sensor.
- */
- uint8_t _vl53l8cx_poll_for_answer(
- uint8_t size,
- uint8_t pos,
- uint16_t address,
- uint8_t mask,
- uint8_t expected_value);
- /**
- * @brief Inner function, not available outside this file. This function is used to
- * wait for the MCU to boot.
- */
- uint8_t _vl53l8cx_poll_for_mcu_boot();
- /**
- * @brief Inner function, not available outside this file. This function is used
- * to set the offset data gathered from NVM.
- */
- uint8_t _vl53l8cx_send_offset_data(
- uint8_t resolution);
-
- /**
- * @brief Inner function, not available outside this file. This function is used
- * to set the Xtalk data from generic configuration, or user's calibration.
- */
- uint8_t _vl53l8cx_send_xtalk_data(
- uint8_t resolution);
-
- /**
- * @brief Inner function, not available outside this file. This function is used to
- * wait for an answer from VL53L7 sensor.
- */
- uint8_t _vl53l8cx_poll_for_answer_xtalk(
- uint16_t address,
- uint8_t expected_value);
-
- /**
- * @brief Inner function, not available outside this file. This function is used to
- * program the output using the macro defined into the 'platform.h' file.
- */
- uint8_t _vl53l8cx_program_output_config();
-
- /* Platform APIs */
-
- /**
- * @param (VL53L8CX_Platform*) p_platform : Pointer of VL53L8CX platform
- * structure.
- * @param (uint16_t) Address : I2C location of value to read.
- * @param (uint8_t) *p_values : Pointer of value to read.
- * @return (uint8_t) status : 0 if OK
- */
-
- uint8_t RdByte(
- VL53L8CX_Platform *p_platform,
- uint16_t RegisterAddress,
- uint8_t *p_value);
-
- /**
- * @brief Mandatory function used to write one single byte.
- * @param (VL53L8CX_Platform*) p_platform : Pointer of VL53L8CX platform
- * structure.
- * @param (uint16_t) Address : I2C location of value to read.
- * @param (uint8_t) value : Pointer of value to write.
- * @return (uint8_t) status : 0 if OK
- */
-
- uint8_t WrByte(
- VL53L8CX_Platform *p_platform,
- uint16_t RegisterAddress,
- uint8_t value);
-
- /**
- * @brief Mandatory function used to read multiples bytes.
- * @param (VL53L8CX_Platform*) p_platform : Pointer of VL53L8CX platform
- * structure.
- * @param (uint16_t) Address : I2C location of values to read.
- * @param (uint8_t) *p_values : Buffer of bytes to read.
- * @param (uint32_t) size : Size of *p_values buffer.
- * @return (uint8_t) status : 0 if OK
- */
-
- uint8_t RdMulti(
- VL53L8CX_Platform *p_platform,
- uint16_t RegisterAddress,
- uint8_t *p_values,
- uint32_t size);
-
- /**
- * @brief Mandatory function used to write multiples bytes.
- * @param (VL53L8CX_Platform*) p_platform : Pointer of VL53L8CX platform
- * structure.
- * @param (uint16_t) Address : I2C location of values to write.
- * @param (uint8_t) *p_values : Buffer of bytes to write.
- * @param (uint32_t) size : Size of *p_values buffer.
- * @return (uint8_t) status : 0 if OK
- */
-
- uint8_t WrMulti(
- VL53L8CX_Platform *p_platform,
- uint16_t RegisterAddress,
- uint8_t *p_values,
- uint32_t size);
-
- /**
- * @brief Mandatory function, used to wait during an amount of time. It must be
- * filled as it's used into the API.
- * @param (VL53L8CX_Platform*) p_platform : Pointer of VL53L8CX platform
- * structure.
- * @param (uint32_t) TimeMs : Time to wait in ms.
- * @return (uint8_t) status : 0 if wait is finished.
- */
-
- uint8_t WaitMs(
- VL53L8CX_Platform *p_platform,
- uint32_t TimeMs);
-
- protected:
-
- /* VL53L8CX Device */
- VL53L8CX_Configuration _dev;
- VL53L8CX_Configuration *p_dev;
-};
-
-#endif /* __VL53L8CX_CLASS_H */
diff --git a/src/vl53l8cx_plugin_detection_thresholds.cpp b/src/vl53l8cx_plugin_detection_thresholds.c
similarity index 60%
rename from src/vl53l8cx_plugin_detection_thresholds.cpp
rename to src/vl53l8cx_plugin_detection_thresholds.c
index e48eb89..fd7029f 100644
--- a/src/vl53l8cx_plugin_detection_thresholds.cpp
+++ b/src/vl53l8cx_plugin_detection_thresholds.c
@@ -1,55 +1,32 @@
/**
- ******************************************************************************
- * @file vl53l8cx_plugin_detection_thresholds.cpp
- * @author STMicroelectronics
- * @version V1.0.0
- * @date 13 January 2023
- * @brief Implementation of the VL53L8CX APIs for thresholds detection.
- ******************************************************************************
- * @attention
- *
- * © COPYRIGHT(c) 2021 STMicroelectronics
- *
- * Redistribution and use in source and binary forms, with or without modification,
- * are permitted provided that the following conditions are met:
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * 3. Neither the name of STMicroelectronics nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
- * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- ******************************************************************************
- */
-
-#include "vl53l8cx_class.h"
-
-uint8_t VL53L8CX::vl53l8cx_get_detection_thresholds_enable(
+ *
+ * Copyright (c) 2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
+
+#include "vl53l8cx_plugin_detection_thresholds.h"
+
+uint8_t vl53l8cx_get_detection_thresholds_enable(
+ VL53L8CX_Configuration *p_dev,
uint8_t *p_enabled)
{
uint8_t status = VL53L8CX_STATUS_OK;
- status |= vl53l8cx_dci_read_data((uint8_t *)p_dev->temp_buffer,
+ status |= vl53l8cx_dci_read_data(p_dev, (uint8_t *)p_dev->temp_buffer,
VL53L8CX_DCI_DET_THRESH_GLOBAL_CONFIG, 8);
*p_enabled = p_dev->temp_buffer[0x1];
return status;
}
-uint8_t VL53L8CX::vl53l8cx_set_detection_thresholds_enable(
+uint8_t vl53l8cx_set_detection_thresholds_enable(
+ VL53L8CX_Configuration *p_dev,
uint8_t enabled)
{
uint8_t tmp, status = VL53L8CX_STATUS_OK;
@@ -64,25 +41,26 @@ uint8_t VL53L8CX::vl53l8cx_set_detection_thresholds_enable(
}
/* Set global interrupt config */
- status |= vl53l8cx_dci_replace_data(p_dev->temp_buffer,
+ status |= vl53l8cx_dci_replace_data(p_dev, p_dev->temp_buffer,
VL53L8CX_DCI_DET_THRESH_GLOBAL_CONFIG, 8,
(uint8_t *)&grp_global_config, 4, 0x00);
/* Update interrupt config */
- status |= vl53l8cx_dci_replace_data(p_dev->temp_buffer,
+ status |= vl53l8cx_dci_replace_data(p_dev, p_dev->temp_buffer,
VL53L8CX_DCI_DET_THRESH_CONFIG, 20,
(uint8_t *)&tmp, 1, 0x11);
return status;
}
-uint8_t VL53L8CX::vl53l8cx_get_detection_thresholds(
+uint8_t vl53l8cx_get_detection_thresholds(
+ VL53L8CX_Configuration *p_dev,
VL53L8CX_DetectionThresholds *p_thresholds)
{
uint8_t i, status = VL53L8CX_STATUS_OK;
/* Get thresholds configuration */
- status |= vl53l8cx_dci_read_data((uint8_t *)p_thresholds,
+ status |= vl53l8cx_dci_read_data(p_dev, (uint8_t *)p_thresholds,
VL53L8CX_DCI_DET_THRESH_START,
(uint16_t)VL53L8CX_NB_THRESHOLDS
* (uint16_t)sizeof(VL53L8CX_DetectionThresholds));
@@ -121,7 +99,8 @@ uint8_t VL53L8CX::vl53l8cx_get_detection_thresholds(
return status;
}
-uint8_t VL53L8CX::vl53l8cx_set_detection_thresholds(
+uint8_t vl53l8cx_set_detection_thresholds(
+ VL53L8CX_Configuration *p_dev,
VL53L8CX_DetectionThresholds *p_thresholds)
{
uint8_t i, status = VL53L8CX_STATUS_OK;
@@ -161,12 +140,12 @@ uint8_t VL53L8CX::vl53l8cx_set_detection_thresholds(
}
/* Set valid target list */
- status |= vl53l8cx_dci_write_data((uint8_t *)grp_valid_target_cfg,
+ status |= vl53l8cx_dci_write_data(p_dev, (uint8_t *)grp_valid_target_cfg,
VL53L8CX_DCI_DET_THRESH_VALID_STATUS,
(uint16_t)sizeof(grp_valid_target_cfg));
/* Set thresholds configuration */
- status |= vl53l8cx_dci_write_data((uint8_t *)p_thresholds,
+ status |= vl53l8cx_dci_write_data(p_dev, (uint8_t *)p_thresholds,
VL53L8CX_DCI_DET_THRESH_START,
(uint16_t)(VL53L8CX_NB_THRESHOLDS
* sizeof(VL53L8CX_DetectionThresholds)));
@@ -174,27 +153,29 @@ uint8_t VL53L8CX::vl53l8cx_set_detection_thresholds(
return status;
}
-uint8_t VL53L8CX::vl53l8cx_get_detection_thresholds_auto_stop(
+uint8_t vl53l8cx_get_detection_thresholds_auto_stop(
+ VL53L8CX_Configuration *p_dev,
uint8_t *p_auto_stop)
{
uint8_t status = VL53L8CX_STATUS_OK;
- status |= vl53l8cx_dci_read_data((uint8_t *)p_dev->temp_buffer,
+ status |= vl53l8cx_dci_read_data(p_dev, (uint8_t *)p_dev->temp_buffer,
VL53L8CX_DCI_PIPE_CONTROL, 4);
*p_auto_stop = p_dev->temp_buffer[0x3];
return status;
}
-uint8_t VL53L8CX::vl53l8cx_set_detection_thresholds_auto_stop(
+uint8_t vl53l8cx_set_detection_thresholds_auto_stop(
+ VL53L8CX_Configuration *p_dev,
uint8_t auto_stop)
{
uint8_t status = VL53L8CX_STATUS_OK;
- status |= vl53l8cx_dci_replace_data(p_dev->temp_buffer,
+ status |= vl53l8cx_dci_replace_data(p_dev, p_dev->temp_buffer,
VL53L8CX_DCI_PIPE_CONTROL, 4,
(uint8_t *)&auto_stop, 1, 0x03);
+ p_dev->is_auto_stop_enabled = (uint8_t)auto_stop;
return status;
}
-
diff --git a/src/vl53l8cx_plugin_detection_thresholds.h b/src/vl53l8cx_plugin_detection_thresholds.h
index 55a36b6..55467c4 100644
--- a/src/vl53l8cx_plugin_detection_thresholds.h
+++ b/src/vl53l8cx_plugin_detection_thresholds.h
@@ -1,44 +1,23 @@
/**
- ******************************************************************************
- * @file vl53l8cx_plugin_detection_thresholds.h
- * @author STMicroelectronics
- * @version V1.0.0
- * @date 13 January 2023
- * @brief Header file for the VL53L8CX thresholds detection structures.
- ******************************************************************************
- * @attention
- *
- * © COPYRIGHT(c) 2021 STMicroelectronics
- *
- * Redistribution and use in source and binary forms, with or without modification,
- * are permitted provided that the following conditions are met:
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * 3. Neither the name of STMicroelectronics nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
- * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- ******************************************************************************
- */
+ *
+ * Copyright (c) 2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
#ifndef VL53L8CX_PLUGIN_DETECTION_THRESHOLDS_H_
#define VL53L8CX_PLUGIN_DETECTION_THRESHOLDS_H_
-#include "vl53l8cx_class.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include "vl53l8cx_api.h"
/**
* @brief Macro VL53L8CX_NB_THRESHOLDS indicates the number of checkers. This
@@ -52,9 +31,9 @@
*/
#define VL53L8CX_DCI_DET_THRESH_CONFIG ((uint16_t)0x5488U)
-#define VL53L8CX_DCI_DET_THRESH_GLOBAL_CONFIG ((uint16_t)0xB6E0U)
+#define VL53L8CX_DCI_DET_THRESH_GLOBAL_CONFIG ((uint16_t)0xB6E0U)
#define VL53L8CX_DCI_DET_THRESH_START ((uint16_t)0xB6E8U)
-#define VL53L8CX_DCI_DET_THRESH_VALID_STATUS ((uint16_t)0xB9F0U)
+#define VL53L8CX_DCI_DET_THRESH_VALID_STATUS ((uint16_t)0xB9F0U)
/**
* @brief Macro VL53L8CX_LAST_THRESHOLD is used to indicate the end of checkers
@@ -69,13 +48,13 @@
*/
#define VL53L8CX_DISTANCE_MM ((uint8_t)1U)
-#define VL53L8CX_SIGNAL_PER_SPAD_KCPS ((uint8_t)2U)
+#define VL53L8CX_SIGNAL_PER_SPAD_KCPS ((uint8_t)2U)
#define VL53L8CX_RANGE_SIGMA_MM ((uint8_t)4U)
-#define VL53L8CX_AMBIENT_PER_SPAD_KCPS ((uint8_t)8U)
+#define VL53L8CX_AMBIENT_PER_SPAD_KCPS ((uint8_t)8U)
#define VL53L8CX_NB_TARGET_DETECTED ((uint8_t)9U)
#define VL53L8CX_TARGET_STATUS ((uint8_t)12U)
#define VL53L8CX_NB_SPADS_ENABLED ((uint8_t)13U)
-#define VL53L8CX_MOTION_INDICATOR ((uint8_t)19U)
+#define VL53L8CX_MOTION_INDICATOR ((uint8_t)19U)
/**
* @brief The following macro are used to define the 'type' of a checker.
@@ -83,12 +62,12 @@
* thresholds.
*/
-#define VL53L8CX_IN_WINDOW ((uint8_t)0U)
+#define VL53L8CX_IN_WINDOW ((uint8_t)0U)
#define VL53L8CX_OUT_OF_WINDOW ((uint8_t)1U)
-#define VL53L8CX_LESS_THAN_EQUAL_MIN_CHECKER ((uint8_t)2U)
-#define VL53L8CX_GREATER_THAN_MAX_CHECKER ((uint8_t)3U)
+#define VL53L8CX_LESS_THAN_EQUAL_MIN_CHECKER ((uint8_t)2U)
+#define VL53L8CX_GREATER_THAN_MAX_CHECKER ((uint8_t)3U)
#define VL53L8CX_EQUAL_MIN_CHECKER ((uint8_t)4U)
-#define VL53L8CX_NOT_EQUAL_MIN_CHECKER ((uint8_t)5U)
+#define VL53L8CX_NOT_EQUAL_MIN_CHECKER ((uint8_t)5U)
/**
* @brief The following macro are used to define multiple checkers in the same
@@ -123,5 +102,94 @@ typedef struct {
uint8_t mathematic_operation;
} VL53L8CX_DetectionThresholds;
+/**
+ * @brief This function allows indicating if the detection thresholds are
+ * enabled.
+ * @param (VL53L8CX_Configuration) *p_dev : VL53L8CX configuration structure.
+ * @param (uint8_t) *p_enabled : Set to 1 if enabled, or 0 if disable.
+ * @return (uint8_t) status : 0 if OK
+ */
+
+uint8_t vl53l8cx_get_detection_thresholds_enable(
+ VL53L8CX_Configuration *p_dev,
+ uint8_t *p_enabled);
+
+/**
+ * @brief This function allows enable the detection thresholds.
+ * @param (VL53L8CX_Configuration) *p_dev : VL53L8CX configuration structure.
+ * @param (uint8_t) enabled : Set to 1 to enable, or 0 to disable thresholds.
+ * @return (uint8_t) status : 0 if programming is OK
+ */
+
+uint8_t vl53l8cx_set_detection_thresholds_enable(
+ VL53L8CX_Configuration *p_dev,
+ uint8_t enabled);
+
+/**
+ * @brief This function allows getting the detection thresholds.
+ * @param (VL53L8CX_Configuration) *p_dev : VL53L8CX configuration structure.
+ * @param (VL53L8CX_DetectionThresholds) *p_thresholds : Array of 64 thresholds.
+ * @return (uint8_t) status : 0 if programming is OK
+ */
+
+uint8_t vl53l8cx_get_detection_thresholds(
+ VL53L8CX_Configuration *p_dev,
+ VL53L8CX_DetectionThresholds *p_thresholds);
+
+/**
+ * @brief This function allows programming the detection thresholds.
+ * @param (VL53L8CX_Configuration) *p_dev : VL53L8CX configuration structure.
+ * @param (VL53L8CX_DetectionThresholds) *p_thresholds : Array of 64 thresholds.
+ * @return (uint8_t) status : 0 if programming is OK
+ */
+
+uint8_t vl53l8cx_set_detection_thresholds(
+ VL53L8CX_Configuration *p_dev,
+ VL53L8CX_DetectionThresholds *p_thresholds);
+
+/**
+ * @brief This function is used to enable or disable the auto-stop feature.
+ * When ToF runs in autonomous mode with detection threshold, the sensor
+ * only emits an interrupt (INT pin) when a threshold is reached. Interrupt
+ * is raised when the measurement is completed. It is possible to abort the ranging
+ * without waiting for end of measurement completed by enabling the auto-stop. The
+ * sensor emits an interrupt and quickly aborts the measurements in progress. Please
+ * note that vl53l8cx_stop_ranging() function needs to be used after interrupt raised
+ * for a clean stop.
+ * This function is used to get the auto_stop flag.
+ * @param (VL53L8CX_Configuration) *p_dev : VL53L8CX configuration structure.
+ * @param (uint8_t) *p_auto_stop : Pointer of auto-stop feature, 0 disabled
+ * (default) or 1 enabled.
+ * @return (uint8_t) status : 0 if programming is OK
+ */
+
+uint8_t vl53l8cx_get_detection_thresholds_auto_stop(
+ VL53L8CX_Configuration *p_dev,
+ uint8_t *p_auto_stop);
+
+/**
+ * @brief This function is used to enable or disable the auto-stop feature.
+ * When ToF runs in autonomous mode with detection threshold, the sensor
+ * only emits an interrupt (INT pin) when a threshold is reached. Interrupt
+ * is raised when the measurement is completed. It is possible to abort the ranging
+ * without waiting for end of measurement completed by enabling the auto-stop. The
+ * sensor emits an interrupt and quickly aborts the measurements in progress. Please
+ * note that vl53l8cx_stop_ranging() function needs to be used after interrupt raised
+ * for a clean stop.
+ * This function is used to set the auto_stop flag.
+ * @param (VL53L8CX_Configuration) *p_dev : VL53L8CX configuration structure.
+ * @param (uint8_t) *p_auto_stop : Pointer of auto-stop feature, 0 disabled
+ * (default) or 1 enabled.
+ * @return (uint8_t) status : 0 if programming is OK
+ */
+
+uint8_t vl53l8cx_set_detection_thresholds_auto_stop(
+ VL53L8CX_Configuration *p_dev,
+ uint8_t auto_stop);
+
+
+#ifdef __cplusplus
+}
+#endif
#endif /* VL53L8CX_PLUGIN_DETECTION_THRESHOLDS_H_ */
diff --git a/src/vl53l8cx_plugin_motion_indicator.c b/src/vl53l8cx_plugin_motion_indicator.c
new file mode 100644
index 0000000..7430c8e
--- /dev/null
+++ b/src/vl53l8cx_plugin_motion_indicator.c
@@ -0,0 +1,115 @@
+/**
+ *
+ * Copyright (c) 2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
+
+#include
+#include "vl53l8cx_plugin_motion_indicator.h"
+
+uint8_t vl53l8cx_motion_indicator_init(
+ VL53L8CX_Configuration *p_dev,
+ VL53L8CX_Motion_Configuration *p_motion_config,
+ uint8_t resolution)
+{
+ uint8_t status = VL53L8CX_STATUS_OK;
+
+ (void)memset(p_motion_config, 0, sizeof(VL53L8CX_Motion_Configuration));
+
+ p_motion_config->ref_bin_offset = 13633;
+ p_motion_config->detection_threshold = 2883584;
+ p_motion_config->extra_noise_sigma = 0;
+ p_motion_config->null_den_clip_value = 0;
+ p_motion_config->mem_update_mode = 6;
+ p_motion_config->mem_update_choice = 2;
+ p_motion_config->sum_span = 4;
+ p_motion_config->feature_length = 9;
+ p_motion_config->nb_of_aggregates = 16;
+ p_motion_config->nb_of_temporal_accumulations = 16;
+ p_motion_config->min_nb_for_global_detection = 1;
+ p_motion_config->global_indicator_format_1 = 8;
+ p_motion_config->global_indicator_format_2 = 0;
+ p_motion_config->spare_1 = 0;
+ p_motion_config->spare_2 = 0;
+ p_motion_config->spare_3 = 0;
+
+ status |= vl53l8cx_motion_indicator_set_resolution(p_dev,
+ p_motion_config, resolution);
+
+ return status;
+}
+
+uint8_t vl53l8cx_motion_indicator_set_distance_motion(
+ VL53L8CX_Configuration *p_dev,
+ VL53L8CX_Motion_Configuration *p_motion_config,
+ uint16_t distance_min_mm,
+ uint16_t distance_max_mm)
+{
+ uint8_t status = VL53L8CX_STATUS_OK;
+ float_t tmp;
+
+ if (((distance_max_mm - distance_min_mm) > (uint16_t)1500)
+ || (distance_min_mm < (uint16_t)400)
+ || (distance_max_mm > (uint16_t)4000)) {
+ status |= VL53L8CX_STATUS_INVALID_PARAM;
+ } else {
+ tmp = (float_t)((((float_t)distance_min_mm / (float_t)37.5348)
+ - (float_t)4.0) * (float_t)2048.5);
+ p_motion_config->ref_bin_offset = (int32_t)tmp;
+
+ tmp = (float_t)((((((float_t)distance_max_mm -
+ (float_t)distance_min_mm) / (float_t)10.0) + (float_t)30.02784)
+ / ((float_t)15.01392)) + (float_t)0.5);
+ p_motion_config->feature_length = (uint8_t)tmp;
+
+ status |= vl53l8cx_dci_write_data(p_dev,
+ (uint8_t *)(p_motion_config),
+ VL53L8CX_DCI_MOTION_DETECTOR_CFG,
+ (uint16_t)sizeof(*p_motion_config));
+ }
+
+ return status;
+}
+
+uint8_t vl53l8cx_motion_indicator_set_resolution(
+ VL53L8CX_Configuration *p_dev,
+ VL53L8CX_Motion_Configuration *p_motion_config,
+ uint8_t resolution)
+{
+ uint8_t i, status = VL53L8CX_STATUS_OK;
+
+ switch (resolution) {
+ case VL53L8CX_RESOLUTION_4X4:
+ for (i = 0; i < (uint8_t)VL53L8CX_RESOLUTION_4X4; i++) {
+ p_motion_config->map_id[i] = (int8_t)i;
+ }
+ (void)memset(p_motion_config->map_id + 16, -1, 48);
+ break;
+
+ case VL53L8CX_RESOLUTION_8X8:
+ for (i = 0; i < (uint8_t)VL53L8CX_RESOLUTION_8X8; i++) {
+ p_motion_config->map_id[i] = (int8_t)((((int8_t)
+ i % 8) / 2) + (4 * ((int8_t)i / 16)));
+ }
+ break;
+
+ default:
+ status |= VL53L8CX_STATUS_ERROR;
+ break;
+ }
+
+ if (status == VL53L8CX_STATUS_OK) {
+ status |= vl53l8cx_dci_write_data(p_dev,
+ (uint8_t *)(p_motion_config),
+ VL53L8CX_DCI_MOTION_DETECTOR_CFG,
+ (uint16_t)sizeof(*p_motion_config));
+ }
+
+ return status;
+}
diff --git a/src/vl53l8cx_plugin_motion_indicator.cpp b/src/vl53l8cx_plugin_motion_indicator.cpp
deleted file mode 100644
index 38df2e8..0000000
--- a/src/vl53l8cx_plugin_motion_indicator.cpp
+++ /dev/null
@@ -1,137 +0,0 @@
-/**
- ******************************************************************************
- * @file vl53l8cx_plugin_motion_indicator.cpp
- * @author STMicroelectronics
- * @version V1.0.0
- * @date 13 January 2023
- * @brief Implementation of the VL53L8CX APIs for motion indicator.
- ******************************************************************************
- * @attention
- *
- * © COPYRIGHT(c) 2021 STMicroelectronics
- *
- * Redistribution and use in source and binary forms, with or without modification,
- * are permitted provided that the following conditions are met:
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * 3. Neither the name of STMicroelectronics nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
- * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- ******************************************************************************
- */
-
-#include
-#include "vl53l8cx_class.h"
-
-uint8_t VL53L8CX::vl53l8cx_motion_indicator_init(
- VL53L8CX_Motion_Configuration *p_motion_config,
- uint8_t resolution)
-{
- uint8_t status = VL53L8CX_STATUS_OK;
-
- (void)memset(p_motion_config, 0, sizeof(VL53L8CX_Motion_Configuration));
-
- p_motion_config->ref_bin_offset = 13633;
- p_motion_config->detection_threshold = 2883584;
- p_motion_config->extra_noise_sigma = 0;
- p_motion_config->null_den_clip_value = 0;
- p_motion_config->mem_update_mode = 6;
- p_motion_config->mem_update_choice = 2;
- p_motion_config->sum_span = 4;
- p_motion_config->feature_length = 9;
- p_motion_config->nb_of_aggregates = 16;
- p_motion_config->nb_of_temporal_accumulations = 16;
- p_motion_config->min_nb_for_global_detection = 1;
- p_motion_config->global_indicator_format_1 = 8;
- p_motion_config->global_indicator_format_2 = 0;
- p_motion_config->spare_1 = 0;
- p_motion_config->spare_2 = 0;
- p_motion_config->spare_3 = 0;
-
- status |= vl53l8cx_motion_indicator_set_resolution(
- p_motion_config, resolution);
-
- return status;
-}
-
-uint8_t VL53L8CX::vl53l8cx_motion_indicator_set_distance_motion(
- VL53L8CX_Motion_Configuration *p_motion_config,
- uint16_t distance_min_mm,
- uint16_t distance_max_mm)
-{
- uint8_t status = VL53L8CX_STATUS_OK;
- float_t tmp;
-
- if (((distance_max_mm - distance_min_mm) > (uint16_t)1500)
- || (distance_min_mm < (uint16_t)400)
- || (distance_max_mm > (uint16_t)4000)) {
- status |= VL53L8CX_STATUS_INVALID_PARAM;
- } else {
- tmp = (float_t)((((float_t)distance_min_mm / (float_t)37.5348)
- - (float_t)4.0) * (float_t)2048.5);
- p_motion_config->ref_bin_offset = (int32_t)tmp;
-
- tmp = (float_t)((((((float_t)distance_max_mm -
- (float_t)distance_min_mm) / (float_t)10.0) + (float_t)30.02784)
- / ((float_t)15.01392)) + (float_t)0.5);
- p_motion_config->feature_length = (uint8_t)tmp;
-
- status |= vl53l8cx_dci_write_data(
- (uint8_t *)(p_motion_config),
- VL53L8CX_DCI_MOTION_DETECTOR_CFG,
- (uint16_t)sizeof(*p_motion_config));
- }
-
- return status;
-}
-
-uint8_t VL53L8CX::vl53l8cx_motion_indicator_set_resolution(
- VL53L8CX_Motion_Configuration *p_motion_config,
- uint8_t resolution)
-{
- uint8_t i, status = VL53L8CX_STATUS_OK;
-
- switch (resolution) {
- case VL53L8CX_RESOLUTION_4X4:
- for (i = 0; i < (uint8_t)VL53L8CX_RESOLUTION_4X4; i++) {
- p_motion_config->map_id[i] = (int8_t)i;
- }
- (void)memset(p_motion_config->map_id + 16, -1, 48);
- break;
-
- case VL53L8CX_RESOLUTION_8X8:
- for (i = 0; i < (uint8_t)VL53L8CX_RESOLUTION_8X8; i++) {
- p_motion_config->map_id[i] = (int8_t)((((int8_t)
- i % 8) / 2) + (4 * ((int8_t)i / 16)));
- }
- break;
-
- default:
- status |= VL53L8CX_STATUS_ERROR;
- break;
- }
-
- if (status == VL53L8CX_STATUS_OK) {
- status |= vl53l8cx_dci_write_data(
- (uint8_t *)(p_motion_config),
- VL53L8CX_DCI_MOTION_DETECTOR_CFG,
- (uint16_t)sizeof(*p_motion_config));
- }
-
- return status;
-}
diff --git a/src/vl53l8cx_plugin_motion_indicator.h b/src/vl53l8cx_plugin_motion_indicator.h
index 6441712..873fa80 100644
--- a/src/vl53l8cx_plugin_motion_indicator.h
+++ b/src/vl53l8cx_plugin_motion_indicator.h
@@ -1,44 +1,23 @@
/**
- ******************************************************************************
- * @file vl53l8cx_plugin_motion_indicator.h
- * @author STMicroelectronics
- * @version V1.0.0
- * @date 13 January 2023
- * @brief Header file for the VL53L8CX motion indicator structures.
- ******************************************************************************
- * @attention
- *
- * © COPYRIGHT(c) 2021 STMicroelectronics
- *
- * Redistribution and use in source and binary forms, with or without modification,
- * are permitted provided that the following conditions are met:
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * 3. Neither the name of STMicroelectronics nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
- * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- ******************************************************************************
- */
+ *
+ * Copyright (c) 2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
#ifndef VL53L8CX_PLUGIN_MOTION_INDICATOR_H_
#define VL53L8CX_PLUGIN_MOTION_INDICATOR_H_
-#include "vl53l8cx_class.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include "vl53l8cx_api.h"
/**
* @brief Motion indicator internal configuration structure.
@@ -66,4 +45,60 @@ typedef struct {
uint8_t indicator_format_2[32];
} VL53L8CX_Motion_Configuration;
+/**
+ * @brief This function is used to initialized the motion indicator. By default,
+ * indicator is programmed to monitor movements between 400mm and 1500mm.
+ * @param (VL53L8CX_Configuration) *p_dev : VL53L8CX configuration structure.
+ * @param (VL53L8CX_Motion_Configuration) *p_motion_config : Structure
+ * containing the initialized motion configuration.
+ * @param (uint8_t) resolution : Wanted resolution, defined by macros
+ * VL53L8CX_RESOLUTION_4X4 or VL53L8CX_RESOLUTION_8X8.
+ * @return (uint8_t) status : 0 if OK, or 127 is the resolution is unknown.
+ */
+
+uint8_t vl53l8cx_motion_indicator_init(
+ VL53L8CX_Configuration *p_dev,
+ VL53L8CX_Motion_Configuration *p_motion_config,
+ uint8_t resolution);
+
+/**
+ * @brief This function can be used to change the working distance of motion
+ * indicator. By default, indicator is programmed to monitor movements between
+ * 400mm and 1500mm.
+ * @param (VL53L8CX_Configuration) *p_dev : VL53L8CX configuration structure.
+ * @param (VL53L8CX_Motion_Configuration) *p_motion_config : Structure
+ * containing the initialized motion configuration.
+ * @param (uint16_t) distance_min_mm : Minimum distance for indicator (min value
+ * 400mm, max 4000mm).
+ * @param (uint16_t) distance_max_mm : Maximum distance for indicator (min value
+ * 400mm, max 4000mm).
+ * VL53L8CX_RESOLUTION_4X4 or VL53L8CX_RESOLUTION_8X8.
+ * @return (uint8_t) status : 0 if OK, or 127 if an argument is invalid.
+ */
+
+uint8_t vl53l8cx_motion_indicator_set_distance_motion(
+ VL53L8CX_Configuration *p_dev,
+ VL53L8CX_Motion_Configuration *p_motion_config,
+ uint16_t distance_min_mm,
+ uint16_t distance_max_mm);
+
+/**
+ * @brief This function is used to update the internal motion indicator map.
+ * @param (VL53L8CX_Configuration) *p_dev : VL53L8CX configuration structure.
+ * @param (VL53L8CX_Motion_Configuration) *p_motion_config : Structure
+ * containing the initialized motion configuration.
+ * @param (uint8_t) resolution : Wanted SCI resolution, defined by macros
+ * VL53L8CX_RESOLUTION_4X4 or VL53L8CX_RESOLUTION_8X8.
+ * @return (uint8_t) status : 0 if OK, or 127 is the resolution is unknown.
+ */
+
+uint8_t vl53l8cx_motion_indicator_set_resolution(
+ VL53L8CX_Configuration *p_dev,
+ VL53L8CX_Motion_Configuration *p_motion_config,
+ uint8_t resolution);
+
+#ifdef __cplusplus
+}
+#endif
+
#endif /* VL53L8CX_PLUGIN_MOTION_INDICATOR_H_ */
diff --git a/src/vl53l8cx_plugin_xtalk.cpp b/src/vl53l8cx_plugin_xtalk.c
similarity index 52%
rename from src/vl53l8cx_plugin_xtalk.cpp
rename to src/vl53l8cx_plugin_xtalk.c
index 316ac9d..88de80a 100644
--- a/src/vl53l8cx_plugin_xtalk.cpp
+++ b/src/vl53l8cx_plugin_xtalk.c
@@ -1,48 +1,24 @@
/**
- ******************************************************************************
- * @file vl53l8cx_plugin_xtalk.cpp
- * @author STMicroelectronics
- * @version V1.0.0
- * @date 13 January 2023
- * @brief Implementation of the VL53L8CX APIs for xtalk calibration.
- ******************************************************************************
- * @attention
- *
- * © COPYRIGHT(c) 2021 STMicroelectronics
- *
- * Redistribution and use in source and binary forms, with or without modification,
- * are permitted provided that the following conditions are met:
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * 3. Neither the name of STMicroelectronics nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
- * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- ******************************************************************************
- */
-
-#include "vl53l8cx_class.h"
+ *
+ * Copyright (c) 2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
+
+#include "vl53l8cx_plugin_xtalk.h"
/*
* Inner function, not available outside this file. This function is used to
* wait for an answer from VL53L5 sensor.
*/
-uint8_t VL53L8CX::_vl53l8cx_poll_for_answer_xtalk(
+static uint8_t _vl53l8cx_poll_for_answer(
+ VL53L8CX_Configuration *p_dev,
uint16_t address,
uint8_t expected_value)
{
@@ -50,9 +26,9 @@ uint8_t VL53L8CX::_vl53l8cx_poll_for_answer_xtalk(
uint8_t timeout = 0;
do {
- status |= RdMulti(&(p_dev->platform),
- address, p_dev->temp_buffer, 4);
- status |= WaitMs(&(p_dev->platform), 10);
+ status |= VL53L8CX_RdMulti(&(p_dev->platform),
+ address, p_dev->temp_buffer, 4);
+ status |= VL53L8CX_WaitMs(&(p_dev->platform), 10);
/* 2s timeout or FW error*/
if ((timeout >= (uint8_t)200)
@@ -72,14 +48,15 @@ uint8_t VL53L8CX::_vl53l8cx_poll_for_answer_xtalk(
* program the output using the macro defined into the 'platform.h' file.
*/
-uint8_t VL53L8CX::_vl53l8cx_program_output_config()
+static uint8_t _vl53l8cx_program_output_config(
+ VL53L8CX_Configuration *p_dev)
{
uint8_t resolution, status = VL53L8CX_STATUS_OK;
uint32_t i;
- union Block_header *bh_ptr;
uint32_t header_config[2] = {0, 0};
+ union Block_header *bh_ptr;
- status |= vl53l8cx_get_resolution(&resolution);
+ status |= vl53l8cx_get_resolution(p_dev, &resolution);
p_dev->data_read_size = 0;
/* Enable mandatory output (meta and common data) */
@@ -135,29 +112,30 @@ uint8_t VL53L8CX::_vl53l8cx_program_output_config()
} else {
p_dev->data_read_size += bh_ptr->size;
}
+
p_dev->data_read_size += (uint32_t)4;
}
p_dev->data_read_size += (uint32_t)24;
- status |= vl53l8cx_dci_write_data(
- (uint8_t *) & (output),
- VL53L8CX_DCI_OUTPUT_LIST, (uint16_t)sizeof(output));
+ status |= vl53l8cx_dci_write_data(p_dev,
+ (uint8_t *) & (output),
+ VL53L8CX_DCI_OUTPUT_LIST, (uint16_t)sizeof(output));
header_config[0] = p_dev->data_read_size;
header_config[1] = i + (uint32_t)1;
- status |= vl53l8cx_dci_write_data(
- (uint8_t *) & (header_config), VL53L8CX_DCI_OUTPUT_CONFIG,
- (uint16_t)sizeof(header_config));
-
- status |= vl53l8cx_dci_write_data((uint8_t *) & (output_bh_enable),
+ status |= vl53l8cx_dci_write_data(p_dev, (uint8_t *) & (header_config),
+ VL53L8CX_DCI_OUTPUT_CONFIG,
+ (uint16_t)sizeof(header_config));
+ status |= vl53l8cx_dci_write_data(p_dev, (uint8_t *) & (output_bh_enable),
VL53L8CX_DCI_OUTPUT_ENABLES,
(uint16_t)sizeof(output_bh_enable));
return status;
}
-uint8_t VL53L8CX::vl53l8cx_calibrate_xtalk(
+uint8_t vl53l8cx_calibrate_xtalk(
+ VL53L8CX_Configuration *p_dev,
uint16_t reflectance_percent,
uint8_t nb_samples,
uint16_t distance_mm)
@@ -176,13 +154,13 @@ uint8_t VL53L8CX::vl53l8cx_calibrate_xtalk(
uint8_t *default_xtalk_ptr;
/* Get initial configuration */
- status |= vl53l8cx_get_resolution(&resolution);
- status |= vl53l8cx_get_ranging_frequency_hz(&frequency);
- status |= vl53l8cx_get_integration_time_ms(&integration_time_ms);
- status |= vl53l8cx_get_sharpener_percent(&sharp_prct);
- status |= vl53l8cx_get_target_order(&target_order);
- status |= vl53l8cx_get_xtalk_margin(&xtalk_margin);
- status |= vl53l8cx_get_ranging_mode(&ranging_mode);
+ status |= vl53l8cx_get_resolution(p_dev, &resolution);
+ status |= vl53l8cx_get_ranging_frequency_hz(p_dev, &frequency);
+ status |= vl53l8cx_get_integration_time_ms(p_dev, &integration_time_ms);
+ status |= vl53l8cx_get_sharpener_percent(p_dev, &sharp_prct);
+ status |= vl53l8cx_get_target_order(p_dev, &target_order);
+ status |= vl53l8cx_get_xtalk_margin(p_dev, &xtalk_margin);
+ status |= vl53l8cx_get_ranging_mode(p_dev, &ranging_mode);
/* Check input arguments validity */
if (((reflectance < (uint16_t)1) || (reflectance > (uint16_t)99))
@@ -190,50 +168,49 @@ uint8_t VL53L8CX::vl53l8cx_calibrate_xtalk(
|| ((samples < (uint8_t)1) || (samples > (uint8_t)16))) {
status |= VL53L8CX_STATUS_INVALID_PARAM;
} else {
- status |= vl53l8cx_set_resolution(
- VL53L8CX_RESOLUTION_8X8);
+ status |= vl53l8cx_set_resolution(p_dev,
+ VL53L8CX_RESOLUTION_8X8);
/* Send Xtalk calibration buffer */
(void)memcpy(p_dev->temp_buffer, VL53L8CX_CALIBRATE_XTALK,
sizeof(VL53L8CX_CALIBRATE_XTALK));
- status |= WrMulti(&(p_dev->platform), 0x2c28,
- p_dev->temp_buffer,
- (uint16_t)sizeof(VL53L8CX_CALIBRATE_XTALK));
- status |= _vl53l8cx_poll_for_answer_xtalk(
- VL53L8CX_UI_CMD_STATUS, 0x3);
+ status |= VL53L8CX_WrMulti(&(p_dev->platform), 0x2c28,
+ p_dev->temp_buffer,
+ (uint16_t)sizeof(VL53L8CX_CALIBRATE_XTALK));
+ status |= _vl53l8cx_poll_for_answer(p_dev,
+ VL53L8CX_UI_CMD_STATUS, 0x3);
/* Format input argument */
reflectance = reflectance * (uint16_t)16;
distance = distance * (uint16_t)4;
/* Update required fields */
- status |= vl53l8cx_dci_replace_data(p_dev->temp_buffer,
+ status |= vl53l8cx_dci_replace_data(p_dev, p_dev->temp_buffer,
VL53L8CX_DCI_CAL_CFG, 8,
(uint8_t *)&distance, 2, 0x00);
- status |= vl53l8cx_dci_replace_data(p_dev->temp_buffer,
+ status |= vl53l8cx_dci_replace_data(p_dev, p_dev->temp_buffer,
VL53L8CX_DCI_CAL_CFG, 8,
(uint8_t *)&reflectance, 2, 0x02);
- status |= vl53l8cx_dci_replace_data(p_dev->temp_buffer,
+ status |= vl53l8cx_dci_replace_data(p_dev, p_dev->temp_buffer,
VL53L8CX_DCI_CAL_CFG, 8,
(uint8_t *)&samples, 1, 0x04);
/* Program output for Xtalk calibration */
- status |= _vl53l8cx_program_output_config();
+ status |= _vl53l8cx_program_output_config(p_dev);
/* Start ranging session */
- status |= WrMulti(&(p_dev->platform),
- VL53L8CX_UI_CMD_END - (uint16_t)(4 - 1),
- (uint8_t *)cmd, sizeof(cmd));
- status |= _vl53l8cx_poll_for_answer_xtalk(
- VL53L8CX_UI_CMD_STATUS, 0x3);
+ status |= VL53L8CX_WrMulti(&(p_dev->platform),
+ VL53L8CX_UI_CMD_END - (uint16_t)(4 - 1),
+ (uint8_t *)cmd, sizeof(cmd));
+ status |= _vl53l8cx_poll_for_answer(p_dev,
+ VL53L8CX_UI_CMD_STATUS, 0x3);
/* Wait for end of calibration */
do {
- status |= RdMulti(&(p_dev->platform),
- 0x0, p_dev->temp_buffer, 4);
-
+ status |= VL53L8CX_RdMulti(&(p_dev->platform),
+ 0x0, p_dev->temp_buffer, 4);
if (p_dev->temp_buffer[0] != VL53L8CX_STATUS_ERROR) {
/* Coverglass too good for Xtalk calibration */
if ((p_dev->temp_buffer[2] >= (uint8_t)0x7f) &&
@@ -243,6 +220,7 @@ uint8_t VL53L8CX::vl53l8cx_calibrate_xtalk(
(void)memcpy(p_dev->xtalk_data,
default_xtalk_ptr,
sizeof(p_dev->xtalk_data));
+ status |= VL53L8CX_STATUS_XTALK_FAILED;
}
continue_loop = (uint8_t)0;
} else if (timeout >= (uint16_t)400) {
@@ -250,7 +228,7 @@ uint8_t VL53L8CX::vl53l8cx_calibrate_xtalk(
continue_loop = (uint8_t)0;
} else {
timeout++;
- status |= WaitMs(&(p_dev->platform), 50);
+ status |= VL53L8CX_WaitMs(&(p_dev->platform), 50);
}
} while (continue_loop == (uint8_t)1);
@@ -259,13 +237,13 @@ uint8_t VL53L8CX::vl53l8cx_calibrate_xtalk(
/* Save Xtalk data into the Xtalk buffer */
(void)memcpy(p_dev->temp_buffer, VL53L8CX_GET_XTALK_CMD,
sizeof(VL53L8CX_GET_XTALK_CMD));
- status |= WrMulti(&(p_dev->platform), 0x2fb8,
- p_dev->temp_buffer,
- (uint16_t)sizeof(VL53L8CX_GET_XTALK_CMD));
- status |= _vl53l8cx_poll_for_answer_xtalk(VL53L8CX_UI_CMD_STATUS, 0x03);
- status |= RdMulti(&(p_dev->platform), VL53L8CX_UI_CMD_START,
- p_dev->temp_buffer,
- VL53L8CX_XTALK_BUFFER_SIZE + (uint16_t)4);
+ status |= VL53L8CX_WrMulti(&(p_dev->platform), 0x2fb8,
+ p_dev->temp_buffer,
+ (uint16_t)sizeof(VL53L8CX_GET_XTALK_CMD));
+ status |= _vl53l8cx_poll_for_answer(p_dev, VL53L8CX_UI_CMD_STATUS, 0x03);
+ status |= VL53L8CX_RdMulti(&(p_dev->platform), VL53L8CX_UI_CMD_START,
+ p_dev->temp_buffer,
+ VL53L8CX_XTALK_BUFFER_SIZE + (uint16_t)4);
(void)memcpy(&(p_dev->xtalk_data[0]), &(p_dev->temp_buffer[8]),
VL53L8CX_XTALK_BUFFER_SIZE - (uint16_t)8);
@@ -273,66 +251,72 @@ uint8_t VL53L8CX::vl53l8cx_calibrate_xtalk(
- (uint16_t)8]), footer, sizeof(footer));
/* Reset default buffer */
- status |= WrMulti(&(p_dev->platform), 0x2c34,
- p_dev->default_configuration,
- VL53L8CX_CONFIGURATION_SIZE);
- status |= _vl53l8cx_poll_for_answer_xtalk(VL53L8CX_UI_CMD_STATUS, 0x03);
+ status |= VL53L8CX_WrMulti(&(p_dev->platform), 0x2c34,
+ p_dev->default_configuration,
+ VL53L8CX_CONFIGURATION_SIZE);
+ status |= _vl53l8cx_poll_for_answer(p_dev, VL53L8CX_UI_CMD_STATUS, 0x03);
/* Reset initial configuration */
- status |= vl53l8cx_set_resolution(resolution);
- status |= vl53l8cx_set_ranging_frequency_hz(frequency);
- status |= vl53l8cx_set_integration_time_ms(integration_time_ms);
- status |= vl53l8cx_set_sharpener_percent(sharp_prct);
- status |= vl53l8cx_set_target_order(target_order);
- status |= vl53l8cx_set_xtalk_margin(xtalk_margin);
- status |= vl53l8cx_set_ranging_mode(ranging_mode);
+ status |= vl53l8cx_set_resolution(p_dev, resolution);
+ status |= vl53l8cx_set_ranging_frequency_hz(p_dev, frequency);
+ status |= vl53l8cx_set_integration_time_ms(p_dev, integration_time_ms);
+ status |= vl53l8cx_set_sharpener_percent(p_dev, sharp_prct);
+ status |= vl53l8cx_set_target_order(p_dev, target_order);
+ status |= vl53l8cx_set_xtalk_margin(p_dev, xtalk_margin);
+ status |= vl53l8cx_set_ranging_mode(p_dev, ranging_mode);
return status;
}
-uint8_t VL53L8CX::vl53l8cx_get_caldata_xtalk(uint8_t *p_xtalk_data)
+uint8_t vl53l8cx_get_caldata_xtalk(
+ VL53L8CX_Configuration *p_dev,
+ uint8_t *p_xtalk_data)
{
uint8_t status = VL53L8CX_STATUS_OK, resolution;
uint8_t footer[] = {0x00, 0x00, 0x00, 0x0F, 0x00, 0x01, 0x03, 0x04};
- status |= vl53l8cx_get_resolution(&resolution);
- status |= vl53l8cx_set_resolution(VL53L8CX_RESOLUTION_8X8);
+ status |= vl53l8cx_get_resolution(p_dev, &resolution);
+ status |= vl53l8cx_set_resolution(p_dev, VL53L8CX_RESOLUTION_8X8);
(void)memcpy(p_dev->temp_buffer, VL53L8CX_GET_XTALK_CMD,
sizeof(VL53L8CX_GET_XTALK_CMD));
- status |= WrMulti(&(p_dev->platform), 0x2fb8,
- p_dev->temp_buffer, sizeof(VL53L8CX_GET_XTALK_CMD));
- status |= _vl53l8cx_poll_for_answer_xtalk(VL53L8CX_UI_CMD_STATUS, 0x03);
- status |= RdMulti(&(p_dev->platform), VL53L8CX_UI_CMD_START,
- p_dev->temp_buffer,
- VL53L8CX_XTALK_BUFFER_SIZE + (uint16_t)4);
+ status |= VL53L8CX_WrMulti(&(p_dev->platform), 0x2fb8,
+ p_dev->temp_buffer, sizeof(VL53L8CX_GET_XTALK_CMD));
+ status |= _vl53l8cx_poll_for_answer(p_dev, VL53L8CX_UI_CMD_STATUS, 0x03);
+ status |= VL53L8CX_RdMulti(&(p_dev->platform), VL53L8CX_UI_CMD_START,
+ p_dev->temp_buffer,
+ VL53L8CX_XTALK_BUFFER_SIZE + (uint16_t)4);
(void)memcpy(&(p_xtalk_data[0]), &(p_dev->temp_buffer[8]),
VL53L8CX_XTALK_BUFFER_SIZE - (uint16_t)8);
(void)memcpy(&(p_xtalk_data[VL53L8CX_XTALK_BUFFER_SIZE - (uint16_t)8]),
footer, sizeof(footer));
- status |= vl53l8cx_set_resolution(resolution);
+ status |= vl53l8cx_set_resolution(p_dev, resolution);
return status;
}
-uint8_t VL53L8CX::vl53l8cx_set_caldata_xtalk(uint8_t *p_xtalk_data)
+uint8_t vl53l8cx_set_caldata_xtalk(
+ VL53L8CX_Configuration *p_dev,
+ uint8_t *p_xtalk_data)
{
uint8_t resolution, status = VL53L8CX_STATUS_OK;
- status |= vl53l8cx_get_resolution(&resolution);
+ status |= vl53l8cx_get_resolution(p_dev, &resolution);
(void)memcpy(p_dev->xtalk_data, p_xtalk_data, VL53L8CX_XTALK_BUFFER_SIZE);
- status |= vl53l8cx_set_resolution(resolution);
+ status |= vl53l8cx_set_resolution(p_dev, resolution);
return status;
}
-uint8_t VL53L8CX::vl53l8cx_get_xtalk_margin(uint32_t *p_xtalk_margin)
+uint8_t vl53l8cx_get_xtalk_margin(
+ VL53L8CX_Configuration *p_dev,
+ uint32_t *p_xtalk_margin)
{
uint8_t status = VL53L8CX_STATUS_OK;
- status |= vl53l8cx_dci_read_data((uint8_t *)p_dev->temp_buffer,
+ status |= vl53l8cx_dci_read_data(p_dev, (uint8_t *)p_dev->temp_buffer,
VL53L8CX_DCI_XTALK_CFG, 16);
(void)memcpy(p_xtalk_margin, p_dev->temp_buffer, 4);
@@ -341,7 +325,9 @@ uint8_t VL53L8CX::vl53l8cx_get_xtalk_margin(uint32_t *p_xtalk_margin)
return status;
}
-uint8_t VL53L8CX::vl53l8cx_set_xtalk_margin(uint32_t xtalk_margin)
+uint8_t vl53l8cx_set_xtalk_margin(
+ VL53L8CX_Configuration *p_dev,
+ uint32_t xtalk_margin)
{
uint8_t status = VL53L8CX_STATUS_OK;
uint32_t margin_kcps = xtalk_margin;
@@ -350,7 +336,7 @@ uint8_t VL53L8CX::vl53l8cx_set_xtalk_margin(uint32_t xtalk_margin)
status |= VL53L8CX_STATUS_INVALID_PARAM;
} else {
margin_kcps = margin_kcps * (uint32_t)2048;
- status |= vl53l8cx_dci_replace_data(p_dev->temp_buffer,
+ status |= vl53l8cx_dci_replace_data(p_dev, p_dev->temp_buffer,
VL53L8CX_DCI_XTALK_CFG, 16,
(uint8_t *)&margin_kcps, 4, 0x00);
}
diff --git a/src/vl53l8cx_plugin_xtalk.h b/src/vl53l8cx_plugin_xtalk.h
index 21b5578..53355da 100644
--- a/src/vl53l8cx_plugin_xtalk.h
+++ b/src/vl53l8cx_plugin_xtalk.h
@@ -1,53 +1,33 @@
/**
- ******************************************************************************
- * @file vl53l8cx_plugin_xtalk.h
- * @author STMicroelectronics
- * @version V1.0.0
- * @date 13 January 2023
- * @brief Header file for the VL53L8CX xtalk structures.
- ******************************************************************************
- * @attention
- *
- * © COPYRIGHT(c) 2021 STMicroelectronics
- *
- * Redistribution and use in source and binary forms, with or without modification,
- * are permitted provided that the following conditions are met:
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * 3. Neither the name of STMicroelectronics nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
- * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- ******************************************************************************
- */
+ *
+ * Copyright (c) 2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
#ifndef VL53L8CX_PLUGIN_XTALK_H_
#define VL53L8CX_PLUGIN_XTALK_H_
-#include "vl53l8cx_class.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+#include "vl53l8cx_api.h"
/**
* @brief Inner internal number of targets.
*/
#if VL53L8CX_NB_TARGET_PER_ZONE == 1
- #define VL53L8CX_FW_NBTAR_XTALK 2
+#define VL53L8CX_FW_NBTAR_XTALK 2
#else
- #define VL53L8CX_FW_NBTAR_XTALK VL53L8CX_NB_TARGET_PER_ZONE
+#define VL53L8CX_FW_NBTAR_XTALK VL53L8CX_NB_TARGET_PER_ZONE
#endif
/**
@@ -57,6 +37,84 @@
#define VL53L8CX_DCI_CAL_CFG ((uint16_t)0x5470U)
#define VL53L8CX_DCI_XTALK_CFG ((uint16_t)0xAD94U)
+
+/**
+ * @brief This function starts the VL53L8CX sensor in order to calibrate Xtalk.
+ * This calibration is recommended is user wants to use a coverglass.
+ * @param (VL53L8CX_Configuration) *p_dev : VL53L8CX configuration structure.
+ * @param (uint16_t) reflectance_percent : Target reflectance in percent. This
+ * value is include between 1 and 99%. For a better efficiency, ST recommends a
+ * 3% target reflectance.
+ * @param (uint8_t) nb_samples : Nb of samples used for calibration. A higher
+ * number of samples means a higher accuracy, but it increases the calibration
+ * time. Minimum is 1 and maximum is 16.
+ * @param (uint16_t) distance_mm : Target distance in mm. The minimum allowed
+ * distance is 600mm, and maximum is 3000mm. The target must stay in Full FOV,
+ * so short distance are easier for calibration.
+ * @return (uint8_t) status : 0 if calibration OK, 127 if an argument has an
+ * incorrect value, or 255 is something failed.
+ */
+
+uint8_t vl53l8cx_calibrate_xtalk(
+ VL53L8CX_Configuration *p_dev,
+ uint16_t reflectance_percent,
+ uint8_t nb_samples,
+ uint16_t distance_mm);
+
+/**
+ * @brief This function gets the Xtalk buffer. The buffer is available after
+ * using the function vl53l8cx_calibrate_xtalk().
+ * @param (VL53L8CX_Configuration) *p_dev : VL53L5 configuration structure.
+ * @param (uint8_t) *p_xtalk_data : Buffer with a size defined by
+ * macro VL53L8CX_XTALK_SIZE.
+ * @return (uint8_t) status : 0 if buffer reading OK
+ */
+
+uint8_t vl53l8cx_get_caldata_xtalk(
+ VL53L8CX_Configuration *p_dev,
+ uint8_t *p_xtalk_data);
+
+/**
+ * @brief This function sets the Xtalk buffer. This function can be used to
+ * override default Xtalk buffer.
+ * @param (VL53L8CX_Configuration) *p_dev : VL53L5 configuration structure.
+ * @param (uint8_t) *p_xtalk_data : Buffer with a size defined by
+ * macro VL53L8CX_XTALK_SIZE.
+ * @return (uint8_t) status : 0 if buffer OK
+ */
+
+uint8_t vl53l8cx_set_caldata_xtalk(
+ VL53L8CX_Configuration *p_dev,
+ uint8_t *p_xtalk_data);
+
+/**
+ * @brief This function gets the Xtalk margin. This margin is used to increase
+ * the Xtalk threshold. It can also be used to avoid false positives after the
+ * Xtalk calibration. The default value is 50 kcps/spads.
+ * @param (VL53L8CX_Configuration) *p_dev : VL53L8CX configuration structure.
+ * @param (uint32_t) *p_xtalk_margin : Xtalk margin in kcps/spads.
+ * @return (uint8_t) status : 0 if reading OK
+ */
+
+uint8_t vl53l8cx_get_xtalk_margin(
+ VL53L8CX_Configuration *p_dev,
+ uint32_t *p_xtalk_margin);
+
+/**
+ * @brief This function sets the Xtalk margin. This margin is used to increase
+ * the Xtalk threshold. It can also be used to avoid false positives after the
+ * Xtalk calibration. The default value is 50 kcps/spads.
+ * @param (VL53L8CX_Configuration) *p_dev : VL53L8CX configuration structure.
+ * @param (uint32_t) xtalk_margin : New Xtalk margin in kcps/spads. Min value is
+ * 0 kcps/spads, and max is 10.000 kcps/spads
+ * @return (uint8_t) status : 0 if set margin is OK, or 127 is the margin is
+ * invalid.
+ */
+
+uint8_t vl53l8cx_set_xtalk_margin(
+ VL53L8CX_Configuration *p_dev,
+ uint32_t xtalk_margin);
+
/**
* @brief Command used to get Xtalk calibration data
*/
@@ -335,4 +393,8 @@ static const uint8_t VL53L8CX_CALIBRATE_XTALK[] = {
0x00, 0x01, 0x03, 0xD4
};
+#ifdef __cplusplus
+}
+#endif
+
#endif /* VL53L8CX_PLUGIN_XTALK_H_ */