From 294f908b5d189f00cc1c6d83cfebef4591023ef9 Mon Sep 17 00:00:00 2001
From: YunHorn Technology <dp.s@yunhorn.com>
Date: Mon, 30 Sep 2024 18:48:16 +0800
Subject: [PATCH 1/4] wip

---
 Core/Inc/main.h                               |  2 +-
 Core/Inc/utilities_def.h                      |  2 +-
 LoRaWAN/App/lora_app.c                        |  6 ++
 STM32CubeIDE/.cproject                        |  2 +-
 .../Release/Application/User/Core/subdir.mk   | 38 +++++------
 .../Application/User/LoRaWAN/App/subdir.mk    |  8 +--
 .../Application/User/LoRaWAN/Target/subdir.mk |  2 +-
 .../Application/User/STS/Core/Src/subdir.mk   |  6 +-
 .../Application/User/STS/TOF/App/subdir.mk    |  4 +-
 .../Application/User/STS/TOF/Target/subdir.mk |  2 +-
 .../User/STS/TOF/vl53l1x_uld/subdir.mk        |  8 +--
 .../Drivers/BSP/STM32WLxx_Nucleo/subdir.mk    |  4 +-
 STM32CubeIDE/Release/Drivers/CMSIS/subdir.mk  |  2 +-
 .../Drivers/STM32WLxx_HAL_Driver/subdir.mk    | 48 +++++++-------
 .../Release/Middlewares/LoRaWAN/subdir.mk     | 66 +++++++++----------
 .../Release/Middlewares/SubGHz_Phy/subdir.mk  |  6 +-
 STM32CubeIDE/Release/Utilities/subdir.mk      | 16 ++---
 STS/Core/Inc/yunhorn_sts_prd_conf.h           | 17 ++++-
 STS/Core/Src/yunhorn_sts_process.c            |  3 +
 STS/TOF/App/app_tof_peoplecount.c             | 16 +++++
 STS/TOF/App/app_tof_peoplecount.h             | 12 ++++
 21 files changed, 159 insertions(+), 111 deletions(-)

diff --git a/Core/Inc/main.h b/Core/Inc/main.h
index 8d33239..11b7966 100644
--- a/Core/Inc/main.h
+++ b/Core/Inc/main.h
@@ -113,7 +113,7 @@ void Error_Handler(void);
 
 #if (defined(TOF_1)||defined(TOF_2)||defined(STS_R1)||defined(STS_R5)||defined(STS_R1D))
 #define VL53L0
-#elif	defined(STS_P2)
+#elif	(defined(STS_P2)||defined(STS_T6))
 #define VL53LX		1
 #endif
 
diff --git a/Core/Inc/utilities_def.h b/Core/Inc/utilities_def.h
index c0fe858..32a810d 100644
--- a/Core/Inc/utilities_def.h
+++ b/Core/Inc/utilities_def.h
@@ -92,7 +92,7 @@ typedef enum
 #if	defined(STS_R1)||defined(STS_R1D)||defined(STS_R5)||defined(STS_R2)
   CFG_SEQ_Task_YunhornSTSEventP4,				/*	TOF RANGE			*/
 #endif
-#ifdef	STS_P2
+#if	defined(STS_P2)||defined(STS_T6)
   CFG_SEQ_Task_YunhornSTSEventP5,				/*	TOF IN-OUT			*/
 #endif
 #ifdef	STS_R4
diff --git a/LoRaWAN/App/lora_app.c b/LoRaWAN/App/lora_app.c
index 4c96e8b..9cb3d5c 100644
--- a/LoRaWAN/App/lora_app.c
+++ b/LoRaWAN/App/lora_app.c
@@ -752,6 +752,8 @@ static void SendTxData(void)
   UTIL_TIMER_Time_t nextTxIn = 0;
 #ifdef STS_P2
   sts_people_count_sensor_data_t sts_p2_sensor_data={0x0};
+#elif	defined(STS_T6)
+  sts_tof_presence_detection_sensor_data_t sts_t6_sensor_data={0x0};
 #elif	defined(STS_R1)||defined(STS_R1D)||defined(STS_R2)||defined(STS_R5)
   sts_tof_range_data_t sts_rr_sensor_data={0x0,0x0,0x0};
 #elif	defined(STS_R4)
@@ -792,7 +794,11 @@ static void SendTxData(void)
 
 
 #ifdef VL53LX
+#ifdef STS_P2
     STS_people_count_sensor_Read(&sts_p2_sensor_data);
+#elif defined(STS_T6)
+    STS_tof_presence_detection_sensor_Read(&sts_t6_sensor_data);
+#endif
 #endif
 
 #ifdef VL53L0
diff --git a/STM32CubeIDE/.cproject b/STM32CubeIDE/.cproject
index dc1d683..5434398 100644
--- a/STM32CubeIDE/.cproject
+++ b/STM32CubeIDE/.cproject
@@ -133,7 +133,7 @@
 								<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.debuglevel.633674641" name="Debug level" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.debuglevel" useByScannerDiscovery="false" value="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.debuglevel.value.g0" valueType="enumerated"/>
 								<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.optimization.level.1119592399" name="Optimization level" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.optimization.level" useByScannerDiscovery="false" value="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.optimization.level.value.os" valueType="enumerated"/>
 								<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.definedsymbols.2024044405" name="Define symbols (-D)" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.definedsymbols" useByScannerDiscovery="false" valueType="definedSymbols">
-									<listOptionValue builtIn="false" value="STS_P2"/>
+									<listOptionValue builtIn="false" value="STS_T6"/>
 									<listOptionValue builtIn="false" value="CORE_CM4"/>
 									<listOptionValue builtIn="false" value="USE_HAL_DRIVER"/>
 									<listOptionValue builtIn="false" value="STM32WLE5xx"/>
diff --git a/STM32CubeIDE/Release/Application/User/Core/subdir.mk b/STM32CubeIDE/Release/Application/User/Core/subdir.mk
index 868d83e..a5d5258 100644
--- a/STM32CubeIDE/Release/Application/User/Core/subdir.mk
+++ b/STM32CubeIDE/Release/Application/User/Core/subdir.mk
@@ -73,43 +73,43 @@ C_DEPS += \
 
 # Each subdirectory must supply rules for building sources it contributes
 Application/User/Core/adc.o: D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/adc.c Application/User/Core/subdir.mk
-	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_P2 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
+	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
 Application/User/Core/adc_if.o: D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/adc_if.c Application/User/Core/subdir.mk
-	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_P2 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
+	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
 Application/User/Core/dma.o: D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/dma.c Application/User/Core/subdir.mk
-	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_P2 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
+	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
 Application/User/Core/flash_if.o: D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/flash_if.c Application/User/Core/subdir.mk
-	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_P2 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
+	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
 Application/User/Core/gpio.o: D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/gpio.c Application/User/Core/subdir.mk
-	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_P2 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
+	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
 Application/User/Core/i2c.o: D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/i2c.c Application/User/Core/subdir.mk
-	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_P2 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
+	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
 Application/User/Core/main.o: D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/main.c Application/User/Core/subdir.mk
-	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_P2 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
+	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
 Application/User/Core/rtc.o: D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/rtc.c Application/User/Core/subdir.mk
-	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_P2 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
+	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
 Application/User/Core/stm32_lpm_if.o: D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/stm32_lpm_if.c Application/User/Core/subdir.mk
-	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_P2 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
+	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
 Application/User/Core/stm32wlxx_hal_msp.o: D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/stm32wlxx_hal_msp.c Application/User/Core/subdir.mk
-	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_P2 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
+	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
 Application/User/Core/stm32wlxx_it.o: D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/stm32wlxx_it.c Application/User/Core/subdir.mk
-	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_P2 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
+	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
 Application/User/Core/subghz.o: D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/subghz.c Application/User/Core/subdir.mk
-	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_P2 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
+	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
 Application/User/Core/sys_app.o: D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/sys_app.c Application/User/Core/subdir.mk
-	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_P2 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
+	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
 Application/User/Core/sys_debug.o: D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/sys_debug.c Application/User/Core/subdir.mk
-	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_P2 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
+	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
 Application/User/Core/sys_sensors.o: D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/sys_sensors.c Application/User/Core/subdir.mk
-	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_P2 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
+	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
 Application/User/Core/%.o Application/User/Core/%.su Application/User/Core/%.cyclo: ../Application/User/Core/%.c Application/User/Core/subdir.mk
-	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_P2 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
+	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
 Application/User/Core/timer_if.o: D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/timer_if.c Application/User/Core/subdir.mk
-	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_P2 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
+	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
 Application/User/Core/usart.o: D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/usart.c Application/User/Core/subdir.mk
-	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_P2 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
+	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
 Application/User/Core/usart_if.o: D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/usart_if.c Application/User/Core/subdir.mk
-	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_P2 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
+	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
 
 clean: clean-Application-2f-User-2f-Core
 
diff --git a/STM32CubeIDE/Release/Application/User/LoRaWAN/App/subdir.mk b/STM32CubeIDE/Release/Application/User/LoRaWAN/App/subdir.mk
index 2f979cb..97b1ee8 100644
--- a/STM32CubeIDE/Release/Application/User/LoRaWAN/App/subdir.mk
+++ b/STM32CubeIDE/Release/Application/User/LoRaWAN/App/subdir.mk
@@ -25,13 +25,13 @@ C_DEPS += \
 
 # Each subdirectory must supply rules for building sources it contributes
 Application/User/LoRaWAN/App/CayenneLpp.o: D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/LoRaWAN/App/CayenneLpp.c Application/User/LoRaWAN/App/subdir.mk
-	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_P2 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
+	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
 Application/User/LoRaWAN/App/app_lorawan.o: D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/LoRaWAN/App/app_lorawan.c Application/User/LoRaWAN/App/subdir.mk
-	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_P2 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
+	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
 Application/User/LoRaWAN/App/lora_app.o: D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/LoRaWAN/App/lora_app.c Application/User/LoRaWAN/App/subdir.mk
-	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_P2 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
+	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
 Application/User/LoRaWAN/App/lora_info.o: D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/LoRaWAN/App/lora_info.c Application/User/LoRaWAN/App/subdir.mk
-	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_P2 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
+	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
 
 clean: clean-Application-2f-User-2f-LoRaWAN-2f-App
 
diff --git a/STM32CubeIDE/Release/Application/User/LoRaWAN/Target/subdir.mk b/STM32CubeIDE/Release/Application/User/LoRaWAN/Target/subdir.mk
index c9c84fe..31957c9 100644
--- a/STM32CubeIDE/Release/Application/User/LoRaWAN/Target/subdir.mk
+++ b/STM32CubeIDE/Release/Application/User/LoRaWAN/Target/subdir.mk
@@ -16,7 +16,7 @@ C_DEPS += \
 
 # Each subdirectory must supply rules for building sources it contributes
 Application/User/LoRaWAN/Target/radio_board_if.o: D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/LoRaWAN/Target/radio_board_if.c Application/User/LoRaWAN/Target/subdir.mk
-	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_P2 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
+	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
 
 clean: clean-Application-2f-User-2f-LoRaWAN-2f-Target
 
diff --git a/STM32CubeIDE/Release/Application/User/STS/Core/Src/subdir.mk b/STM32CubeIDE/Release/Application/User/STS/Core/Src/subdir.mk
index 08bce5a..696d0a3 100644
--- a/STM32CubeIDE/Release/Application/User/STS/Core/Src/subdir.mk
+++ b/STM32CubeIDE/Release/Application/User/STS/Core/Src/subdir.mk
@@ -22,11 +22,11 @@ C_DEPS += \
 
 # Each subdirectory must supply rules for building sources it contributes
 Application/User/STS/Core/Src/cmox_low_level.o: D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/STS/Core/Src/cmox_low_level.c Application/User/STS/Core/Src/subdir.mk
-	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_P2 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
+	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
 Application/User/STS/Core/Src/sts_cmox_hmac_sha.o: D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/STS/Core/Src/sts_cmox_hmac_sha.c Application/User/STS/Core/Src/subdir.mk
-	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_P2 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
+	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
 Application/User/STS/Core/Src/yunhorn_sts_process.o: D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/STS/Core/Src/yunhorn_sts_process.c Application/User/STS/Core/Src/subdir.mk
-	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_P2 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
+	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
 
 clean: clean-Application-2f-User-2f-STS-2f-Core-2f-Src
 
diff --git a/STM32CubeIDE/Release/Application/User/STS/TOF/App/subdir.mk b/STM32CubeIDE/Release/Application/User/STS/TOF/App/subdir.mk
index d7654f1..3a3daf7 100644
--- a/STM32CubeIDE/Release/Application/User/STS/TOF/App/subdir.mk
+++ b/STM32CubeIDE/Release/Application/User/STS/TOF/App/subdir.mk
@@ -19,9 +19,9 @@ C_DEPS += \
 
 # Each subdirectory must supply rules for building sources it contributes
 Application/User/STS/TOF/App/app_tof.o: D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/STS/TOF/App/app_tof.c Application/User/STS/TOF/App/subdir.mk
-	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_P2 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
+	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
 Application/User/STS/TOF/App/app_tof_peoplecount.o: D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/STS/TOF/App/app_tof_peoplecount.c Application/User/STS/TOF/App/subdir.mk
-	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_P2 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
+	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
 
 clean: clean-Application-2f-User-2f-STS-2f-TOF-2f-App
 
diff --git a/STM32CubeIDE/Release/Application/User/STS/TOF/Target/subdir.mk b/STM32CubeIDE/Release/Application/User/STS/TOF/Target/subdir.mk
index 7c2d37a..c8ddbb2 100644
--- a/STM32CubeIDE/Release/Application/User/STS/TOF/Target/subdir.mk
+++ b/STM32CubeIDE/Release/Application/User/STS/TOF/Target/subdir.mk
@@ -16,7 +16,7 @@ C_DEPS += \
 
 # Each subdirectory must supply rules for building sources it contributes
 Application/User/STS/TOF/Target/app_tof_pin_conf.o: D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/STS/TOF/Target/app_tof_pin_conf.c Application/User/STS/TOF/Target/subdir.mk
-	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_P2 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
+	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
 
 clean: clean-Application-2f-User-2f-STS-2f-TOF-2f-Target
 
diff --git a/STM32CubeIDE/Release/Application/User/STS/TOF/vl53l1x_uld/subdir.mk b/STM32CubeIDE/Release/Application/User/STS/TOF/vl53l1x_uld/subdir.mk
index c51f0d3..b3073e0 100644
--- a/STM32CubeIDE/Release/Application/User/STS/TOF/vl53l1x_uld/subdir.mk
+++ b/STM32CubeIDE/Release/Application/User/STS/TOF/vl53l1x_uld/subdir.mk
@@ -25,13 +25,13 @@ C_DEPS += \
 
 # Each subdirectory must supply rules for building sources it contributes
 Application/User/STS/TOF/vl53l1x_uld/VL53L1X_api.o: D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/STS/TOF/vl53l1x_uld/VL53L1X_api.c Application/User/STS/TOF/vl53l1x_uld/subdir.mk
-	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_P2 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
+	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
 Application/User/STS/TOF/vl53l1x_uld/VL53L1X_calibration.o: D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/STS/TOF/vl53l1x_uld/VL53L1X_calibration.c Application/User/STS/TOF/vl53l1x_uld/subdir.mk
-	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_P2 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
+	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
 Application/User/STS/TOF/vl53l1x_uld/X-NUCLEO-53L1A1.o: D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/STS/TOF/vl53l1x_uld/X-NUCLEO-53L1A1.c Application/User/STS/TOF/vl53l1x_uld/subdir.mk
-	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_P2 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
+	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
 Application/User/STS/TOF/vl53l1x_uld/vl53l1_platform.o: D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/STS/TOF/vl53l1x_uld/vl53l1_platform.c Application/User/STS/TOF/vl53l1x_uld/subdir.mk
-	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_P2 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
+	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
 
 clean: clean-Application-2f-User-2f-STS-2f-TOF-2f-vl53l1x_uld
 
diff --git a/STM32CubeIDE/Release/Drivers/BSP/STM32WLxx_Nucleo/subdir.mk b/STM32CubeIDE/Release/Drivers/BSP/STM32WLxx_Nucleo/subdir.mk
index 10302b9..9a73b44 100644
--- a/STM32CubeIDE/Release/Drivers/BSP/STM32WLxx_Nucleo/subdir.mk
+++ b/STM32CubeIDE/Release/Drivers/BSP/STM32WLxx_Nucleo/subdir.mk
@@ -19,9 +19,9 @@ C_DEPS += \
 
 # Each subdirectory must supply rules for building sources it contributes
 Drivers/BSP/STM32WLxx_Nucleo/stm32wlxx_nucleo.o: D:/ONEDRIVE/STM32WLV13/Drivers/BSP/STM32WLxx_Nucleo/stm32wlxx_nucleo.c Drivers/BSP/STM32WLxx_Nucleo/subdir.mk
-	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_P2 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
+	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
 Drivers/BSP/STM32WLxx_Nucleo/stm32wlxx_nucleo_radio.o: D:/ONEDRIVE/STM32WLV13/Drivers/BSP/STM32WLxx_Nucleo/stm32wlxx_nucleo_radio.c Drivers/BSP/STM32WLxx_Nucleo/subdir.mk
-	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_P2 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
+	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
 
 clean: clean-Drivers-2f-BSP-2f-STM32WLxx_Nucleo
 
diff --git a/STM32CubeIDE/Release/Drivers/CMSIS/subdir.mk b/STM32CubeIDE/Release/Drivers/CMSIS/subdir.mk
index 869078e..ea0d16e 100644
--- a/STM32CubeIDE/Release/Drivers/CMSIS/subdir.mk
+++ b/STM32CubeIDE/Release/Drivers/CMSIS/subdir.mk
@@ -16,7 +16,7 @@ C_DEPS += \
 
 # Each subdirectory must supply rules for building sources it contributes
 Drivers/CMSIS/system_stm32wlxx.o: D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/system_stm32wlxx.c Drivers/CMSIS/subdir.mk
-	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_P2 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
+	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
 
 clean: clean-Drivers-2f-CMSIS
 
diff --git a/STM32CubeIDE/Release/Drivers/STM32WLxx_HAL_Driver/subdir.mk b/STM32CubeIDE/Release/Drivers/STM32WLxx_HAL_Driver/subdir.mk
index 8a6ee2c..ca019d3 100644
--- a/STM32CubeIDE/Release/Drivers/STM32WLxx_HAL_Driver/subdir.mk
+++ b/STM32CubeIDE/Release/Drivers/STM32WLxx_HAL_Driver/subdir.mk
@@ -85,53 +85,53 @@ C_DEPS += \
 
 # Each subdirectory must supply rules for building sources it contributes
 Drivers/STM32WLxx_HAL_Driver/stm32wlxx_hal.o: D:/ONEDRIVE/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal.c Drivers/STM32WLxx_HAL_Driver/subdir.mk
-	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_P2 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
+	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
 Drivers/STM32WLxx_HAL_Driver/stm32wlxx_hal_adc.o: D:/ONEDRIVE/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_adc.c Drivers/STM32WLxx_HAL_Driver/subdir.mk
-	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_P2 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
+	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
 Drivers/STM32WLxx_HAL_Driver/stm32wlxx_hal_adc_ex.o: D:/ONEDRIVE/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_adc_ex.c Drivers/STM32WLxx_HAL_Driver/subdir.mk
-	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_P2 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
+	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
 Drivers/STM32WLxx_HAL_Driver/stm32wlxx_hal_cortex.o: D:/ONEDRIVE/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_cortex.c Drivers/STM32WLxx_HAL_Driver/subdir.mk
-	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_P2 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
+	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
 Drivers/STM32WLxx_HAL_Driver/stm32wlxx_hal_dma.o: D:/ONEDRIVE/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_dma.c Drivers/STM32WLxx_HAL_Driver/subdir.mk
-	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_P2 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
+	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
 Drivers/STM32WLxx_HAL_Driver/stm32wlxx_hal_dma_ex.o: D:/ONEDRIVE/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_dma_ex.c Drivers/STM32WLxx_HAL_Driver/subdir.mk
-	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_P2 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
+	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
 Drivers/STM32WLxx_HAL_Driver/stm32wlxx_hal_exti.o: D:/ONEDRIVE/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_exti.c Drivers/STM32WLxx_HAL_Driver/subdir.mk
-	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_P2 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
+	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
 Drivers/STM32WLxx_HAL_Driver/stm32wlxx_hal_flash.o: D:/ONEDRIVE/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_flash.c Drivers/STM32WLxx_HAL_Driver/subdir.mk
-	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_P2 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
+	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
 Drivers/STM32WLxx_HAL_Driver/stm32wlxx_hal_flash_ex.o: D:/ONEDRIVE/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_flash_ex.c Drivers/STM32WLxx_HAL_Driver/subdir.mk
-	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_P2 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
+	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
 Drivers/STM32WLxx_HAL_Driver/stm32wlxx_hal_gpio.o: D:/ONEDRIVE/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_gpio.c Drivers/STM32WLxx_HAL_Driver/subdir.mk
-	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_P2 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
+	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
 Drivers/STM32WLxx_HAL_Driver/stm32wlxx_hal_i2c.o: D:/ONEDRIVE/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_i2c.c Drivers/STM32WLxx_HAL_Driver/subdir.mk
-	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_P2 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
+	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
 Drivers/STM32WLxx_HAL_Driver/stm32wlxx_hal_i2c_ex.o: D:/ONEDRIVE/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_i2c_ex.c Drivers/STM32WLxx_HAL_Driver/subdir.mk
-	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_P2 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
+	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
 Drivers/STM32WLxx_HAL_Driver/stm32wlxx_hal_pwr.o: D:/ONEDRIVE/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_pwr.c Drivers/STM32WLxx_HAL_Driver/subdir.mk
-	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_P2 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
+	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
 Drivers/STM32WLxx_HAL_Driver/stm32wlxx_hal_pwr_ex.o: D:/ONEDRIVE/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_pwr_ex.c Drivers/STM32WLxx_HAL_Driver/subdir.mk
-	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_P2 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
+	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
 Drivers/STM32WLxx_HAL_Driver/stm32wlxx_hal_rcc.o: D:/ONEDRIVE/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_rcc.c Drivers/STM32WLxx_HAL_Driver/subdir.mk
-	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_P2 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
+	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
 Drivers/STM32WLxx_HAL_Driver/stm32wlxx_hal_rcc_ex.o: D:/ONEDRIVE/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_rcc_ex.c Drivers/STM32WLxx_HAL_Driver/subdir.mk
-	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_P2 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
+	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
 Drivers/STM32WLxx_HAL_Driver/stm32wlxx_hal_rtc.o: D:/ONEDRIVE/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_rtc.c Drivers/STM32WLxx_HAL_Driver/subdir.mk
-	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_P2 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
+	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
 Drivers/STM32WLxx_HAL_Driver/stm32wlxx_hal_rtc_ex.o: D:/ONEDRIVE/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_rtc_ex.c Drivers/STM32WLxx_HAL_Driver/subdir.mk
-	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_P2 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
+	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
 Drivers/STM32WLxx_HAL_Driver/stm32wlxx_hal_subghz.o: D:/ONEDRIVE/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_subghz.c Drivers/STM32WLxx_HAL_Driver/subdir.mk
-	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_P2 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
+	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
 Drivers/STM32WLxx_HAL_Driver/stm32wlxx_hal_tim.o: D:/ONEDRIVE/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_tim.c Drivers/STM32WLxx_HAL_Driver/subdir.mk
-	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_P2 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
+	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
 Drivers/STM32WLxx_HAL_Driver/stm32wlxx_hal_tim_ex.o: D:/ONEDRIVE/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_tim_ex.c Drivers/STM32WLxx_HAL_Driver/subdir.mk
-	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_P2 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
+	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
 Drivers/STM32WLxx_HAL_Driver/stm32wlxx_hal_uart.o: D:/ONEDRIVE/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_uart.c Drivers/STM32WLxx_HAL_Driver/subdir.mk
-	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_P2 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
+	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
 Drivers/STM32WLxx_HAL_Driver/stm32wlxx_hal_uart_ex.o: D:/ONEDRIVE/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_uart_ex.c Drivers/STM32WLxx_HAL_Driver/subdir.mk
-	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_P2 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
+	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
 Drivers/STM32WLxx_HAL_Driver/stm32wlxx_ll_adc.o: D:/ONEDRIVE/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_ll_adc.c Drivers/STM32WLxx_HAL_Driver/subdir.mk
-	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_P2 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
+	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
 
 clean: clean-Drivers-2f-STM32WLxx_HAL_Driver
 
diff --git a/STM32CubeIDE/Release/Middlewares/LoRaWAN/subdir.mk b/STM32CubeIDE/Release/Middlewares/LoRaWAN/subdir.mk
index 5759297..5286078 100644
--- a/STM32CubeIDE/Release/Middlewares/LoRaWAN/subdir.mk
+++ b/STM32CubeIDE/Release/Middlewares/LoRaWAN/subdir.mk
@@ -112,71 +112,71 @@ C_DEPS += \
 
 # Each subdirectory must supply rules for building sources it contributes
 Middlewares/LoRaWAN/LmHandler.o: D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/LmHandler/LmHandler.c Middlewares/LoRaWAN/subdir.mk
-	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_P2 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
+	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
 Middlewares/LoRaWAN/LmhpCompliance.o: D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/LmHandler/Packages/LmhpCompliance.c Middlewares/LoRaWAN/subdir.mk
-	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_P2 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
+	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
 Middlewares/LoRaWAN/LmhpPackagesRegistration.o: D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/LmHandler/Packages/LmhpPackagesRegistration.c Middlewares/LoRaWAN/subdir.mk
-	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_P2 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
+	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
 Middlewares/LoRaWAN/LoRaMac.o: D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/LoRaMac.c Middlewares/LoRaWAN/subdir.mk
-	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_P2 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
+	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
 Middlewares/LoRaWAN/LoRaMacAdr.o: D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/LoRaMacAdr.c Middlewares/LoRaWAN/subdir.mk
-	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_P2 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
+	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
 Middlewares/LoRaWAN/LoRaMacClassB.o: D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/LoRaMacClassB.c Middlewares/LoRaWAN/subdir.mk
-	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_P2 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
+	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
 Middlewares/LoRaWAN/LoRaMacCommands.o: D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/LoRaMacCommands.c Middlewares/LoRaWAN/subdir.mk
-	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_P2 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
+	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
 Middlewares/LoRaWAN/LoRaMacConfirmQueue.o: D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/LoRaMacConfirmQueue.c Middlewares/LoRaWAN/subdir.mk
-	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_P2 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
+	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
 Middlewares/LoRaWAN/LoRaMacCrypto.o: D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/LoRaMacCrypto.c Middlewares/LoRaWAN/subdir.mk
-	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_P2 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
+	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
 Middlewares/LoRaWAN/LoRaMacParser.o: D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/LoRaMacParser.c Middlewares/LoRaWAN/subdir.mk
-	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_P2 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
+	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
 Middlewares/LoRaWAN/LoRaMacSerializer.o: D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/LoRaMacSerializer.c Middlewares/LoRaWAN/subdir.mk
-	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_P2 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
+	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
 Middlewares/LoRaWAN/NvmDataMgmt.o: D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/LmHandler/NvmDataMgmt.c Middlewares/LoRaWAN/subdir.mk
-	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_P2 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
+	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
 Middlewares/LoRaWAN/Region.o: D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/Region.c Middlewares/LoRaWAN/subdir.mk
-	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_P2 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
+	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
 Middlewares/LoRaWAN/RegionAS923.o: D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/RegionAS923.c Middlewares/LoRaWAN/subdir.mk
-	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_P2 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
+	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
 Middlewares/LoRaWAN/RegionAU915.o: D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/RegionAU915.c Middlewares/LoRaWAN/subdir.mk
-	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_P2 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
+	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
 Middlewares/LoRaWAN/RegionBaseUS.o: D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/RegionBaseUS.c Middlewares/LoRaWAN/subdir.mk
-	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_P2 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
+	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
 Middlewares/LoRaWAN/RegionCN470.o: D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/RegionCN470.c Middlewares/LoRaWAN/subdir.mk
-	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_P2 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
+	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
 Middlewares/LoRaWAN/RegionCN470A20.o: D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/RegionCN470A20.c Middlewares/LoRaWAN/subdir.mk
-	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_P2 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
+	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
 Middlewares/LoRaWAN/RegionCN470A26.o: D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/RegionCN470A26.c Middlewares/LoRaWAN/subdir.mk
-	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_P2 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
+	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
 Middlewares/LoRaWAN/RegionCN470B20.o: D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/RegionCN470B20.c Middlewares/LoRaWAN/subdir.mk
-	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_P2 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
+	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
 Middlewares/LoRaWAN/RegionCN470B26.o: D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/RegionCN470B26.c Middlewares/LoRaWAN/subdir.mk
-	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_P2 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
+	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
 Middlewares/LoRaWAN/RegionCN779.o: D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/RegionCN779.c Middlewares/LoRaWAN/subdir.mk
-	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_P2 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
+	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
 Middlewares/LoRaWAN/RegionCommon.o: D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/RegionCommon.c Middlewares/LoRaWAN/subdir.mk
-	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_P2 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
+	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
 Middlewares/LoRaWAN/RegionEU433.o: D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/RegionEU433.c Middlewares/LoRaWAN/subdir.mk
-	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_P2 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
+	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
 Middlewares/LoRaWAN/RegionEU868.o: D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/RegionEU868.c Middlewares/LoRaWAN/subdir.mk
-	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_P2 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
+	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
 Middlewares/LoRaWAN/RegionIN865.o: D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/RegionIN865.c Middlewares/LoRaWAN/subdir.mk
-	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_P2 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
+	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
 Middlewares/LoRaWAN/RegionKR920.o: D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/RegionKR920.c Middlewares/LoRaWAN/subdir.mk
-	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_P2 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
+	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
 Middlewares/LoRaWAN/RegionRU864.o: D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/RegionRU864.c Middlewares/LoRaWAN/subdir.mk
-	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_P2 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
+	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
 Middlewares/LoRaWAN/RegionUS915.o: D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/RegionUS915.c Middlewares/LoRaWAN/subdir.mk
-	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_P2 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
+	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
 Middlewares/LoRaWAN/cmac.o: D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Crypto/cmac.c Middlewares/LoRaWAN/subdir.mk
-	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_P2 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
+	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
 Middlewares/LoRaWAN/lorawan_aes.o: D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Crypto/lorawan_aes.c Middlewares/LoRaWAN/subdir.mk
-	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_P2 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
+	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
 Middlewares/LoRaWAN/soft-se.o: D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Crypto/soft-se.c Middlewares/LoRaWAN/subdir.mk
-	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_P2 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
+	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
 Middlewares/LoRaWAN/utilities.o: D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Utilities/utilities.c Middlewares/LoRaWAN/subdir.mk
-	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_P2 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
+	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
 
 clean: clean-Middlewares-2f-LoRaWAN
 
diff --git a/STM32CubeIDE/Release/Middlewares/SubGHz_Phy/subdir.mk b/STM32CubeIDE/Release/Middlewares/SubGHz_Phy/subdir.mk
index d955283..cfc3fda 100644
--- a/STM32CubeIDE/Release/Middlewares/SubGHz_Phy/subdir.mk
+++ b/STM32CubeIDE/Release/Middlewares/SubGHz_Phy/subdir.mk
@@ -22,11 +22,11 @@ C_DEPS += \
 
 # Each subdirectory must supply rules for building sources it contributes
 Middlewares/SubGHz_Phy/radio.o: D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver/radio.c Middlewares/SubGHz_Phy/subdir.mk
-	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_P2 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
+	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
 Middlewares/SubGHz_Phy/radio_driver.o: D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver/radio_driver.c Middlewares/SubGHz_Phy/subdir.mk
-	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_P2 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
+	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
 Middlewares/SubGHz_Phy/radio_fw.o: D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver/radio_fw.c Middlewares/SubGHz_Phy/subdir.mk
-	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_P2 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
+	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
 
 clean: clean-Middlewares-2f-SubGHz_Phy
 
diff --git a/STM32CubeIDE/Release/Utilities/subdir.mk b/STM32CubeIDE/Release/Utilities/subdir.mk
index c97e83c..a4317bb 100644
--- a/STM32CubeIDE/Release/Utilities/subdir.mk
+++ b/STM32CubeIDE/Release/Utilities/subdir.mk
@@ -37,21 +37,21 @@ C_DEPS += \
 
 # Each subdirectory must supply rules for building sources it contributes
 Utilities/stm32_adv_trace.o: D:/ONEDRIVE/STM32WLV13/Utilities/trace/adv_trace/stm32_adv_trace.c Utilities/subdir.mk
-	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_P2 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
+	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
 Utilities/stm32_lpm.o: D:/ONEDRIVE/STM32WLV13/Utilities/lpm/tiny_lpm/stm32_lpm.c Utilities/subdir.mk
-	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_P2 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
+	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
 Utilities/stm32_mem.o: D:/ONEDRIVE/STM32WLV13/Utilities/misc/stm32_mem.c Utilities/subdir.mk
-	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_P2 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
+	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
 Utilities/stm32_seq.o: D:/ONEDRIVE/STM32WLV13/Utilities/sequencer/stm32_seq.c Utilities/subdir.mk
-	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_P2 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
+	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
 Utilities/stm32_systime.o: D:/ONEDRIVE/STM32WLV13/Utilities/misc/stm32_systime.c Utilities/subdir.mk
-	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_P2 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
+	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
 Utilities/stm32_timer.o: D:/ONEDRIVE/STM32WLV13/Utilities/timer/stm32_timer.c Utilities/subdir.mk
-	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_P2 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
+	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
 Utilities/stm32_tiny_sscanf.o: D:/ONEDRIVE/STM32WLV13/Utilities/misc/stm32_tiny_sscanf.c Utilities/subdir.mk
-	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_P2 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
+	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
 Utilities/stm32_tiny_vsnprintf.o: D:/ONEDRIVE/STM32WLV13/Utilities/misc/stm32_tiny_vsnprintf.c Utilities/subdir.mk
-	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_P2 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
+	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
 
 clean: clean-Utilities
 
diff --git a/STS/Core/Inc/yunhorn_sts_prd_conf.h b/STS/Core/Inc/yunhorn_sts_prd_conf.h
index 27e18ba..ad08d0b 100644
--- a/STS/Core/Inc/yunhorn_sts_prd_conf.h
+++ b/STS/Core/Inc/yunhorn_sts_prd_conf.h
@@ -54,6 +54,8 @@
 #define				YUNHORN_STS_P2_ENABLED	1U
 #elif 	defined(STS_O6T)									/* STS_O6T for occupancy sensor via ToF		*/
 #define				YUNHORN_STS_O6T_ENABLED	1U
+#elif 	defined(STS_T6)									/* STS_O6T for occupancy sensor via ToF		*/
+#define				YUNHORN_STS_T6_ENABLED	1U
 #elif 	defined(STS_R4)									/* STS_O6T for occupancy sensor via ToF		*/
 #define				YUNHORN_STS_R4_ENABLED	1U
 #endif
@@ -125,6 +127,15 @@
 
 #endif
 
+#ifdef  STS_T6
+#define YUNHORN_STS_T6_LORA_APP_DATA_PORT         	14U
+#define YUNHORN_STS_T6_LORA_APP_HTBT_PORT         	15U
+#define	YUNHORN_STS_PRD_STRING						"STS_T6"
+#define sts_mtmcode1								0U
+#define sts_mtmcode2								14U
+
+#endif
+
 #ifdef	STS_M1
 #define YUNHORN_STS_M1_LORA_APP_DATA_PORT         	6U
 #define YUNHORN_STS_M1_LORA_APP_HTBT_PORT         	6U
@@ -153,15 +164,15 @@
 //#define YUNHORN_STS_M10_LORA_APP_DATA_PORT        9U
 //#define YUNHORN_STS_M10_LORA_APP_HTBT_PORT        9U
 
-#define sts_senddataport						(YUNHORN_STS_P2_LORA_APP_DATA_PORT)
-#define sts_sendhtbtport						(YUNHORN_STS_P2_LORA_APP_HTBT_PORT)
+#define sts_senddataport						(YUNHORN_STS_T6_LORA_APP_DATA_PORT)
+#define sts_sendhtbtport						(YUNHORN_STS_T6_LORA_APP_HTBT_PORT)
 #define sts_appctrlport							(YUNHORN_STS_USER_APP_CTRL_PORT)
 #define sts_appctrl_reply_port					(YUNHORN_STS_USER_APP_CTRL_REPLY_PORT)
 
  /*		General Settings							*/
 #define MajorVer									24U
 #define MinorVer									9U
-#define SubMinorVer 								20U
+#define SubMinorVer 								30U
 #define FirmwareVersion								3U
 #define	YUNHORN_STS_MAX_NVM_CFG_SIZE				64U
 #define YUNHORN_STS_AC_CODE_SIZE					20U
diff --git a/STS/Core/Src/yunhorn_sts_process.c b/STS/Core/Src/yunhorn_sts_process.c
index f48a1cd..81607ef 100644
--- a/STS/Core/Src/yunhorn_sts_process.c
+++ b/STS/Core/Src/yunhorn_sts_process.c
@@ -417,7 +417,10 @@ void STS_YunhornSTSEventP5_Process(void)
 {
 #ifdef STS_P2
 	STS_TOF_VL53LX_PeopleCounting_Process_Start();
+#elif	defined(STS_T6)
+	STS_TOF_VL53LX_PresenceDetection_Process_Start();
 #endif
+
 }
 
 /*
diff --git a/STS/TOF/App/app_tof_peoplecount.c b/STS/TOF/App/app_tof_peoplecount.c
index 08b1f59..3883e14 100644
--- a/STS/TOF/App/app_tof_peoplecount.c
+++ b/STS/TOF/App/app_tof_peoplecount.c
@@ -224,6 +224,10 @@ int ProcessPeopleCountingData(int16_t Distance, uint8_t zone, uint8_t RangeStatu
   return(PeopleCount);
 }
 
+void STS_tof_presence_detection_sensor_Read(sts_tof_presence_detection_sensor_data_t *sts_t6_sensor_data)
+{
+	sts_t6_sensor_data->tof_range_presence_state = sts_tof_presence_state;
+}
 
 void STS_people_count_sensor_Read(sts_people_count_sensor_data_t *sts_p2_sensor_data)
 {
@@ -372,6 +376,18 @@ void STS_TOF_VL53LX_PeopleCounting_Process_Start(void)
 
 }
 
+void STS_TOF_VL53LX_PresenceDetection_Process_Start(void)
+{
+
+	//APP_LOG(TS_OFF, VLEVEL_M,"###############   TOF  VL53LX_ PRESENCE DETECTION SUB-PROCESS \r\n");
+	{
+		status = sts_tof_vl53lx_presence_detection_start();
+		sts_people_count_sensor_data.Count_Valid = (status ==0)? 1:0;
+		//APP_LOG(TS_OFF, VLEVEL_M,"############### SUB-PROCESS running .... \r\n");
+	}
+
+}
+
 int sts_tof_vl53lx_peoplecount_init(void)
 {
   //int8_t error;
diff --git a/STS/TOF/App/app_tof_peoplecount.h b/STS/TOF/App/app_tof_peoplecount.h
index 1e6ecb6..ad7dcde 100644
--- a/STS/TOF/App/app_tof_peoplecount.h
+++ b/STS/TOF/App/app_tof_peoplecount.h
@@ -137,13 +137,25 @@
 
  } sts_people_count_sensor_data_t;
 
+ typedef struct STS_TOF_Presence_Detection_Sensor_Data_Type {
+	 uint8_t 	tof_range_presence_state;				// 1: presence, 0: no presence
+	 uint8_t 	gesture_multi_state;					// 0: push, 1: swing left, 2: swing right
+	 uint8_t 	tof_motion_presence_state;
+	 uint8_t	measure_window_threshold_low_dm;		// dm= 100mm = 10 cm, low = 0 dm
+	 uint8_t 	measure_window_threshold_high_dm;		// dm= 100mm = 10 cm, high=40dm
+	 uint8_t 	measure_critiera;						// below, 0, in window 1, above 2
+	 uint8_t Count_Valid;
+ } sts_tof_presence_detection_sensor_data_t;
+
 void STS_TOF_VL53LX_PeopleCounting_Process_Init(void);
 void STS_TOF_VL53LX_PeopleCounting_Process_Start(void);
+void STS_TOF_VL53LX_PresenceDetection_Process_Start(void);
 int sts_tof_vl53lx_peoplecount_init(void);
 int sts_tof_vl53lx_peoplecount_start(void);
 //int sts_tof_vl53lx_peoplecount(void);
 int ProcessPeopleCountingData(int16_t Distance, uint8_t zone, uint8_t RangeStatus);
 void STS_people_count_sensor_Read(sts_people_count_sensor_data_t *sts_p2_sensor_data);
+void STS_tof_presence_detection_sensor_Read(sts_tof_presence_detection_sensor_data_t *sts_t6_sensor_data);
 
 #ifdef __cplusplus
 }
-- 
2.40.1


From e4126783fb16747526dcc4e727afce4c0ce59b17 Mon Sep 17 00:00:00 2001
From: sundp <dp.s@yunhorn.com>
Date: Sun, 6 Oct 2024 16:45:13 +0800
Subject: [PATCH 2/4] WIP, revised distance mode and config

---
 README.md                                     |   16 +-
 .../com.st.stm32cube.ide.mcu.sfrview.prefs    |    4 +-
 STM32CubeIDE/.settings/language.settings.xml  |    4 +-
 .../Application/User/STS/TOF/App/subdir.mk    |   64 +-
 .../Application/User/STS/TOF/Target/subdir.mk |   54 +-
 .../User/STS/TOF/vl53l1x_uld/subdir.mk        |   84 +-
 .../Release/Application/User/Core/subdir.mk   |   72 +-
 .../Application/User/LoRaWAN/App/subdir.mk    |   16 +-
 .../Application/User/LoRaWAN/Target/subdir.mk |    4 +-
 .../Application/User/STS/Core/Src/subdir.mk   |   60 +-
 .../Application/User/STS/TOF/App/subdir.mk    |   54 +-
 .../Application/User/STS/TOF/Target/subdir.mk |   48 +-
 .../User/STS/TOF/vl53l0x/subdir.mk            |   66 +-
 .../User/STS/TOF/vl53l1x_uld/subdir.mk        |   66 +-
 .../Drivers/BSP/STM32WLxx_Nucleo/subdir.mk    |    8 +-
 STM32CubeIDE/Release/Drivers/CMSIS/subdir.mk  |    4 +-
 .../Drivers/STM32WLxx_HAL_Driver/subdir.mk    |   96 +-
 .../Release/Middlewares/LoRaWAN/subdir.mk     |  132 +-
 .../Release/Middlewares/SubGHz_Phy/subdir.mk  |   12 +-
 STM32CubeIDE/Release/Utilities/subdir.mk      |   32 +-
 STM32CubeIDE/Release/makefile                 |    5 +-
 STM32CubeIDE/Release/sources.mk               |    1 +
 STS/TOF/App/X-WL55_WLE5_53L0X.c               |  502 +-
 STS/TOF/App/X-WL55_WLE5_53L0X.h               |  602 +-
 STS/TOF/App/app_tof_peoplecount.c             |   79 +-
 STS/TOF/App/app_tof_peoplecount.h             |    8 +-
 STS/TOF/App/app_tof_vl53l0x_range.c           |  906 +--
 STS/TOF/vl53l0x/vl53l0x_api.c                 | 6070 ++++++++---------
 STS/TOF/vl53l0x/vl53l0x_api.h                 | 3900 +++++------
 STS/TOF/vl53l0x/vl53l0x_api_calibration.c     | 2552 +++----
 STS/TOF/vl53l0x/vl53l0x_api_calibration.h     |  170 +-
 STS/TOF/vl53l0x/vl53l0x_api_core.c            | 4478 ++++++------
 STS/TOF/vl53l0x/vl53l0x_api_core.h            |  216 +-
 STS/TOF/vl53l0x/vl53l0x_api_ranging.c         |   84 +-
 STS/TOF/vl53l0x/vl53l0x_api_ranging.h         |   94 +-
 STS/TOF/vl53l0x/vl53l0x_api_strings.c         |  924 +--
 STS/TOF/vl53l0x/vl53l0x_api_strings.h         |  554 +-
 STS/TOF/vl53l0x/vl53l0x_def.h                 | 1280 ++--
 STS/TOF/vl53l0x/vl53l0x_device.h              |  514 +-
 .../vl53l0x_interrupt_threshold_settings.h    |  388 +-
 STS/TOF/vl53l0x/vl53l0x_platform.c            |  474 +-
 STS/TOF/vl53l0x/vl53l0x_platform.h            |  534 +-
 STS/TOF/vl53l0x/vl53l0x_platform_log.c        |  118 +-
 STS/TOF/vl53l0x/vl53l0x_platform_log.h        |  242 +-
 STS/TOF/vl53l0x/vl53l0x_tuning.h              |  292 +-
 STS/TOF/vl53l0x/vl53l0x_types.h               |  222 +-
 hk_as923_decoder.js                           | 1132 +--
 47 files changed, 13631 insertions(+), 13606 deletions(-)

diff --git a/README.md b/README.md
index 049426a..f81cc4b 100644
--- a/README.md
+++ b/README.md
@@ -1,8 +1,8 @@
---- STS-P2 ---
- 2024 09 11  START P2A
- 2024 09 12  GOOD P2A merge to P2
- 2024 09 20  Overall good of Yunhorn STS AUTO RESPONDER PARSE
-
- 2024 09 20  START RR
- 2024 09 25  START R1D
- 2024 09 27  GOOD STS-R4 on single board RM2_1
+--- STS-P2 ---
+ 2024 09 11  START P2A
+ 2024 09 12  GOOD P2A merge to P2
+ 2024 09 20  Overall good of Yunhorn STS AUTO RESPONDER PARSE
+
+ 2024 09 20  START RR
+ 2024 09 25  START R1D
+ 2024 09 27  GOOD STS-R4 on single board RM2_1
diff --git a/STM32CubeIDE/.settings/com.st.stm32cube.ide.mcu.sfrview.prefs b/STM32CubeIDE/.settings/com.st.stm32cube.ide.mcu.sfrview.prefs
index 98a69fc..9a16796 100644
--- a/STM32CubeIDE/.settings/com.st.stm32cube.ide.mcu.sfrview.prefs
+++ b/STM32CubeIDE/.settings/com.st.stm32cube.ide.mcu.sfrview.prefs
@@ -1,2 +1,2 @@
-eclipse.preferences.version=1
-sfrviewstate={"fFavorites"\:{"fLists"\:{}},"fProperties"\:{"fNodeProperties"\:{}}}
+eclipse.preferences.version=1
+sfrviewstate={"fFavorites"\:{"fLists"\:{}},"fProperties"\:{"fNodeProperties"\:{}}}
diff --git a/STM32CubeIDE/.settings/language.settings.xml b/STM32CubeIDE/.settings/language.settings.xml
index 0ec3934..515be7c 100644
--- a/STM32CubeIDE/.settings/language.settings.xml
+++ b/STM32CubeIDE/.settings/language.settings.xml
@@ -5,7 +5,7 @@
 			<provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/>
 			<provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/>
 			<provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/>
-			<provider class="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" console="false" env-hash="1048471218779752885" id="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" keep-relative-paths="false" name="MCU ARM GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD &quot;${INPUTS}&quot;" prefer-non-shared="true">
+			<provider class="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" console="false" env-hash="-1137263677548078264" id="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" keep-relative-paths="false" name="MCU ARM GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD &quot;${INPUTS}&quot;" prefer-non-shared="true">
 				<language-scope id="org.eclipse.cdt.core.gcc"/>
 				<language-scope id="org.eclipse.cdt.core.g++"/>
 			</provider>
@@ -16,7 +16,7 @@
 			<provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/>
 			<provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/>
 			<provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/>
-			<provider class="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" console="false" env-hash="1048471218779752885" id="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" keep-relative-paths="false" name="MCU ARM GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD &quot;${INPUTS}&quot;" prefer-non-shared="true">
+			<provider class="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" console="false" env-hash="-1137263677548078264" id="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" keep-relative-paths="false" name="MCU ARM GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD &quot;${INPUTS}&quot;" prefer-non-shared="true">
 				<language-scope id="org.eclipse.cdt.core.gcc"/>
 				<language-scope id="org.eclipse.cdt.core.g++"/>
 			</provider>
diff --git a/STM32CubeIDE/Debug/Application/User/STS/TOF/App/subdir.mk b/STM32CubeIDE/Debug/Application/User/STS/TOF/App/subdir.mk
index 03015e8..790f211 100644
--- a/STM32CubeIDE/Debug/Application/User/STS/TOF/App/subdir.mk
+++ b/STM32CubeIDE/Debug/Application/User/STS/TOF/App/subdir.mk
@@ -1,32 +1,32 @@
-################################################################################
-# Automatically-generated file. Do not edit!
-# Toolchain: GNU Tools for STM32 (12.3.rel1)
-################################################################################
-
-# Add inputs and outputs from these tool invocations to the build variables 
-C_SRCS += \
-D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/STS/TOF/App/app_tof.c \
-D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/STS/TOF/App/app_tof_peoplecount.c 
-
-OBJS += \
-./Application/User/STS/TOF/App/app_tof.o \
-./Application/User/STS/TOF/App/app_tof_peoplecount.o 
-
-C_DEPS += \
-./Application/User/STS/TOF/App/app_tof.d \
-./Application/User/STS/TOF/App/app_tof_peoplecount.d 
-
-
-# Each subdirectory must supply rules for building sources it contributes
-Application/User/STS/TOF/App/app_tof.o: D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/STS/TOF/App/app_tof.c Application/User/STS/TOF/App/subdir.mk
-	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -g3 -DDEBUG -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Application/User/STS/TOF/App/app_tof_peoplecount.o: D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/STS/TOF/App/app_tof_peoplecount.c Application/User/STS/TOF/App/subdir.mk
-	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -g3 -DDEBUG -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-
-clean: clean-Application-2f-User-2f-STS-2f-TOF-2f-App
-
-clean-Application-2f-User-2f-STS-2f-TOF-2f-App:
-	-$(RM) ./Application/User/STS/TOF/App/app_tof.cyclo ./Application/User/STS/TOF/App/app_tof.d ./Application/User/STS/TOF/App/app_tof.o ./Application/User/STS/TOF/App/app_tof.su ./Application/User/STS/TOF/App/app_tof_peoplecount.cyclo ./Application/User/STS/TOF/App/app_tof_peoplecount.d ./Application/User/STS/TOF/App/app_tof_peoplecount.o ./Application/User/STS/TOF/App/app_tof_peoplecount.su
-
-.PHONY: clean-Application-2f-User-2f-STS-2f-TOF-2f-App
-
+################################################################################
+# Automatically-generated file. Do not edit!
+# Toolchain: GNU Tools for STM32 (12.3.rel1)
+################################################################################
+
+# Add inputs and outputs from these tool invocations to the build variables 
+C_SRCS += \
+D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/STS/TOF/App/app_tof.c \
+D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/STS/TOF/App/app_tof_peoplecount.c 
+
+OBJS += \
+./Application/User/STS/TOF/App/app_tof.o \
+./Application/User/STS/TOF/App/app_tof_peoplecount.o 
+
+C_DEPS += \
+./Application/User/STS/TOF/App/app_tof.d \
+./Application/User/STS/TOF/App/app_tof_peoplecount.d 
+
+
+# Each subdirectory must supply rules for building sources it contributes
+Application/User/STS/TOF/App/app_tof.o: D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/STS/TOF/App/app_tof.c Application/User/STS/TOF/App/subdir.mk
+	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -g3 -DDEBUG -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
+Application/User/STS/TOF/App/app_tof_peoplecount.o: D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/STS/TOF/App/app_tof_peoplecount.c Application/User/STS/TOF/App/subdir.mk
+	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -g3 -DDEBUG -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
+
+clean: clean-Application-2f-User-2f-STS-2f-TOF-2f-App
+
+clean-Application-2f-User-2f-STS-2f-TOF-2f-App:
+	-$(RM) ./Application/User/STS/TOF/App/app_tof.cyclo ./Application/User/STS/TOF/App/app_tof.d ./Application/User/STS/TOF/App/app_tof.o ./Application/User/STS/TOF/App/app_tof.su ./Application/User/STS/TOF/App/app_tof_peoplecount.cyclo ./Application/User/STS/TOF/App/app_tof_peoplecount.d ./Application/User/STS/TOF/App/app_tof_peoplecount.o ./Application/User/STS/TOF/App/app_tof_peoplecount.su
+
+.PHONY: clean-Application-2f-User-2f-STS-2f-TOF-2f-App
+
diff --git a/STM32CubeIDE/Debug/Application/User/STS/TOF/Target/subdir.mk b/STM32CubeIDE/Debug/Application/User/STS/TOF/Target/subdir.mk
index 323fd97..4f433dc 100644
--- a/STM32CubeIDE/Debug/Application/User/STS/TOF/Target/subdir.mk
+++ b/STM32CubeIDE/Debug/Application/User/STS/TOF/Target/subdir.mk
@@ -1,27 +1,27 @@
-################################################################################
-# Automatically-generated file. Do not edit!
-# Toolchain: GNU Tools for STM32 (12.3.rel1)
-################################################################################
-
-# Add inputs and outputs from these tool invocations to the build variables 
-C_SRCS += \
-D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/STS/TOF/Target/app_tof_pin_conf.c 
-
-OBJS += \
-./Application/User/STS/TOF/Target/app_tof_pin_conf.o 
-
-C_DEPS += \
-./Application/User/STS/TOF/Target/app_tof_pin_conf.d 
-
-
-# Each subdirectory must supply rules for building sources it contributes
-Application/User/STS/TOF/Target/app_tof_pin_conf.o: D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/STS/TOF/Target/app_tof_pin_conf.c Application/User/STS/TOF/Target/subdir.mk
-	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -g3 -DDEBUG -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-
-clean: clean-Application-2f-User-2f-STS-2f-TOF-2f-Target
-
-clean-Application-2f-User-2f-STS-2f-TOF-2f-Target:
-	-$(RM) ./Application/User/STS/TOF/Target/app_tof_pin_conf.cyclo ./Application/User/STS/TOF/Target/app_tof_pin_conf.d ./Application/User/STS/TOF/Target/app_tof_pin_conf.o ./Application/User/STS/TOF/Target/app_tof_pin_conf.su
-
-.PHONY: clean-Application-2f-User-2f-STS-2f-TOF-2f-Target
-
+################################################################################
+# Automatically-generated file. Do not edit!
+# Toolchain: GNU Tools for STM32 (12.3.rel1)
+################################################################################
+
+# Add inputs and outputs from these tool invocations to the build variables 
+C_SRCS += \
+D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/STS/TOF/Target/app_tof_pin_conf.c 
+
+OBJS += \
+./Application/User/STS/TOF/Target/app_tof_pin_conf.o 
+
+C_DEPS += \
+./Application/User/STS/TOF/Target/app_tof_pin_conf.d 
+
+
+# Each subdirectory must supply rules for building sources it contributes
+Application/User/STS/TOF/Target/app_tof_pin_conf.o: D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/STS/TOF/Target/app_tof_pin_conf.c Application/User/STS/TOF/Target/subdir.mk
+	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -g3 -DDEBUG -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
+
+clean: clean-Application-2f-User-2f-STS-2f-TOF-2f-Target
+
+clean-Application-2f-User-2f-STS-2f-TOF-2f-Target:
+	-$(RM) ./Application/User/STS/TOF/Target/app_tof_pin_conf.cyclo ./Application/User/STS/TOF/Target/app_tof_pin_conf.d ./Application/User/STS/TOF/Target/app_tof_pin_conf.o ./Application/User/STS/TOF/Target/app_tof_pin_conf.su
+
+.PHONY: clean-Application-2f-User-2f-STS-2f-TOF-2f-Target
+
diff --git a/STM32CubeIDE/Debug/Application/User/STS/TOF/vl53l1x_uld/subdir.mk b/STM32CubeIDE/Debug/Application/User/STS/TOF/vl53l1x_uld/subdir.mk
index cc13d50..db6f1e3 100644
--- a/STM32CubeIDE/Debug/Application/User/STS/TOF/vl53l1x_uld/subdir.mk
+++ b/STM32CubeIDE/Debug/Application/User/STS/TOF/vl53l1x_uld/subdir.mk
@@ -1,42 +1,42 @@
-################################################################################
-# Automatically-generated file. Do not edit!
-# Toolchain: GNU Tools for STM32 (12.3.rel1)
-################################################################################
-
-# Add inputs and outputs from these tool invocations to the build variables 
-C_SRCS += \
-D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/STS/TOF/vl53l1x_uld/VL53L1X_api.c \
-D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/STS/TOF/vl53l1x_uld/VL53L1X_calibration.c \
-D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/STS/TOF/vl53l1x_uld/X-NUCLEO-53L1A1.c \
-D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/STS/TOF/vl53l1x_uld/vl53l1_platform.c 
-
-OBJS += \
-./Application/User/STS/TOF/vl53l1x_uld/VL53L1X_api.o \
-./Application/User/STS/TOF/vl53l1x_uld/VL53L1X_calibration.o \
-./Application/User/STS/TOF/vl53l1x_uld/X-NUCLEO-53L1A1.o \
-./Application/User/STS/TOF/vl53l1x_uld/vl53l1_platform.o 
-
-C_DEPS += \
-./Application/User/STS/TOF/vl53l1x_uld/VL53L1X_api.d \
-./Application/User/STS/TOF/vl53l1x_uld/VL53L1X_calibration.d \
-./Application/User/STS/TOF/vl53l1x_uld/X-NUCLEO-53L1A1.d \
-./Application/User/STS/TOF/vl53l1x_uld/vl53l1_platform.d 
-
-
-# Each subdirectory must supply rules for building sources it contributes
-Application/User/STS/TOF/vl53l1x_uld/VL53L1X_api.o: D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/STS/TOF/vl53l1x_uld/VL53L1X_api.c Application/User/STS/TOF/vl53l1x_uld/subdir.mk
-	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -g3 -DDEBUG -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Application/User/STS/TOF/vl53l1x_uld/VL53L1X_calibration.o: D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/STS/TOF/vl53l1x_uld/VL53L1X_calibration.c Application/User/STS/TOF/vl53l1x_uld/subdir.mk
-	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -g3 -DDEBUG -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Application/User/STS/TOF/vl53l1x_uld/X-NUCLEO-53L1A1.o: D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/STS/TOF/vl53l1x_uld/X-NUCLEO-53L1A1.c Application/User/STS/TOF/vl53l1x_uld/subdir.mk
-	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -g3 -DDEBUG -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Application/User/STS/TOF/vl53l1x_uld/vl53l1_platform.o: D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/STS/TOF/vl53l1x_uld/vl53l1_platform.c Application/User/STS/TOF/vl53l1x_uld/subdir.mk
-	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -g3 -DDEBUG -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-
-clean: clean-Application-2f-User-2f-STS-2f-TOF-2f-vl53l1x_uld
-
-clean-Application-2f-User-2f-STS-2f-TOF-2f-vl53l1x_uld:
-	-$(RM) ./Application/User/STS/TOF/vl53l1x_uld/VL53L1X_api.cyclo ./Application/User/STS/TOF/vl53l1x_uld/VL53L1X_api.d ./Application/User/STS/TOF/vl53l1x_uld/VL53L1X_api.o ./Application/User/STS/TOF/vl53l1x_uld/VL53L1X_api.su ./Application/User/STS/TOF/vl53l1x_uld/VL53L1X_calibration.cyclo ./Application/User/STS/TOF/vl53l1x_uld/VL53L1X_calibration.d ./Application/User/STS/TOF/vl53l1x_uld/VL53L1X_calibration.o ./Application/User/STS/TOF/vl53l1x_uld/VL53L1X_calibration.su ./Application/User/STS/TOF/vl53l1x_uld/X-NUCLEO-53L1A1.cyclo ./Application/User/STS/TOF/vl53l1x_uld/X-NUCLEO-53L1A1.d ./Application/User/STS/TOF/vl53l1x_uld/X-NUCLEO-53L1A1.o ./Application/User/STS/TOF/vl53l1x_uld/X-NUCLEO-53L1A1.su ./Application/User/STS/TOF/vl53l1x_uld/vl53l1_platform.cyclo ./Application/User/STS/TOF/vl53l1x_uld/vl53l1_platform.d ./Application/User/STS/TOF/vl53l1x_uld/vl53l1_platform.o ./Application/User/STS/TOF/vl53l1x_uld/vl53l1_platform.su
-
-.PHONY: clean-Application-2f-User-2f-STS-2f-TOF-2f-vl53l1x_uld
-
+################################################################################
+# Automatically-generated file. Do not edit!
+# Toolchain: GNU Tools for STM32 (12.3.rel1)
+################################################################################
+
+# Add inputs and outputs from these tool invocations to the build variables 
+C_SRCS += \
+D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/STS/TOF/vl53l1x_uld/VL53L1X_api.c \
+D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/STS/TOF/vl53l1x_uld/VL53L1X_calibration.c \
+D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/STS/TOF/vl53l1x_uld/X-NUCLEO-53L1A1.c \
+D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/STS/TOF/vl53l1x_uld/vl53l1_platform.c 
+
+OBJS += \
+./Application/User/STS/TOF/vl53l1x_uld/VL53L1X_api.o \
+./Application/User/STS/TOF/vl53l1x_uld/VL53L1X_calibration.o \
+./Application/User/STS/TOF/vl53l1x_uld/X-NUCLEO-53L1A1.o \
+./Application/User/STS/TOF/vl53l1x_uld/vl53l1_platform.o 
+
+C_DEPS += \
+./Application/User/STS/TOF/vl53l1x_uld/VL53L1X_api.d \
+./Application/User/STS/TOF/vl53l1x_uld/VL53L1X_calibration.d \
+./Application/User/STS/TOF/vl53l1x_uld/X-NUCLEO-53L1A1.d \
+./Application/User/STS/TOF/vl53l1x_uld/vl53l1_platform.d 
+
+
+# Each subdirectory must supply rules for building sources it contributes
+Application/User/STS/TOF/vl53l1x_uld/VL53L1X_api.o: D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/STS/TOF/vl53l1x_uld/VL53L1X_api.c Application/User/STS/TOF/vl53l1x_uld/subdir.mk
+	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -g3 -DDEBUG -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
+Application/User/STS/TOF/vl53l1x_uld/VL53L1X_calibration.o: D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/STS/TOF/vl53l1x_uld/VL53L1X_calibration.c Application/User/STS/TOF/vl53l1x_uld/subdir.mk
+	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -g3 -DDEBUG -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
+Application/User/STS/TOF/vl53l1x_uld/X-NUCLEO-53L1A1.o: D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/STS/TOF/vl53l1x_uld/X-NUCLEO-53L1A1.c Application/User/STS/TOF/vl53l1x_uld/subdir.mk
+	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -g3 -DDEBUG -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
+Application/User/STS/TOF/vl53l1x_uld/vl53l1_platform.o: D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/STS/TOF/vl53l1x_uld/vl53l1_platform.c Application/User/STS/TOF/vl53l1x_uld/subdir.mk
+	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -g3 -DDEBUG -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
+
+clean: clean-Application-2f-User-2f-STS-2f-TOF-2f-vl53l1x_uld
+
+clean-Application-2f-User-2f-STS-2f-TOF-2f-vl53l1x_uld:
+	-$(RM) ./Application/User/STS/TOF/vl53l1x_uld/VL53L1X_api.cyclo ./Application/User/STS/TOF/vl53l1x_uld/VL53L1X_api.d ./Application/User/STS/TOF/vl53l1x_uld/VL53L1X_api.o ./Application/User/STS/TOF/vl53l1x_uld/VL53L1X_api.su ./Application/User/STS/TOF/vl53l1x_uld/VL53L1X_calibration.cyclo ./Application/User/STS/TOF/vl53l1x_uld/VL53L1X_calibration.d ./Application/User/STS/TOF/vl53l1x_uld/VL53L1X_calibration.o ./Application/User/STS/TOF/vl53l1x_uld/VL53L1X_calibration.su ./Application/User/STS/TOF/vl53l1x_uld/X-NUCLEO-53L1A1.cyclo ./Application/User/STS/TOF/vl53l1x_uld/X-NUCLEO-53L1A1.d ./Application/User/STS/TOF/vl53l1x_uld/X-NUCLEO-53L1A1.o ./Application/User/STS/TOF/vl53l1x_uld/X-NUCLEO-53L1A1.su ./Application/User/STS/TOF/vl53l1x_uld/vl53l1_platform.cyclo ./Application/User/STS/TOF/vl53l1x_uld/vl53l1_platform.d ./Application/User/STS/TOF/vl53l1x_uld/vl53l1_platform.o ./Application/User/STS/TOF/vl53l1x_uld/vl53l1_platform.su
+
+.PHONY: clean-Application-2f-User-2f-STS-2f-TOF-2f-vl53l1x_uld
+
diff --git a/STM32CubeIDE/Release/Application/User/Core/subdir.mk b/STM32CubeIDE/Release/Application/User/Core/subdir.mk
index a5d5258..e0450bb 100644
--- a/STM32CubeIDE/Release/Application/User/Core/subdir.mk
+++ b/STM32CubeIDE/Release/Application/User/Core/subdir.mk
@@ -5,26 +5,26 @@
 
 # Add inputs and outputs from these tool invocations to the build variables 
 C_SRCS += \
-D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/adc.c \
-D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/adc_if.c \
-D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/dma.c \
-D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/flash_if.c \
-D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/gpio.c \
-D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/i2c.c \
-D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/main.c \
-D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/rtc.c \
-D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/stm32_lpm_if.c \
-D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/stm32wlxx_hal_msp.c \
-D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/stm32wlxx_it.c \
-D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/subghz.c \
-D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/sys_app.c \
-D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/sys_debug.c \
-D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/sys_sensors.c \
+D:/OneDrive/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/adc.c \
+D:/OneDrive/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/adc_if.c \
+D:/OneDrive/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/dma.c \
+D:/OneDrive/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/flash_if.c \
+D:/OneDrive/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/gpio.c \
+D:/OneDrive/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/i2c.c \
+D:/OneDrive/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/main.c \
+D:/OneDrive/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/rtc.c \
+D:/OneDrive/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/stm32_lpm_if.c \
+D:/OneDrive/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/stm32wlxx_hal_msp.c \
+D:/OneDrive/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/stm32wlxx_it.c \
+D:/OneDrive/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/subghz.c \
+D:/OneDrive/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/sys_app.c \
+D:/OneDrive/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/sys_debug.c \
+D:/OneDrive/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/sys_sensors.c \
 ../Application/User/Core/syscalls.c \
 ../Application/User/Core/sysmem.c \
-D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/timer_if.c \
-D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/usart.c \
-D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/usart_if.c 
+D:/OneDrive/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/timer_if.c \
+D:/OneDrive/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/usart.c \
+D:/OneDrive/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/usart_if.c 
 
 OBJS += \
 ./Application/User/Core/adc.o \
@@ -72,43 +72,43 @@ C_DEPS += \
 
 
 # Each subdirectory must supply rules for building sources it contributes
-Application/User/Core/adc.o: D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/adc.c Application/User/Core/subdir.mk
+Application/User/Core/adc.o: D:/OneDrive/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/adc.c Application/User/Core/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Application/User/Core/adc_if.o: D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/adc_if.c Application/User/Core/subdir.mk
+Application/User/Core/adc_if.o: D:/OneDrive/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/adc_if.c Application/User/Core/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Application/User/Core/dma.o: D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/dma.c Application/User/Core/subdir.mk
+Application/User/Core/dma.o: D:/OneDrive/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/dma.c Application/User/Core/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Application/User/Core/flash_if.o: D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/flash_if.c Application/User/Core/subdir.mk
+Application/User/Core/flash_if.o: D:/OneDrive/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/flash_if.c Application/User/Core/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Application/User/Core/gpio.o: D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/gpio.c Application/User/Core/subdir.mk
+Application/User/Core/gpio.o: D:/OneDrive/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/gpio.c Application/User/Core/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Application/User/Core/i2c.o: D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/i2c.c Application/User/Core/subdir.mk
+Application/User/Core/i2c.o: D:/OneDrive/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/i2c.c Application/User/Core/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Application/User/Core/main.o: D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/main.c Application/User/Core/subdir.mk
+Application/User/Core/main.o: D:/OneDrive/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/main.c Application/User/Core/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Application/User/Core/rtc.o: D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/rtc.c Application/User/Core/subdir.mk
+Application/User/Core/rtc.o: D:/OneDrive/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/rtc.c Application/User/Core/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Application/User/Core/stm32_lpm_if.o: D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/stm32_lpm_if.c Application/User/Core/subdir.mk
+Application/User/Core/stm32_lpm_if.o: D:/OneDrive/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/stm32_lpm_if.c Application/User/Core/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Application/User/Core/stm32wlxx_hal_msp.o: D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/stm32wlxx_hal_msp.c Application/User/Core/subdir.mk
+Application/User/Core/stm32wlxx_hal_msp.o: D:/OneDrive/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/stm32wlxx_hal_msp.c Application/User/Core/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Application/User/Core/stm32wlxx_it.o: D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/stm32wlxx_it.c Application/User/Core/subdir.mk
+Application/User/Core/stm32wlxx_it.o: D:/OneDrive/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/stm32wlxx_it.c Application/User/Core/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Application/User/Core/subghz.o: D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/subghz.c Application/User/Core/subdir.mk
+Application/User/Core/subghz.o: D:/OneDrive/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/subghz.c Application/User/Core/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Application/User/Core/sys_app.o: D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/sys_app.c Application/User/Core/subdir.mk
+Application/User/Core/sys_app.o: D:/OneDrive/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/sys_app.c Application/User/Core/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Application/User/Core/sys_debug.o: D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/sys_debug.c Application/User/Core/subdir.mk
+Application/User/Core/sys_debug.o: D:/OneDrive/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/sys_debug.c Application/User/Core/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Application/User/Core/sys_sensors.o: D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/sys_sensors.c Application/User/Core/subdir.mk
+Application/User/Core/sys_sensors.o: D:/OneDrive/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/sys_sensors.c Application/User/Core/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
 Application/User/Core/%.o Application/User/Core/%.su Application/User/Core/%.cyclo: ../Application/User/Core/%.c Application/User/Core/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Application/User/Core/timer_if.o: D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/timer_if.c Application/User/Core/subdir.mk
+Application/User/Core/timer_if.o: D:/OneDrive/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/timer_if.c Application/User/Core/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Application/User/Core/usart.o: D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/usart.c Application/User/Core/subdir.mk
+Application/User/Core/usart.o: D:/OneDrive/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/usart.c Application/User/Core/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Application/User/Core/usart_if.o: D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/usart_if.c Application/User/Core/subdir.mk
+Application/User/Core/usart_if.o: D:/OneDrive/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/usart_if.c Application/User/Core/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
 
 clean: clean-Application-2f-User-2f-Core
diff --git a/STM32CubeIDE/Release/Application/User/LoRaWAN/App/subdir.mk b/STM32CubeIDE/Release/Application/User/LoRaWAN/App/subdir.mk
index 97b1ee8..6063bbc 100644
--- a/STM32CubeIDE/Release/Application/User/LoRaWAN/App/subdir.mk
+++ b/STM32CubeIDE/Release/Application/User/LoRaWAN/App/subdir.mk
@@ -5,10 +5,10 @@
 
 # Add inputs and outputs from these tool invocations to the build variables 
 C_SRCS += \
-D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/LoRaWAN/App/CayenneLpp.c \
-D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/LoRaWAN/App/app_lorawan.c \
-D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/LoRaWAN/App/lora_app.c \
-D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/LoRaWAN/App/lora_info.c 
+D:/OneDrive/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/LoRaWAN/App/CayenneLpp.c \
+D:/OneDrive/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/LoRaWAN/App/app_lorawan.c \
+D:/OneDrive/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/LoRaWAN/App/lora_app.c \
+D:/OneDrive/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/LoRaWAN/App/lora_info.c 
 
 OBJS += \
 ./Application/User/LoRaWAN/App/CayenneLpp.o \
@@ -24,13 +24,13 @@ C_DEPS += \
 
 
 # Each subdirectory must supply rules for building sources it contributes
-Application/User/LoRaWAN/App/CayenneLpp.o: D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/LoRaWAN/App/CayenneLpp.c Application/User/LoRaWAN/App/subdir.mk
+Application/User/LoRaWAN/App/CayenneLpp.o: D:/OneDrive/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/LoRaWAN/App/CayenneLpp.c Application/User/LoRaWAN/App/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Application/User/LoRaWAN/App/app_lorawan.o: D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/LoRaWAN/App/app_lorawan.c Application/User/LoRaWAN/App/subdir.mk
+Application/User/LoRaWAN/App/app_lorawan.o: D:/OneDrive/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/LoRaWAN/App/app_lorawan.c Application/User/LoRaWAN/App/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Application/User/LoRaWAN/App/lora_app.o: D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/LoRaWAN/App/lora_app.c Application/User/LoRaWAN/App/subdir.mk
+Application/User/LoRaWAN/App/lora_app.o: D:/OneDrive/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/LoRaWAN/App/lora_app.c Application/User/LoRaWAN/App/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Application/User/LoRaWAN/App/lora_info.o: D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/LoRaWAN/App/lora_info.c Application/User/LoRaWAN/App/subdir.mk
+Application/User/LoRaWAN/App/lora_info.o: D:/OneDrive/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/LoRaWAN/App/lora_info.c Application/User/LoRaWAN/App/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
 
 clean: clean-Application-2f-User-2f-LoRaWAN-2f-App
diff --git a/STM32CubeIDE/Release/Application/User/LoRaWAN/Target/subdir.mk b/STM32CubeIDE/Release/Application/User/LoRaWAN/Target/subdir.mk
index 31957c9..58976f4 100644
--- a/STM32CubeIDE/Release/Application/User/LoRaWAN/Target/subdir.mk
+++ b/STM32CubeIDE/Release/Application/User/LoRaWAN/Target/subdir.mk
@@ -5,7 +5,7 @@
 
 # Add inputs and outputs from these tool invocations to the build variables 
 C_SRCS += \
-D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/LoRaWAN/Target/radio_board_if.c 
+D:/OneDrive/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/LoRaWAN/Target/radio_board_if.c 
 
 OBJS += \
 ./Application/User/LoRaWAN/Target/radio_board_if.o 
@@ -15,7 +15,7 @@ C_DEPS += \
 
 
 # Each subdirectory must supply rules for building sources it contributes
-Application/User/LoRaWAN/Target/radio_board_if.o: D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/LoRaWAN/Target/radio_board_if.c Application/User/LoRaWAN/Target/subdir.mk
+Application/User/LoRaWAN/Target/radio_board_if.o: D:/OneDrive/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/LoRaWAN/Target/radio_board_if.c Application/User/LoRaWAN/Target/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
 
 clean: clean-Application-2f-User-2f-LoRaWAN-2f-Target
diff --git a/STM32CubeIDE/Release/Application/User/STS/Core/Src/subdir.mk b/STM32CubeIDE/Release/Application/User/STS/Core/Src/subdir.mk
index 696d0a3..c07f08d 100644
--- a/STM32CubeIDE/Release/Application/User/STS/Core/Src/subdir.mk
+++ b/STM32CubeIDE/Release/Application/User/STS/Core/Src/subdir.mk
@@ -1,37 +1,37 @@
-################################################################################
-# Automatically-generated file. Do not edit!
-# Toolchain: GNU Tools for STM32 (12.3.rel1)
-################################################################################
-
-# Add inputs and outputs from these tool invocations to the build variables 
+################################################################################
+# Automatically-generated file. Do not edit!
+# Toolchain: GNU Tools for STM32 (12.3.rel1)
+################################################################################
+
+# Add inputs and outputs from these tool invocations to the build variables 
 C_SRCS += \
-D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/STS/Core/Src/cmox_low_level.c \
-D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/STS/Core/Src/sts_cmox_hmac_sha.c \
-D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/STS/Core/Src/yunhorn_sts_process.c 
-
+D:/OneDrive/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/STS/Core/Src/cmox_low_level.c \
+D:/OneDrive/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/STS/Core/Src/sts_cmox_hmac_sha.c \
+D:/OneDrive/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/STS/Core/Src/yunhorn_sts_process.c 
+
 OBJS += \
 ./Application/User/STS/Core/Src/cmox_low_level.o \
 ./Application/User/STS/Core/Src/sts_cmox_hmac_sha.o \
-./Application/User/STS/Core/Src/yunhorn_sts_process.o 
-
+./Application/User/STS/Core/Src/yunhorn_sts_process.o 
+
 C_DEPS += \
 ./Application/User/STS/Core/Src/cmox_low_level.d \
 ./Application/User/STS/Core/Src/sts_cmox_hmac_sha.d \
-./Application/User/STS/Core/Src/yunhorn_sts_process.d 
-
-
-# Each subdirectory must supply rules for building sources it contributes
-Application/User/STS/Core/Src/cmox_low_level.o: D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/STS/Core/Src/cmox_low_level.c Application/User/STS/Core/Src/subdir.mk
-	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Application/User/STS/Core/Src/sts_cmox_hmac_sha.o: D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/STS/Core/Src/sts_cmox_hmac_sha.c Application/User/STS/Core/Src/subdir.mk
-	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Application/User/STS/Core/Src/yunhorn_sts_process.o: D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/STS/Core/Src/yunhorn_sts_process.c Application/User/STS/Core/Src/subdir.mk
-	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-
-clean: clean-Application-2f-User-2f-STS-2f-Core-2f-Src
-
-clean-Application-2f-User-2f-STS-2f-Core-2f-Src:
-	-$(RM) ./Application/User/STS/Core/Src/cmox_low_level.cyclo ./Application/User/STS/Core/Src/cmox_low_level.d ./Application/User/STS/Core/Src/cmox_low_level.o ./Application/User/STS/Core/Src/cmox_low_level.su ./Application/User/STS/Core/Src/sts_cmox_hmac_sha.cyclo ./Application/User/STS/Core/Src/sts_cmox_hmac_sha.d ./Application/User/STS/Core/Src/sts_cmox_hmac_sha.o ./Application/User/STS/Core/Src/sts_cmox_hmac_sha.su ./Application/User/STS/Core/Src/yunhorn_sts_process.cyclo ./Application/User/STS/Core/Src/yunhorn_sts_process.d ./Application/User/STS/Core/Src/yunhorn_sts_process.o ./Application/User/STS/Core/Src/yunhorn_sts_process.su
-
-.PHONY: clean-Application-2f-User-2f-STS-2f-Core-2f-Src
-
+./Application/User/STS/Core/Src/yunhorn_sts_process.d 
+
+
+# Each subdirectory must supply rules for building sources it contributes
+Application/User/STS/Core/Src/cmox_low_level.o: D:/OneDrive/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/STS/Core/Src/cmox_low_level.c Application/User/STS/Core/Src/subdir.mk
+	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
+Application/User/STS/Core/Src/sts_cmox_hmac_sha.o: D:/OneDrive/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/STS/Core/Src/sts_cmox_hmac_sha.c Application/User/STS/Core/Src/subdir.mk
+	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
+Application/User/STS/Core/Src/yunhorn_sts_process.o: D:/OneDrive/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/STS/Core/Src/yunhorn_sts_process.c Application/User/STS/Core/Src/subdir.mk
+	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
+
+clean: clean-Application-2f-User-2f-STS-2f-Core-2f-Src
+
+clean-Application-2f-User-2f-STS-2f-Core-2f-Src:
+	-$(RM) ./Application/User/STS/Core/Src/cmox_low_level.cyclo ./Application/User/STS/Core/Src/cmox_low_level.d ./Application/User/STS/Core/Src/cmox_low_level.o ./Application/User/STS/Core/Src/cmox_low_level.su ./Application/User/STS/Core/Src/sts_cmox_hmac_sha.cyclo ./Application/User/STS/Core/Src/sts_cmox_hmac_sha.d ./Application/User/STS/Core/Src/sts_cmox_hmac_sha.o ./Application/User/STS/Core/Src/sts_cmox_hmac_sha.su ./Application/User/STS/Core/Src/yunhorn_sts_process.cyclo ./Application/User/STS/Core/Src/yunhorn_sts_process.d ./Application/User/STS/Core/Src/yunhorn_sts_process.o ./Application/User/STS/Core/Src/yunhorn_sts_process.su
+
+.PHONY: clean-Application-2f-User-2f-STS-2f-Core-2f-Src
+
diff --git a/STM32CubeIDE/Release/Application/User/STS/TOF/App/subdir.mk b/STM32CubeIDE/Release/Application/User/STS/TOF/App/subdir.mk
index 3a3daf7..d06e63c 100644
--- a/STM32CubeIDE/Release/Application/User/STS/TOF/App/subdir.mk
+++ b/STM32CubeIDE/Release/Application/User/STS/TOF/App/subdir.mk
@@ -1,32 +1,32 @@
-################################################################################
-# Automatically-generated file. Do not edit!
-# Toolchain: GNU Tools for STM32 (12.3.rel1)
-################################################################################
-
-# Add inputs and outputs from these tool invocations to the build variables 
+################################################################################
+# Automatically-generated file. Do not edit!
+# Toolchain: GNU Tools for STM32 (12.3.rel1)
+################################################################################
+
+# Add inputs and outputs from these tool invocations to the build variables 
 C_SRCS += \
-D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/STS/TOF/App/app_tof.c \
-D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/STS/TOF/App/app_tof_peoplecount.c 
-
+D:/OneDrive/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/STS/TOF/App/app_tof.c \
+D:/OneDrive/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/STS/TOF/App/app_tof_peoplecount.c 
+
 OBJS += \
 ./Application/User/STS/TOF/App/app_tof.o \
-./Application/User/STS/TOF/App/app_tof_peoplecount.o 
-
+./Application/User/STS/TOF/App/app_tof_peoplecount.o 
+
 C_DEPS += \
 ./Application/User/STS/TOF/App/app_tof.d \
-./Application/User/STS/TOF/App/app_tof_peoplecount.d 
-
-
-# Each subdirectory must supply rules for building sources it contributes
-Application/User/STS/TOF/App/app_tof.o: D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/STS/TOF/App/app_tof.c Application/User/STS/TOF/App/subdir.mk
-	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Application/User/STS/TOF/App/app_tof_peoplecount.o: D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/STS/TOF/App/app_tof_peoplecount.c Application/User/STS/TOF/App/subdir.mk
-	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-
-clean: clean-Application-2f-User-2f-STS-2f-TOF-2f-App
-
-clean-Application-2f-User-2f-STS-2f-TOF-2f-App:
-	-$(RM) ./Application/User/STS/TOF/App/app_tof.cyclo ./Application/User/STS/TOF/App/app_tof.d ./Application/User/STS/TOF/App/app_tof.o ./Application/User/STS/TOF/App/app_tof.su ./Application/User/STS/TOF/App/app_tof_peoplecount.cyclo ./Application/User/STS/TOF/App/app_tof_peoplecount.d ./Application/User/STS/TOF/App/app_tof_peoplecount.o ./Application/User/STS/TOF/App/app_tof_peoplecount.su
-
-.PHONY: clean-Application-2f-User-2f-STS-2f-TOF-2f-App
-
+./Application/User/STS/TOF/App/app_tof_peoplecount.d 
+
+
+# Each subdirectory must supply rules for building sources it contributes
+Application/User/STS/TOF/App/app_tof.o: D:/OneDrive/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/STS/TOF/App/app_tof.c Application/User/STS/TOF/App/subdir.mk
+	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
+Application/User/STS/TOF/App/app_tof_peoplecount.o: D:/OneDrive/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/STS/TOF/App/app_tof_peoplecount.c Application/User/STS/TOF/App/subdir.mk
+	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
+
+clean: clean-Application-2f-User-2f-STS-2f-TOF-2f-App
+
+clean-Application-2f-User-2f-STS-2f-TOF-2f-App:
+	-$(RM) ./Application/User/STS/TOF/App/app_tof.cyclo ./Application/User/STS/TOF/App/app_tof.d ./Application/User/STS/TOF/App/app_tof.o ./Application/User/STS/TOF/App/app_tof.su ./Application/User/STS/TOF/App/app_tof_peoplecount.cyclo ./Application/User/STS/TOF/App/app_tof_peoplecount.d ./Application/User/STS/TOF/App/app_tof_peoplecount.o ./Application/User/STS/TOF/App/app_tof_peoplecount.su
+
+.PHONY: clean-Application-2f-User-2f-STS-2f-TOF-2f-App
+
diff --git a/STM32CubeIDE/Release/Application/User/STS/TOF/Target/subdir.mk b/STM32CubeIDE/Release/Application/User/STS/TOF/Target/subdir.mk
index c8ddbb2..671c64e 100644
--- a/STM32CubeIDE/Release/Application/User/STS/TOF/Target/subdir.mk
+++ b/STM32CubeIDE/Release/Application/User/STS/TOF/Target/subdir.mk
@@ -1,27 +1,27 @@
-################################################################################
-# Automatically-generated file. Do not edit!
-# Toolchain: GNU Tools for STM32 (12.3.rel1)
-################################################################################
-
-# Add inputs and outputs from these tool invocations to the build variables 
+################################################################################
+# Automatically-generated file. Do not edit!
+# Toolchain: GNU Tools for STM32 (12.3.rel1)
+################################################################################
+
+# Add inputs and outputs from these tool invocations to the build variables 
 C_SRCS += \
-D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/STS/TOF/Target/app_tof_pin_conf.c 
-
+D:/OneDrive/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/STS/TOF/Target/app_tof_pin_conf.c 
+
 OBJS += \
-./Application/User/STS/TOF/Target/app_tof_pin_conf.o 
-
+./Application/User/STS/TOF/Target/app_tof_pin_conf.o 
+
 C_DEPS += \
-./Application/User/STS/TOF/Target/app_tof_pin_conf.d 
-
-
-# Each subdirectory must supply rules for building sources it contributes
-Application/User/STS/TOF/Target/app_tof_pin_conf.o: D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/STS/TOF/Target/app_tof_pin_conf.c Application/User/STS/TOF/Target/subdir.mk
-	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-
-clean: clean-Application-2f-User-2f-STS-2f-TOF-2f-Target
-
-clean-Application-2f-User-2f-STS-2f-TOF-2f-Target:
-	-$(RM) ./Application/User/STS/TOF/Target/app_tof_pin_conf.cyclo ./Application/User/STS/TOF/Target/app_tof_pin_conf.d ./Application/User/STS/TOF/Target/app_tof_pin_conf.o ./Application/User/STS/TOF/Target/app_tof_pin_conf.su
-
-.PHONY: clean-Application-2f-User-2f-STS-2f-TOF-2f-Target
-
+./Application/User/STS/TOF/Target/app_tof_pin_conf.d 
+
+
+# Each subdirectory must supply rules for building sources it contributes
+Application/User/STS/TOF/Target/app_tof_pin_conf.o: D:/OneDrive/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/STS/TOF/Target/app_tof_pin_conf.c Application/User/STS/TOF/Target/subdir.mk
+	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
+
+clean: clean-Application-2f-User-2f-STS-2f-TOF-2f-Target
+
+clean-Application-2f-User-2f-STS-2f-TOF-2f-Target:
+	-$(RM) ./Application/User/STS/TOF/Target/app_tof_pin_conf.cyclo ./Application/User/STS/TOF/Target/app_tof_pin_conf.d ./Application/User/STS/TOF/Target/app_tof_pin_conf.o ./Application/User/STS/TOF/Target/app_tof_pin_conf.su
+
+.PHONY: clean-Application-2f-User-2f-STS-2f-TOF-2f-Target
+
diff --git a/STM32CubeIDE/Release/Application/User/STS/TOF/vl53l0x/subdir.mk b/STM32CubeIDE/Release/Application/User/STS/TOF/vl53l0x/subdir.mk
index efbab81..7effbaf 100644
--- a/STM32CubeIDE/Release/Application/User/STS/TOF/vl53l0x/subdir.mk
+++ b/STM32CubeIDE/Release/Application/User/STS/TOF/vl53l0x/subdir.mk
@@ -1,57 +1,9 @@
-################################################################################
-# Automatically-generated file. Do not edit!
-# Toolchain: GNU Tools for STM32 (12.3.rel1)
-################################################################################
-
-# Add inputs and outputs from these tool invocations to the build variables 
-C_SRCS += \
-D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/STS/TOF/vl53l0x/vl53l0x_api.c \
-D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/STS/TOF/vl53l0x/vl53l0x_api_calibration.c \
-D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/STS/TOF/vl53l0x/vl53l0x_api_core.c \
-D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/STS/TOF/vl53l0x/vl53l0x_api_ranging.c \
-D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/STS/TOF/vl53l0x/vl53l0x_api_strings.c \
-D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/STS/TOF/vl53l0x/vl53l0x_platform.c \
-D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/STS/TOF/vl53l0x/vl53l0x_platform_log.c 
-
-OBJS += \
-./Application/User/STS/TOF/vl53l0x/vl53l0x_api.o \
-./Application/User/STS/TOF/vl53l0x/vl53l0x_api_calibration.o \
-./Application/User/STS/TOF/vl53l0x/vl53l0x_api_core.o \
-./Application/User/STS/TOF/vl53l0x/vl53l0x_api_ranging.o \
-./Application/User/STS/TOF/vl53l0x/vl53l0x_api_strings.o \
-./Application/User/STS/TOF/vl53l0x/vl53l0x_platform.o \
-./Application/User/STS/TOF/vl53l0x/vl53l0x_platform_log.o 
-
-C_DEPS += \
-./Application/User/STS/TOF/vl53l0x/vl53l0x_api.d \
-./Application/User/STS/TOF/vl53l0x/vl53l0x_api_calibration.d \
-./Application/User/STS/TOF/vl53l0x/vl53l0x_api_core.d \
-./Application/User/STS/TOF/vl53l0x/vl53l0x_api_ranging.d \
-./Application/User/STS/TOF/vl53l0x/vl53l0x_api_strings.d \
-./Application/User/STS/TOF/vl53l0x/vl53l0x_platform.d \
-./Application/User/STS/TOF/vl53l0x/vl53l0x_platform_log.d 
-
-
-# Each subdirectory must supply rules for building sources it contributes
-Application/User/STS/TOF/vl53l0x/vl53l0x_api.o: D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/STS/TOF/vl53l0x/vl53l0x_api.c Application/User/STS/TOF/vl53l0x/subdir.mk
-	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_P2 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Application/User/STS/TOF/vl53l0x/vl53l0x_api_calibration.o: D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/STS/TOF/vl53l0x/vl53l0x_api_calibration.c Application/User/STS/TOF/vl53l0x/subdir.mk
-	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_P2 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Application/User/STS/TOF/vl53l0x/vl53l0x_api_core.o: D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/STS/TOF/vl53l0x/vl53l0x_api_core.c Application/User/STS/TOF/vl53l0x/subdir.mk
-	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_P2 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Application/User/STS/TOF/vl53l0x/vl53l0x_api_ranging.o: D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/STS/TOF/vl53l0x/vl53l0x_api_ranging.c Application/User/STS/TOF/vl53l0x/subdir.mk
-	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_P2 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Application/User/STS/TOF/vl53l0x/vl53l0x_api_strings.o: D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/STS/TOF/vl53l0x/vl53l0x_api_strings.c Application/User/STS/TOF/vl53l0x/subdir.mk
-	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_P2 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Application/User/STS/TOF/vl53l0x/vl53l0x_platform.o: D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/STS/TOF/vl53l0x/vl53l0x_platform.c Application/User/STS/TOF/vl53l0x/subdir.mk
-	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_P2 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Application/User/STS/TOF/vl53l0x/vl53l0x_platform_log.o: D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/STS/TOF/vl53l0x/vl53l0x_platform_log.c Application/User/STS/TOF/vl53l0x/subdir.mk
-	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_P2 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-
-clean: clean-Application-2f-User-2f-STS-2f-TOF-2f-vl53l0x
-
-clean-Application-2f-User-2f-STS-2f-TOF-2f-vl53l0x:
-	-$(RM) ./Application/User/STS/TOF/vl53l0x/vl53l0x_api.cyclo ./Application/User/STS/TOF/vl53l0x/vl53l0x_api.d ./Application/User/STS/TOF/vl53l0x/vl53l0x_api.o ./Application/User/STS/TOF/vl53l0x/vl53l0x_api.su ./Application/User/STS/TOF/vl53l0x/vl53l0x_api_calibration.cyclo ./Application/User/STS/TOF/vl53l0x/vl53l0x_api_calibration.d ./Application/User/STS/TOF/vl53l0x/vl53l0x_api_calibration.o ./Application/User/STS/TOF/vl53l0x/vl53l0x_api_calibration.su ./Application/User/STS/TOF/vl53l0x/vl53l0x_api_core.cyclo ./Application/User/STS/TOF/vl53l0x/vl53l0x_api_core.d ./Application/User/STS/TOF/vl53l0x/vl53l0x_api_core.o ./Application/User/STS/TOF/vl53l0x/vl53l0x_api_core.su ./Application/User/STS/TOF/vl53l0x/vl53l0x_api_ranging.cyclo ./Application/User/STS/TOF/vl53l0x/vl53l0x_api_ranging.d ./Application/User/STS/TOF/vl53l0x/vl53l0x_api_ranging.o ./Application/User/STS/TOF/vl53l0x/vl53l0x_api_ranging.su ./Application/User/STS/TOF/vl53l0x/vl53l0x_api_strings.cyclo ./Application/User/STS/TOF/vl53l0x/vl53l0x_api_strings.d ./Application/User/STS/TOF/vl53l0x/vl53l0x_api_strings.o ./Application/User/STS/TOF/vl53l0x/vl53l0x_api_strings.su ./Application/User/STS/TOF/vl53l0x/vl53l0x_platform.cyclo ./Application/User/STS/TOF/vl53l0x/vl53l0x_platform.d ./Application/User/STS/TOF/vl53l0x/vl53l0x_platform.o ./Application/User/STS/TOF/vl53l0x/vl53l0x_platform.su ./Application/User/STS/TOF/vl53l0x/vl53l0x_platform_log.cyclo ./Application/User/STS/TOF/vl53l0x/vl53l0x_platform_log.d ./Application/User/STS/TOF/vl53l0x/vl53l0x_platform_log.o ./Application/User/STS/TOF/vl53l0x/vl53l0x_platform_log.su
-
-.PHONY: clean-Application-2f-User-2f-STS-2f-TOF-2f-vl53l0x
-
+################################################################################
+# Automatically-generated file. Do not edit!
+# Toolchain: GNU Tools for STM32 (12.3.rel1)
+################################################################################
+
+# Add inputs and outputs from these tool invocations to the build variables 
+
+# Each subdirectory must supply rules for building sources it contributes
+
diff --git a/STM32CubeIDE/Release/Application/User/STS/TOF/vl53l1x_uld/subdir.mk b/STM32CubeIDE/Release/Application/User/STS/TOF/vl53l1x_uld/subdir.mk
index b3073e0..f02d30e 100644
--- a/STM32CubeIDE/Release/Application/User/STS/TOF/vl53l1x_uld/subdir.mk
+++ b/STM32CubeIDE/Release/Application/User/STS/TOF/vl53l1x_uld/subdir.mk
@@ -1,42 +1,42 @@
-################################################################################
-# Automatically-generated file. Do not edit!
-# Toolchain: GNU Tools for STM32 (12.3.rel1)
-################################################################################
-
-# Add inputs and outputs from these tool invocations to the build variables 
+################################################################################
+# Automatically-generated file. Do not edit!
+# Toolchain: GNU Tools for STM32 (12.3.rel1)
+################################################################################
+
+# Add inputs and outputs from these tool invocations to the build variables 
 C_SRCS += \
-D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/STS/TOF/vl53l1x_uld/VL53L1X_api.c \
-D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/STS/TOF/vl53l1x_uld/VL53L1X_calibration.c \
-D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/STS/TOF/vl53l1x_uld/X-NUCLEO-53L1A1.c \
-D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/STS/TOF/vl53l1x_uld/vl53l1_platform.c 
-
+D:/OneDrive/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/STS/TOF/vl53l1x_uld/VL53L1X_api.c \
+D:/OneDrive/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/STS/TOF/vl53l1x_uld/VL53L1X_calibration.c \
+D:/OneDrive/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/STS/TOF/vl53l1x_uld/X-NUCLEO-53L1A1.c \
+D:/OneDrive/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/STS/TOF/vl53l1x_uld/vl53l1_platform.c 
+
 OBJS += \
 ./Application/User/STS/TOF/vl53l1x_uld/VL53L1X_api.o \
 ./Application/User/STS/TOF/vl53l1x_uld/VL53L1X_calibration.o \
 ./Application/User/STS/TOF/vl53l1x_uld/X-NUCLEO-53L1A1.o \
-./Application/User/STS/TOF/vl53l1x_uld/vl53l1_platform.o 
-
+./Application/User/STS/TOF/vl53l1x_uld/vl53l1_platform.o 
+
 C_DEPS += \
 ./Application/User/STS/TOF/vl53l1x_uld/VL53L1X_api.d \
 ./Application/User/STS/TOF/vl53l1x_uld/VL53L1X_calibration.d \
 ./Application/User/STS/TOF/vl53l1x_uld/X-NUCLEO-53L1A1.d \
-./Application/User/STS/TOF/vl53l1x_uld/vl53l1_platform.d 
-
-
-# Each subdirectory must supply rules for building sources it contributes
-Application/User/STS/TOF/vl53l1x_uld/VL53L1X_api.o: D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/STS/TOF/vl53l1x_uld/VL53L1X_api.c Application/User/STS/TOF/vl53l1x_uld/subdir.mk
-	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Application/User/STS/TOF/vl53l1x_uld/VL53L1X_calibration.o: D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/STS/TOF/vl53l1x_uld/VL53L1X_calibration.c Application/User/STS/TOF/vl53l1x_uld/subdir.mk
-	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Application/User/STS/TOF/vl53l1x_uld/X-NUCLEO-53L1A1.o: D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/STS/TOF/vl53l1x_uld/X-NUCLEO-53L1A1.c Application/User/STS/TOF/vl53l1x_uld/subdir.mk
-	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Application/User/STS/TOF/vl53l1x_uld/vl53l1_platform.o: D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/STS/TOF/vl53l1x_uld/vl53l1_platform.c Application/User/STS/TOF/vl53l1x_uld/subdir.mk
-	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-
-clean: clean-Application-2f-User-2f-STS-2f-TOF-2f-vl53l1x_uld
-
-clean-Application-2f-User-2f-STS-2f-TOF-2f-vl53l1x_uld:
-	-$(RM) ./Application/User/STS/TOF/vl53l1x_uld/VL53L1X_api.cyclo ./Application/User/STS/TOF/vl53l1x_uld/VL53L1X_api.d ./Application/User/STS/TOF/vl53l1x_uld/VL53L1X_api.o ./Application/User/STS/TOF/vl53l1x_uld/VL53L1X_api.su ./Application/User/STS/TOF/vl53l1x_uld/VL53L1X_calibration.cyclo ./Application/User/STS/TOF/vl53l1x_uld/VL53L1X_calibration.d ./Application/User/STS/TOF/vl53l1x_uld/VL53L1X_calibration.o ./Application/User/STS/TOF/vl53l1x_uld/VL53L1X_calibration.su ./Application/User/STS/TOF/vl53l1x_uld/X-NUCLEO-53L1A1.cyclo ./Application/User/STS/TOF/vl53l1x_uld/X-NUCLEO-53L1A1.d ./Application/User/STS/TOF/vl53l1x_uld/X-NUCLEO-53L1A1.o ./Application/User/STS/TOF/vl53l1x_uld/X-NUCLEO-53L1A1.su ./Application/User/STS/TOF/vl53l1x_uld/vl53l1_platform.cyclo ./Application/User/STS/TOF/vl53l1x_uld/vl53l1_platform.d ./Application/User/STS/TOF/vl53l1x_uld/vl53l1_platform.o ./Application/User/STS/TOF/vl53l1x_uld/vl53l1_platform.su
-
-.PHONY: clean-Application-2f-User-2f-STS-2f-TOF-2f-vl53l1x_uld
-
+./Application/User/STS/TOF/vl53l1x_uld/vl53l1_platform.d 
+
+
+# Each subdirectory must supply rules for building sources it contributes
+Application/User/STS/TOF/vl53l1x_uld/VL53L1X_api.o: D:/OneDrive/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/STS/TOF/vl53l1x_uld/VL53L1X_api.c Application/User/STS/TOF/vl53l1x_uld/subdir.mk
+	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
+Application/User/STS/TOF/vl53l1x_uld/VL53L1X_calibration.o: D:/OneDrive/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/STS/TOF/vl53l1x_uld/VL53L1X_calibration.c Application/User/STS/TOF/vl53l1x_uld/subdir.mk
+	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
+Application/User/STS/TOF/vl53l1x_uld/X-NUCLEO-53L1A1.o: D:/OneDrive/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/STS/TOF/vl53l1x_uld/X-NUCLEO-53L1A1.c Application/User/STS/TOF/vl53l1x_uld/subdir.mk
+	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
+Application/User/STS/TOF/vl53l1x_uld/vl53l1_platform.o: D:/OneDrive/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/STS/TOF/vl53l1x_uld/vl53l1_platform.c Application/User/STS/TOF/vl53l1x_uld/subdir.mk
+	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
+
+clean: clean-Application-2f-User-2f-STS-2f-TOF-2f-vl53l1x_uld
+
+clean-Application-2f-User-2f-STS-2f-TOF-2f-vl53l1x_uld:
+	-$(RM) ./Application/User/STS/TOF/vl53l1x_uld/VL53L1X_api.cyclo ./Application/User/STS/TOF/vl53l1x_uld/VL53L1X_api.d ./Application/User/STS/TOF/vl53l1x_uld/VL53L1X_api.o ./Application/User/STS/TOF/vl53l1x_uld/VL53L1X_api.su ./Application/User/STS/TOF/vl53l1x_uld/VL53L1X_calibration.cyclo ./Application/User/STS/TOF/vl53l1x_uld/VL53L1X_calibration.d ./Application/User/STS/TOF/vl53l1x_uld/VL53L1X_calibration.o ./Application/User/STS/TOF/vl53l1x_uld/VL53L1X_calibration.su ./Application/User/STS/TOF/vl53l1x_uld/X-NUCLEO-53L1A1.cyclo ./Application/User/STS/TOF/vl53l1x_uld/X-NUCLEO-53L1A1.d ./Application/User/STS/TOF/vl53l1x_uld/X-NUCLEO-53L1A1.o ./Application/User/STS/TOF/vl53l1x_uld/X-NUCLEO-53L1A1.su ./Application/User/STS/TOF/vl53l1x_uld/vl53l1_platform.cyclo ./Application/User/STS/TOF/vl53l1x_uld/vl53l1_platform.d ./Application/User/STS/TOF/vl53l1x_uld/vl53l1_platform.o ./Application/User/STS/TOF/vl53l1x_uld/vl53l1_platform.su
+
+.PHONY: clean-Application-2f-User-2f-STS-2f-TOF-2f-vl53l1x_uld
+
diff --git a/STM32CubeIDE/Release/Drivers/BSP/STM32WLxx_Nucleo/subdir.mk b/STM32CubeIDE/Release/Drivers/BSP/STM32WLxx_Nucleo/subdir.mk
index 9a73b44..c53733a 100644
--- a/STM32CubeIDE/Release/Drivers/BSP/STM32WLxx_Nucleo/subdir.mk
+++ b/STM32CubeIDE/Release/Drivers/BSP/STM32WLxx_Nucleo/subdir.mk
@@ -5,8 +5,8 @@
 
 # Add inputs and outputs from these tool invocations to the build variables 
 C_SRCS += \
-D:/ONEDRIVE/STM32WLV13/Drivers/BSP/STM32WLxx_Nucleo/stm32wlxx_nucleo.c \
-D:/ONEDRIVE/STM32WLV13/Drivers/BSP/STM32WLxx_Nucleo/stm32wlxx_nucleo_radio.c 
+D:/OneDrive/STM32WLV13/Drivers/BSP/STM32WLxx_Nucleo/stm32wlxx_nucleo.c \
+D:/OneDrive/STM32WLV13/Drivers/BSP/STM32WLxx_Nucleo/stm32wlxx_nucleo_radio.c 
 
 OBJS += \
 ./Drivers/BSP/STM32WLxx_Nucleo/stm32wlxx_nucleo.o \
@@ -18,9 +18,9 @@ C_DEPS += \
 
 
 # Each subdirectory must supply rules for building sources it contributes
-Drivers/BSP/STM32WLxx_Nucleo/stm32wlxx_nucleo.o: D:/ONEDRIVE/STM32WLV13/Drivers/BSP/STM32WLxx_Nucleo/stm32wlxx_nucleo.c Drivers/BSP/STM32WLxx_Nucleo/subdir.mk
+Drivers/BSP/STM32WLxx_Nucleo/stm32wlxx_nucleo.o: D:/OneDrive/STM32WLV13/Drivers/BSP/STM32WLxx_Nucleo/stm32wlxx_nucleo.c Drivers/BSP/STM32WLxx_Nucleo/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Drivers/BSP/STM32WLxx_Nucleo/stm32wlxx_nucleo_radio.o: D:/ONEDRIVE/STM32WLV13/Drivers/BSP/STM32WLxx_Nucleo/stm32wlxx_nucleo_radio.c Drivers/BSP/STM32WLxx_Nucleo/subdir.mk
+Drivers/BSP/STM32WLxx_Nucleo/stm32wlxx_nucleo_radio.o: D:/OneDrive/STM32WLV13/Drivers/BSP/STM32WLxx_Nucleo/stm32wlxx_nucleo_radio.c Drivers/BSP/STM32WLxx_Nucleo/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
 
 clean: clean-Drivers-2f-BSP-2f-STM32WLxx_Nucleo
diff --git a/STM32CubeIDE/Release/Drivers/CMSIS/subdir.mk b/STM32CubeIDE/Release/Drivers/CMSIS/subdir.mk
index ea0d16e..e7ccf34 100644
--- a/STM32CubeIDE/Release/Drivers/CMSIS/subdir.mk
+++ b/STM32CubeIDE/Release/Drivers/CMSIS/subdir.mk
@@ -5,7 +5,7 @@
 
 # Add inputs and outputs from these tool invocations to the build variables 
 C_SRCS += \
-D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/system_stm32wlxx.c 
+D:/OneDrive/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/system_stm32wlxx.c 
 
 OBJS += \
 ./Drivers/CMSIS/system_stm32wlxx.o 
@@ -15,7 +15,7 @@ C_DEPS += \
 
 
 # Each subdirectory must supply rules for building sources it contributes
-Drivers/CMSIS/system_stm32wlxx.o: D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/system_stm32wlxx.c Drivers/CMSIS/subdir.mk
+Drivers/CMSIS/system_stm32wlxx.o: D:/OneDrive/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/system_stm32wlxx.c Drivers/CMSIS/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
 
 clean: clean-Drivers-2f-CMSIS
diff --git a/STM32CubeIDE/Release/Drivers/STM32WLxx_HAL_Driver/subdir.mk b/STM32CubeIDE/Release/Drivers/STM32WLxx_HAL_Driver/subdir.mk
index ca019d3..986f368 100644
--- a/STM32CubeIDE/Release/Drivers/STM32WLxx_HAL_Driver/subdir.mk
+++ b/STM32CubeIDE/Release/Drivers/STM32WLxx_HAL_Driver/subdir.mk
@@ -5,30 +5,30 @@
 
 # Add inputs and outputs from these tool invocations to the build variables 
 C_SRCS += \
-D:/ONEDRIVE/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal.c \
-D:/ONEDRIVE/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_adc.c \
-D:/ONEDRIVE/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_adc_ex.c \
-D:/ONEDRIVE/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_cortex.c \
-D:/ONEDRIVE/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_dma.c \
-D:/ONEDRIVE/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_dma_ex.c \
-D:/ONEDRIVE/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_exti.c \
-D:/ONEDRIVE/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_flash.c \
-D:/ONEDRIVE/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_flash_ex.c \
-D:/ONEDRIVE/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_gpio.c \
-D:/ONEDRIVE/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_i2c.c \
-D:/ONEDRIVE/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_i2c_ex.c \
-D:/ONEDRIVE/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_pwr.c \
-D:/ONEDRIVE/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_pwr_ex.c \
-D:/ONEDRIVE/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_rcc.c \
-D:/ONEDRIVE/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_rcc_ex.c \
-D:/ONEDRIVE/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_rtc.c \
-D:/ONEDRIVE/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_rtc_ex.c \
-D:/ONEDRIVE/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_subghz.c \
-D:/ONEDRIVE/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_tim.c \
-D:/ONEDRIVE/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_tim_ex.c \
-D:/ONEDRIVE/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_uart.c \
-D:/ONEDRIVE/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_uart_ex.c \
-D:/ONEDRIVE/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_ll_adc.c 
+D:/OneDrive/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal.c \
+D:/OneDrive/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_adc.c \
+D:/OneDrive/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_adc_ex.c \
+D:/OneDrive/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_cortex.c \
+D:/OneDrive/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_dma.c \
+D:/OneDrive/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_dma_ex.c \
+D:/OneDrive/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_exti.c \
+D:/OneDrive/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_flash.c \
+D:/OneDrive/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_flash_ex.c \
+D:/OneDrive/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_gpio.c \
+D:/OneDrive/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_i2c.c \
+D:/OneDrive/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_i2c_ex.c \
+D:/OneDrive/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_pwr.c \
+D:/OneDrive/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_pwr_ex.c \
+D:/OneDrive/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_rcc.c \
+D:/OneDrive/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_rcc_ex.c \
+D:/OneDrive/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_rtc.c \
+D:/OneDrive/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_rtc_ex.c \
+D:/OneDrive/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_subghz.c \
+D:/OneDrive/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_tim.c \
+D:/OneDrive/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_tim_ex.c \
+D:/OneDrive/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_uart.c \
+D:/OneDrive/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_uart_ex.c \
+D:/OneDrive/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_ll_adc.c 
 
 OBJS += \
 ./Drivers/STM32WLxx_HAL_Driver/stm32wlxx_hal.o \
@@ -84,53 +84,53 @@ C_DEPS += \
 
 
 # Each subdirectory must supply rules for building sources it contributes
-Drivers/STM32WLxx_HAL_Driver/stm32wlxx_hal.o: D:/ONEDRIVE/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal.c Drivers/STM32WLxx_HAL_Driver/subdir.mk
+Drivers/STM32WLxx_HAL_Driver/stm32wlxx_hal.o: D:/OneDrive/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal.c Drivers/STM32WLxx_HAL_Driver/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Drivers/STM32WLxx_HAL_Driver/stm32wlxx_hal_adc.o: D:/ONEDRIVE/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_adc.c Drivers/STM32WLxx_HAL_Driver/subdir.mk
+Drivers/STM32WLxx_HAL_Driver/stm32wlxx_hal_adc.o: D:/OneDrive/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_adc.c Drivers/STM32WLxx_HAL_Driver/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Drivers/STM32WLxx_HAL_Driver/stm32wlxx_hal_adc_ex.o: D:/ONEDRIVE/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_adc_ex.c Drivers/STM32WLxx_HAL_Driver/subdir.mk
+Drivers/STM32WLxx_HAL_Driver/stm32wlxx_hal_adc_ex.o: D:/OneDrive/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_adc_ex.c Drivers/STM32WLxx_HAL_Driver/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Drivers/STM32WLxx_HAL_Driver/stm32wlxx_hal_cortex.o: D:/ONEDRIVE/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_cortex.c Drivers/STM32WLxx_HAL_Driver/subdir.mk
+Drivers/STM32WLxx_HAL_Driver/stm32wlxx_hal_cortex.o: D:/OneDrive/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_cortex.c Drivers/STM32WLxx_HAL_Driver/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Drivers/STM32WLxx_HAL_Driver/stm32wlxx_hal_dma.o: D:/ONEDRIVE/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_dma.c Drivers/STM32WLxx_HAL_Driver/subdir.mk
+Drivers/STM32WLxx_HAL_Driver/stm32wlxx_hal_dma.o: D:/OneDrive/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_dma.c Drivers/STM32WLxx_HAL_Driver/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Drivers/STM32WLxx_HAL_Driver/stm32wlxx_hal_dma_ex.o: D:/ONEDRIVE/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_dma_ex.c Drivers/STM32WLxx_HAL_Driver/subdir.mk
+Drivers/STM32WLxx_HAL_Driver/stm32wlxx_hal_dma_ex.o: D:/OneDrive/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_dma_ex.c Drivers/STM32WLxx_HAL_Driver/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Drivers/STM32WLxx_HAL_Driver/stm32wlxx_hal_exti.o: D:/ONEDRIVE/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_exti.c Drivers/STM32WLxx_HAL_Driver/subdir.mk
+Drivers/STM32WLxx_HAL_Driver/stm32wlxx_hal_exti.o: D:/OneDrive/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_exti.c Drivers/STM32WLxx_HAL_Driver/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Drivers/STM32WLxx_HAL_Driver/stm32wlxx_hal_flash.o: D:/ONEDRIVE/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_flash.c Drivers/STM32WLxx_HAL_Driver/subdir.mk
+Drivers/STM32WLxx_HAL_Driver/stm32wlxx_hal_flash.o: D:/OneDrive/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_flash.c Drivers/STM32WLxx_HAL_Driver/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Drivers/STM32WLxx_HAL_Driver/stm32wlxx_hal_flash_ex.o: D:/ONEDRIVE/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_flash_ex.c Drivers/STM32WLxx_HAL_Driver/subdir.mk
+Drivers/STM32WLxx_HAL_Driver/stm32wlxx_hal_flash_ex.o: D:/OneDrive/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_flash_ex.c Drivers/STM32WLxx_HAL_Driver/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Drivers/STM32WLxx_HAL_Driver/stm32wlxx_hal_gpio.o: D:/ONEDRIVE/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_gpio.c Drivers/STM32WLxx_HAL_Driver/subdir.mk
+Drivers/STM32WLxx_HAL_Driver/stm32wlxx_hal_gpio.o: D:/OneDrive/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_gpio.c Drivers/STM32WLxx_HAL_Driver/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Drivers/STM32WLxx_HAL_Driver/stm32wlxx_hal_i2c.o: D:/ONEDRIVE/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_i2c.c Drivers/STM32WLxx_HAL_Driver/subdir.mk
+Drivers/STM32WLxx_HAL_Driver/stm32wlxx_hal_i2c.o: D:/OneDrive/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_i2c.c Drivers/STM32WLxx_HAL_Driver/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Drivers/STM32WLxx_HAL_Driver/stm32wlxx_hal_i2c_ex.o: D:/ONEDRIVE/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_i2c_ex.c Drivers/STM32WLxx_HAL_Driver/subdir.mk
+Drivers/STM32WLxx_HAL_Driver/stm32wlxx_hal_i2c_ex.o: D:/OneDrive/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_i2c_ex.c Drivers/STM32WLxx_HAL_Driver/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Drivers/STM32WLxx_HAL_Driver/stm32wlxx_hal_pwr.o: D:/ONEDRIVE/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_pwr.c Drivers/STM32WLxx_HAL_Driver/subdir.mk
+Drivers/STM32WLxx_HAL_Driver/stm32wlxx_hal_pwr.o: D:/OneDrive/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_pwr.c Drivers/STM32WLxx_HAL_Driver/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Drivers/STM32WLxx_HAL_Driver/stm32wlxx_hal_pwr_ex.o: D:/ONEDRIVE/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_pwr_ex.c Drivers/STM32WLxx_HAL_Driver/subdir.mk
+Drivers/STM32WLxx_HAL_Driver/stm32wlxx_hal_pwr_ex.o: D:/OneDrive/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_pwr_ex.c Drivers/STM32WLxx_HAL_Driver/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Drivers/STM32WLxx_HAL_Driver/stm32wlxx_hal_rcc.o: D:/ONEDRIVE/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_rcc.c Drivers/STM32WLxx_HAL_Driver/subdir.mk
+Drivers/STM32WLxx_HAL_Driver/stm32wlxx_hal_rcc.o: D:/OneDrive/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_rcc.c Drivers/STM32WLxx_HAL_Driver/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Drivers/STM32WLxx_HAL_Driver/stm32wlxx_hal_rcc_ex.o: D:/ONEDRIVE/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_rcc_ex.c Drivers/STM32WLxx_HAL_Driver/subdir.mk
+Drivers/STM32WLxx_HAL_Driver/stm32wlxx_hal_rcc_ex.o: D:/OneDrive/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_rcc_ex.c Drivers/STM32WLxx_HAL_Driver/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Drivers/STM32WLxx_HAL_Driver/stm32wlxx_hal_rtc.o: D:/ONEDRIVE/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_rtc.c Drivers/STM32WLxx_HAL_Driver/subdir.mk
+Drivers/STM32WLxx_HAL_Driver/stm32wlxx_hal_rtc.o: D:/OneDrive/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_rtc.c Drivers/STM32WLxx_HAL_Driver/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Drivers/STM32WLxx_HAL_Driver/stm32wlxx_hal_rtc_ex.o: D:/ONEDRIVE/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_rtc_ex.c Drivers/STM32WLxx_HAL_Driver/subdir.mk
+Drivers/STM32WLxx_HAL_Driver/stm32wlxx_hal_rtc_ex.o: D:/OneDrive/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_rtc_ex.c Drivers/STM32WLxx_HAL_Driver/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Drivers/STM32WLxx_HAL_Driver/stm32wlxx_hal_subghz.o: D:/ONEDRIVE/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_subghz.c Drivers/STM32WLxx_HAL_Driver/subdir.mk
+Drivers/STM32WLxx_HAL_Driver/stm32wlxx_hal_subghz.o: D:/OneDrive/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_subghz.c Drivers/STM32WLxx_HAL_Driver/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Drivers/STM32WLxx_HAL_Driver/stm32wlxx_hal_tim.o: D:/ONEDRIVE/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_tim.c Drivers/STM32WLxx_HAL_Driver/subdir.mk
+Drivers/STM32WLxx_HAL_Driver/stm32wlxx_hal_tim.o: D:/OneDrive/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_tim.c Drivers/STM32WLxx_HAL_Driver/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Drivers/STM32WLxx_HAL_Driver/stm32wlxx_hal_tim_ex.o: D:/ONEDRIVE/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_tim_ex.c Drivers/STM32WLxx_HAL_Driver/subdir.mk
+Drivers/STM32WLxx_HAL_Driver/stm32wlxx_hal_tim_ex.o: D:/OneDrive/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_tim_ex.c Drivers/STM32WLxx_HAL_Driver/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Drivers/STM32WLxx_HAL_Driver/stm32wlxx_hal_uart.o: D:/ONEDRIVE/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_uart.c Drivers/STM32WLxx_HAL_Driver/subdir.mk
+Drivers/STM32WLxx_HAL_Driver/stm32wlxx_hal_uart.o: D:/OneDrive/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_uart.c Drivers/STM32WLxx_HAL_Driver/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Drivers/STM32WLxx_HAL_Driver/stm32wlxx_hal_uart_ex.o: D:/ONEDRIVE/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_uart_ex.c Drivers/STM32WLxx_HAL_Driver/subdir.mk
+Drivers/STM32WLxx_HAL_Driver/stm32wlxx_hal_uart_ex.o: D:/OneDrive/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_uart_ex.c Drivers/STM32WLxx_HAL_Driver/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Drivers/STM32WLxx_HAL_Driver/stm32wlxx_ll_adc.o: D:/ONEDRIVE/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_ll_adc.c Drivers/STM32WLxx_HAL_Driver/subdir.mk
+Drivers/STM32WLxx_HAL_Driver/stm32wlxx_ll_adc.o: D:/OneDrive/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_ll_adc.c Drivers/STM32WLxx_HAL_Driver/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
 
 clean: clean-Drivers-2f-STM32WLxx_HAL_Driver
diff --git a/STM32CubeIDE/Release/Middlewares/LoRaWAN/subdir.mk b/STM32CubeIDE/Release/Middlewares/LoRaWAN/subdir.mk
index 5286078..bda4cfd 100644
--- a/STM32CubeIDE/Release/Middlewares/LoRaWAN/subdir.mk
+++ b/STM32CubeIDE/Release/Middlewares/LoRaWAN/subdir.mk
@@ -5,39 +5,39 @@
 
 # Add inputs and outputs from these tool invocations to the build variables 
 C_SRCS += \
-D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/LmHandler/LmHandler.c \
-D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/LmHandler/Packages/LmhpCompliance.c \
-D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/LmHandler/Packages/LmhpPackagesRegistration.c \
-D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/LoRaMac.c \
-D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/LoRaMacAdr.c \
-D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/LoRaMacClassB.c \
-D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/LoRaMacCommands.c \
-D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/LoRaMacConfirmQueue.c \
-D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/LoRaMacCrypto.c \
-D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/LoRaMacParser.c \
-D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/LoRaMacSerializer.c \
-D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/LmHandler/NvmDataMgmt.c \
-D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/Region.c \
-D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/RegionAS923.c \
-D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/RegionAU915.c \
-D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/RegionBaseUS.c \
-D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/RegionCN470.c \
-D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/RegionCN470A20.c \
-D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/RegionCN470A26.c \
-D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/RegionCN470B20.c \
-D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/RegionCN470B26.c \
-D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/RegionCN779.c \
-D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/RegionCommon.c \
-D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/RegionEU433.c \
-D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/RegionEU868.c \
-D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/RegionIN865.c \
-D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/RegionKR920.c \
-D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/RegionRU864.c \
-D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/RegionUS915.c \
-D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Crypto/cmac.c \
-D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Crypto/lorawan_aes.c \
-D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Crypto/soft-se.c \
-D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Utilities/utilities.c 
+D:/OneDrive/STM32WLV13/Middlewares/Third_Party/LoRaWAN/LmHandler/LmHandler.c \
+D:/OneDrive/STM32WLV13/Middlewares/Third_Party/LoRaWAN/LmHandler/Packages/LmhpCompliance.c \
+D:/OneDrive/STM32WLV13/Middlewares/Third_Party/LoRaWAN/LmHandler/Packages/LmhpPackagesRegistration.c \
+D:/OneDrive/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/LoRaMac.c \
+D:/OneDrive/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/LoRaMacAdr.c \
+D:/OneDrive/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/LoRaMacClassB.c \
+D:/OneDrive/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/LoRaMacCommands.c \
+D:/OneDrive/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/LoRaMacConfirmQueue.c \
+D:/OneDrive/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/LoRaMacCrypto.c \
+D:/OneDrive/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/LoRaMacParser.c \
+D:/OneDrive/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/LoRaMacSerializer.c \
+D:/OneDrive/STM32WLV13/Middlewares/Third_Party/LoRaWAN/LmHandler/NvmDataMgmt.c \
+D:/OneDrive/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/Region.c \
+D:/OneDrive/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/RegionAS923.c \
+D:/OneDrive/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/RegionAU915.c \
+D:/OneDrive/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/RegionBaseUS.c \
+D:/OneDrive/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/RegionCN470.c \
+D:/OneDrive/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/RegionCN470A20.c \
+D:/OneDrive/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/RegionCN470A26.c \
+D:/OneDrive/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/RegionCN470B20.c \
+D:/OneDrive/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/RegionCN470B26.c \
+D:/OneDrive/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/RegionCN779.c \
+D:/OneDrive/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/RegionCommon.c \
+D:/OneDrive/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/RegionEU433.c \
+D:/OneDrive/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/RegionEU868.c \
+D:/OneDrive/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/RegionIN865.c \
+D:/OneDrive/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/RegionKR920.c \
+D:/OneDrive/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/RegionRU864.c \
+D:/OneDrive/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/RegionUS915.c \
+D:/OneDrive/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Crypto/cmac.c \
+D:/OneDrive/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Crypto/lorawan_aes.c \
+D:/OneDrive/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Crypto/soft-se.c \
+D:/OneDrive/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Utilities/utilities.c 
 
 OBJS += \
 ./Middlewares/LoRaWAN/LmHandler.o \
@@ -111,71 +111,71 @@ C_DEPS += \
 
 
 # Each subdirectory must supply rules for building sources it contributes
-Middlewares/LoRaWAN/LmHandler.o: D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/LmHandler/LmHandler.c Middlewares/LoRaWAN/subdir.mk
+Middlewares/LoRaWAN/LmHandler.o: D:/OneDrive/STM32WLV13/Middlewares/Third_Party/LoRaWAN/LmHandler/LmHandler.c Middlewares/LoRaWAN/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Middlewares/LoRaWAN/LmhpCompliance.o: D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/LmHandler/Packages/LmhpCompliance.c Middlewares/LoRaWAN/subdir.mk
+Middlewares/LoRaWAN/LmhpCompliance.o: D:/OneDrive/STM32WLV13/Middlewares/Third_Party/LoRaWAN/LmHandler/Packages/LmhpCompliance.c Middlewares/LoRaWAN/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Middlewares/LoRaWAN/LmhpPackagesRegistration.o: D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/LmHandler/Packages/LmhpPackagesRegistration.c Middlewares/LoRaWAN/subdir.mk
+Middlewares/LoRaWAN/LmhpPackagesRegistration.o: D:/OneDrive/STM32WLV13/Middlewares/Third_Party/LoRaWAN/LmHandler/Packages/LmhpPackagesRegistration.c Middlewares/LoRaWAN/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Middlewares/LoRaWAN/LoRaMac.o: D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/LoRaMac.c Middlewares/LoRaWAN/subdir.mk
+Middlewares/LoRaWAN/LoRaMac.o: D:/OneDrive/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/LoRaMac.c Middlewares/LoRaWAN/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Middlewares/LoRaWAN/LoRaMacAdr.o: D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/LoRaMacAdr.c Middlewares/LoRaWAN/subdir.mk
+Middlewares/LoRaWAN/LoRaMacAdr.o: D:/OneDrive/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/LoRaMacAdr.c Middlewares/LoRaWAN/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Middlewares/LoRaWAN/LoRaMacClassB.o: D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/LoRaMacClassB.c Middlewares/LoRaWAN/subdir.mk
+Middlewares/LoRaWAN/LoRaMacClassB.o: D:/OneDrive/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/LoRaMacClassB.c Middlewares/LoRaWAN/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Middlewares/LoRaWAN/LoRaMacCommands.o: D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/LoRaMacCommands.c Middlewares/LoRaWAN/subdir.mk
+Middlewares/LoRaWAN/LoRaMacCommands.o: D:/OneDrive/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/LoRaMacCommands.c Middlewares/LoRaWAN/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Middlewares/LoRaWAN/LoRaMacConfirmQueue.o: D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/LoRaMacConfirmQueue.c Middlewares/LoRaWAN/subdir.mk
+Middlewares/LoRaWAN/LoRaMacConfirmQueue.o: D:/OneDrive/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/LoRaMacConfirmQueue.c Middlewares/LoRaWAN/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Middlewares/LoRaWAN/LoRaMacCrypto.o: D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/LoRaMacCrypto.c Middlewares/LoRaWAN/subdir.mk
+Middlewares/LoRaWAN/LoRaMacCrypto.o: D:/OneDrive/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/LoRaMacCrypto.c Middlewares/LoRaWAN/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Middlewares/LoRaWAN/LoRaMacParser.o: D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/LoRaMacParser.c Middlewares/LoRaWAN/subdir.mk
+Middlewares/LoRaWAN/LoRaMacParser.o: D:/OneDrive/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/LoRaMacParser.c Middlewares/LoRaWAN/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Middlewares/LoRaWAN/LoRaMacSerializer.o: D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/LoRaMacSerializer.c Middlewares/LoRaWAN/subdir.mk
+Middlewares/LoRaWAN/LoRaMacSerializer.o: D:/OneDrive/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/LoRaMacSerializer.c Middlewares/LoRaWAN/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Middlewares/LoRaWAN/NvmDataMgmt.o: D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/LmHandler/NvmDataMgmt.c Middlewares/LoRaWAN/subdir.mk
+Middlewares/LoRaWAN/NvmDataMgmt.o: D:/OneDrive/STM32WLV13/Middlewares/Third_Party/LoRaWAN/LmHandler/NvmDataMgmt.c Middlewares/LoRaWAN/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Middlewares/LoRaWAN/Region.o: D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/Region.c Middlewares/LoRaWAN/subdir.mk
+Middlewares/LoRaWAN/Region.o: D:/OneDrive/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/Region.c Middlewares/LoRaWAN/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Middlewares/LoRaWAN/RegionAS923.o: D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/RegionAS923.c Middlewares/LoRaWAN/subdir.mk
+Middlewares/LoRaWAN/RegionAS923.o: D:/OneDrive/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/RegionAS923.c Middlewares/LoRaWAN/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Middlewares/LoRaWAN/RegionAU915.o: D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/RegionAU915.c Middlewares/LoRaWAN/subdir.mk
+Middlewares/LoRaWAN/RegionAU915.o: D:/OneDrive/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/RegionAU915.c Middlewares/LoRaWAN/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Middlewares/LoRaWAN/RegionBaseUS.o: D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/RegionBaseUS.c Middlewares/LoRaWAN/subdir.mk
+Middlewares/LoRaWAN/RegionBaseUS.o: D:/OneDrive/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/RegionBaseUS.c Middlewares/LoRaWAN/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Middlewares/LoRaWAN/RegionCN470.o: D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/RegionCN470.c Middlewares/LoRaWAN/subdir.mk
+Middlewares/LoRaWAN/RegionCN470.o: D:/OneDrive/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/RegionCN470.c Middlewares/LoRaWAN/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Middlewares/LoRaWAN/RegionCN470A20.o: D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/RegionCN470A20.c Middlewares/LoRaWAN/subdir.mk
+Middlewares/LoRaWAN/RegionCN470A20.o: D:/OneDrive/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/RegionCN470A20.c Middlewares/LoRaWAN/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Middlewares/LoRaWAN/RegionCN470A26.o: D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/RegionCN470A26.c Middlewares/LoRaWAN/subdir.mk
+Middlewares/LoRaWAN/RegionCN470A26.o: D:/OneDrive/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/RegionCN470A26.c Middlewares/LoRaWAN/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Middlewares/LoRaWAN/RegionCN470B20.o: D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/RegionCN470B20.c Middlewares/LoRaWAN/subdir.mk
+Middlewares/LoRaWAN/RegionCN470B20.o: D:/OneDrive/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/RegionCN470B20.c Middlewares/LoRaWAN/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Middlewares/LoRaWAN/RegionCN470B26.o: D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/RegionCN470B26.c Middlewares/LoRaWAN/subdir.mk
+Middlewares/LoRaWAN/RegionCN470B26.o: D:/OneDrive/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/RegionCN470B26.c Middlewares/LoRaWAN/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Middlewares/LoRaWAN/RegionCN779.o: D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/RegionCN779.c Middlewares/LoRaWAN/subdir.mk
+Middlewares/LoRaWAN/RegionCN779.o: D:/OneDrive/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/RegionCN779.c Middlewares/LoRaWAN/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Middlewares/LoRaWAN/RegionCommon.o: D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/RegionCommon.c Middlewares/LoRaWAN/subdir.mk
+Middlewares/LoRaWAN/RegionCommon.o: D:/OneDrive/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/RegionCommon.c Middlewares/LoRaWAN/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Middlewares/LoRaWAN/RegionEU433.o: D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/RegionEU433.c Middlewares/LoRaWAN/subdir.mk
+Middlewares/LoRaWAN/RegionEU433.o: D:/OneDrive/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/RegionEU433.c Middlewares/LoRaWAN/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Middlewares/LoRaWAN/RegionEU868.o: D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/RegionEU868.c Middlewares/LoRaWAN/subdir.mk
+Middlewares/LoRaWAN/RegionEU868.o: D:/OneDrive/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/RegionEU868.c Middlewares/LoRaWAN/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Middlewares/LoRaWAN/RegionIN865.o: D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/RegionIN865.c Middlewares/LoRaWAN/subdir.mk
+Middlewares/LoRaWAN/RegionIN865.o: D:/OneDrive/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/RegionIN865.c Middlewares/LoRaWAN/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Middlewares/LoRaWAN/RegionKR920.o: D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/RegionKR920.c Middlewares/LoRaWAN/subdir.mk
+Middlewares/LoRaWAN/RegionKR920.o: D:/OneDrive/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/RegionKR920.c Middlewares/LoRaWAN/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Middlewares/LoRaWAN/RegionRU864.o: D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/RegionRU864.c Middlewares/LoRaWAN/subdir.mk
+Middlewares/LoRaWAN/RegionRU864.o: D:/OneDrive/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/RegionRU864.c Middlewares/LoRaWAN/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Middlewares/LoRaWAN/RegionUS915.o: D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/RegionUS915.c Middlewares/LoRaWAN/subdir.mk
+Middlewares/LoRaWAN/RegionUS915.o: D:/OneDrive/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/RegionUS915.c Middlewares/LoRaWAN/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Middlewares/LoRaWAN/cmac.o: D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Crypto/cmac.c Middlewares/LoRaWAN/subdir.mk
+Middlewares/LoRaWAN/cmac.o: D:/OneDrive/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Crypto/cmac.c Middlewares/LoRaWAN/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Middlewares/LoRaWAN/lorawan_aes.o: D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Crypto/lorawan_aes.c Middlewares/LoRaWAN/subdir.mk
+Middlewares/LoRaWAN/lorawan_aes.o: D:/OneDrive/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Crypto/lorawan_aes.c Middlewares/LoRaWAN/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Middlewares/LoRaWAN/soft-se.o: D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Crypto/soft-se.c Middlewares/LoRaWAN/subdir.mk
+Middlewares/LoRaWAN/soft-se.o: D:/OneDrive/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Crypto/soft-se.c Middlewares/LoRaWAN/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Middlewares/LoRaWAN/utilities.o: D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Utilities/utilities.c Middlewares/LoRaWAN/subdir.mk
+Middlewares/LoRaWAN/utilities.o: D:/OneDrive/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Utilities/utilities.c Middlewares/LoRaWAN/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
 
 clean: clean-Middlewares-2f-LoRaWAN
diff --git a/STM32CubeIDE/Release/Middlewares/SubGHz_Phy/subdir.mk b/STM32CubeIDE/Release/Middlewares/SubGHz_Phy/subdir.mk
index cfc3fda..f909c5b 100644
--- a/STM32CubeIDE/Release/Middlewares/SubGHz_Phy/subdir.mk
+++ b/STM32CubeIDE/Release/Middlewares/SubGHz_Phy/subdir.mk
@@ -5,9 +5,9 @@
 
 # Add inputs and outputs from these tool invocations to the build variables 
 C_SRCS += \
-D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver/radio.c \
-D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver/radio_driver.c \
-D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver/radio_fw.c 
+D:/OneDrive/STM32WLV13/Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver/radio.c \
+D:/OneDrive/STM32WLV13/Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver/radio_driver.c \
+D:/OneDrive/STM32WLV13/Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver/radio_fw.c 
 
 OBJS += \
 ./Middlewares/SubGHz_Phy/radio.o \
@@ -21,11 +21,11 @@ C_DEPS += \
 
 
 # Each subdirectory must supply rules for building sources it contributes
-Middlewares/SubGHz_Phy/radio.o: D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver/radio.c Middlewares/SubGHz_Phy/subdir.mk
+Middlewares/SubGHz_Phy/radio.o: D:/OneDrive/STM32WLV13/Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver/radio.c Middlewares/SubGHz_Phy/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Middlewares/SubGHz_Phy/radio_driver.o: D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver/radio_driver.c Middlewares/SubGHz_Phy/subdir.mk
+Middlewares/SubGHz_Phy/radio_driver.o: D:/OneDrive/STM32WLV13/Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver/radio_driver.c Middlewares/SubGHz_Phy/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Middlewares/SubGHz_Phy/radio_fw.o: D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver/radio_fw.c Middlewares/SubGHz_Phy/subdir.mk
+Middlewares/SubGHz_Phy/radio_fw.o: D:/OneDrive/STM32WLV13/Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver/radio_fw.c Middlewares/SubGHz_Phy/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
 
 clean: clean-Middlewares-2f-SubGHz_Phy
diff --git a/STM32CubeIDE/Release/Utilities/subdir.mk b/STM32CubeIDE/Release/Utilities/subdir.mk
index a4317bb..d5b4557 100644
--- a/STM32CubeIDE/Release/Utilities/subdir.mk
+++ b/STM32CubeIDE/Release/Utilities/subdir.mk
@@ -5,14 +5,14 @@
 
 # Add inputs and outputs from these tool invocations to the build variables 
 C_SRCS += \
-D:/ONEDRIVE/STM32WLV13/Utilities/trace/adv_trace/stm32_adv_trace.c \
-D:/ONEDRIVE/STM32WLV13/Utilities/lpm/tiny_lpm/stm32_lpm.c \
-D:/ONEDRIVE/STM32WLV13/Utilities/misc/stm32_mem.c \
-D:/ONEDRIVE/STM32WLV13/Utilities/sequencer/stm32_seq.c \
-D:/ONEDRIVE/STM32WLV13/Utilities/misc/stm32_systime.c \
-D:/ONEDRIVE/STM32WLV13/Utilities/timer/stm32_timer.c \
-D:/ONEDRIVE/STM32WLV13/Utilities/misc/stm32_tiny_sscanf.c \
-D:/ONEDRIVE/STM32WLV13/Utilities/misc/stm32_tiny_vsnprintf.c 
+D:/OneDrive/STM32WLV13/Utilities/trace/adv_trace/stm32_adv_trace.c \
+D:/OneDrive/STM32WLV13/Utilities/lpm/tiny_lpm/stm32_lpm.c \
+D:/OneDrive/STM32WLV13/Utilities/misc/stm32_mem.c \
+D:/OneDrive/STM32WLV13/Utilities/sequencer/stm32_seq.c \
+D:/OneDrive/STM32WLV13/Utilities/misc/stm32_systime.c \
+D:/OneDrive/STM32WLV13/Utilities/timer/stm32_timer.c \
+D:/OneDrive/STM32WLV13/Utilities/misc/stm32_tiny_sscanf.c \
+D:/OneDrive/STM32WLV13/Utilities/misc/stm32_tiny_vsnprintf.c 
 
 OBJS += \
 ./Utilities/stm32_adv_trace.o \
@@ -36,21 +36,21 @@ C_DEPS += \
 
 
 # Each subdirectory must supply rules for building sources it contributes
-Utilities/stm32_adv_trace.o: D:/ONEDRIVE/STM32WLV13/Utilities/trace/adv_trace/stm32_adv_trace.c Utilities/subdir.mk
+Utilities/stm32_adv_trace.o: D:/OneDrive/STM32WLV13/Utilities/trace/adv_trace/stm32_adv_trace.c Utilities/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Utilities/stm32_lpm.o: D:/ONEDRIVE/STM32WLV13/Utilities/lpm/tiny_lpm/stm32_lpm.c Utilities/subdir.mk
+Utilities/stm32_lpm.o: D:/OneDrive/STM32WLV13/Utilities/lpm/tiny_lpm/stm32_lpm.c Utilities/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Utilities/stm32_mem.o: D:/ONEDRIVE/STM32WLV13/Utilities/misc/stm32_mem.c Utilities/subdir.mk
+Utilities/stm32_mem.o: D:/OneDrive/STM32WLV13/Utilities/misc/stm32_mem.c Utilities/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Utilities/stm32_seq.o: D:/ONEDRIVE/STM32WLV13/Utilities/sequencer/stm32_seq.c Utilities/subdir.mk
+Utilities/stm32_seq.o: D:/OneDrive/STM32WLV13/Utilities/sequencer/stm32_seq.c Utilities/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Utilities/stm32_systime.o: D:/ONEDRIVE/STM32WLV13/Utilities/misc/stm32_systime.c Utilities/subdir.mk
+Utilities/stm32_systime.o: D:/OneDrive/STM32WLV13/Utilities/misc/stm32_systime.c Utilities/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Utilities/stm32_timer.o: D:/ONEDRIVE/STM32WLV13/Utilities/timer/stm32_timer.c Utilities/subdir.mk
+Utilities/stm32_timer.o: D:/OneDrive/STM32WLV13/Utilities/timer/stm32_timer.c Utilities/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Utilities/stm32_tiny_sscanf.o: D:/ONEDRIVE/STM32WLV13/Utilities/misc/stm32_tiny_sscanf.c Utilities/subdir.mk
+Utilities/stm32_tiny_sscanf.o: D:/OneDrive/STM32WLV13/Utilities/misc/stm32_tiny_sscanf.c Utilities/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Utilities/stm32_tiny_vsnprintf.o: D:/ONEDRIVE/STM32WLV13/Utilities/misc/stm32_tiny_vsnprintf.c Utilities/subdir.mk
+Utilities/stm32_tiny_vsnprintf.o: D:/OneDrive/STM32WLV13/Utilities/misc/stm32_tiny_vsnprintf.c Utilities/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
 
 clean: clean-Utilities
diff --git a/STM32CubeIDE/Release/makefile b/STM32CubeIDE/Release/makefile
index 148c484..797baa7 100644
--- a/STM32CubeIDE/Release/makefile
+++ b/STM32CubeIDE/Release/makefile
@@ -17,6 +17,7 @@ RM := rm -rf
 -include Drivers/BSP/STM32WLxx_Nucleo/subdir.mk
 -include Application/User/Startup/subdir.mk
 -include Application/User/STS/TOF/vl53l1x_uld/subdir.mk
+-include Application/User/STS/TOF/vl53l0x/subdir.mk
 -include Application/User/STS/TOF/Target/subdir.mk
 -include Application/User/STS/TOF/App/subdir.mk
 -include Application/User/STS/Core/Src/subdir.mk
@@ -71,8 +72,8 @@ all: main-build
 main-build: WLE5CC_NODE_STS.elf secondary-outputs
 
 # Tool invocations
-WLE5CC_NODE_STS.elf WLE5CC_NODE_STS.map: $(OBJS) $(USER_OBJS) D:\ONEDRIVE\STM32WLV13\Projects\NUCLEO-WL55JC\Applications\LoRaWAN\WLE5CC_NODE_STS\STM32CubeIDE\STM32WLE5CCUX_FLASH.ld makefile objects.list $(OPTIONAL_TOOL_DEPS)
-	arm-none-eabi-gcc -o "WLE5CC_NODE_STS.elf" @"objects.list" $(USER_OBJS) $(LIBS) -mcpu=cortex-m4 -T"D:\ONEDRIVE\STM32WLV13\Projects\NUCLEO-WL55JC\Applications\LoRaWAN\WLE5CC_NODE_STS\STM32CubeIDE\STM32WLE5CCUX_FLASH.ld" --specs=nosys.specs -Wl,-Map="WLE5CC_NODE_STS.map" -Wl,--gc-sections -static -L../../../../../../../Middlewares/ST/STM32_Cryptographic/lib -z noexecstack -Wunused-but-set-variable -Wunused-variable -fshort-enums --specs=nano.specs -mfloat-abi=soft -mthumb -Wl,--start-group -lc -lm -Wl,--end-group
+WLE5CC_NODE_STS.elf WLE5CC_NODE_STS.map: $(OBJS) $(USER_OBJS) D:\OneDrive\STM32WLV13\Projects\NUCLEO-WL55JC\Applications\LoRaWAN\WLE5CC_NODE_STS\STM32CubeIDE\STM32WLE5CCUX_FLASH.ld makefile objects.list $(OPTIONAL_TOOL_DEPS)
+	arm-none-eabi-gcc -o "WLE5CC_NODE_STS.elf" @"objects.list" $(USER_OBJS) $(LIBS) -mcpu=cortex-m4 -T"D:\OneDrive\STM32WLV13\Projects\NUCLEO-WL55JC\Applications\LoRaWAN\WLE5CC_NODE_STS\STM32CubeIDE\STM32WLE5CCUX_FLASH.ld" --specs=nosys.specs -Wl,-Map="WLE5CC_NODE_STS.map" -Wl,--gc-sections -static -L../../../../../../../Middlewares/ST/STM32_Cryptographic/lib -z noexecstack -Wunused-but-set-variable -Wunused-variable -fshort-enums --specs=nano.specs -mfloat-abi=soft -mthumb -Wl,--start-group -lc -lm -Wl,--end-group
 	@echo 'Finished building target: $@'
 	@echo ' '
 
diff --git a/STM32CubeIDE/Release/sources.mk b/STM32CubeIDE/Release/sources.mk
index 126325a..d567a58 100644
--- a/STM32CubeIDE/Release/sources.mk
+++ b/STM32CubeIDE/Release/sources.mk
@@ -28,6 +28,7 @@ Application/User/LoRaWAN/Target \
 Application/User/STS/Core/Src \
 Application/User/STS/TOF/App \
 Application/User/STS/TOF/Target \
+Application/User/STS/TOF/vl53l0x \
 Application/User/STS/TOF/vl53l1x_uld \
 Application/User/Startup \
 Drivers/BSP/STM32WLxx_Nucleo \
diff --git a/STS/TOF/App/X-WL55_WLE5_53L0X.c b/STS/TOF/App/X-WL55_WLE5_53L0X.c
index 5baf5ca..d76bb33 100644
--- a/STS/TOF/App/X-WL55_WLE5_53L0X.c
+++ b/STS/TOF/App/X-WL55_WLE5_53L0X.c
@@ -1,251 +1,251 @@
-/* USER CODE BEGIN Header */
-/**
-  ******************************************************************************
-  * @file    X-WL55_WLE5_53L0X.c
-  * @author  Yunhorn (r) Technology Limited Application Team
-  * @brief   implement X-WL55_WLE5_53L0X BSP
-  ******************************************************************************
-  * @attention
-  *
-  * Copyright (c) 2023 Yunhorn Technology Limited.
-  * Copyright (c) 2023 Shenzhen Yunhorn Technology Co., Ltd.
-  * 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.
-  *
-  ******************************************************************************
-  */
-/* USER CODE END Header */
-
-
-#include <string.h>
-#include  "X-WL55_WLE5_53L0X.h"
-
-#include "stm32wlxx_hal.h"
-#include "main.h"
-
-#ifndef HAL_I2C_MODULE_ENABLED
-#define HAL_I2C_MODULE_ENABLED
-#pragma message("hal conf should enable i2c")
-#endif
-
-/* when not customized by application define dummy one */
-#ifndef XNUCLEO53L1A1_GetI2cBus
-/**
- * macro that can be overloaded by user to enforce i2c sharing in RTOS context
- */
-#define XNUCLEO53L1A1_GetI2cBus(...) (void)0
-#endif
-
-#ifndef XNUCLEO53L1A1_PutI2cBus
-/** macro can be overloaded by user to enforce i2c sharing in RTOS context
- */
-#   define XNUCLEO53L1A1_PutI2cBus(...) (void)0
-#endif
-
-
-
-
-/****************************************************
- *@defgroup  XNUCLEO53L1A1_globals
- *@{
- */
-
-/**
- *  i2c handle to be  use of all i2c access
- * end user shall provide it to
- * can be @a XNUCLEO53L1A1_I2C1Configure() @sa XNUCLEO53L1A1_usage
- * @warning do not use any XNUCLEO53L1A1_xxx prior to a first init with valid i2c handle
- */
-extern I2C_HandleTypeDef  hi2c2;
-
-
-/**
- * Expansion board i2c bus recovery
- *
- * We may get reset in middle of an i2c access (h/w reset button, debug or f/w load)
- * hence some agent on bus may be in middle of a transaction and can create issue or even prevent starting (SDA is low)
- * this routine does use gpio to manipulate and recover i2c bus line in all cases.
- */
-static void _I2cFailRecover(){
-    GPIO_InitTypeDef GPIO_InitStruct;
-    int i, nRetry=0;
-
-
-    // We can't assume bus state based on SDA and SCL state (we may be in a data or NAK bit so SCL=SDA=1)
-    // by setting SDA high and toggling SCL at least 10 time we ensure whatever agent and state
-    // all agent should end up seeing a "stop" and bus get back to an known idle i2c  bus state
-    PME_ON;
-    // Enable I/O
-    __GPIOA_CLK_ENABLE();
-    HAL_GPIO_WritePin(I2C2_SCL_PORT, I2C2_SCL_PIN, GPIO_PIN_SET);
-    HAL_GPIO_WritePin(I2C2_SDA_PORT, I2C2_SDA_PIN, GPIO_PIN_SET);
-    GPIO_InitStruct.Pin = I2C2_SCL_PIN|I2C2_SDA_PIN ;
-    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_OD;
-    GPIO_InitStruct.Pull = GPIO_PULLUP;
-    HAL_GPIO_Init(I2C2_SDA_PORT, &GPIO_InitStruct);
-    //TODO we could do this faster by not using HAL delay 1ms for clk timing
-    do{
-        for( i=0; i<10; i++){
-            HAL_GPIO_WritePin(I2C2_SCL_PORT, I2C2_SCL_PIN, GPIO_PIN_RESET);
-            HAL_Delay(1);
-            HAL_GPIO_WritePin(I2C2_SCL_PORT, I2C2_SCL_PIN, GPIO_PIN_SET);
-            HAL_Delay(1);
-        }
-//        if( HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_9) == 0 ){
-//            static int RetryRecover;
-//            RetryRecover++;
-//        }
-    }while(HAL_GPIO_ReadPin(I2C2_SDA_PORT, I2C2_SDA_PIN) == 0 && nRetry++<7);
-
-    if( HAL_GPIO_ReadPin(I2C2_SDA_PORT, I2C2_SDA_PIN) == 0 ){
-        __GPIOA_CLK_ENABLE();
-        //We are still in bad i2c state warm user by blinking led but stay here
-        GPIO_InitStruct.Pin = LED1_Pin ;
-        GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
-        GPIO_InitStruct.Pull = GPIO_NOPULL;
-        HAL_GPIO_Init(LED1_GPIO_Port, &GPIO_InitStruct);
-        do{
-            HAL_GPIO_WritePin(LED1_GPIO_Port, LED1_Pin, GPIO_PIN_SET);
-            HAL_Delay(33);
-            HAL_GPIO_WritePin(LED1_GPIO_Port, LED1_Pin, GPIO_PIN_RESET);
-            HAL_Delay(33);
-            HAL_GPIO_WritePin(LED1_GPIO_Port, LED1_Pin, GPIO_PIN_SET);
-            HAL_Delay(33);
-            HAL_GPIO_WritePin(LED1_GPIO_Port, LED1_Pin, GPIO_PIN_RESET);
-            HAL_Delay(33*20);
-        }while(0);
-    }
-}
-
-
-
-int XWL55_WLE5_53L0X_I2C2Configure() {
-    int status;
-    GPIO_InitTypeDef GPIO_InitStruct;
-
-    _I2cFailRecover();
-
-    /* Peripheral clock enable */
-    __GPIOA_CLK_ENABLE();
-    __I2C2_CLK_ENABLE();
-
-    /**I2C1 GPIO Configuration\n
-     PB8     ------> I2C1_SCL\n
-     PB9     ------> I2C1_SDA
-     *I2C2 GPIO configuration
-     PA12	-------> I2C2_SCL
-     PA11	-------> I2C2_SDA
-     */
-    GPIO_InitStruct.Pin = I2C2_SCL_PIN | I2C2_SDA_PIN;
-    GPIO_InitStruct.Mode = GPIO_MODE_AF_OD;
-    GPIO_InitStruct.Pull = GPIO_NOPULL;
-    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
-    GPIO_InitStruct.Alternate = GPIO_AF4_I2C2;
-    HAL_GPIO_Init(I2C2_SDA_PORT, &GPIO_InitStruct);
-
-    hi2c2.Instance = I2C2;
-    //XNUCLEO53L1A1_hi2c.Init.Timing = 0x00300F38; /* set 400KHz fast mode i2c*/
-    //XNUCLEO53L1A1_hi2c.Init.Timing = I2C2_FAST_400K;  //UPDATE 2024-07-09
-    hi2c2.Init.Timing = I2C2_STANDARD_100K; // UPDATE 2024-07-12
-    //XNUCLEO53L1A1_hi2c.Init.Timing = 0x2010091A; //0x2010091A = 400K Fast Mode, 0x20303E5D, 100K Standard mode, 0x20000209 Fast Mode Plus, 1Mbps
-
-    hi2c2.Init.OwnAddress1 = 0;
-    hi2c2.Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT;
-    hi2c2.Init.DualAddressMode = I2C_DUALADDRESS_DISABLED;
-    hi2c2.Init.OwnAddress2 = 0;
-    hi2c2.Init.GeneralCallMode = I2C_GENERALCALL_DISABLED;
-    hi2c2.Init.NoStretchMode = I2C_NOSTRETCH_DISABLED;
-    status = HAL_I2C_Init(&hi2c2);
-    return status;
-}
-
-int XWL55_WLE5_53L0X_SetIntrStateId(int EnableIntr, int DevNo)
-{
-    int status;
-    IRQn_Type IntrNo;
-    int IntrPin;
-    switch (DevNo){
-    case	1:
-    	IntrNo = VL53L0X_GPIO1_L_INTx;
-    	IntrPin= VL53L0X_GPIO1_L_GPIO_PIN;
-    	break;
-    case 	0:
-    	IntrNo = VL53L0X_GPIO1_C_INTx;
-    	IntrPin= VL53L0X_GPIO1_C_GPIO_PIN;
-    	break;
-    case 	2:
-    	IntrNo = VL53L0X_GPIO1_R_INTx;
-    	IntrPin= VL53L0X_GPIO1_R_GPIO_PIN;
-    	break;
-
-    default:
-    	break;
-
-    }
-    /*
-    IntrNo = VL53L0X_GPIO1_C_INTx;
-    IntrPin= VL53L0X_GPIO1_C_GPIO_PIN;
-    */
-    status = 0;
-
-    if( EnableIntr ){
-        __HAL_GPIO_EXTI_CLEAR_IT(IntrPin);
-        NVIC_ClearPendingIRQ(IntrNo);
-        HAL_NVIC_EnableIRQ(IntrNo);
-        /**
-         * @note  When enabling interrupt end user shall check actual state of the line and soft trigger event if active
-         * Alternatively user can use API and device feature to clear device Interrupt status to possibly generates a new edge.
-         * on shared pin configuration this must be repeated for all device.
-         * The same shall be done after clearing a condition in device and interrupt remain active.
-         */
-    }
-    else{
-        HAL_NVIC_DisableIRQ(IntrNo);
-        __HAL_GPIO_EXTI_CLEAR_IT(IntrPin);
-        NVIC_ClearPendingIRQ(IntrNo);
-    }
-
-
-    return status;
-}
-
-int	XWL55_WLE5_53L0X_Init(void)
-{
-    int status;
-    status = XWL55_WLE5_53L0X_I2C2Configure();
-    return status;
-}
-
-
-void XWL55_WLE5_53L0X_ResetId(uint8_t DevNo, int state)
-{
-
-	switch(DevNo) {
-		case XNUCLEO53L0X_LEFT:
-#if	defined(TOF_2)
-			HAL_GPIO_WritePin(TOF_L_XSHUT_GPIO_Port, TOF_L_XSHUT_Pin, ((state == 1)?GPIO_PIN_SET:GPIO_PIN_RESET));
-#endif
-		break;
-#if	defined(TOF_1)
-		case XNUCLEO53L0X_CENTER:
-			HAL_GPIO_WritePin(TOF_C_XSHUT_GPIO_Port, TOF_C_XSHUT_Pin, ((state == 1)?GPIO_PIN_SET:GPIO_PIN_RESET));
-		break;
-#endif
-		case XNUCLEO53L0X_RIGHT:
-#if	defined(TOF_3)
-			HAL_GPIO_WritePin(TOF_R_XSHUT_GPIO_Port, TOF_R_XSHUT_Pin, ((state == 1)?GPIO_PIN_SET:GPIO_PIN_RESET));
-#endif
-		break;
-
-		default:
-		break;
-	}
-}
-
-/**
- *
- * @}  X-WL55_WLE5_53L0X_top
- */
+/* USER CODE BEGIN Header */
+/**
+  ******************************************************************************
+  * @file    X-WL55_WLE5_53L0X.c
+  * @author  Yunhorn (r) Technology Limited Application Team
+  * @brief   implement X-WL55_WLE5_53L0X BSP
+  ******************************************************************************
+  * @attention
+  *
+  * Copyright (c) 2023 Yunhorn Technology Limited.
+  * Copyright (c) 2023 Shenzhen Yunhorn Technology Co., Ltd.
+  * 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.
+  *
+  ******************************************************************************
+  */
+/* USER CODE END Header */
+
+
+#include <string.h>
+#include  "X-WL55_WLE5_53L0X.h"
+
+#include "stm32wlxx_hal.h"
+#include "main.h"
+
+#ifndef HAL_I2C_MODULE_ENABLED
+#define HAL_I2C_MODULE_ENABLED
+#pragma message("hal conf should enable i2c")
+#endif
+
+/* when not customized by application define dummy one */
+#ifndef XNUCLEO53L1A1_GetI2cBus
+/**
+ * macro that can be overloaded by user to enforce i2c sharing in RTOS context
+ */
+#define XNUCLEO53L1A1_GetI2cBus(...) (void)0
+#endif
+
+#ifndef XNUCLEO53L1A1_PutI2cBus
+/** macro can be overloaded by user to enforce i2c sharing in RTOS context
+ */
+#   define XNUCLEO53L1A1_PutI2cBus(...) (void)0
+#endif
+
+
+
+
+/****************************************************
+ *@defgroup  XNUCLEO53L1A1_globals
+ *@{
+ */
+
+/**
+ *  i2c handle to be  use of all i2c access
+ * end user shall provide it to
+ * can be @a XNUCLEO53L1A1_I2C1Configure() @sa XNUCLEO53L1A1_usage
+ * @warning do not use any XNUCLEO53L1A1_xxx prior to a first init with valid i2c handle
+ */
+extern I2C_HandleTypeDef  hi2c2;
+
+
+/**
+ * Expansion board i2c bus recovery
+ *
+ * We may get reset in middle of an i2c access (h/w reset button, debug or f/w load)
+ * hence some agent on bus may be in middle of a transaction and can create issue or even prevent starting (SDA is low)
+ * this routine does use gpio to manipulate and recover i2c bus line in all cases.
+ */
+static void _I2cFailRecover(){
+    GPIO_InitTypeDef GPIO_InitStruct;
+    int i, nRetry=0;
+
+
+    // We can't assume bus state based on SDA and SCL state (we may be in a data or NAK bit so SCL=SDA=1)
+    // by setting SDA high and toggling SCL at least 10 time we ensure whatever agent and state
+    // all agent should end up seeing a "stop" and bus get back to an known idle i2c  bus state
+    PME_ON;
+    // Enable I/O
+    __GPIOA_CLK_ENABLE();
+    HAL_GPIO_WritePin(I2C2_SCL_PORT, I2C2_SCL_PIN, GPIO_PIN_SET);
+    HAL_GPIO_WritePin(I2C2_SDA_PORT, I2C2_SDA_PIN, GPIO_PIN_SET);
+    GPIO_InitStruct.Pin = I2C2_SCL_PIN|I2C2_SDA_PIN ;
+    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_OD;
+    GPIO_InitStruct.Pull = GPIO_PULLUP;
+    HAL_GPIO_Init(I2C2_SDA_PORT, &GPIO_InitStruct);
+    //TODO we could do this faster by not using HAL delay 1ms for clk timing
+    do{
+        for( i=0; i<10; i++){
+            HAL_GPIO_WritePin(I2C2_SCL_PORT, I2C2_SCL_PIN, GPIO_PIN_RESET);
+            HAL_Delay(1);
+            HAL_GPIO_WritePin(I2C2_SCL_PORT, I2C2_SCL_PIN, GPIO_PIN_SET);
+            HAL_Delay(1);
+        }
+//        if( HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_9) == 0 ){
+//            static int RetryRecover;
+//            RetryRecover++;
+//        }
+    }while(HAL_GPIO_ReadPin(I2C2_SDA_PORT, I2C2_SDA_PIN) == 0 && nRetry++<7);
+
+    if( HAL_GPIO_ReadPin(I2C2_SDA_PORT, I2C2_SDA_PIN) == 0 ){
+        __GPIOA_CLK_ENABLE();
+        //We are still in bad i2c state warm user by blinking led but stay here
+        GPIO_InitStruct.Pin = LED1_Pin ;
+        GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+        GPIO_InitStruct.Pull = GPIO_NOPULL;
+        HAL_GPIO_Init(LED1_GPIO_Port, &GPIO_InitStruct);
+        do{
+            HAL_GPIO_WritePin(LED1_GPIO_Port, LED1_Pin, GPIO_PIN_SET);
+            HAL_Delay(33);
+            HAL_GPIO_WritePin(LED1_GPIO_Port, LED1_Pin, GPIO_PIN_RESET);
+            HAL_Delay(33);
+            HAL_GPIO_WritePin(LED1_GPIO_Port, LED1_Pin, GPIO_PIN_SET);
+            HAL_Delay(33);
+            HAL_GPIO_WritePin(LED1_GPIO_Port, LED1_Pin, GPIO_PIN_RESET);
+            HAL_Delay(33*20);
+        }while(0);
+    }
+}
+
+
+
+int XWL55_WLE5_53L0X_I2C2Configure() {
+    int status;
+    GPIO_InitTypeDef GPIO_InitStruct;
+
+    _I2cFailRecover();
+
+    /* Peripheral clock enable */
+    __GPIOA_CLK_ENABLE();
+    __I2C2_CLK_ENABLE();
+
+    /**I2C1 GPIO Configuration\n
+     PB8     ------> I2C1_SCL\n
+     PB9     ------> I2C1_SDA
+     *I2C2 GPIO configuration
+     PA12	-------> I2C2_SCL
+     PA11	-------> I2C2_SDA
+     */
+    GPIO_InitStruct.Pin = I2C2_SCL_PIN | I2C2_SDA_PIN;
+    GPIO_InitStruct.Mode = GPIO_MODE_AF_OD;
+    GPIO_InitStruct.Pull = GPIO_NOPULL;
+    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
+    GPIO_InitStruct.Alternate = GPIO_AF4_I2C2;
+    HAL_GPIO_Init(I2C2_SDA_PORT, &GPIO_InitStruct);
+
+    hi2c2.Instance = I2C2;
+    //XNUCLEO53L1A1_hi2c.Init.Timing = 0x00300F38; /* set 400KHz fast mode i2c*/
+    //XNUCLEO53L1A1_hi2c.Init.Timing = I2C2_FAST_400K;  //UPDATE 2024-07-09
+    hi2c2.Init.Timing = I2C2_STANDARD_100K; // UPDATE 2024-07-12
+    //XNUCLEO53L1A1_hi2c.Init.Timing = 0x2010091A; //0x2010091A = 400K Fast Mode, 0x20303E5D, 100K Standard mode, 0x20000209 Fast Mode Plus, 1Mbps
+
+    hi2c2.Init.OwnAddress1 = 0;
+    hi2c2.Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT;
+    hi2c2.Init.DualAddressMode = I2C_DUALADDRESS_DISABLED;
+    hi2c2.Init.OwnAddress2 = 0;
+    hi2c2.Init.GeneralCallMode = I2C_GENERALCALL_DISABLED;
+    hi2c2.Init.NoStretchMode = I2C_NOSTRETCH_DISABLED;
+    status = HAL_I2C_Init(&hi2c2);
+    return status;
+}
+
+int XWL55_WLE5_53L0X_SetIntrStateId(int EnableIntr, int DevNo)
+{
+    int status;
+    IRQn_Type IntrNo;
+    int IntrPin;
+    switch (DevNo){
+    case	1:
+    	IntrNo = VL53L0X_GPIO1_L_INTx;
+    	IntrPin= VL53L0X_GPIO1_L_GPIO_PIN;
+    	break;
+    case 	0:
+    	IntrNo = VL53L0X_GPIO1_C_INTx;
+    	IntrPin= VL53L0X_GPIO1_C_GPIO_PIN;
+    	break;
+    case 	2:
+    	IntrNo = VL53L0X_GPIO1_R_INTx;
+    	IntrPin= VL53L0X_GPIO1_R_GPIO_PIN;
+    	break;
+
+    default:
+    	break;
+
+    }
+    /*
+    IntrNo = VL53L0X_GPIO1_C_INTx;
+    IntrPin= VL53L0X_GPIO1_C_GPIO_PIN;
+    */
+    status = 0;
+
+    if( EnableIntr ){
+        __HAL_GPIO_EXTI_CLEAR_IT(IntrPin);
+        NVIC_ClearPendingIRQ(IntrNo);
+        HAL_NVIC_EnableIRQ(IntrNo);
+        /**
+         * @note  When enabling interrupt end user shall check actual state of the line and soft trigger event if active
+         * Alternatively user can use API and device feature to clear device Interrupt status to possibly generates a new edge.
+         * on shared pin configuration this must be repeated for all device.
+         * The same shall be done after clearing a condition in device and interrupt remain active.
+         */
+    }
+    else{
+        HAL_NVIC_DisableIRQ(IntrNo);
+        __HAL_GPIO_EXTI_CLEAR_IT(IntrPin);
+        NVIC_ClearPendingIRQ(IntrNo);
+    }
+
+
+    return status;
+}
+
+int	XWL55_WLE5_53L0X_Init(void)
+{
+    int status;
+    status = XWL55_WLE5_53L0X_I2C2Configure();
+    return status;
+}
+
+
+void XWL55_WLE5_53L0X_ResetId(uint8_t DevNo, int state)
+{
+
+	switch(DevNo) {
+		case XNUCLEO53L0X_LEFT:
+#if	defined(TOF_2)
+			HAL_GPIO_WritePin(TOF_L_XSHUT_GPIO_Port, TOF_L_XSHUT_Pin, ((state == 1)?GPIO_PIN_SET:GPIO_PIN_RESET));
+#endif
+		break;
+#if	defined(TOF_1)
+		case XNUCLEO53L0X_CENTER:
+			HAL_GPIO_WritePin(TOF_C_XSHUT_GPIO_Port, TOF_C_XSHUT_Pin, ((state == 1)?GPIO_PIN_SET:GPIO_PIN_RESET));
+		break;
+#endif
+		case XNUCLEO53L0X_RIGHT:
+#if	defined(TOF_3)
+			HAL_GPIO_WritePin(TOF_R_XSHUT_GPIO_Port, TOF_R_XSHUT_Pin, ((state == 1)?GPIO_PIN_SET:GPIO_PIN_RESET));
+#endif
+		break;
+
+		default:
+		break;
+	}
+}
+
+/**
+ *
+ * @}  X-WL55_WLE5_53L0X_top
+ */
diff --git a/STS/TOF/App/X-WL55_WLE5_53L0X.h b/STS/TOF/App/X-WL55_WLE5_53L0X.h
index d99b124..cf1ddd9 100644
--- a/STS/TOF/App/X-WL55_WLE5_53L0X.h
+++ b/STS/TOF/App/X-WL55_WLE5_53L0X.h
@@ -1,301 +1,301 @@
-/**
- * @file X-WL55_WLE5_53L0X.h
- *
- */
-
-#ifndef _X_WL55_WLE5_53L0X_H_
-#define _X_WL55_WLE5_53L0X_H_
-
-#include "stm32wlxx_hal.h"
-
-/**
- * @defgroup VL53L0X_config  VL53L0X static configuration
- * @brief Configure BSP support for USART2 (nucleo virtual com)
- * UART support implies that BSP exclusively manages:
- *  @li HAL_UART_MspInit and HAL_UART_MspDeInit
- *  @li DMA channel and interrupt
- */
-
-
-/** @ingroup VL53L0X_config
- * @{*/
-
-#define MAX_TOF_COUNT		3
-
-#ifndef VL53L0X_HAVE_UART
-/**
- * Define this macro at project level if UART is available
- */
-#define VL53L0X_HAVE_UART 1
-#endif
-
-
-#if VL53L0X_HAVE_UART
-
-/**
- * User override of baud rate programmed for uart2 (default to 115200)
- */
-#ifndef USART2_BAUD_RATE
-#   define USART2_BAUD_RATE    115200
-#endif
-
-
-#ifndef VL53L0X_UART_DMA_RX
-/** configure use of dma for uart rx
- *
- * Default to not use DMA RX when not defined explicitly
- *
- * require @a VL53L0X_HAVE_UART
- */
-#define VL53L0X_UART_DMA_RX   0
-#endif //VL53L0X_UART_DMA_RX
-
-#ifndef VL53L0X_UART_DMA_TX
-/** configure use of dma for uart tx
- *
- * Default to use DMA TX when not defined explicitly by user
- *
- * require @a VL53L0X_HAVE_UART
- */
-#define VL53L0X_UART_DMA_TX   1
-#endif //VL53L0X_UART_DMA_RX
-
-
-#ifndef  VL53L0X_UART_DMA_RX_IRQ_PRI
-/** configure usart  max irq priority
- *
- * Default to 0 when not defined explicitly by user
- * @warning may not be support by all mcu (only F401 tested)
- */
-#   define  VL53L0X_UART_DMA_RX_IRQ_PRI   0
-#endif
-
-#ifndef  VL53L0X_UART_DMA_TX_IRQ_PRI
-/** configure usart dma tx irq priority
- *
- * Default to 0 when not defined explicitly
- * @warning only F401
- */
-
-#define  VL53L0X_UART_DMA_TX_IRQ_PRI   0
-#endif
-
-#ifndef VL53L0X_UART_IRQ_PRI
-/**
- * User override default uart irq priority 0 to fit application needs
- * @warning only supported for f401
- */
-#define VL53L0X_UART_IRQ_PRI    0
-#endif
-
-/* provided by MSP part */
-extern void XNUCLEO53L1A1_USART2_UART_Init(void);
-
-#else
-#	define XNUCLEO53L1A1_USART2_UART_Init(...) (void)0
-#endif
-
-/** @}  */
-
-/**
- * Configure interrupt pins pins pull up/down
- *
- * set to GPIO_NOPULL or GPIO_PULLUP or GPIO_PULLDOWN
- */
-#define VL53L0X_INTR_PIN_PUPD GPIO_PULLUP
-
-
-
-/**
- * @ingroup VL53L0X_GPIO1_MAP
- * @{
- */
-
-#ifndef VL53L0X_GPIO1_SHARED
-/**
- * @brief select use of shared interrupt
- *
- * Must be set to 0 (or not defined) for one interrupt per sensor
- * Must be set to non 0 for shared interrupt line
- * see @sa VL53L0X_GPIO1_C_OPTION
- */
-#define VL53L0X_GPIO1_SHARED  1
-#endif
-
-
-#ifndef VL53L0X_GPIO1_C_OPTION
-/**
- * @def VL53L0X_GPIO1_C_OPTION
- * @brief select GPIO1 to exti mapping for center or shared interrupt
- *
- * Set option value or un-define it to match with board configuration
- * @li not defined or 0  : U14=On  and U17=off  => GPIO1_C = PA4
- * @li defined and not 0 : U14=Off and U17=on  => GPIO1_C = PC1
- */
-#define VL53L0X_GPIO1_C_OPTION 1
-#endif
-#if 0
-/* ############ FOR SHARED GPIO1 INTR TO MCU    ###### */
-#define VL53L0X_GPIO1_C_GPIO_PORT   GPIOA
-#define VL53L0X_GPIO1_C_CLK_ENABLE  __GPIOA_CLK_ENABLE
-#define VL53L0X_GPIO1_C_GPIO_PIN    GPIO_PIN_10
-#define VL53L0X_GPIO1_C_INTx        EXTI15_10_IRQn
-
-#define VL53L0X_GPIO1_L_GPIO_PORT   GPIOA
-#define VL53L0X_GPIO1_L_CLK_ENABLE  __GPIOA_CLK_ENABLE
-#define VL53L0X_GPIO1_L_GPIO_PIN    GPIO_PIN_10
-#define VL53L0X_GPIO1_L_INTx        EXTI15_10_IRQn
-
-#define VL53L0X_GPIO1_R_GPIO_PORT   GPIOA
-#define VL53L0X_GPIO1_R_CLK_ENABLE  __GPIOA_CLK_ENABLE
-#define VL53L0X_GPIO1_R_GPIO_PIN    GPIO_PIN_10
-#define VL53L0X_GPIO1_R_INTx        EXTI15_10_IRQn
-/* ############ FOR SHARED GPIO1 INTR TO MCU    ###### */
-#endif
-/* ############ FOR SHARED GPIO1 INTR TO MCU    ###### */
-#ifndef RM2
-#define VL53L0X_GPIO1_C_GPIO_PORT   GPIOB
-#define VL53L0X_GPIO1_C_CLK_ENABLE  __GPIOB_CLK_ENABLE
-#define VL53L0X_GPIO1_C_GPIO_PIN    GPIO_PIN_3
-#define VL53L0X_GPIO1_C_INTx        EXTI3_IRQn
-
-#define VL53L0X_GPIO1_L_GPIO_PORT   GPIOB
-#define VL53L0X_GPIO1_L_CLK_ENABLE  __GPIOB_CLK_ENABLE
-#define VL53L0X_GPIO1_L_GPIO_PIN    GPIO_PIN_3
-#define VL53L0X_GPIO1_L_INTx        EXTI3_IRQn
-
-#define VL53L0X_GPIO1_R_GPIO_PORT   GPIOB
-#define VL53L0X_GPIO1_R_CLK_ENABLE  __GPIOB_CLK_ENABLE
-#define VL53L0X_GPIO1_R_GPIO_PIN    GPIO_PIN_3
-#define VL53L0X_GPIO1_R_INTx        EXTI3_IRQn
-#elif 	defined(RM2)
-#define VL53L0X_GPIO1_C_GPIO_PORT   GPIOB
-#define VL53L0X_GPIO1_C_CLK_ENABLE  __GPIOB_CLK_ENABLE
-#define VL53L0X_GPIO1_C_GPIO_PIN    GPIO_PIN_5
-#define VL53L0X_GPIO1_C_INTx        EXTI9_5_IRQn
-
-#define VL53L0X_GPIO1_L_GPIO_PORT   GPIOB
-#define VL53L0X_GPIO1_L_CLK_ENABLE  __GPIOB_CLK_ENABLE
-#define VL53L0X_GPIO1_L_GPIO_PIN    GPIO_PIN_5
-#define VL53L0X_GPIO1_L_INTx        EXTI9_5_IRQn
-
-#define VL53L0X_GPIO1_R_GPIO_PORT   GPIOB
-#define VL53L0X_GPIO1_R_CLK_ENABLE  __GPIOB_CLK_ENABLE
-#define VL53L0X_GPIO1_R_GPIO_PIN    GPIO_PIN_5
-#define VL53L0X_GPIO1_R_INTx        EXTI9_5_IRQn
-
-#endif
-/* ############ FOR SHARED GPIO1 INTR TO MCU    ###### */
-/** @} */ /* defgroup L53L1A1_GPIO1_MAP */
-
-#ifndef  XNUCLEO53L1A1_TRACE
-/**
- * @brief enable error output via trace
- *
- * when undefined (default) no trace no error logging is done, it is safe
- * to at least count error just to see if any errors ever occur.
- *
- * Traces formating and output is end user defined via #trace_printf
- */
-#define XNUCLEO53L1A1_TRACE    TRACE_UART
-#endif // XNUCLEO53L1A1_TRACE
-
-
-/**
- * @def XNUCLEO53L1A1_ErrLog(...)
- * Macro used to report error log messages with printf format
- *
- * Our testing version use externally trace_printf,
- * We trace out function names and line numbers plus any text formated with some extra arguments
- */
-#if XNUCLEO53L1A1_TRACE
-#   define XNUCLEO53L1A1_ErrLog( msg, ...) trace_printf("[Err] %s l %d \t" msg "\n", __func__, __LINE__, ##__VA_ARGS__)
-#else
-#   define XNUCLEO53L1A1_ErrLog(...) (void)0
-#endif
-
-
-
-/** @} */ /* group XNUCLEO53L1A1_Debugging */
-
-
-/**
- * @defgroup X-WL55_WLE5_53L0X_Interface X-WL55_WLE5_53L0X BSP API
- * @{ */
-
-/**
- * 53L0X Device selector
- *
- * @note Most functions are using a device selector as input. ASCII 'c', 'l' or 'r' are also accepted.
- */
-enum XNUCLEO53L1A1_dev_e{
-    XNUCLEO53L0X_LEFT =  0,    //!< left satellite device P21 header : 'l'
-    XNUCLEO53L0X_CENTER  =  1, //!< center (built-in) vl053 device : 'c"
-    XNUCLEO53L0X_RIGHT=  2     //!< Right satellite device P22 header : 'r'
-};
-
-/**
- * I2C1 handle
- * @note setup and configured by @ref XNUCLEO53L1A1_Init
- */
-extern I2C_HandleTypeDef  X_WL55_WLE5_53L0X_hi2c;
-/** UART2 handle
- *
- * UART2 is the nucleo Virtual Com Port
- * @note setup and configured by @ref  XNUCLEO53L1A1_Init*/
-#if VL53L0X_HAVE_UART
-extern UART_HandleTypeDef huart2;
-
-#if VL53L0X_UART_DMA_RX
-/** UART2 DMA RX available only if support activated*/
-extern DMA_HandleTypeDef hdma_usart2_rx;
-#endif
-
-#if VL53L0X_UART_DMA_TX
-/** UART2 DMA TX available only if support activated */
-extern DMA_HandleTypeDef hdma_usart2_tx;
-#endif
-#endif//ifdef VL53L0X_HAVE_UART
-
-/**
- * Initialize VL053L1A1 STM32 expansion board
- *
- * @note All VL53L0X devices XSDN are asserted and display is turned off
- * @return 0 on success
- */
-int XWL55_WLE5_53L0X_Init(void);
-
-/**
- * Set Reset (XSDN) state of a given "id" device
- * @param  DevNo The device number use  @ref XNUCLEO53L1A1_dev_e. Char 't' 'c' 'r' can also be used
- * @param  state  State of the device reset (xsdn) pin @warning reset  pin is active low
- * @return 0 on success
- */
-
-void XWL55_WLE5_53L0X_ResetId(uint8_t DevNo, int state);
-
-/**
- * Enable Disable interrupt at MCU level (MSP)
- *
- * Enable/Disable the interrupt for a given sensor Dev number
- *
- * End user is expected to override VL53L0X_EXTI_Callback to catch interrupts.
- * When the vector is shared applicaton is passed the device and pin corretcy
- * In shared line mode application is responsible to find what sensor cause the interrupt and deal with races on interrupt line
- *
- * @param EnableIntr  "boolean" 0 to disable interrupt otherwise interrupt is enabled
- * @param DevNo       Device number "name"  of the sensor see @ref XNUCLEO53L1A1_dev_e
- *
- * @warning In shared interrupt mode, use only center : other values are not supported and will return an error
- * @warning If several lines share the same interrupt vector (l053 mcu), only one sensor interrupt shall be enable at a time
- *          otherwise the handler may fail to locate and clear the right source (no sharing management)
- *
- * @return  0 on success \n
- *         <0 for error (invalid id)
- *         >0 interrupt configured but with potential sharing on EXTI groups see @ref VL53L0X_GPIO1_MAP
- */
-//int XNUCLEO53L1A1_SetIntrStateId(int EnableIntr, int DevNo);
-int XWL55_WLE5_53L0X_SetIntrStateId(int EnableIntr, int DevNo);
-int sts_tof_vl53l0x_DetectSensors(void);
-void STS_TOF_VL53L0X_Range_Process(void);
-#endif /* _X_WL55_WLE5_53L0X_H_ */
+/**
+ * @file X-WL55_WLE5_53L0X.h
+ *
+ */
+
+#ifndef _X_WL55_WLE5_53L0X_H_
+#define _X_WL55_WLE5_53L0X_H_
+
+#include "stm32wlxx_hal.h"
+
+/**
+ * @defgroup VL53L0X_config  VL53L0X static configuration
+ * @brief Configure BSP support for USART2 (nucleo virtual com)
+ * UART support implies that BSP exclusively manages:
+ *  @li HAL_UART_MspInit and HAL_UART_MspDeInit
+ *  @li DMA channel and interrupt
+ */
+
+
+/** @ingroup VL53L0X_config
+ * @{*/
+
+#define MAX_TOF_COUNT		3
+
+#ifndef VL53L0X_HAVE_UART
+/**
+ * Define this macro at project level if UART is available
+ */
+#define VL53L0X_HAVE_UART 1
+#endif
+
+
+#if VL53L0X_HAVE_UART
+
+/**
+ * User override of baud rate programmed for uart2 (default to 115200)
+ */
+#ifndef USART2_BAUD_RATE
+#   define USART2_BAUD_RATE    115200
+#endif
+
+
+#ifndef VL53L0X_UART_DMA_RX
+/** configure use of dma for uart rx
+ *
+ * Default to not use DMA RX when not defined explicitly
+ *
+ * require @a VL53L0X_HAVE_UART
+ */
+#define VL53L0X_UART_DMA_RX   0
+#endif //VL53L0X_UART_DMA_RX
+
+#ifndef VL53L0X_UART_DMA_TX
+/** configure use of dma for uart tx
+ *
+ * Default to use DMA TX when not defined explicitly by user
+ *
+ * require @a VL53L0X_HAVE_UART
+ */
+#define VL53L0X_UART_DMA_TX   1
+#endif //VL53L0X_UART_DMA_RX
+
+
+#ifndef  VL53L0X_UART_DMA_RX_IRQ_PRI
+/** configure usart  max irq priority
+ *
+ * Default to 0 when not defined explicitly by user
+ * @warning may not be support by all mcu (only F401 tested)
+ */
+#   define  VL53L0X_UART_DMA_RX_IRQ_PRI   0
+#endif
+
+#ifndef  VL53L0X_UART_DMA_TX_IRQ_PRI
+/** configure usart dma tx irq priority
+ *
+ * Default to 0 when not defined explicitly
+ * @warning only F401
+ */
+
+#define  VL53L0X_UART_DMA_TX_IRQ_PRI   0
+#endif
+
+#ifndef VL53L0X_UART_IRQ_PRI
+/**
+ * User override default uart irq priority 0 to fit application needs
+ * @warning only supported for f401
+ */
+#define VL53L0X_UART_IRQ_PRI    0
+#endif
+
+/* provided by MSP part */
+extern void XNUCLEO53L1A1_USART2_UART_Init(void);
+
+#else
+#	define XNUCLEO53L1A1_USART2_UART_Init(...) (void)0
+#endif
+
+/** @}  */
+
+/**
+ * Configure interrupt pins pins pull up/down
+ *
+ * set to GPIO_NOPULL or GPIO_PULLUP or GPIO_PULLDOWN
+ */
+#define VL53L0X_INTR_PIN_PUPD GPIO_PULLUP
+
+
+
+/**
+ * @ingroup VL53L0X_GPIO1_MAP
+ * @{
+ */
+
+#ifndef VL53L0X_GPIO1_SHARED
+/**
+ * @brief select use of shared interrupt
+ *
+ * Must be set to 0 (or not defined) for one interrupt per sensor
+ * Must be set to non 0 for shared interrupt line
+ * see @sa VL53L0X_GPIO1_C_OPTION
+ */
+#define VL53L0X_GPIO1_SHARED  1
+#endif
+
+
+#ifndef VL53L0X_GPIO1_C_OPTION
+/**
+ * @def VL53L0X_GPIO1_C_OPTION
+ * @brief select GPIO1 to exti mapping for center or shared interrupt
+ *
+ * Set option value or un-define it to match with board configuration
+ * @li not defined or 0  : U14=On  and U17=off  => GPIO1_C = PA4
+ * @li defined and not 0 : U14=Off and U17=on  => GPIO1_C = PC1
+ */
+#define VL53L0X_GPIO1_C_OPTION 1
+#endif
+#if 0
+/* ############ FOR SHARED GPIO1 INTR TO MCU    ###### */
+#define VL53L0X_GPIO1_C_GPIO_PORT   GPIOA
+#define VL53L0X_GPIO1_C_CLK_ENABLE  __GPIOA_CLK_ENABLE
+#define VL53L0X_GPIO1_C_GPIO_PIN    GPIO_PIN_10
+#define VL53L0X_GPIO1_C_INTx        EXTI15_10_IRQn
+
+#define VL53L0X_GPIO1_L_GPIO_PORT   GPIOA
+#define VL53L0X_GPIO1_L_CLK_ENABLE  __GPIOA_CLK_ENABLE
+#define VL53L0X_GPIO1_L_GPIO_PIN    GPIO_PIN_10
+#define VL53L0X_GPIO1_L_INTx        EXTI15_10_IRQn
+
+#define VL53L0X_GPIO1_R_GPIO_PORT   GPIOA
+#define VL53L0X_GPIO1_R_CLK_ENABLE  __GPIOA_CLK_ENABLE
+#define VL53L0X_GPIO1_R_GPIO_PIN    GPIO_PIN_10
+#define VL53L0X_GPIO1_R_INTx        EXTI15_10_IRQn
+/* ############ FOR SHARED GPIO1 INTR TO MCU    ###### */
+#endif
+/* ############ FOR SHARED GPIO1 INTR TO MCU    ###### */
+#ifndef RM2
+#define VL53L0X_GPIO1_C_GPIO_PORT   GPIOB
+#define VL53L0X_GPIO1_C_CLK_ENABLE  __GPIOB_CLK_ENABLE
+#define VL53L0X_GPIO1_C_GPIO_PIN    GPIO_PIN_3
+#define VL53L0X_GPIO1_C_INTx        EXTI3_IRQn
+
+#define VL53L0X_GPIO1_L_GPIO_PORT   GPIOB
+#define VL53L0X_GPIO1_L_CLK_ENABLE  __GPIOB_CLK_ENABLE
+#define VL53L0X_GPIO1_L_GPIO_PIN    GPIO_PIN_3
+#define VL53L0X_GPIO1_L_INTx        EXTI3_IRQn
+
+#define VL53L0X_GPIO1_R_GPIO_PORT   GPIOB
+#define VL53L0X_GPIO1_R_CLK_ENABLE  __GPIOB_CLK_ENABLE
+#define VL53L0X_GPIO1_R_GPIO_PIN    GPIO_PIN_3
+#define VL53L0X_GPIO1_R_INTx        EXTI3_IRQn
+#elif 	defined(RM2)
+#define VL53L0X_GPIO1_C_GPIO_PORT   GPIOB
+#define VL53L0X_GPIO1_C_CLK_ENABLE  __GPIOB_CLK_ENABLE
+#define VL53L0X_GPIO1_C_GPIO_PIN    GPIO_PIN_5
+#define VL53L0X_GPIO1_C_INTx        EXTI9_5_IRQn
+
+#define VL53L0X_GPIO1_L_GPIO_PORT   GPIOB
+#define VL53L0X_GPIO1_L_CLK_ENABLE  __GPIOB_CLK_ENABLE
+#define VL53L0X_GPIO1_L_GPIO_PIN    GPIO_PIN_5
+#define VL53L0X_GPIO1_L_INTx        EXTI9_5_IRQn
+
+#define VL53L0X_GPIO1_R_GPIO_PORT   GPIOB
+#define VL53L0X_GPIO1_R_CLK_ENABLE  __GPIOB_CLK_ENABLE
+#define VL53L0X_GPIO1_R_GPIO_PIN    GPIO_PIN_5
+#define VL53L0X_GPIO1_R_INTx        EXTI9_5_IRQn
+
+#endif
+/* ############ FOR SHARED GPIO1 INTR TO MCU    ###### */
+/** @} */ /* defgroup L53L1A1_GPIO1_MAP */
+
+#ifndef  XNUCLEO53L1A1_TRACE
+/**
+ * @brief enable error output via trace
+ *
+ * when undefined (default) no trace no error logging is done, it is safe
+ * to at least count error just to see if any errors ever occur.
+ *
+ * Traces formating and output is end user defined via #trace_printf
+ */
+#define XNUCLEO53L1A1_TRACE    TRACE_UART
+#endif // XNUCLEO53L1A1_TRACE
+
+
+/**
+ * @def XNUCLEO53L1A1_ErrLog(...)
+ * Macro used to report error log messages with printf format
+ *
+ * Our testing version use externally trace_printf,
+ * We trace out function names and line numbers plus any text formated with some extra arguments
+ */
+#if XNUCLEO53L1A1_TRACE
+#   define XNUCLEO53L1A1_ErrLog( msg, ...) trace_printf("[Err] %s l %d \t" msg "\n", __func__, __LINE__, ##__VA_ARGS__)
+#else
+#   define XNUCLEO53L1A1_ErrLog(...) (void)0
+#endif
+
+
+
+/** @} */ /* group XNUCLEO53L1A1_Debugging */
+
+
+/**
+ * @defgroup X-WL55_WLE5_53L0X_Interface X-WL55_WLE5_53L0X BSP API
+ * @{ */
+
+/**
+ * 53L0X Device selector
+ *
+ * @note Most functions are using a device selector as input. ASCII 'c', 'l' or 'r' are also accepted.
+ */
+enum XNUCLEO53L1A1_dev_e{
+    XNUCLEO53L0X_LEFT =  0,    //!< left satellite device P21 header : 'l'
+    XNUCLEO53L0X_CENTER  =  1, //!< center (built-in) vl053 device : 'c"
+    XNUCLEO53L0X_RIGHT=  2     //!< Right satellite device P22 header : 'r'
+};
+
+/**
+ * I2C1 handle
+ * @note setup and configured by @ref XNUCLEO53L1A1_Init
+ */
+extern I2C_HandleTypeDef  X_WL55_WLE5_53L0X_hi2c;
+/** UART2 handle
+ *
+ * UART2 is the nucleo Virtual Com Port
+ * @note setup and configured by @ref  XNUCLEO53L1A1_Init*/
+#if VL53L0X_HAVE_UART
+extern UART_HandleTypeDef huart2;
+
+#if VL53L0X_UART_DMA_RX
+/** UART2 DMA RX available only if support activated*/
+extern DMA_HandleTypeDef hdma_usart2_rx;
+#endif
+
+#if VL53L0X_UART_DMA_TX
+/** UART2 DMA TX available only if support activated */
+extern DMA_HandleTypeDef hdma_usart2_tx;
+#endif
+#endif//ifdef VL53L0X_HAVE_UART
+
+/**
+ * Initialize VL053L1A1 STM32 expansion board
+ *
+ * @note All VL53L0X devices XSDN are asserted and display is turned off
+ * @return 0 on success
+ */
+int XWL55_WLE5_53L0X_Init(void);
+
+/**
+ * Set Reset (XSDN) state of a given "id" device
+ * @param  DevNo The device number use  @ref XNUCLEO53L1A1_dev_e. Char 't' 'c' 'r' can also be used
+ * @param  state  State of the device reset (xsdn) pin @warning reset  pin is active low
+ * @return 0 on success
+ */
+
+void XWL55_WLE5_53L0X_ResetId(uint8_t DevNo, int state);
+
+/**
+ * Enable Disable interrupt at MCU level (MSP)
+ *
+ * Enable/Disable the interrupt for a given sensor Dev number
+ *
+ * End user is expected to override VL53L0X_EXTI_Callback to catch interrupts.
+ * When the vector is shared applicaton is passed the device and pin corretcy
+ * In shared line mode application is responsible to find what sensor cause the interrupt and deal with races on interrupt line
+ *
+ * @param EnableIntr  "boolean" 0 to disable interrupt otherwise interrupt is enabled
+ * @param DevNo       Device number "name"  of the sensor see @ref XNUCLEO53L1A1_dev_e
+ *
+ * @warning In shared interrupt mode, use only center : other values are not supported and will return an error
+ * @warning If several lines share the same interrupt vector (l053 mcu), only one sensor interrupt shall be enable at a time
+ *          otherwise the handler may fail to locate and clear the right source (no sharing management)
+ *
+ * @return  0 on success \n
+ *         <0 for error (invalid id)
+ *         >0 interrupt configured but with potential sharing on EXTI groups see @ref VL53L0X_GPIO1_MAP
+ */
+//int XNUCLEO53L1A1_SetIntrStateId(int EnableIntr, int DevNo);
+int XWL55_WLE5_53L0X_SetIntrStateId(int EnableIntr, int DevNo);
+int sts_tof_vl53l0x_DetectSensors(void);
+void STS_TOF_VL53L0X_Range_Process(void);
+#endif /* _X_WL55_WLE5_53L0X_H_ */
diff --git a/STS/TOF/App/app_tof_peoplecount.c b/STS/TOF/App/app_tof_peoplecount.c
index 3883e14..f6ba0f8 100644
--- a/STS/TOF/App/app_tof_peoplecount.c
+++ b/STS/TOF/App/app_tof_peoplecount.c
@@ -15,17 +15,24 @@
 extern I2C_HandleTypeDef hi2c2;
 volatile sts_people_count_sensor_data_t sts_people_count_sensor_data={0,0,0,2,'M',0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1};
 extern volatile uint32_t STS_TOFScanPeriod_sec, STS_TxPeriod_sec, STS_HeartBeatTimerPeriod_sec;
-volatile sts_ppc_cfg_type_t ppc_cfg[3] = {
-		{DOOR_JAM_2000, 8,  2000,0,1600,8,33,DISTANCE_MODE_SHORT,175,247},
-		{DOOR_JAM_2000, 8,  2000,0,1600,8,33,DISTANCE_MODE_SHORT,175,247},
-		{DOOR_JAM_2400, 10, 2400,0,1600,8,33,DISTANCE_MODE_LONG,175,231},
+volatile uint8_t sts_tof_presence_state=0;
+
+/* TIMING_BUDGET, in ms possible values [15, 20, 50, 100, 200, 500] */
+/* DISTANCE_THRESHOLD = MAX - ASSUME_CHILD_HEIGHT(800mm)            */
+volatile sts_ppc_cfg_type_t ppc_cfg[6] = {
+		{DOOR_JAM_2000,  8, 2000,0, 1200,8, tbms_33,DISTANCE_MODE_LONG,175,247},
+		{DOOR_JAM_2400, 10, 2400,0, 1600,8, tbms_50,DISTANCE_MODE_LONG,175,231},
+		{DOOR_JAM_3000, 10, 3000,0, 2200,8,tbms_100,DISTANCE_MODE_LONG,175,231},
+		{DOOR_JAM_3500, 10, 3500,0, 2700,8,tbms_100,DISTANCE_MODE_LONG,175,231},
+		{DOOR_JAM_4000, 10, 4000,0, 3200,8,tbms_200,DISTANCE_MODE_LONG,175,231},
+		{DOOR_SIDE_1600, 8, 1600,0,  300,8, tbms_33,DISTANCE_MODE_SHORT,175,231},
 };
 volatile sts_zone_center_by_rows_of_spads_t zone_center[3]={
 		{4, 151, 247},
 		{6, 159, 239},
 		{8, 175, 231},
 };
-volatile uint8_t sts_distance_mode = DISTANCE_MODE_LONG;
+volatile uint8_t sts_distance_mode = DOOR_JAM_3000;
 volatile uint8_t sts_people_count_number_changed = 0;
 static uint32_t cnt_today=0, cnt_week=0;
 static uint8_t last_year=0, this_year=0,last_month=0, this_month=0,last_week=0, this_week=0,last_day=0, this_day=0;
@@ -387,7 +394,69 @@ void STS_TOF_VL53LX_PresenceDetection_Process_Start(void)
 	}
 
 }
+int sts_tof_vl53lx_presence_detection_start(void)
+{
+	  uint8_t byteData, sensorState=0;
+	  uint16_t wordData;
 
+	  /* MCU Configuration----------------------------------------------------------*/
+	  /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
+	  /* Configure the system clock */
+	  /* Initialize all configured peripherals */
+	  //APP_LOG(TS_OFF, VLEVEL_H,"XNUCLEO53L1A1_Init Start .......... \r\n");
+	  status = XNUCLEO53L1A1_Init();
+	  //APP_LOG(TS_OFF, VLEVEL_H,"XNUCLEO53L1A1_Init Status : %X\n", status);
+
+
+	  status = XNUCLEO53L1A1_ResetId(XNUCLEO53L1A1_DEV_CENTER, 0); // Reset ToF sensor
+	  HAL_Delay(2);
+	  status = XNUCLEO53L1A1_ResetId(XNUCLEO53L1A1_DEV_CENTER, 1); // Reset ToF sensor
+
+
+	  // Those basic I2C read functions can be used to check your own I2C functions */
+	  status = VL53L1_RdByte(dev, 0x010F, &byteData);
+	  //APP_LOG(TS_OFF, VLEVEL_H,"VL53L1X Model_ID: %X\n", byteData);
+	  status = VL53L1_RdByte(dev, 0x0110, &byteData);
+	  //APP_LOG(TS_OFF, VLEVEL_H,"VL53L1X Module_Type: %X\n", byteData);
+	  status = VL53L1_RdWord(dev, 0x010F, &wordData);
+	  //APP_LOG(TS_OFF, VLEVEL_H,"VL53L1X: %X\n", wordData);
+	  sensor_id = wordData;
+	  wordData = 0;
+	  while (sensorState == 0) {
+	    status = VL53L1X_BootState(dev, &sensorState);
+	    HAL_Delay(2);
+	    wordData ++;
+	    if (wordData > 8000) {
+	    	APP_LOG(TS_OFF, VLEVEL_H,"\n\n ***Failed to boot Chip***\n\n\n");
+	    	return status;
+	    }
+	  }
+	  //APP_LOG(TS_OFF, VLEVEL_H,"\nChip booted\n\n");
+
+	  /* Initialize and configure the device according to people counting need */
+	  status = VL53L1X_SensorInit(dev);
+	  status += VL53L1X_SetDistanceMode(dev, ppc_cfg[sts_distance_mode].distance_mode);  /* 1=short, 2=long, DISTANCE_MODE */
+	  status += VL53L1X_SetTimingBudgetInMs(dev, ppc_cfg[sts_distance_mode].timing_budget);  /* TIMING_BUDGET, in ms possible values [15, 20, 50, 100, 200, 500] */
+	  status += VL53L1X_SetInterMeasurementInMs(dev, ppc_cfg[sts_distance_mode].timing_budget);
+	  status += VL53L1X_SetROI(dev, ppc_cfg[sts_distance_mode].rows_of_SPADS, 16); /* minimum ROI 4,4 */
+	  center[0]=ppc_cfg[sts_distance_mode].front_zone_center;
+	  center[1]=ppc_cfg[sts_distance_mode].back_zone_center;
+	  if (status != 0) {
+		  APP_LOG(TS_OFF, VLEVEL_H,"Initialization or configuration of the device\n");
+	    return (-1);
+	  }
+	  //APP_LOG(TS_OFF, VLEVEL_H,"\n\nStart counting people with profile : %s...\n\n", PROFILE_STRING);
+	  status = VL53L1X_StartRanging(dev);   /* This function has to be called to enable the ranging */
+
+	  if (status != 0) {
+	  	APP_LOG(TS_OFF, VLEVEL_H,"Error in start ranging\n");
+	    return (-1);
+	  }
+	  return 0;
+
+
+
+}
 int sts_tof_vl53lx_peoplecount_init(void)
 {
   //int8_t error;
diff --git a/STS/TOF/App/app_tof_peoplecount.h b/STS/TOF/App/app_tof_peoplecount.h
index ad7dcde..df1cf9b 100644
--- a/STS/TOF/App/app_tof_peoplecount.h
+++ b/STS/TOF/App/app_tof_peoplecount.h
@@ -40,7 +40,9 @@
  #define DOOR_JAM_2000             0
  #define DOOR_JAM_2400             1
  #define DOOR_JAM_3000			   2
- #define ON_SIDE                   3
+ #define DOOR_JAM_3500			   3
+ #define DOOR_JAM_4000			   4
+ #define DOOR_SIDE_1600            5
 
 
 
@@ -83,8 +85,8 @@
 /* Exported functions --------------------------------------------------------*/
  enum distance_mode {
 	 DISTANCE_MODE_SIDE=0,
-	 DISTANCE_MODE_SHORT,
-	 DISTANCE_MODE_LONG,
+	 DISTANCE_MODE_SHORT,		// 1: for max distance less than 1.3m
+	 DISTANCE_MODE_LONG,		// 2: (default) for max distance less than 4.0m with time buedget 200ms
  };
 
  typedef struct STS_ZONE_CENTRE_BY_ROWS_OF_SPADS
diff --git a/STS/TOF/App/app_tof_vl53l0x_range.c b/STS/TOF/App/app_tof_vl53l0x_range.c
index 3d2d74d..58f841f 100644
--- a/STS/TOF/App/app_tof_vl53l0x_range.c
+++ b/STS/TOF/App/app_tof_vl53l0x_range.c
@@ -1,453 +1,453 @@
-/* USER CODE BEGIN Header */
-/**
-  ******************************************************************************
-  * @file    app_tof_vl53l0x_range.c
-  * @author  Yunhorn (r) Technology Limited Application Team
-  * @brief   Application of the LRWAN Middleware
-  ******************************************************************************
-  * @attention
-  *
-  * Copyright (c) 2023 Yunhorn Technology Limited.
-  * Copyright (c) 2023 Shenzhen Yunhorn Technology Co., Ltd.
-  * 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.
-  *
-  ******************************************************************************
-  */
-
-/* Includes ------------------------------------------------------------------*/
-#ifdef VL53L0
-
-/* USER CODE BEGIN Includes */
-#include <string.h>
-#include "X-WL55_WLE5_53L0X.h"
-#include "main.h"
-#include "vl53l0x_api.h"
-#include <limits.h>
-#include "sys_app.h"
-#include "yunhorn_sts_sensors.h"
-
-/**
- * @defgroup Configuration Static configuration
- * @{
- */
-
-/** @}  */ /* config group */
-
-#ifndef MIN
-#   define MIN(a,b) ((a) < (b) ? (a) : (b))
-#endif
-
-/**
- * @defgroup ErrCode Errors code shown on display
- * @{
- */
-#if	defined(STS_R1)||defined(STS_R1D)		//short, accuracy ranging for jumbo sensors
-#define		STS_MAX_L0_RANGE		((uint32_t) 1000)
-#endif
-
-#ifdef	STS_R5		//long distance for waste bin sensor
-#define		STS_MAX_L0_RANGE		((uint32_t) 2500)
-#endif
-
-#define ERR_DETECT             -1
-#define ERR_DEMO_RANGE_ONE     1
-#define ERR_DEMO_RANGE_MULTI   2
-extern I2C_HandleTypeDef hi2c2;
-#define X_WL55_WLE5_53L0X_hi2c hi2c2
-
-/** }@} */ /* defgroup ErrCode */
-
-
-/* USER CODE END Includes */
-
-/* Private variables ---------------------------------------------------------*/
-
-/* USER CODE BEGIN PV */
-/* Private variables ---------------------------------------------------------*/
-
-typedef enum {
-	LONG_RANGE 		= 0, /*!< Long range mode */
-	HIGH_SPEED 		= 1, /*!< High speed mode */
-	HIGH_ACCURACY	= 2, /*!< High accuracy mode */
-} RangingConfig_e;
-
-/**
- * Global ranging struct
- */
-VL53L0X_RangingMeasurementData_t RangingMeasurementData;
-
-/** leaky factor for filtered range
- *
- * r(n) = averaged_r(n-1)*leaky +r(n)(1-leaky)
- *
- * */
-int LeakyFactorFix8 = (int)( 0.6 *256);				// 0.6 for ranging, 0.0 for gesture detect
-/** How many device detect set by @a DetectSensors()*/
-int nDevPresent=0;
-/** bit is index in VL53L0XDevs that is not necessary the dev id of the BSP */
-int nDevMask=0;
-
-int nSensorPresent;
-
-volatile int sts_tof_distance_data[MAX_TOF_COUNT]={0x0};
-extern volatile uint8_t sensor_data_ready;
-
-VL53L0X_Dev_t VL53L0XDevs[]={
-		{.Id=XNUCLEO53L0X_LEFT, .DevLetter='l',.I2cHandle=&X_WL55_WLE5_53L0X_hi2c, .I2cDevAddr=0x52},
-		{.Id=XNUCLEO53L0X_CENTER,.DevLetter='c', .I2cHandle=&X_WL55_WLE5_53L0X_hi2c, .I2cDevAddr=0x52},
-		{.Id=XNUCLEO53L0X_RIGHT, .DevLetter='r',.I2cHandle=&X_WL55_WLE5_53L0X_hi2c, .I2cDevAddr=0x52},
-};
-
-/* USER CODE BEGIN PFP */
-/* Private function prototypes -----------------------------------------------*/
-//void ResetAndDetectSensor(int SetDisplay);
-
-void sts_tof_vl53l0x_Sensor_SetNewRange(VL53L0X_Dev_t *pDev, VL53L0X_RangingMeasurementData_t *pRange);
-void sts_tof_vl53l0x_SetupSingleShot(RangingConfig_e rangingConfig);
-/* USER CODE END PFP */
-
-/* USER CODE BEGIN 0 */
-
-/**
- * Handle Error
- *
- * Set err on display and loop forever
- * @param err Error case code
- */
-void HandleError(int err){
-    //char msg[16];
-    //sprintf(msg,"Er%d", err);
-    APP_LOG(TS_OFF, VLEVEL_H,"Er %04u\r\n",err);
-    //while(1){};
-}
-
-
-
-/**
- * Reset all sensor then goes true presence detection
- *
- * All present devices are data initiated and assigned with their final address
- * @return
- */
-int sts_tof_vl53l0x_DetectSensors(void)
-{
-	int i;
-    uint16_t Id;
-    int status;
-    int FinalAddress;
-    nDevPresent = 0;
-
-    for (i=0; i < MAX_TOF_COUNT; i++) {
-    	XWL55_WLE5_53L0X_ResetId(i,0);
-    	//XWL55_WLE5_53L0X_SetIntrStateId(1,i);
-    }
-
-    /* detect all sensors (even on-board)*/
-    for (i=0; i < MAX_TOF_COUNT; i++)
-    {
-		VL53L0X_Dev_t *pDev;
-		pDev = &VL53L0XDevs[i];
-		pDev->I2cDevAddr = 0x52;
-		pDev->Present = 0;
-		XWL55_WLE5_53L0X_ResetId(pDev->Id, 1);
-		HAL_Delay(3);
-		FinalAddress = 0x52+(i+1)*2;
-
-	   //APP_LOG(TS_OFF, VLEVEL_M, "\r\n Detect TOF sensors #%u with I2CDevAddr=0x%02x \r\n", i, pDev->I2cDevAddr);
-
-	   do {
-		   /* Set I2C standard mode (400 KHz) before doing the first register access */
-		   //if (status == VL53L0X_ERROR_NONE)
-		   //status = VL53L0X_WrByte(pDev, 0x88, 0x00);
-
-		   /* Try to read one register using default 0x52 address */
-		   status = VL53L0X_RdWord(pDev, VL53L0X_REG_IDENTIFICATION_MODEL_ID, &Id);
-		   //APP_LOG(TS_OFF, VLEVEL_H, "#%u read id = %04X I2C ADDR=0x%2X\r\n",i, Id, pDev->I2cDevAddr);
-		   if (status) {
-				 APP_LOG(TS_OFF, VLEVEL_H, "# Read id fail \r\n");
-				 break;
-		   }
-		   if (Id == 0xEEAA) {
-			   /* Sensor is found => Change its I2C address to final one */
-			   //APP_LOG(TS_OFF, VLEVEL_H, "\n Set Final i2c addr to %02X \r\n", FinalAddress);
-			   status = VL53L0X_SetDeviceAddress(pDev,FinalAddress);
-			   if (status != 0) {
-				   APP_LOG(TS_OFF, VLEVEL_H, "#i VL53L0X_SetDeviceAddress fail\r\n");
-				   break;
-			   }
-			   pDev->I2cDevAddr = FinalAddress;
-			   //APP_LOG(TS_OFF, VLEVEL_H, "\n pDev->I2CDevAddr set to: %02X \r\n", pDev->I2cDevAddr);
-			   /* Check all is OK with the new I2C address and initialize the sensor */
-			   status = VL53L0X_RdWord(pDev, VL53L0X_REG_IDENTIFICATION_MODEL_ID, &Id);
-			   if (status !=0)
-			   {
-			  	   APP_LOG(TS_OFF, VLEVEL_H, "#i VL53L0X_RdWord fail\r\n");
-			  	   break;
-			  	}
-			   status = VL53L0X_DataInit(pDev);
-			   if( status == 0 ){
-				   pDev->Present = 1;
-				   nDevPresent++;
-				   nDevMask |= 1 << i;
-				   pDev->Present = 1;
-			   }
-			   else{
-				   APP_LOG(TS_OFF, VLEVEL_H, "VL53L0X_DataInit %d fail\r\n", Id);
-				   break;
-			   }
-
-		   } else {
-			   APP_LOG(TS_OFF, VLEVEL_H, "# unknown ID %x\r\n", Id);
-			   status = 1;
-		   }
-	   } while(0);
-		/* Display detected sensor(s) */
-	   if (status) {
-		   XWL55_WLE5_53L0X_ResetId(i,0);
-	   }
-	}
-
-    return nDevPresent;
-}
-
-/**
- *  Setup all detected sensors for single shot mode and setup ranging configuration
- */
-void sts_tof_vl53l0x_SetupSingleShot(RangingConfig_e rangingConfig)
-{	int i;
-    int status=VL53L0X_ERROR_NONE;
-    uint8_t VhvSettings;
-    uint8_t PhaseCal;
-    uint32_t refSpadCount;
-	uint8_t isApertureSpads;
-	FixPoint1616_t signalLimit = (FixPoint1616_t)(0.25*65536);
-	FixPoint1616_t sigmaLimit = (FixPoint1616_t)(18*65536);
-	uint32_t timingBudget = 33000;
-	uint8_t preRangeVcselPeriod = 14;
-	uint8_t finalRangeVcselPeriod = 10;
-    // uart_printf("\r\n#########  start setup for single shot \r\n");
-	for( i=0; i< MAX_TOF_COUNT; i++){
-
-		if( VL53L0XDevs[i].Present){
-
-		  //APP_LOG(TS_OFF, VLEVEL_H, "\r\n ######  Starting Range   #%u sensor \r\n",i);
-
-		  status=VL53L0X_StaticInit(&VL53L0XDevs[i]);
-
-		  status = VL53L0X_PerformRefCalibration(&VL53L0XDevs[i], &VhvSettings, &PhaseCal);
-
-		  status = VL53L0X_PerformRefSpadManagement(&VL53L0XDevs[i], &refSpadCount, &isApertureSpads);
-
-		  status = VL53L0X_SetDeviceMode(&VL53L0XDevs[i], VL53L0X_DEVICEMODE_SINGLE_RANGING); // Setup in single ranging mode
-
-		  status = VL53L0X_SetLimitCheckEnable(&VL53L0XDevs[i], VL53L0X_CHECKENABLE_SIGMA_FINAL_RANGE, 1); // Enable Sigma limit
-
-		  status = VL53L0X_SetLimitCheckEnable(&VL53L0XDevs[i], VL53L0X_CHECKENABLE_SIGNAL_RATE_FINAL_RANGE, 1); // Enable Signa limit
-
-		  /* Ranging configuration */
-		  switch(rangingConfig) {
-			  case LONG_RANGE:
-				  signalLimit = (FixPoint1616_t)(0.1*65536);
-				  sigmaLimit = (FixPoint1616_t)(60*65536);
-				  timingBudget = 33000;
-				  preRangeVcselPeriod = 18;
-				  finalRangeVcselPeriod = 14;
-			  break;
-			  case HIGH_ACCURACY:
-				  signalLimit = (FixPoint1616_t)(0.25*65536);
-				  sigmaLimit = (FixPoint1616_t)(18*65536);
-				  timingBudget = 200000;
-				  preRangeVcselPeriod = 14;
-				  finalRangeVcselPeriod = 10;
-			  break;
-			  case HIGH_SPEED:
-				  signalLimit = (FixPoint1616_t)(0.25*65536);
-				  sigmaLimit = (FixPoint1616_t)(32*65536);
-				  timingBudget = 20000;
-				  preRangeVcselPeriod = 14;
-				  finalRangeVcselPeriod = 10;
-			  break;
-			  default:
-				  APP_LOG(TS_OFF, VLEVEL_H, "Not Supported");
-			  break;
-		  }
-
-		  status = VL53L0X_SetLimitCheckValue(&VL53L0XDevs[i],  VL53L0X_CHECKENABLE_SIGNAL_RATE_FINAL_RANGE, signalLimit);
-
-		  status = VL53L0X_SetLimitCheckValue(&VL53L0XDevs[i],  VL53L0X_CHECKENABLE_SIGMA_FINAL_RANGE, sigmaLimit);
-
-		  status = VL53L0X_SetMeasurementTimingBudgetMicroSeconds(&VL53L0XDevs[i],  timingBudget);
-
-		  status = VL53L0X_SetVcselPulsePeriod(&VL53L0XDevs[i],  VL53L0X_VCSEL_PERIOD_PRE_RANGE, preRangeVcselPeriod);
-
-		  status = VL53L0X_SetVcselPulsePeriod(&VL53L0XDevs[i],  VL53L0X_VCSEL_PERIOD_FINAL_RANGE, finalRangeVcselPeriod);
-
-		  status = VL53L0X_PerformRefCalibration(&VL53L0XDevs[i], &VhvSettings, &PhaseCal);
-
-		  VL53L0XDevs[i].LeakyFirst =1;
-
-		}
-	}
-  
-}
-
-
-/* Store new ranging data into the device structure, apply leaky integrator if needed */
-void sts_tof_vl53l0x_Sensor_SetNewRange(VL53L0X_Dev_t *pDev, VL53L0X_RangingMeasurementData_t *pRange)
-{
-    if( pRange->RangeStatus == 0 ){
-        if( pDev->LeakyFirst ){
-            pDev->LeakyFirst = 0;
-            pDev->LeakyRange = pRange->RangeMilliMeter;
-        }
-        else{
-            pDev->LeakyRange = (pDev->LeakyRange*LeakyFactorFix8 + (256-LeakyFactorFix8)*pRange->RangeMilliMeter)>>8;
-        }
-    }
-    else{
-        pDev->LeakyFirst = 1;
-    }
-}
-
-/* USER CODE END 0 */
-void STS_TOF250_Range_Process(void)
-{
-#ifdef 	TOF_3
-
-#define I2C_TIME_OUT_BASE   10
-#define I2C_TIME_OUT_BYTE   1
-	int status;
-	uint8_t pdata[2]={0x0,0x0}; uint32_t count=2;
-	int i2c_time_out = I2C_TIME_OUT_BASE + count*I2C_TIME_OUT_BYTE;
-
-	sensor_data_ready = 0 ;
-
-    sts_tof_distance_data[0] = 0;
-	sts_tof_distance_data[1] = 0;
-
-	sts_tof_distance_data[2] = 0;
-
-	status = HAL_I2C_Master_Receive(&hi2c2, TOF250_I2C_ADDR, pdata, count, i2c_time_out);
-	if (status == HAL_OK) {
-		APP_LOG(TS_OFF, VLEVEL_H, "\r\n## TOF250 ranging value %02x %02x %4d ",pdata[0],pdata[1], *pdata);
-		sts_tof_distance_data[2] = pdata[0]<<8|pdata[1];
-		sensor_data_ready = 1;
-		APP_LOG(TS_OFF, VLEVEL_H, "\r\n## Measured Range: \r\nTOF #0 = %4u mm, \r\nTOF #1 = %4u mm, \r\nTOF #2 = %4u mm\r\n",
-				  (int)sts_tof_distance_data[0],(int)sts_tof_distance_data[1],(int)sts_tof_distance_data[2]);
-	  }
-#endif
-
-}
-void STS_TOF_VL53L0X_Range_Process(void)
-{
-  int status=0, i;
-  /* HIGH_ACCURACY for STS_R1/R2/R3 short distance less than 1000mm  */
-  /* LONG_RANGE    for STS_R5        long distance less than 2500mm  */
-
-  RangingConfig_e RangingConfig = HIGH_ACCURACY; //HIGH_ACCURACY;		//LONG_RANGE;
-  XWL55_WLE5_53L0X_Init();
-  if ((nDevMask ==0) || (nSensorPresent ==0))
-  {
-	  nSensorPresent = sts_tof_vl53l0x_DetectSensors();					// confirm sensor online
-	  APP_LOG(TS_OFF, VLEVEL_M, "\r\n %u pcs sensor(s) online \r\n", nSensorPresent);
-  }
-
-  //APP_LOG(TS_OFF, VLEVEL_H, "\n\n nDevMask=%02X  nSensorPresent = %02x \n\n", nDevMask, nSensorPresent);
-
-#ifdef	TOF_3
-  sts_tof_distance_data[2] = 0;
-#endif
-
-  if (nSensorPresent > 0)
-  {
-	  // RangingConfig == HIGH ACCURACY, LONG RANGE, HIGH SPEED
-	  sts_tof_vl53l0x_SetupSingleShot(RangingConfig);
-
-	  sensor_data_ready = 0 ;
-	  //for (i=0; i< MAX_TOF_COUNT; i++)
-	  for (i=0; i< nSensorPresent; i++)
-	  {
-		  //APP_LOG(TS_OFF, VLEVEL_H, "\n\n i=%u  Present=%u DevAdd=%02x \n", i, VL53L0XDevs[i].Present, VL53L0XDevs[i].I2cDevAddr);
-		  if (VL53L0XDevs[i].Present ==1)
-		  {
-			uint8_t rep=0;
-			do {
-//				rep++;
-				status = VL53L0X_PerformSingleRangingMeasurement(&VL53L0XDevs[i], &RangingMeasurementData);
-				if (status ==0)
-				{
-					sts_tof_vl53l0x_Sensor_SetNewRange(&VL53L0XDevs[i],&RangingMeasurementData);
-					if( RangingMeasurementData.RangeStatus == 0 )
-					{
-						sts_tof_distance_data[i] = (int)VL53L0XDevs[i].LeakyRange;
-						nDevMask |= (1 << i);
-						sensor_data_ready |= 1<<i;
-					}  else
-					{
-						//HandleError(ERR_DEMO_RANGE_ONE);
-						APP_LOG(TS_OFF, VLEVEL_H,"\r\n#%u sensor   ERR code = %04u\r\n",i, ERR_DEMO_RANGE_ONE);
-					}
-					// ##########     two conditions
-					// ##########     1) return status ==0,
-					// ##########     2) and ranging status for valid ranging value !!!!!!!!!!!!!!!!!
-				}
-
-				HAL_Delay(1);
-
-				} while ((RangingMeasurementData.RangeStatus != 0)&&(rep++ < 10));
-				sts_tof_distance_data[i] = (RangingMeasurementData.RangeStatus!=0)?STS_MAX_L0_RANGE:VL53L0XDevs[i].LeakyRange;
-		  }
-
-		    HAL_Delay(30);
-	   }  // for i < MAX_TOF_COUNT
-
-	   if (sensor_data_ready != 0)
-	   {
-	    	  APP_LOG(TS_OFF, VLEVEL_M, "\r\n## Measured Range: \r\nTOF #0 = %4u mm, \r\nTOF #1 = %4u mm, \r\nTOF #2 = %4u mm\r\n",
-				  (int)sts_tof_distance_data[0],(int)sts_tof_distance_data[1],(int)sts_tof_distance_data[2]);
-	   }
-
-  } else {
-	  // nSensorPresent >0
-	  sts_tof_distance_data[0] = STS_MAX_L0_RANGE;
-	  sts_tof_distance_data[1] = STS_MAX_L0_RANGE;
-	  sts_tof_distance_data[2] = STS_MAX_L0_RANGE;
-	  APP_LOG(TS_OFF, VLEVEL_H, "\n\n APP_LOG   no ToF sensor online \n\n");
-  }
-
-  // reset for next ranging
-  nDevMask = 0;
-  nSensorPresent = 0;
-}
-
-void STS_RR_Sensor_Read(sts_tof_range_data_t *sts_rr_sensor_data)
-{
-	sts_rr_sensor_data->tof_1_distance_mm = sts_tof_distance_data[0];
-	sts_rr_sensor_data->tof_2_distance_mm = sts_tof_distance_data[1];
-	sts_rr_sensor_data->tof_3_distance_mm = sts_tof_distance_data[2];
-}
-
-void STS_Prepare_Packet_Data(void)
-{
-	//AppData.Buffer = 0x0;
-	//AppData.BufferSize = 0x0;
-}
-
-/* USER CODE BEGIN 4 */
-
-/* USER CODE END 4 */
-
-#endif
-/**
-  * @}
-  */ 
-
-/**
-  * @}
-*/ 
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
+/* USER CODE BEGIN Header */
+/**
+  ******************************************************************************
+  * @file    app_tof_vl53l0x_range.c
+  * @author  Yunhorn (r) Technology Limited Application Team
+  * @brief   Application of the LRWAN Middleware
+  ******************************************************************************
+  * @attention
+  *
+  * Copyright (c) 2023 Yunhorn Technology Limited.
+  * Copyright (c) 2023 Shenzhen Yunhorn Technology Co., Ltd.
+  * 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.
+  *
+  ******************************************************************************
+  */
+
+/* Includes ------------------------------------------------------------------*/
+#ifdef VL53L0
+
+/* USER CODE BEGIN Includes */
+#include <string.h>
+#include "X-WL55_WLE5_53L0X.h"
+#include "main.h"
+#include "vl53l0x_api.h"
+#include <limits.h>
+#include "sys_app.h"
+#include "yunhorn_sts_sensors.h"
+
+/**
+ * @defgroup Configuration Static configuration
+ * @{
+ */
+
+/** @}  */ /* config group */
+
+#ifndef MIN
+#   define MIN(a,b) ((a) < (b) ? (a) : (b))
+#endif
+
+/**
+ * @defgroup ErrCode Errors code shown on display
+ * @{
+ */
+#if	defined(STS_R1)||defined(STS_R1D)		//short, accuracy ranging for jumbo sensors
+#define		STS_MAX_L0_RANGE		((uint32_t) 1000)
+#endif
+
+#ifdef	STS_R5		//long distance for waste bin sensor
+#define		STS_MAX_L0_RANGE		((uint32_t) 2500)
+#endif
+
+#define ERR_DETECT             -1
+#define ERR_DEMO_RANGE_ONE     1
+#define ERR_DEMO_RANGE_MULTI   2
+extern I2C_HandleTypeDef hi2c2;
+#define X_WL55_WLE5_53L0X_hi2c hi2c2
+
+/** }@} */ /* defgroup ErrCode */
+
+
+/* USER CODE END Includes */
+
+/* Private variables ---------------------------------------------------------*/
+
+/* USER CODE BEGIN PV */
+/* Private variables ---------------------------------------------------------*/
+
+typedef enum {
+	LONG_RANGE 		= 0, /*!< Long range mode */
+	HIGH_SPEED 		= 1, /*!< High speed mode */
+	HIGH_ACCURACY	= 2, /*!< High accuracy mode */
+} RangingConfig_e;
+
+/**
+ * Global ranging struct
+ */
+VL53L0X_RangingMeasurementData_t RangingMeasurementData;
+
+/** leaky factor for filtered range
+ *
+ * r(n) = averaged_r(n-1)*leaky +r(n)(1-leaky)
+ *
+ * */
+int LeakyFactorFix8 = (int)( 0.6 *256);				// 0.6 for ranging, 0.0 for gesture detect
+/** How many device detect set by @a DetectSensors()*/
+int nDevPresent=0;
+/** bit is index in VL53L0XDevs that is not necessary the dev id of the BSP */
+int nDevMask=0;
+
+int nSensorPresent;
+
+volatile int sts_tof_distance_data[MAX_TOF_COUNT]={0x0};
+extern volatile uint8_t sensor_data_ready;
+
+VL53L0X_Dev_t VL53L0XDevs[]={
+		{.Id=XNUCLEO53L0X_LEFT, .DevLetter='l',.I2cHandle=&X_WL55_WLE5_53L0X_hi2c, .I2cDevAddr=0x52},
+		{.Id=XNUCLEO53L0X_CENTER,.DevLetter='c', .I2cHandle=&X_WL55_WLE5_53L0X_hi2c, .I2cDevAddr=0x52},
+		{.Id=XNUCLEO53L0X_RIGHT, .DevLetter='r',.I2cHandle=&X_WL55_WLE5_53L0X_hi2c, .I2cDevAddr=0x52},
+};
+
+/* USER CODE BEGIN PFP */
+/* Private function prototypes -----------------------------------------------*/
+//void ResetAndDetectSensor(int SetDisplay);
+
+void sts_tof_vl53l0x_Sensor_SetNewRange(VL53L0X_Dev_t *pDev, VL53L0X_RangingMeasurementData_t *pRange);
+void sts_tof_vl53l0x_SetupSingleShot(RangingConfig_e rangingConfig);
+/* USER CODE END PFP */
+
+/* USER CODE BEGIN 0 */
+
+/**
+ * Handle Error
+ *
+ * Set err on display and loop forever
+ * @param err Error case code
+ */
+void HandleError(int err){
+    //char msg[16];
+    //sprintf(msg,"Er%d", err);
+    APP_LOG(TS_OFF, VLEVEL_H,"Er %04u\r\n",err);
+    //while(1){};
+}
+
+
+
+/**
+ * Reset all sensor then goes true presence detection
+ *
+ * All present devices are data initiated and assigned with their final address
+ * @return
+ */
+int sts_tof_vl53l0x_DetectSensors(void)
+{
+	int i;
+    uint16_t Id;
+    int status;
+    int FinalAddress;
+    nDevPresent = 0;
+
+    for (i=0; i < MAX_TOF_COUNT; i++) {
+    	XWL55_WLE5_53L0X_ResetId(i,0);
+    	//XWL55_WLE5_53L0X_SetIntrStateId(1,i);
+    }
+
+    /* detect all sensors (even on-board)*/
+    for (i=0; i < MAX_TOF_COUNT; i++)
+    {
+		VL53L0X_Dev_t *pDev;
+		pDev = &VL53L0XDevs[i];
+		pDev->I2cDevAddr = 0x52;
+		pDev->Present = 0;
+		XWL55_WLE5_53L0X_ResetId(pDev->Id, 1);
+		HAL_Delay(3);
+		FinalAddress = 0x52+(i+1)*2;
+
+	   //APP_LOG(TS_OFF, VLEVEL_M, "\r\n Detect TOF sensors #%u with I2CDevAddr=0x%02x \r\n", i, pDev->I2cDevAddr);
+
+	   do {
+		   /* Set I2C standard mode (400 KHz) before doing the first register access */
+		   //if (status == VL53L0X_ERROR_NONE)
+		   //status = VL53L0X_WrByte(pDev, 0x88, 0x00);
+
+		   /* Try to read one register using default 0x52 address */
+		   status = VL53L0X_RdWord(pDev, VL53L0X_REG_IDENTIFICATION_MODEL_ID, &Id);
+		   //APP_LOG(TS_OFF, VLEVEL_H, "#%u read id = %04X I2C ADDR=0x%2X\r\n",i, Id, pDev->I2cDevAddr);
+		   if (status) {
+				 APP_LOG(TS_OFF, VLEVEL_H, "# Read id fail \r\n");
+				 break;
+		   }
+		   if (Id == 0xEEAA) {
+			   /* Sensor is found => Change its I2C address to final one */
+			   //APP_LOG(TS_OFF, VLEVEL_H, "\n Set Final i2c addr to %02X \r\n", FinalAddress);
+			   status = VL53L0X_SetDeviceAddress(pDev,FinalAddress);
+			   if (status != 0) {
+				   APP_LOG(TS_OFF, VLEVEL_H, "#i VL53L0X_SetDeviceAddress fail\r\n");
+				   break;
+			   }
+			   pDev->I2cDevAddr = FinalAddress;
+			   //APP_LOG(TS_OFF, VLEVEL_H, "\n pDev->I2CDevAddr set to: %02X \r\n", pDev->I2cDevAddr);
+			   /* Check all is OK with the new I2C address and initialize the sensor */
+			   status = VL53L0X_RdWord(pDev, VL53L0X_REG_IDENTIFICATION_MODEL_ID, &Id);
+			   if (status !=0)
+			   {
+			  	   APP_LOG(TS_OFF, VLEVEL_H, "#i VL53L0X_RdWord fail\r\n");
+			  	   break;
+			  	}
+			   status = VL53L0X_DataInit(pDev);
+			   if( status == 0 ){
+				   pDev->Present = 1;
+				   nDevPresent++;
+				   nDevMask |= 1 << i;
+				   pDev->Present = 1;
+			   }
+			   else{
+				   APP_LOG(TS_OFF, VLEVEL_H, "VL53L0X_DataInit %d fail\r\n", Id);
+				   break;
+			   }
+
+		   } else {
+			   APP_LOG(TS_OFF, VLEVEL_H, "# unknown ID %x\r\n", Id);
+			   status = 1;
+		   }
+	   } while(0);
+		/* Display detected sensor(s) */
+	   if (status) {
+		   XWL55_WLE5_53L0X_ResetId(i,0);
+	   }
+	}
+
+    return nDevPresent;
+}
+
+/**
+ *  Setup all detected sensors for single shot mode and setup ranging configuration
+ */
+void sts_tof_vl53l0x_SetupSingleShot(RangingConfig_e rangingConfig)
+{	int i;
+    int status=VL53L0X_ERROR_NONE;
+    uint8_t VhvSettings;
+    uint8_t PhaseCal;
+    uint32_t refSpadCount;
+	uint8_t isApertureSpads;
+	FixPoint1616_t signalLimit = (FixPoint1616_t)(0.25*65536);
+	FixPoint1616_t sigmaLimit = (FixPoint1616_t)(18*65536);
+	uint32_t timingBudget = 33000;
+	uint8_t preRangeVcselPeriod = 14;
+	uint8_t finalRangeVcselPeriod = 10;
+    // uart_printf("\r\n#########  start setup for single shot \r\n");
+	for( i=0; i< MAX_TOF_COUNT; i++){
+
+		if( VL53L0XDevs[i].Present){
+
+		  //APP_LOG(TS_OFF, VLEVEL_H, "\r\n ######  Starting Range   #%u sensor \r\n",i);
+
+		  status=VL53L0X_StaticInit(&VL53L0XDevs[i]);
+
+		  status = VL53L0X_PerformRefCalibration(&VL53L0XDevs[i], &VhvSettings, &PhaseCal);
+
+		  status = VL53L0X_PerformRefSpadManagement(&VL53L0XDevs[i], &refSpadCount, &isApertureSpads);
+
+		  status = VL53L0X_SetDeviceMode(&VL53L0XDevs[i], VL53L0X_DEVICEMODE_SINGLE_RANGING); // Setup in single ranging mode
+
+		  status = VL53L0X_SetLimitCheckEnable(&VL53L0XDevs[i], VL53L0X_CHECKENABLE_SIGMA_FINAL_RANGE, 1); // Enable Sigma limit
+
+		  status = VL53L0X_SetLimitCheckEnable(&VL53L0XDevs[i], VL53L0X_CHECKENABLE_SIGNAL_RATE_FINAL_RANGE, 1); // Enable Signa limit
+
+		  /* Ranging configuration */
+		  switch(rangingConfig) {
+			  case LONG_RANGE:
+				  signalLimit = (FixPoint1616_t)(0.1*65536);
+				  sigmaLimit = (FixPoint1616_t)(60*65536);
+				  timingBudget = 33000;
+				  preRangeVcselPeriod = 18;
+				  finalRangeVcselPeriod = 14;
+			  break;
+			  case HIGH_ACCURACY:
+				  signalLimit = (FixPoint1616_t)(0.25*65536);
+				  sigmaLimit = (FixPoint1616_t)(18*65536);
+				  timingBudget = 200000;
+				  preRangeVcselPeriod = 14;
+				  finalRangeVcselPeriod = 10;
+			  break;
+			  case HIGH_SPEED:
+				  signalLimit = (FixPoint1616_t)(0.25*65536);
+				  sigmaLimit = (FixPoint1616_t)(32*65536);
+				  timingBudget = 20000;
+				  preRangeVcselPeriod = 14;
+				  finalRangeVcselPeriod = 10;
+			  break;
+			  default:
+				  APP_LOG(TS_OFF, VLEVEL_H, "Not Supported");
+			  break;
+		  }
+
+		  status = VL53L0X_SetLimitCheckValue(&VL53L0XDevs[i],  VL53L0X_CHECKENABLE_SIGNAL_RATE_FINAL_RANGE, signalLimit);
+
+		  status = VL53L0X_SetLimitCheckValue(&VL53L0XDevs[i],  VL53L0X_CHECKENABLE_SIGMA_FINAL_RANGE, sigmaLimit);
+
+		  status = VL53L0X_SetMeasurementTimingBudgetMicroSeconds(&VL53L0XDevs[i],  timingBudget);
+
+		  status = VL53L0X_SetVcselPulsePeriod(&VL53L0XDevs[i],  VL53L0X_VCSEL_PERIOD_PRE_RANGE, preRangeVcselPeriod);
+
+		  status = VL53L0X_SetVcselPulsePeriod(&VL53L0XDevs[i],  VL53L0X_VCSEL_PERIOD_FINAL_RANGE, finalRangeVcselPeriod);
+
+		  status = VL53L0X_PerformRefCalibration(&VL53L0XDevs[i], &VhvSettings, &PhaseCal);
+
+		  VL53L0XDevs[i].LeakyFirst =1;
+
+		}
+	}
+  
+}
+
+
+/* Store new ranging data into the device structure, apply leaky integrator if needed */
+void sts_tof_vl53l0x_Sensor_SetNewRange(VL53L0X_Dev_t *pDev, VL53L0X_RangingMeasurementData_t *pRange)
+{
+    if( pRange->RangeStatus == 0 ){
+        if( pDev->LeakyFirst ){
+            pDev->LeakyFirst = 0;
+            pDev->LeakyRange = pRange->RangeMilliMeter;
+        }
+        else{
+            pDev->LeakyRange = (pDev->LeakyRange*LeakyFactorFix8 + (256-LeakyFactorFix8)*pRange->RangeMilliMeter)>>8;
+        }
+    }
+    else{
+        pDev->LeakyFirst = 1;
+    }
+}
+
+/* USER CODE END 0 */
+void STS_TOF250_Range_Process(void)
+{
+#ifdef 	TOF_3
+
+#define I2C_TIME_OUT_BASE   10
+#define I2C_TIME_OUT_BYTE   1
+	int status;
+	uint8_t pdata[2]={0x0,0x0}; uint32_t count=2;
+	int i2c_time_out = I2C_TIME_OUT_BASE + count*I2C_TIME_OUT_BYTE;
+
+	sensor_data_ready = 0 ;
+
+    sts_tof_distance_data[0] = 0;
+	sts_tof_distance_data[1] = 0;
+
+	sts_tof_distance_data[2] = 0;
+
+	status = HAL_I2C_Master_Receive(&hi2c2, TOF250_I2C_ADDR, pdata, count, i2c_time_out);
+	if (status == HAL_OK) {
+		APP_LOG(TS_OFF, VLEVEL_H, "\r\n## TOF250 ranging value %02x %02x %4d ",pdata[0],pdata[1], *pdata);
+		sts_tof_distance_data[2] = pdata[0]<<8|pdata[1];
+		sensor_data_ready = 1;
+		APP_LOG(TS_OFF, VLEVEL_H, "\r\n## Measured Range: \r\nTOF #0 = %4u mm, \r\nTOF #1 = %4u mm, \r\nTOF #2 = %4u mm\r\n",
+				  (int)sts_tof_distance_data[0],(int)sts_tof_distance_data[1],(int)sts_tof_distance_data[2]);
+	  }
+#endif
+
+}
+void STS_TOF_VL53L0X_Range_Process(void)
+{
+  int status=0, i;
+  /* HIGH_ACCURACY for STS_R1/R2/R3 short distance less than 1000mm  */
+  /* LONG_RANGE    for STS_R5        long distance less than 2500mm  */
+
+  RangingConfig_e RangingConfig = HIGH_ACCURACY; //HIGH_ACCURACY;		//LONG_RANGE;
+  XWL55_WLE5_53L0X_Init();
+  if ((nDevMask ==0) || (nSensorPresent ==0))
+  {
+	  nSensorPresent = sts_tof_vl53l0x_DetectSensors();					// confirm sensor online
+	  APP_LOG(TS_OFF, VLEVEL_M, "\r\n %u pcs sensor(s) online \r\n", nSensorPresent);
+  }
+
+  //APP_LOG(TS_OFF, VLEVEL_H, "\n\n nDevMask=%02X  nSensorPresent = %02x \n\n", nDevMask, nSensorPresent);
+
+#ifdef	TOF_3
+  sts_tof_distance_data[2] = 0;
+#endif
+
+  if (nSensorPresent > 0)
+  {
+	  // RangingConfig == HIGH ACCURACY, LONG RANGE, HIGH SPEED
+	  sts_tof_vl53l0x_SetupSingleShot(RangingConfig);
+
+	  sensor_data_ready = 0 ;
+	  //for (i=0; i< MAX_TOF_COUNT; i++)
+	  for (i=0; i< nSensorPresent; i++)
+	  {
+		  //APP_LOG(TS_OFF, VLEVEL_H, "\n\n i=%u  Present=%u DevAdd=%02x \n", i, VL53L0XDevs[i].Present, VL53L0XDevs[i].I2cDevAddr);
+		  if (VL53L0XDevs[i].Present ==1)
+		  {
+			uint8_t rep=0;
+			do {
+//				rep++;
+				status = VL53L0X_PerformSingleRangingMeasurement(&VL53L0XDevs[i], &RangingMeasurementData);
+				if (status ==0)
+				{
+					sts_tof_vl53l0x_Sensor_SetNewRange(&VL53L0XDevs[i],&RangingMeasurementData);
+					if( RangingMeasurementData.RangeStatus == 0 )
+					{
+						sts_tof_distance_data[i] = (int)VL53L0XDevs[i].LeakyRange;
+						nDevMask |= (1 << i);
+						sensor_data_ready |= 1<<i;
+					}  else
+					{
+						//HandleError(ERR_DEMO_RANGE_ONE);
+						APP_LOG(TS_OFF, VLEVEL_H,"\r\n#%u sensor   ERR code = %04u\r\n",i, ERR_DEMO_RANGE_ONE);
+					}
+					// ##########     two conditions
+					// ##########     1) return status ==0,
+					// ##########     2) and ranging status for valid ranging value !!!!!!!!!!!!!!!!!
+				}
+
+				HAL_Delay(1);
+
+				} while ((RangingMeasurementData.RangeStatus != 0)&&(rep++ < 10));
+				sts_tof_distance_data[i] = (RangingMeasurementData.RangeStatus!=0)?STS_MAX_L0_RANGE:VL53L0XDevs[i].LeakyRange;
+		  }
+
+		    HAL_Delay(30);
+	   }  // for i < MAX_TOF_COUNT
+
+	   if (sensor_data_ready != 0)
+	   {
+	    	  APP_LOG(TS_OFF, VLEVEL_M, "\r\n## Measured Range: \r\nTOF #0 = %4u mm, \r\nTOF #1 = %4u mm, \r\nTOF #2 = %4u mm\r\n",
+				  (int)sts_tof_distance_data[0],(int)sts_tof_distance_data[1],(int)sts_tof_distance_data[2]);
+	   }
+
+  } else {
+	  // nSensorPresent >0
+	  sts_tof_distance_data[0] = STS_MAX_L0_RANGE;
+	  sts_tof_distance_data[1] = STS_MAX_L0_RANGE;
+	  sts_tof_distance_data[2] = STS_MAX_L0_RANGE;
+	  APP_LOG(TS_OFF, VLEVEL_H, "\n\n APP_LOG   no ToF sensor online \n\n");
+  }
+
+  // reset for next ranging
+  nDevMask = 0;
+  nSensorPresent = 0;
+}
+
+void STS_RR_Sensor_Read(sts_tof_range_data_t *sts_rr_sensor_data)
+{
+	sts_rr_sensor_data->tof_1_distance_mm = sts_tof_distance_data[0];
+	sts_rr_sensor_data->tof_2_distance_mm = sts_tof_distance_data[1];
+	sts_rr_sensor_data->tof_3_distance_mm = sts_tof_distance_data[2];
+}
+
+void STS_Prepare_Packet_Data(void)
+{
+	//AppData.Buffer = 0x0;
+	//AppData.BufferSize = 0x0;
+}
+
+/* USER CODE BEGIN 4 */
+
+/* USER CODE END 4 */
+
+#endif
+/**
+  * @}
+  */ 
+
+/**
+  * @}
+*/ 
+
+/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/STS/TOF/vl53l0x/vl53l0x_api.c b/STS/TOF/vl53l0x/vl53l0x_api.c
index 0163f73..8a80095 100644
--- a/STS/TOF/vl53l0x/vl53l0x_api.c
+++ b/STS/TOF/vl53l0x/vl53l0x_api.c
@@ -1,3035 +1,3035 @@
-/*******************************************************************************
- Copyright � 2016, STMicroelectronics International N.V.
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
- * 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.
- * 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, FITNESS FOR A PARTICULAR PURPOSE, AND
- NON-INFRINGEMENT OF INTELLECTUAL PROPERTY RIGHTS ARE DISCLAIMED.
- IN NO EVENT SHALL STMICROELECTRONICS INTERNATIONAL N.V. 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 "vl53l0x_api.h"
-#include "vl53l0x_tuning.h"
-#include "vl53l0x_interrupt_threshold_settings.h"
-#include "vl53l0x_api_core.h"
-#include "vl53l0x_api_calibration.h"
-#include "vl53l0x_api_strings.h"
-
-#ifndef __KERNEL__
-#include <stdlib.h>
-#endif
-#define LOG_FUNCTION_START(fmt, ...) \
-	_LOG_FUNCTION_START(TRACE_MODULE_API, fmt, ##__VA_ARGS__)
-#define LOG_FUNCTION_END(status, ...) \
-	_LOG_FUNCTION_END(TRACE_MODULE_API, status, ##__VA_ARGS__)
-#define LOG_FUNCTION_END_FMT(status, fmt, ...) \
-	_LOG_FUNCTION_END_FMT(TRACE_MODULE_API, status, fmt, ##__VA_ARGS__)
-
-#ifdef VL53L0X_LOG_ENABLE
-#define trace_print(level, ...) trace_print_module_function(TRACE_MODULE_API, \
-	level, TRACE_FUNCTION_NONE, ##__VA_ARGS__)
-#endif
-
-/* Group PAL General Functions */
-
-VL53L0X_Error VL53L0X_GetVersion(VL53L0X_Version_t *pVersion)
-{
-	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
-	LOG_FUNCTION_START("");
-
-	pVersion->major = VL53L0X_IMPLEMENTATION_VER_MAJOR;
-	pVersion->minor = VL53L0X_IMPLEMENTATION_VER_MINOR;
-	pVersion->build = VL53L0X_IMPLEMENTATION_VER_SUB;
-
-	pVersion->revision = VL53L0X_IMPLEMENTATION_VER_REVISION;
-
-	LOG_FUNCTION_END(Status);
-	return Status;
-}
-
-VL53L0X_Error VL53L0X_GetPalSpecVersion(VL53L0X_Version_t *pPalSpecVersion)
-{
-	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
-
-	LOG_FUNCTION_START("");
-
-	pPalSpecVersion->major = VL53L0X_SPECIFICATION_VER_MAJOR;
-	pPalSpecVersion->minor = VL53L0X_SPECIFICATION_VER_MINOR;
-	pPalSpecVersion->build = VL53L0X_SPECIFICATION_VER_SUB;
-
-	pPalSpecVersion->revision = VL53L0X_SPECIFICATION_VER_REVISION;
-
-	LOG_FUNCTION_END(Status);
-	return Status;
-}
-
-VL53L0X_Error VL53L0X_GetProductRevision(VL53L0X_DEV Dev,
-	uint8_t *pProductRevisionMajor, uint8_t *pProductRevisionMinor)
-{
-	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
-	uint8_t revision_id;
-
-	LOG_FUNCTION_START("");
-
-	Status = VL53L0X_RdByte(Dev, VL53L0X_REG_IDENTIFICATION_REVISION_ID,
-		&revision_id);
-	*pProductRevisionMajor = 1;
-	*pProductRevisionMinor = (revision_id & 0xF0) >> 4;
-
-	LOG_FUNCTION_END(Status);
-	return Status;
-
-}
-
-VL53L0X_Error VL53L0X_GetDeviceInfo(VL53L0X_DEV Dev,
-	VL53L0X_DeviceInfo_t *pVL53L0X_DeviceInfo)
-{
-	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
-	LOG_FUNCTION_START("");
-
-	Status = VL53L0X_get_device_info(Dev, pVL53L0X_DeviceInfo);
-
-	LOG_FUNCTION_END(Status);
-	return Status;
-}
-
-VL53L0X_Error VL53L0X_GetDeviceErrorStatus(VL53L0X_DEV Dev,
-	VL53L0X_DeviceError *pDeviceErrorStatus)
-{
-	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
-	uint8_t RangeStatus;
-
-	LOG_FUNCTION_START("");
-
-	Status = VL53L0X_RdByte(Dev, VL53L0X_REG_RESULT_RANGE_STATUS,
-		&RangeStatus);
-
-	*pDeviceErrorStatus = (VL53L0X_DeviceError)((RangeStatus & 0x78) >> 3);
-
-	LOG_FUNCTION_END(Status);
-	return Status;
-}
-
-
-VL53L0X_Error VL53L0X_GetDeviceErrorString(VL53L0X_DeviceError ErrorCode,
-	char *pDeviceErrorString)
-{
-	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
-
-	LOG_FUNCTION_START("");
-
-	Status = VL53L0X_get_device_error_string(ErrorCode, pDeviceErrorString);
-
-	LOG_FUNCTION_END(Status);
-	return Status;
-}
-
-VL53L0X_Error VL53L0X_GetRangeStatusString(uint8_t RangeStatus,
-	char *pRangeStatusString)
-{
-	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
-	LOG_FUNCTION_START("");
-
-	Status = VL53L0X_get_range_status_string(RangeStatus,
-		pRangeStatusString);
-
-	LOG_FUNCTION_END(Status);
-	return Status;
-}
-
-VL53L0X_Error VL53L0X_GetPalErrorString(VL53L0X_Error PalErrorCode,
-	char *pPalErrorString)
-{
-	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
-	LOG_FUNCTION_START("");
-
-	Status = VL53L0X_get_pal_error_string(PalErrorCode, pPalErrorString);
-
-	LOG_FUNCTION_END(Status);
-	return Status;
-}
-
-VL53L0X_Error VL53L0X_GetPalStateString(VL53L0X_State PalStateCode,
-	char *pPalStateString)
-{
-	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
-	LOG_FUNCTION_START("");
-
-	Status = VL53L0X_get_pal_state_string(PalStateCode, pPalStateString);
-
-	LOG_FUNCTION_END(Status);
-	return Status;
-}
-
-VL53L0X_Error VL53L0X_GetPalState(VL53L0X_DEV Dev, VL53L0X_State *pPalState)
-{
-	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
-	LOG_FUNCTION_START("");
-
-	*pPalState = PALDevDataGet(Dev, PalState);
-
-	LOG_FUNCTION_END(Status);
-	return Status;
-}
-
-VL53L0X_Error VL53L0X_SetPowerMode(VL53L0X_DEV Dev, VL53L0X_PowerModes PowerMode)
-{
-	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
-	LOG_FUNCTION_START("");
-
-	/* Only level1 of Power mode exists */
-	if ((PowerMode != VL53L0X_POWERMODE_STANDBY_LEVEL1)
-		&& (PowerMode != VL53L0X_POWERMODE_IDLE_LEVEL1)) {
-		Status = VL53L0X_ERROR_MODE_NOT_SUPPORTED;
-	} else if (PowerMode == VL53L0X_POWERMODE_STANDBY_LEVEL1) {
-		/* set the standby level1 of power mode */
-		Status = VL53L0X_WrByte(Dev, 0x80, 0x00);
-		if (Status == VL53L0X_ERROR_NONE) {
-			/* Set PAL State to standby */
-			PALDevDataSet(Dev, PalState, VL53L0X_STATE_STANDBY);
-			PALDevDataSet(Dev, PowerMode,
-				VL53L0X_POWERMODE_STANDBY_LEVEL1);
-		}
-
-	} else {
-		/* VL53L0X_POWERMODE_IDLE_LEVEL1 */
-		Status = VL53L0X_WrByte(Dev, 0x80, 0x00);
-		if (Status == VL53L0X_ERROR_NONE)
-			Status = VL53L0X_StaticInit(Dev);
-
-		if (Status == VL53L0X_ERROR_NONE)
-			PALDevDataSet(Dev, PowerMode,
-				VL53L0X_POWERMODE_IDLE_LEVEL1);
-
-	}
-
-	LOG_FUNCTION_END(Status);
-	return Status;
-}
-
-VL53L0X_Error VL53L0X_GetPowerMode(VL53L0X_DEV Dev, VL53L0X_PowerModes *pPowerMode)
-{
-	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
-	uint8_t Byte;
-	LOG_FUNCTION_START("");
-
-	/* Only level1 of Power mode exists */
-	Status = VL53L0X_RdByte(Dev, 0x80, &Byte);
-
-	if (Status == VL53L0X_ERROR_NONE) {
-		if (Byte == 1) {
-			PALDevDataSet(Dev, PowerMode,
-				VL53L0X_POWERMODE_IDLE_LEVEL1);
-		} else {
-			PALDevDataSet(Dev, PowerMode,
-				VL53L0X_POWERMODE_STANDBY_LEVEL1);
-		}
-	}
-
-	LOG_FUNCTION_END(Status);
-	return Status;
-}
-
-VL53L0X_Error VL53L0X_SetOffsetCalibrationDataMicroMeter(VL53L0X_DEV Dev,
-	int32_t OffsetCalibrationDataMicroMeter)
-{
-	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
-	LOG_FUNCTION_START("");
-
-	Status = VL53L0X_set_offset_calibration_data_micro_meter(Dev,
-		OffsetCalibrationDataMicroMeter);
-
-	LOG_FUNCTION_END(Status);
-	return Status;
-}
-
-VL53L0X_Error VL53L0X_GetOffsetCalibrationDataMicroMeter(VL53L0X_DEV Dev,
-	int32_t *pOffsetCalibrationDataMicroMeter)
-{
-	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
-	LOG_FUNCTION_START("");
-
-	Status = VL53L0X_get_offset_calibration_data_micro_meter(Dev,
-		pOffsetCalibrationDataMicroMeter);
-
-	LOG_FUNCTION_END(Status);
-	return Status;
-}
-
-VL53L0X_Error VL53L0X_SetLinearityCorrectiveGain(VL53L0X_DEV Dev,
-	int16_t LinearityCorrectiveGain)
-{
-	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
-	LOG_FUNCTION_START("");
-
-	if ((LinearityCorrectiveGain < 0) || (LinearityCorrectiveGain > 1000))
-		Status = VL53L0X_ERROR_INVALID_PARAMS;
-	else {
-		PALDevDataSet(Dev, LinearityCorrectiveGain,
-			LinearityCorrectiveGain);
-
-		if (LinearityCorrectiveGain != 1000) {
-			/* Disable FW Xtalk */
-			Status = VL53L0X_WrWord(Dev,
-			VL53L0X_REG_CROSSTALK_COMPENSATION_PEAK_RATE_MCPS, 0);
-		}
-	}
-
-	LOG_FUNCTION_END(Status);
-	return Status;
-}
-
-VL53L0X_Error VL53L0X_GetLinearityCorrectiveGain(VL53L0X_DEV Dev,
-	uint16_t *pLinearityCorrectiveGain)
-{
-	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
-	LOG_FUNCTION_START("");
-
-	*pLinearityCorrectiveGain = PALDevDataGet(Dev, LinearityCorrectiveGain);
-
-	LOG_FUNCTION_END(Status);
-	return Status;
-}
-
-VL53L0X_Error VL53L0X_SetGroupParamHold(VL53L0X_DEV Dev, uint8_t GroupParamHold)
-{
-	VL53L0X_Error Status = VL53L0X_ERROR_NOT_IMPLEMENTED;
-	LOG_FUNCTION_START("");
-
-	/* not implemented on VL53L0X */
-
-	LOG_FUNCTION_END(Status);
-	return Status;
-}
-
-VL53L0X_Error VL53L0X_GetUpperLimitMilliMeter(VL53L0X_DEV Dev,
-	uint16_t *pUpperLimitMilliMeter)
-{
-	VL53L0X_Error Status = VL53L0X_ERROR_NOT_IMPLEMENTED;
-	LOG_FUNCTION_START("");
-
-	/* not implemented on VL53L0X */
-
-	LOG_FUNCTION_END(Status);
-	return Status;
-}
-
-VL53L0X_Error VL53L0X_GetTotalSignalRate(VL53L0X_DEV Dev,
-	FixPoint1616_t *pTotalSignalRate)
-{
-	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
-	VL53L0X_RangingMeasurementData_t LastRangeDataBuffer;
-
-	LOG_FUNCTION_START("");
-
-	LastRangeDataBuffer = PALDevDataGet(Dev, LastRangeMeasure);
-
-	Status = VL53L0X_get_total_signal_rate(
-		Dev, &LastRangeDataBuffer, pTotalSignalRate);
-
-	LOG_FUNCTION_END(Status);
-	return Status;
-}
-
-/* End Group PAL General Functions */
-
-/* Group PAL Init Functions */
-VL53L0X_Error VL53L0X_SetDeviceAddress(VL53L0X_DEV Dev, uint8_t DeviceAddress)
-{
-	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
-	LOG_FUNCTION_START("");
-
-	Status = VL53L0X_WrByte(Dev, VL53L0X_REG_I2C_SLAVE_DEVICE_ADDRESS,
-		DeviceAddress / 2);
-
-	LOG_FUNCTION_END(Status);
-	return Status;
-}
-
-VL53L0X_Error VL53L0X_DataInit(VL53L0X_DEV Dev)
-{
-	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
-	VL53L0X_DeviceParameters_t CurrentParameters;
-	int i;
-	uint8_t StopVariable;
-
-	LOG_FUNCTION_START("");
-
-	/* by default the I2C is running at 1V8 if you want to change it you
-	 * need to include this define at compilation level. */
-#ifdef USE_I2C_2V8
-	Status = VL53L0X_UpdateByte(Dev,
-		VL53L0X_REG_VHV_CONFIG_PAD_SCL_SDA__EXTSUP_HV,
-		0xFE,
-		0x01);
-#endif
-
-	/* Set I2C standard mode */
-	if (Status == VL53L0X_ERROR_NONE)
-		Status = VL53L0X_WrByte(Dev, 0x88, 0x00);
-
-	VL53L0X_SETDEVICESPECIFICPARAMETER(Dev, ReadDataFromDeviceDone, 0);
-
-#ifdef USE_IQC_STATION
-	if (Status == VL53L0X_ERROR_NONE)
-		Status = VL53L0X_apply_offset_adjustment(Dev);
-#endif
-
-	/* Default value is 1000 for Linearity Corrective Gain */
-	PALDevDataSet(Dev, LinearityCorrectiveGain, 1000);
-
-	/* Dmax default Parameter */
-	PALDevDataSet(Dev, DmaxCalRangeMilliMeter, 400);
-	PALDevDataSet(Dev, DmaxCalSignalRateRtnMegaCps,
-		(FixPoint1616_t)((0x00016B85))); /* 1.42 No Cover Glass*/
-
-	/* Set Default static parameters
-	 *set first temporary values 9.44MHz * 65536 = 618660 */
-	VL53L0X_SETDEVICESPECIFICPARAMETER(Dev, OscFrequencyMHz, 618660);
-
-	/* Set Default XTalkCompensationRateMegaCps to 0  */
-	VL53L0X_SETPARAMETERFIELD(Dev, XTalkCompensationRateMegaCps, 0);
-
-	/* Get default parameters */
-	Status = VL53L0X_GetDeviceParameters(Dev, &CurrentParameters);
-	if (Status == VL53L0X_ERROR_NONE) {
-		/* initialize PAL values */
-		CurrentParameters.DeviceMode = VL53L0X_DEVICEMODE_SINGLE_RANGING;
-		CurrentParameters.HistogramMode = VL53L0X_HISTOGRAMMODE_DISABLED;
-		PALDevDataSet(Dev, CurrentParameters, CurrentParameters);
-	}
-
-	/* Sigma estimator variable */
-	PALDevDataSet(Dev, SigmaEstRefArray, 100);
-	PALDevDataSet(Dev, SigmaEstEffPulseWidth, 900);
-	PALDevDataSet(Dev, SigmaEstEffAmbWidth, 500);
-	PALDevDataSet(Dev, targetRefRate, 0x0A00); /* 20 MCPS in 9:7 format */
-
-	/* Use internal default settings */
-	PALDevDataSet(Dev, UseInternalTuningSettings, 1);
-
-	Status |= VL53L0X_WrByte(Dev, 0x80, 0x01);
-	Status |= VL53L0X_WrByte(Dev, 0xFF, 0x01);
-	Status |= VL53L0X_WrByte(Dev, 0x00, 0x00);
-	Status |= VL53L0X_RdByte(Dev, 0x91, &StopVariable);
-	PALDevDataSet(Dev, StopVariable, StopVariable);
-	Status |= VL53L0X_WrByte(Dev, 0x00, 0x01);
-	Status |= VL53L0X_WrByte(Dev, 0xFF, 0x00);
-	Status |= VL53L0X_WrByte(Dev, 0x80, 0x00);
-
-	/* Enable all check */
-	for (i = 0; i < VL53L0X_CHECKENABLE_NUMBER_OF_CHECKS; i++) {
-		if (Status == VL53L0X_ERROR_NONE)
-			Status |= VL53L0X_SetLimitCheckEnable(Dev, i, 1);
-		else
-			break;
-
-	}
-
-	/* Disable the following checks */
-	if (Status == VL53L0X_ERROR_NONE)
-		Status = VL53L0X_SetLimitCheckEnable(Dev,
-			VL53L0X_CHECKENABLE_SIGNAL_REF_CLIP, 0);
-
-	if (Status == VL53L0X_ERROR_NONE)
-		Status = VL53L0X_SetLimitCheckEnable(Dev,
-			VL53L0X_CHECKENABLE_RANGE_IGNORE_THRESHOLD, 0);
-
-	if (Status == VL53L0X_ERROR_NONE)
-		Status = VL53L0X_SetLimitCheckEnable(Dev,
-			VL53L0X_CHECKENABLE_SIGNAL_RATE_MSRC, 0);
-
-	if (Status == VL53L0X_ERROR_NONE)
-		Status = VL53L0X_SetLimitCheckEnable(Dev,
-			VL53L0X_CHECKENABLE_SIGNAL_RATE_PRE_RANGE, 0);
-
-	/* Limit default values */
-	if (Status == VL53L0X_ERROR_NONE) {
-		Status = VL53L0X_SetLimitCheckValue(Dev,
-			VL53L0X_CHECKENABLE_SIGMA_FINAL_RANGE,
-				(FixPoint1616_t)(18 * 65536));
-	}
-	if (Status == VL53L0X_ERROR_NONE) {
-		Status = VL53L0X_SetLimitCheckValue(Dev,
-			VL53L0X_CHECKENABLE_SIGNAL_RATE_FINAL_RANGE,
-				(FixPoint1616_t)(25 * 65536 / 100));
-				/* 0.25 * 65536 */
-	}
-
-	if (Status == VL53L0X_ERROR_NONE) {
-		Status = VL53L0X_SetLimitCheckValue(Dev,
-			VL53L0X_CHECKENABLE_SIGNAL_REF_CLIP,
-				(FixPoint1616_t)(35 * 65536));
-	}
-
-	if (Status == VL53L0X_ERROR_NONE) {
-		Status = VL53L0X_SetLimitCheckValue(Dev,
-			VL53L0X_CHECKENABLE_RANGE_IGNORE_THRESHOLD,
-				(FixPoint1616_t)(0 * 65536));
-	}
-
-	if (Status == VL53L0X_ERROR_NONE) {
-
-		PALDevDataSet(Dev, SequenceConfig, 0xFF);
-		Status = VL53L0X_WrByte(Dev, VL53L0X_REG_SYSTEM_SEQUENCE_CONFIG,
-			0xFF);
-
-		/* Set PAL state to tell that we are waiting for call to
-		 * VL53L0X_StaticInit */
-		PALDevDataSet(Dev, PalState, VL53L0X_STATE_WAIT_STATICINIT);
-	}
-
-	if (Status == VL53L0X_ERROR_NONE)
-		VL53L0X_SETDEVICESPECIFICPARAMETER(Dev, RefSpadsInitialised, 0);
-
-
-	LOG_FUNCTION_END(Status);
-	return Status;
-}
-
-VL53L0X_Error VL53L0X_SetTuningSettingBuffer(VL53L0X_DEV Dev,
-	uint8_t *pTuningSettingBuffer, uint8_t UseInternalTuningSettings)
-{
-	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
-
-	LOG_FUNCTION_START("");
-
-	if (UseInternalTuningSettings == 1) {
-		/* Force use internal settings */
-		PALDevDataSet(Dev, UseInternalTuningSettings, 1);
-	} else {
-
-		/* check that the first byte is not 0 */
-		if (*pTuningSettingBuffer != 0) {
-			PALDevDataSet(Dev, pTuningSettingsPointer,
-				pTuningSettingBuffer);
-			PALDevDataSet(Dev, UseInternalTuningSettings, 0);
-
-		} else {
-			Status = VL53L0X_ERROR_INVALID_PARAMS;
-		}
-	}
-
-	LOG_FUNCTION_END(Status);
-	return Status;
-}
-
-VL53L0X_Error VL53L0X_GetTuningSettingBuffer(VL53L0X_DEV Dev,
-	uint8_t **ppTuningSettingBuffer, uint8_t *pUseInternalTuningSettings)
-{
-	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
-
-	LOG_FUNCTION_START("");
-
-	*ppTuningSettingBuffer = PALDevDataGet(Dev, pTuningSettingsPointer);
-	*pUseInternalTuningSettings = PALDevDataGet(Dev,
-		UseInternalTuningSettings);
-
-	LOG_FUNCTION_END(Status);
-	return Status;
-}
-
-VL53L0X_Error VL53L0X_StaticInit(VL53L0X_DEV Dev)
-{
-	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
-	VL53L0X_DeviceParameters_t CurrentParameters = {0};
-	uint8_t *pTuningSettingBuffer;
-	uint16_t tempword = 0;
-	uint8_t tempbyte = 0;
-	uint8_t UseInternalTuningSettings = 0;
-	uint32_t count = 0;
-	uint8_t isApertureSpads = 0;
-	uint32_t refSpadCount = 0;
-	uint8_t ApertureSpads = 0;
-	uint8_t vcselPulsePeriodPCLK;
-	uint32_t seqTimeoutMicroSecs;
-
-	LOG_FUNCTION_START("");
-
-	Status = VL53L0X_get_info_from_device(Dev, 1);
-
-	/* set the ref spad from NVM */
-	count	= (uint32_t)VL53L0X_GETDEVICESPECIFICPARAMETER(Dev,
-		ReferenceSpadCount);
-	ApertureSpads = VL53L0X_GETDEVICESPECIFICPARAMETER(Dev,
-		ReferenceSpadType);
-
-	/* NVM value invalid */
-	if ((ApertureSpads > 1) ||
-		((ApertureSpads == 1) && (count > 32)) ||
-		((ApertureSpads == 0) && (count > 12)))
-		Status = VL53L0X_perform_ref_spad_management(Dev, &refSpadCount,
-			&isApertureSpads);
-	else
-		Status = VL53L0X_set_reference_spads(Dev, count, ApertureSpads);
-
-
-	/* Initialize tuning settings buffer to prevent compiler warning. */
-	pTuningSettingBuffer = DefaultTuningSettings;
-
-	if (Status == VL53L0X_ERROR_NONE) {
-		UseInternalTuningSettings = PALDevDataGet(Dev,
-			UseInternalTuningSettings);
-
-		if (UseInternalTuningSettings == 0)
-			pTuningSettingBuffer = PALDevDataGet(Dev,
-				pTuningSettingsPointer);
-		else
-			pTuningSettingBuffer = DefaultTuningSettings;
-
-	}
-
-	if (Status == VL53L0X_ERROR_NONE)
-		Status = VL53L0X_load_tuning_settings(Dev, pTuningSettingBuffer);
-
-
-	/* Set interrupt config to new sample ready */
-	if (Status == VL53L0X_ERROR_NONE) {
-		Status = VL53L0X_SetGpioConfig(Dev, 0, 0,
-		VL53L0X_REG_SYSTEM_INTERRUPT_GPIO_NEW_SAMPLE_READY,
-		VL53L0X_INTERRUPTPOLARITY_LOW);
-	}
-
-	if (Status == VL53L0X_ERROR_NONE) {
-		Status = VL53L0X_WrByte(Dev, 0xFF, 0x01);
-		Status |= VL53L0X_RdWord(Dev, 0x84, &tempword);
-		Status |= VL53L0X_WrByte(Dev, 0xFF, 0x00);
-	}
-
-	if (Status == VL53L0X_ERROR_NONE) {
-		VL53L0X_SETDEVICESPECIFICPARAMETER(Dev, OscFrequencyMHz,
-			VL53L0X_FIXPOINT412TOFIXPOINT1616(tempword));
-	}
-
-	/* After static init, some device parameters may be changed,
-	 * so update them */
-	if (Status == VL53L0X_ERROR_NONE)
-		Status = VL53L0X_GetDeviceParameters(Dev, &CurrentParameters);
-
-
-	if (Status == VL53L0X_ERROR_NONE) {
-		Status = VL53L0X_GetFractionEnable(Dev, &tempbyte);
-		if (Status == VL53L0X_ERROR_NONE)
-			PALDevDataSet(Dev, RangeFractionalEnable, tempbyte);
-
-	}
-
-	if (Status == VL53L0X_ERROR_NONE)
-		PALDevDataSet(Dev, CurrentParameters, CurrentParameters);
-
-
-	/* read the sequence config and save it */
-	if (Status == VL53L0X_ERROR_NONE) {
-		Status = VL53L0X_RdByte(Dev,
-		VL53L0X_REG_SYSTEM_SEQUENCE_CONFIG, &tempbyte);
-		if (Status == VL53L0X_ERROR_NONE)
-			PALDevDataSet(Dev, SequenceConfig, tempbyte);
-
-	}
-
-	/* Disable MSRC and TCC by default */
-	if (Status == VL53L0X_ERROR_NONE)
-		Status = VL53L0X_SetSequenceStepEnable(Dev,
-					VL53L0X_SEQUENCESTEP_TCC, 0);
-
-
-	if (Status == VL53L0X_ERROR_NONE)
-		Status = VL53L0X_SetSequenceStepEnable(Dev,
-		VL53L0X_SEQUENCESTEP_MSRC, 0);
-
-
-	/* Set PAL State to standby */
-	if (Status == VL53L0X_ERROR_NONE)
-		PALDevDataSet(Dev, PalState, VL53L0X_STATE_IDLE);
-
-
-
-	/* Store pre-range vcsel period */
-	if (Status == VL53L0X_ERROR_NONE) {
-		Status = VL53L0X_GetVcselPulsePeriod(
-			Dev,
-			VL53L0X_VCSEL_PERIOD_PRE_RANGE,
-			&vcselPulsePeriodPCLK);
-	}
-
-	if (Status == VL53L0X_ERROR_NONE) {
-			VL53L0X_SETDEVICESPECIFICPARAMETER(
-				Dev,
-				PreRangeVcselPulsePeriod,
-				vcselPulsePeriodPCLK);
-	}
-
-	/* Store final-range vcsel period */
-	if (Status == VL53L0X_ERROR_NONE) {
-		Status = VL53L0X_GetVcselPulsePeriod(
-			Dev,
-			VL53L0X_VCSEL_PERIOD_FINAL_RANGE,
-			&vcselPulsePeriodPCLK);
-	}
-
-	if (Status == VL53L0X_ERROR_NONE) {
-			VL53L0X_SETDEVICESPECIFICPARAMETER(
-				Dev,
-				FinalRangeVcselPulsePeriod,
-				vcselPulsePeriodPCLK);
-	}
-
-	/* Store pre-range timeout */
-	if (Status == VL53L0X_ERROR_NONE) {
-		Status = get_sequence_step_timeout(
-			Dev,
-			VL53L0X_SEQUENCESTEP_PRE_RANGE,
-			&seqTimeoutMicroSecs);
-	}
-
-	if (Status == VL53L0X_ERROR_NONE) {
-		VL53L0X_SETDEVICESPECIFICPARAMETER(
-			Dev,
-			PreRangeTimeoutMicroSecs,
-			seqTimeoutMicroSecs);
-	}
-
-	/* Store final-range timeout */
-	if (Status == VL53L0X_ERROR_NONE) {
-		Status = get_sequence_step_timeout(
-			Dev,
-			VL53L0X_SEQUENCESTEP_FINAL_RANGE,
-			&seqTimeoutMicroSecs);
-	}
-
-	if (Status == VL53L0X_ERROR_NONE) {
-		VL53L0X_SETDEVICESPECIFICPARAMETER(
-			Dev,
-			FinalRangeTimeoutMicroSecs,
-			seqTimeoutMicroSecs);
-	}
-
-	LOG_FUNCTION_END(Status);
-	return Status;
-}
-
-VL53L0X_Error VL53L0X_WaitDeviceBooted(VL53L0X_DEV Dev)
-{
-	VL53L0X_Error Status = VL53L0X_ERROR_NOT_IMPLEMENTED;
-	LOG_FUNCTION_START("");
-
-	/* not implemented on VL53L0X */
-
-	LOG_FUNCTION_END(Status);
-	return Status;
-}
-
-VL53L0X_Error VL53L0X_ResetDevice(VL53L0X_DEV Dev)
-{
-	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
-	uint8_t Byte;
-	LOG_FUNCTION_START("");
-
-	/* Set reset bit */
-	Status = VL53L0X_WrByte(Dev, VL53L0X_REG_SOFT_RESET_GO2_SOFT_RESET_N,
-		0x00);
-
-	/* Wait for some time */
-	if (Status == VL53L0X_ERROR_NONE) {
-		do {
-			Status = VL53L0X_RdByte(Dev,
-			VL53L0X_REG_IDENTIFICATION_MODEL_ID, &Byte);
-		} while (Byte != 0x00);
-	}
-
-	VL53L0X_PollingDelay(Dev);
-
-	/* Release reset */
-	Status = VL53L0X_WrByte(Dev, VL53L0X_REG_SOFT_RESET_GO2_SOFT_RESET_N,
-		0x01);
-
-	/* Wait until correct boot-up of the device */
-	if (Status == VL53L0X_ERROR_NONE) {
-		do {
-			Status = VL53L0X_RdByte(Dev,
-			VL53L0X_REG_IDENTIFICATION_MODEL_ID, &Byte);
-		} while (Byte == 0x00);
-	}
-
-	VL53L0X_PollingDelay(Dev);
-
-	/* Set PAL State to VL53L0X_STATE_POWERDOWN */
-	if (Status == VL53L0X_ERROR_NONE)
-		PALDevDataSet(Dev, PalState, VL53L0X_STATE_POWERDOWN);
-
-
-	LOG_FUNCTION_END(Status);
-	return Status;
-}
-/* End Group PAL Init Functions */
-
-/* Group PAL Parameters Functions */
-VL53L0X_Error VL53L0X_SetDeviceParameters(VL53L0X_DEV Dev,
-	const VL53L0X_DeviceParameters_t *pDeviceParameters)
-{
-	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
-	int i;
-	LOG_FUNCTION_START("");
-	Status = VL53L0X_SetDeviceMode(Dev, pDeviceParameters->DeviceMode);
-
-	if (Status == VL53L0X_ERROR_NONE)
-		Status = VL53L0X_SetInterMeasurementPeriodMilliSeconds(Dev,
-			pDeviceParameters->InterMeasurementPeriodMilliSeconds);
-
-
-	if (Status == VL53L0X_ERROR_NONE)
-		Status = VL53L0X_SetXTalkCompensationRateMegaCps(Dev,
-			pDeviceParameters->XTalkCompensationRateMegaCps);
-
-
-	if (Status == VL53L0X_ERROR_NONE)
-		Status = VL53L0X_SetOffsetCalibrationDataMicroMeter(Dev,
-			pDeviceParameters->RangeOffsetMicroMeters);
-
-
-	for (i = 0; i < VL53L0X_CHECKENABLE_NUMBER_OF_CHECKS; i++) {
-		if (Status == VL53L0X_ERROR_NONE)
-			Status |= VL53L0X_SetLimitCheckEnable(Dev, i,
-				pDeviceParameters->LimitChecksEnable[i]);
-		else
-			break;
-
-		if (Status == VL53L0X_ERROR_NONE)
-			Status |= VL53L0X_SetLimitCheckValue(Dev, i,
-				pDeviceParameters->LimitChecksValue[i]);
-		else
-			break;
-
-	}
-
-	if (Status == VL53L0X_ERROR_NONE)
-		Status = VL53L0X_SetWrapAroundCheckEnable(Dev,
-			pDeviceParameters->WrapAroundCheckEnable);
-
-	if (Status == VL53L0X_ERROR_NONE)
-		Status = VL53L0X_SetMeasurementTimingBudgetMicroSeconds(Dev,
-			pDeviceParameters->MeasurementTimingBudgetMicroSeconds);
-
-
-	LOG_FUNCTION_END(Status);
-	return Status;
-}
-
-VL53L0X_Error VL53L0X_GetDeviceParameters(VL53L0X_DEV Dev,
-	VL53L0X_DeviceParameters_t *pDeviceParameters)
-{
-	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
-	int i;
-
-	LOG_FUNCTION_START("");
-
-	Status = VL53L0X_GetDeviceMode(Dev, &(pDeviceParameters->DeviceMode));
-
-	if (Status == VL53L0X_ERROR_NONE)
-		Status = VL53L0X_GetInterMeasurementPeriodMilliSeconds(Dev,
-		&(pDeviceParameters->InterMeasurementPeriodMilliSeconds));
-
-
-	if (Status == VL53L0X_ERROR_NONE)
-		pDeviceParameters->XTalkCompensationEnable = 0;
-
-	if (Status == VL53L0X_ERROR_NONE)
-		Status = VL53L0X_GetXTalkCompensationRateMegaCps(Dev,
-			&(pDeviceParameters->XTalkCompensationRateMegaCps));
-
-
-	if (Status == VL53L0X_ERROR_NONE)
-		Status = VL53L0X_GetOffsetCalibrationDataMicroMeter(Dev,
-			&(pDeviceParameters->RangeOffsetMicroMeters));
-
-
-	if (Status == VL53L0X_ERROR_NONE) {
-		for (i = 0; i < VL53L0X_CHECKENABLE_NUMBER_OF_CHECKS; i++) {
-			/* get first the values, then the enables.
-			 * VL53L0X_GetLimitCheckValue will modify the enable
-			 * flags
-			 */
-			if (Status == VL53L0X_ERROR_NONE) {
-				Status |= VL53L0X_GetLimitCheckValue(Dev, i,
-				&(pDeviceParameters->LimitChecksValue[i]));
-			} else {
-				break;
-			}
-			if (Status == VL53L0X_ERROR_NONE) {
-				Status |= VL53L0X_GetLimitCheckEnable(Dev, i,
-				&(pDeviceParameters->LimitChecksEnable[i]));
-			} else {
-				break;
-			}
-		}
-	}
-
-	if (Status == VL53L0X_ERROR_NONE) {
-		Status = VL53L0X_GetWrapAroundCheckEnable(Dev,
-			&(pDeviceParameters->WrapAroundCheckEnable));
-	}
-
-	/* Need to be done at the end as it uses VCSELPulsePeriod */
-	if (Status == VL53L0X_ERROR_NONE) {
-		Status = VL53L0X_GetMeasurementTimingBudgetMicroSeconds(Dev,
-		&(pDeviceParameters->MeasurementTimingBudgetMicroSeconds));
-	}
-
-	LOG_FUNCTION_END(Status);
-	return Status;
-}
-
-VL53L0X_Error VL53L0X_SetDeviceMode(VL53L0X_DEV Dev, VL53L0X_DeviceModes DeviceMode)
-{
-	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
-
-	LOG_FUNCTION_START("%d", (int)DeviceMode);
-
-	switch (DeviceMode) {
-	case VL53L0X_DEVICEMODE_SINGLE_RANGING:
-	case VL53L0X_DEVICEMODE_CONTINUOUS_RANGING:
-	case VL53L0X_DEVICEMODE_CONTINUOUS_TIMED_RANGING:
-	case VL53L0X_DEVICEMODE_GPIO_DRIVE:
-	case VL53L0X_DEVICEMODE_GPIO_OSC:
-		/* Supported modes */
-		VL53L0X_SETPARAMETERFIELD(Dev, DeviceMode, DeviceMode);
-		break;
-	default:
-		/* Unsupported mode */
-		Status = VL53L0X_ERROR_MODE_NOT_SUPPORTED;
-	}
-
-	LOG_FUNCTION_END(Status);
-	return Status;
-}
-
-VL53L0X_Error VL53L0X_GetDeviceMode(VL53L0X_DEV Dev,
-	VL53L0X_DeviceModes *pDeviceMode)
-{
-	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
-	LOG_FUNCTION_START("");
-
-	VL53L0X_GETPARAMETERFIELD(Dev, DeviceMode, *pDeviceMode);
-
-	LOG_FUNCTION_END(Status);
-	return Status;
-}
-
-VL53L0X_Error VL53L0X_SetRangeFractionEnable(VL53L0X_DEV Dev,	uint8_t Enable)
-{
-	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
-
-	LOG_FUNCTION_START("%d", (int)Enable);
-
-	Status = VL53L0X_WrByte(Dev, VL53L0X_REG_SYSTEM_RANGE_CONFIG, Enable);
-
-	if (Status == VL53L0X_ERROR_NONE)
-		PALDevDataSet(Dev, RangeFractionalEnable, Enable);
-
-	LOG_FUNCTION_END(Status);
-	return Status;
-}
-
-VL53L0X_Error VL53L0X_GetFractionEnable(VL53L0X_DEV Dev, uint8_t *pEnabled)
-{
-	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
-	LOG_FUNCTION_START("");
-
-	Status = VL53L0X_RdByte(Dev, VL53L0X_REG_SYSTEM_RANGE_CONFIG, pEnabled);
-
-	if (Status == VL53L0X_ERROR_NONE)
-		*pEnabled = (*pEnabled & 1);
-
-	LOG_FUNCTION_END(Status);
-	return Status;
-}
-
-VL53L0X_Error VL53L0X_SetHistogramMode(VL53L0X_DEV Dev,
-	VL53L0X_HistogramModes HistogramMode)
-{
-	VL53L0X_Error Status = VL53L0X_ERROR_NOT_IMPLEMENTED;
-	LOG_FUNCTION_START("");
-
-	/* not implemented on VL53L0X */
-
-	LOG_FUNCTION_END(Status);
-	return Status;
-}
-
-VL53L0X_Error VL53L0X_GetHistogramMode(VL53L0X_DEV Dev,
-	VL53L0X_HistogramModes *pHistogramMode)
-{
-	VL53L0X_Error Status = VL53L0X_ERROR_NOT_IMPLEMENTED;
-	LOG_FUNCTION_START("");
-
-	/* not implemented on VL53L0X */
-
-	LOG_FUNCTION_END(Status);
-	return Status;
-}
-
-VL53L0X_Error VL53L0X_SetMeasurementTimingBudgetMicroSeconds(VL53L0X_DEV Dev,
-	uint32_t MeasurementTimingBudgetMicroSeconds)
-{
-	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
-	LOG_FUNCTION_START("");
-
-	Status = VL53L0X_set_measurement_timing_budget_micro_seconds(Dev,
-		MeasurementTimingBudgetMicroSeconds);
-
-	LOG_FUNCTION_END(Status);
-
-	return Status;
-}
-
-VL53L0X_Error VL53L0X_GetMeasurementTimingBudgetMicroSeconds(VL53L0X_DEV Dev,
-	uint32_t *pMeasurementTimingBudgetMicroSeconds)
-{
-	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
-	LOG_FUNCTION_START("");
-
-	Status = VL53L0X_get_measurement_timing_budget_micro_seconds(Dev,
-		pMeasurementTimingBudgetMicroSeconds);
-
-	LOG_FUNCTION_END(Status);
-	return Status;
-}
-
-VL53L0X_Error VL53L0X_SetVcselPulsePeriod(VL53L0X_DEV Dev,
-	VL53L0X_VcselPeriod VcselPeriodType, uint8_t VCSELPulsePeriodPCLK)
-{
-	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
-	LOG_FUNCTION_START("");
-
-	Status = VL53L0X_set_vcsel_pulse_period(Dev, VcselPeriodType,
-		VCSELPulsePeriodPCLK);
-
-	LOG_FUNCTION_END(Status);
-	return Status;
-}
-
-VL53L0X_Error VL53L0X_GetVcselPulsePeriod(VL53L0X_DEV Dev,
-	VL53L0X_VcselPeriod VcselPeriodType, uint8_t *pVCSELPulsePeriodPCLK)
-{
-	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
-	LOG_FUNCTION_START("");
-
-	Status = VL53L0X_get_vcsel_pulse_period(Dev, VcselPeriodType,
-		pVCSELPulsePeriodPCLK);
-
-	LOG_FUNCTION_END(Status);
-	return Status;
-}
-
-VL53L0X_Error VL53L0X_SetSequenceStepEnable(VL53L0X_DEV Dev,
-	VL53L0X_SequenceStepId SequenceStepId, uint8_t SequenceStepEnabled)
-{
-	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
-	uint8_t SequenceConfig = 0;
-	uint8_t SequenceConfigNew = 0;
-	uint32_t MeasurementTimingBudgetMicroSeconds;
-	LOG_FUNCTION_START("");
-
-	Status = VL53L0X_RdByte(Dev, VL53L0X_REG_SYSTEM_SEQUENCE_CONFIG,
-		&SequenceConfig);
-
-	SequenceConfigNew = SequenceConfig;
-
-	if (Status == VL53L0X_ERROR_NONE) {
-		if (SequenceStepEnabled == 1) {
-
-			/* Enable requested sequence step
-			 */
-			switch (SequenceStepId) {
-			case VL53L0X_SEQUENCESTEP_TCC:
-				SequenceConfigNew |= 0x10;
-				break;
-			case VL53L0X_SEQUENCESTEP_DSS:
-				SequenceConfigNew |= 0x28;
-				break;
-			case VL53L0X_SEQUENCESTEP_MSRC:
-				SequenceConfigNew |= 0x04;
-				break;
-			case VL53L0X_SEQUENCESTEP_PRE_RANGE:
-				SequenceConfigNew |= 0x40;
-				break;
-			case VL53L0X_SEQUENCESTEP_FINAL_RANGE:
-				SequenceConfigNew |= 0x80;
-				break;
-			default:
-				Status = VL53L0X_ERROR_INVALID_PARAMS;
-			}
-		} else {
-			/* Disable requested sequence step
-			 */
-			switch (SequenceStepId) {
-			case VL53L0X_SEQUENCESTEP_TCC:
-				SequenceConfigNew &= 0xef;
-				break;
-			case VL53L0X_SEQUENCESTEP_DSS:
-				SequenceConfigNew &= 0xd7;
-				break;
-			case VL53L0X_SEQUENCESTEP_MSRC:
-				SequenceConfigNew &= 0xfb;
-				break;
-			case VL53L0X_SEQUENCESTEP_PRE_RANGE:
-				SequenceConfigNew &= 0xbf;
-				break;
-			case VL53L0X_SEQUENCESTEP_FINAL_RANGE:
-				SequenceConfigNew &= 0x7f;
-				break;
-			default:
-				Status = VL53L0X_ERROR_INVALID_PARAMS;
-			}
-		}
-	}
-
-	if (SequenceConfigNew != SequenceConfig) {
-		/* Apply New Setting */
-		if (Status == VL53L0X_ERROR_NONE) {
-			Status = VL53L0X_WrByte(Dev,
-			VL53L0X_REG_SYSTEM_SEQUENCE_CONFIG, SequenceConfigNew);
-		}
-		if (Status == VL53L0X_ERROR_NONE)
-			PALDevDataSet(Dev, SequenceConfig, SequenceConfigNew);
-
-
-		/* Recalculate timing budget */
-		if (Status == VL53L0X_ERROR_NONE) {
-			VL53L0X_GETPARAMETERFIELD(Dev,
-				MeasurementTimingBudgetMicroSeconds,
-				MeasurementTimingBudgetMicroSeconds);
-
-			VL53L0X_SetMeasurementTimingBudgetMicroSeconds(Dev,
-				MeasurementTimingBudgetMicroSeconds);
-		}
-	}
-
-	LOG_FUNCTION_END(Status);
-
-	return Status;
-}
-
-VL53L0X_Error sequence_step_enabled(VL53L0X_DEV Dev,
-	VL53L0X_SequenceStepId SequenceStepId, uint8_t SequenceConfig,
-	uint8_t *pSequenceStepEnabled)
-{
-	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
-	*pSequenceStepEnabled = 0;
-	LOG_FUNCTION_START("");
-
-	switch (SequenceStepId) {
-	case VL53L0X_SEQUENCESTEP_TCC:
-		*pSequenceStepEnabled = (SequenceConfig & 0x10) >> 4;
-		break;
-	case VL53L0X_SEQUENCESTEP_DSS:
-		*pSequenceStepEnabled = (SequenceConfig & 0x08) >> 3;
-		break;
-	case VL53L0X_SEQUENCESTEP_MSRC:
-		*pSequenceStepEnabled = (SequenceConfig & 0x04) >> 2;
-		break;
-	case VL53L0X_SEQUENCESTEP_PRE_RANGE:
-		*pSequenceStepEnabled = (SequenceConfig & 0x40) >> 6;
-		break;
-	case VL53L0X_SEQUENCESTEP_FINAL_RANGE:
-		*pSequenceStepEnabled = (SequenceConfig & 0x80) >> 7;
-		break;
-	default:
-		Status = VL53L0X_ERROR_INVALID_PARAMS;
-	}
-
-	LOG_FUNCTION_END(Status);
-	return Status;
-}
-
-VL53L0X_Error VL53L0X_GetSequenceStepEnable(VL53L0X_DEV Dev,
-	VL53L0X_SequenceStepId SequenceStepId, uint8_t *pSequenceStepEnabled)
-{
-	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
-	uint8_t SequenceConfig = 0;
-	LOG_FUNCTION_START("");
-
-	Status = VL53L0X_RdByte(Dev, VL53L0X_REG_SYSTEM_SEQUENCE_CONFIG,
-		&SequenceConfig);
-
-	if (Status == VL53L0X_ERROR_NONE) {
-		Status = sequence_step_enabled(Dev, SequenceStepId,
-			SequenceConfig, pSequenceStepEnabled);
-	}
-
-	LOG_FUNCTION_END(Status);
-	return Status;
-}
-
-VL53L0X_Error VL53L0X_GetSequenceStepEnables(VL53L0X_DEV Dev,
-	VL53L0X_SchedulerSequenceSteps_t *pSchedulerSequenceSteps)
-{
-	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
-	uint8_t SequenceConfig = 0;
-	LOG_FUNCTION_START("");
-
-	Status = VL53L0X_RdByte(Dev, VL53L0X_REG_SYSTEM_SEQUENCE_CONFIG,
-		&SequenceConfig);
-
-	if (Status == VL53L0X_ERROR_NONE) {
-		Status = sequence_step_enabled(Dev,
-		VL53L0X_SEQUENCESTEP_TCC, SequenceConfig,
-			&pSchedulerSequenceSteps->TccOn);
-	}
-	if (Status == VL53L0X_ERROR_NONE) {
-		Status = sequence_step_enabled(Dev,
-		VL53L0X_SEQUENCESTEP_DSS, SequenceConfig,
-			&pSchedulerSequenceSteps->DssOn);
-	}
-	if (Status == VL53L0X_ERROR_NONE) {
-		Status = sequence_step_enabled(Dev,
-		VL53L0X_SEQUENCESTEP_MSRC, SequenceConfig,
-			&pSchedulerSequenceSteps->MsrcOn);
-	}
-	if (Status == VL53L0X_ERROR_NONE) {
-		Status = sequence_step_enabled(Dev,
-		VL53L0X_SEQUENCESTEP_PRE_RANGE, SequenceConfig,
-			&pSchedulerSequenceSteps->PreRangeOn);
-	}
-	if (Status == VL53L0X_ERROR_NONE) {
-		Status = sequence_step_enabled(Dev,
-		VL53L0X_SEQUENCESTEP_FINAL_RANGE, SequenceConfig,
-			&pSchedulerSequenceSteps->FinalRangeOn);
-	}
-
-	LOG_FUNCTION_END(Status);
-	return Status;
-}
-
-VL53L0X_Error VL53L0X_GetNumberOfSequenceSteps(VL53L0X_DEV Dev,
-	uint8_t *pNumberOfSequenceSteps)
-{
-	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
-	LOG_FUNCTION_START("");
-
-	*pNumberOfSequenceSteps = VL53L0X_SEQUENCESTEP_NUMBER_OF_CHECKS;
-
-	LOG_FUNCTION_END(Status);
-	return Status;
-}
-
-VL53L0X_Error VL53L0X_GetSequenceStepsInfo(VL53L0X_SequenceStepId SequenceStepId,
-	char *pSequenceStepsString)
-{
-	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
-	LOG_FUNCTION_START("");
-
-	Status = VL53L0X_get_sequence_steps_info(
-			SequenceStepId,
-			pSequenceStepsString);
-
-	LOG_FUNCTION_END(Status);
-
-	return Status;
-}
-
-VL53L0X_Error VL53L0X_SetSequenceStepTimeout(VL53L0X_DEV Dev,
-	VL53L0X_SequenceStepId SequenceStepId, FixPoint1616_t TimeOutMilliSecs)
-{
-	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
-	VL53L0X_Error Status1 = VL53L0X_ERROR_NONE;
-	uint32_t TimeoutMicroSeconds = ((TimeOutMilliSecs * 1000) + 0x8000)
-		>> 16;
-	uint32_t MeasurementTimingBudgetMicroSeconds;
-	FixPoint1616_t OldTimeOutMicroSeconds;
-
-	LOG_FUNCTION_START("");
-
-	/* Read back the current value in case we need to revert back to this.
-	 */
-	Status = get_sequence_step_timeout(Dev, SequenceStepId,
-		&OldTimeOutMicroSeconds);
-
-	if (Status == VL53L0X_ERROR_NONE) {
-		Status = set_sequence_step_timeout(Dev, SequenceStepId,
-			TimeoutMicroSeconds);
-	}
-
-	if (Status == VL53L0X_ERROR_NONE) {
-		VL53L0X_GETPARAMETERFIELD(Dev,
-			MeasurementTimingBudgetMicroSeconds,
-			MeasurementTimingBudgetMicroSeconds);
-
-		/* At this point we don't know if the requested value is valid,
-		 therefore proceed to update the entire timing budget and
-		 if this fails, revert back to the previous value.
-		 */
-		Status = VL53L0X_SetMeasurementTimingBudgetMicroSeconds(Dev,
-			MeasurementTimingBudgetMicroSeconds);
-
-		if (Status != VL53L0X_ERROR_NONE) {
-			Status1 = set_sequence_step_timeout(Dev, SequenceStepId,
-				OldTimeOutMicroSeconds);
-
-			if (Status1 == VL53L0X_ERROR_NONE) {
-				Status1 =
-				VL53L0X_SetMeasurementTimingBudgetMicroSeconds(
-					Dev,
-					MeasurementTimingBudgetMicroSeconds);
-			}
-
-			Status = Status1;
-		}
-	}
-
-	LOG_FUNCTION_END(Status);
-
-	return Status;
-}
-
-VL53L0X_Error VL53L0X_GetSequenceStepTimeout(VL53L0X_DEV Dev,
-	VL53L0X_SequenceStepId SequenceStepId, FixPoint1616_t *pTimeOutMilliSecs)
-{
-	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
-	uint32_t TimeoutMicroSeconds;
-	LOG_FUNCTION_START("");
-
-	Status = get_sequence_step_timeout(Dev, SequenceStepId,
-		&TimeoutMicroSeconds);
-	if (Status == VL53L0X_ERROR_NONE) {
-		TimeoutMicroSeconds <<= 8;
-		*pTimeOutMilliSecs = (TimeoutMicroSeconds + 500)/1000;
-		*pTimeOutMilliSecs <<= 8;
-	}
-
-	LOG_FUNCTION_END(Status);
-	return Status;
-}
-
-VL53L0X_Error VL53L0X_SetInterMeasurementPeriodMilliSeconds(VL53L0X_DEV Dev,
-	uint32_t InterMeasurementPeriodMilliSeconds)
-{
-	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
-	uint16_t osc_calibrate_val;
-	uint32_t IMPeriodMilliSeconds;
-
-	LOG_FUNCTION_START("");
-
-	Status = VL53L0X_RdWord(Dev, VL53L0X_REG_OSC_CALIBRATE_VAL,
-		&osc_calibrate_val);
-
-	if (Status == VL53L0X_ERROR_NONE) {
-		if (osc_calibrate_val != 0) {
-			IMPeriodMilliSeconds =
-				InterMeasurementPeriodMilliSeconds
-					* osc_calibrate_val;
-		} else {
-			IMPeriodMilliSeconds =
-				InterMeasurementPeriodMilliSeconds;
-		}
-		Status = VL53L0X_WrDWord(Dev,
-		VL53L0X_REG_SYSTEM_INTERMEASUREMENT_PERIOD,
-			IMPeriodMilliSeconds);
-	}
-
-	if (Status == VL53L0X_ERROR_NONE) {
-		VL53L0X_SETPARAMETERFIELD(Dev,
-			InterMeasurementPeriodMilliSeconds,
-			InterMeasurementPeriodMilliSeconds);
-	}
-
-	LOG_FUNCTION_END(Status);
-	return Status;
-}
-
-VL53L0X_Error VL53L0X_GetInterMeasurementPeriodMilliSeconds(VL53L0X_DEV Dev,
-	uint32_t *pInterMeasurementPeriodMilliSeconds)
-{
-	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
-	uint16_t osc_calibrate_val;
-	uint32_t IMPeriodMilliSeconds;
-
-	LOG_FUNCTION_START("");
-
-	Status = VL53L0X_RdWord(Dev, VL53L0X_REG_OSC_CALIBRATE_VAL,
-		&osc_calibrate_val);
-
-	if (Status == VL53L0X_ERROR_NONE) {
-		Status = VL53L0X_RdDWord(Dev,
-		VL53L0X_REG_SYSTEM_INTERMEASUREMENT_PERIOD,
-			&IMPeriodMilliSeconds);
-	}
-
-	if (Status == VL53L0X_ERROR_NONE) {
-		if (osc_calibrate_val != 0) {
-			*pInterMeasurementPeriodMilliSeconds =
-				IMPeriodMilliSeconds / osc_calibrate_val;
-		}
-		VL53L0X_SETPARAMETERFIELD(Dev,
-			InterMeasurementPeriodMilliSeconds,
-			*pInterMeasurementPeriodMilliSeconds);
-	}
-
-	LOG_FUNCTION_END(Status);
-	return Status;
-}
-
-VL53L0X_Error VL53L0X_SetXTalkCompensationEnable(VL53L0X_DEV Dev,
-	uint8_t XTalkCompensationEnable)
-{
-	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
-	FixPoint1616_t TempFix1616;
-	uint16_t LinearityCorrectiveGain;
-
-	LOG_FUNCTION_START("");
-
-	LinearityCorrectiveGain = PALDevDataGet(Dev, LinearityCorrectiveGain);
-
-	if ((XTalkCompensationEnable == 0)
-		|| (LinearityCorrectiveGain != 1000)) {
-		TempFix1616 = 0;
-	} else {
-		VL53L0X_GETPARAMETERFIELD(Dev, XTalkCompensationRateMegaCps,
-			TempFix1616);
-	}
-
-	/* the following register has a format 3.13 */
-	Status = VL53L0X_WrWord(Dev,
-	VL53L0X_REG_CROSSTALK_COMPENSATION_PEAK_RATE_MCPS,
-		VL53L0X_FIXPOINT1616TOFIXPOINT313(TempFix1616));
-
-	if (Status == VL53L0X_ERROR_NONE) {
-		if (XTalkCompensationEnable == 0) {
-			VL53L0X_SETPARAMETERFIELD(Dev, XTalkCompensationEnable,
-				0);
-		} else {
-			VL53L0X_SETPARAMETERFIELD(Dev, XTalkCompensationEnable,
-				1);
-		}
-	}
-
-	LOG_FUNCTION_END(Status);
-	return Status;
-}
-
-VL53L0X_Error VL53L0X_GetXTalkCompensationEnable(VL53L0X_DEV Dev,
-	uint8_t *pXTalkCompensationEnable)
-{
-	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
-	uint8_t Temp8;
-	LOG_FUNCTION_START("");
-
-	VL53L0X_GETPARAMETERFIELD(Dev, XTalkCompensationEnable, Temp8);
-	*pXTalkCompensationEnable = Temp8;
-
-	LOG_FUNCTION_END(Status);
-	return Status;
-}
-
-VL53L0X_Error VL53L0X_SetXTalkCompensationRateMegaCps(VL53L0X_DEV Dev,
-	FixPoint1616_t XTalkCompensationRateMegaCps)
-{
-	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
-	uint8_t Temp8;
-	uint16_t LinearityCorrectiveGain;
-	uint16_t data;
-	LOG_FUNCTION_START("");
-
-	VL53L0X_GETPARAMETERFIELD(Dev, XTalkCompensationEnable, Temp8);
-	LinearityCorrectiveGain = PALDevDataGet(Dev, LinearityCorrectiveGain);
-
-	if (Temp8 == 0) { /* disabled write only internal value */
-		VL53L0X_SETPARAMETERFIELD(Dev, XTalkCompensationRateMegaCps,
-			XTalkCompensationRateMegaCps);
-	} else {
-		/* the following register has a format 3.13 */
-		if (LinearityCorrectiveGain == 1000) {
-			data = VL53L0X_FIXPOINT1616TOFIXPOINT313(
-				XTalkCompensationRateMegaCps);
-		} else {
-			data = 0;
-		}
-
-		Status = VL53L0X_WrWord(Dev,
-		VL53L0X_REG_CROSSTALK_COMPENSATION_PEAK_RATE_MCPS, data);
-
-		if (Status == VL53L0X_ERROR_NONE) {
-			VL53L0X_SETPARAMETERFIELD(Dev,
-				XTalkCompensationRateMegaCps,
-				XTalkCompensationRateMegaCps);
-		}
-	}
-
-	LOG_FUNCTION_END(Status);
-	return Status;
-}
-
-VL53L0X_Error VL53L0X_GetXTalkCompensationRateMegaCps(VL53L0X_DEV Dev,
-	FixPoint1616_t *pXTalkCompensationRateMegaCps)
-{
-	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
-	uint16_t Value;
-	FixPoint1616_t TempFix1616;
-
-	LOG_FUNCTION_START("");
-
-	Status = VL53L0X_RdWord(Dev,
-	VL53L0X_REG_CROSSTALK_COMPENSATION_PEAK_RATE_MCPS, (uint16_t *)&Value);
-	if (Status == VL53L0X_ERROR_NONE) {
-		if (Value == 0) {
-			/* the Xtalk is disabled return value from memory */
-			VL53L0X_GETPARAMETERFIELD(Dev,
-				XTalkCompensationRateMegaCps, TempFix1616);
-			*pXTalkCompensationRateMegaCps = TempFix1616;
-			VL53L0X_SETPARAMETERFIELD(Dev, XTalkCompensationEnable,
-				0);
-		} else {
-			TempFix1616 = VL53L0X_FIXPOINT313TOFIXPOINT1616(Value);
-			*pXTalkCompensationRateMegaCps = TempFix1616;
-			VL53L0X_SETPARAMETERFIELD(Dev,
-				XTalkCompensationRateMegaCps, TempFix1616);
-			VL53L0X_SETPARAMETERFIELD(Dev, XTalkCompensationEnable,
-				1);
-		}
-	}
-
-	LOG_FUNCTION_END(Status);
-	return Status;
-}
-
-VL53L0X_Error VL53L0X_SetRefCalibration(VL53L0X_DEV Dev, uint8_t VhvSettings,
-	uint8_t PhaseCal)
-{
-	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
-	LOG_FUNCTION_START("");
-
-	Status = VL53L0X_set_ref_calibration(Dev, VhvSettings, PhaseCal);
-
-	LOG_FUNCTION_END(Status);
-	return Status;
-}
-
-VL53L0X_Error VL53L0X_GetRefCalibration(VL53L0X_DEV Dev, uint8_t *pVhvSettings,
-	uint8_t *pPhaseCal)
-{
-	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
-	LOG_FUNCTION_START("");
-
-	Status = VL53L0X_get_ref_calibration(Dev, pVhvSettings, pPhaseCal);
-
-	LOG_FUNCTION_END(Status);
-	return Status;
-}
-
-/*
- * CHECK LIMIT FUNCTIONS
- */
-
-VL53L0X_Error VL53L0X_GetNumberOfLimitCheck(uint16_t *pNumberOfLimitCheck)
-{
-	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
-	LOG_FUNCTION_START("");
-
-	*pNumberOfLimitCheck = VL53L0X_CHECKENABLE_NUMBER_OF_CHECKS;
-
-	LOG_FUNCTION_END(Status);
-	return Status;
-}
-
-VL53L0X_Error VL53L0X_GetLimitCheckInfo(VL53L0X_DEV Dev, uint16_t LimitCheckId,
-	char *pLimitCheckString)
-{
-	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
-
-	LOG_FUNCTION_START("");
-
-	Status = VL53L0X_get_limit_check_info(Dev, LimitCheckId,
-		pLimitCheckString);
-
-	LOG_FUNCTION_END(Status);
-	return Status;
-}
-
-VL53L0X_Error VL53L0X_GetLimitCheckStatus(VL53L0X_DEV Dev, uint16_t LimitCheckId,
-	uint8_t *pLimitCheckStatus)
-{
-	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
-	uint8_t Temp8;
-
-	LOG_FUNCTION_START("");
-
-	if (LimitCheckId >= VL53L0X_CHECKENABLE_NUMBER_OF_CHECKS) {
-		Status = VL53L0X_ERROR_INVALID_PARAMS;
-	} else {
-
-		VL53L0X_GETARRAYPARAMETERFIELD(Dev, LimitChecksStatus,
-			LimitCheckId, Temp8);
-
-		*pLimitCheckStatus = Temp8;
-
-	}
-
-	LOG_FUNCTION_END(Status);
-	return Status;
-}
-
-VL53L0X_Error VL53L0X_SetLimitCheckEnable(VL53L0X_DEV Dev, uint16_t LimitCheckId,
-	uint8_t LimitCheckEnable)
-{
-	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
-	FixPoint1616_t TempFix1616 = 0;
-	uint8_t LimitCheckEnableInt = 0;
-	uint8_t LimitCheckDisable = 0;
-	uint8_t Temp8;
-
-	LOG_FUNCTION_START("");
-
-	if (LimitCheckId >= VL53L0X_CHECKENABLE_NUMBER_OF_CHECKS) {
-		Status = VL53L0X_ERROR_INVALID_PARAMS;
-	} else {
-		if (LimitCheckEnable == 0) {
-			TempFix1616 = 0;
-			LimitCheckEnableInt = 0;
-			LimitCheckDisable = 1;
-
-		} else {
-			VL53L0X_GETARRAYPARAMETERFIELD(Dev, LimitChecksValue,
-				LimitCheckId, TempFix1616);
-			LimitCheckDisable = 0;
-			/* this to be sure to have either 0 or 1 */
-			LimitCheckEnableInt = 1;
-		}
-
-		switch (LimitCheckId) {
-
-		case VL53L0X_CHECKENABLE_SIGMA_FINAL_RANGE:
-			/* internal computation: */
-			VL53L0X_SETARRAYPARAMETERFIELD(Dev, LimitChecksEnable,
-				VL53L0X_CHECKENABLE_SIGMA_FINAL_RANGE,
-				LimitCheckEnableInt);
-
-			break;
-
-		case VL53L0X_CHECKENABLE_SIGNAL_RATE_FINAL_RANGE:
-
-			Status = VL53L0X_WrWord(Dev,
-			VL53L0X_REG_FINAL_RANGE_CONFIG_MIN_COUNT_RATE_RTN_LIMIT,
-				VL53L0X_FIXPOINT1616TOFIXPOINT97(TempFix1616));
-
-			break;
-
-		case VL53L0X_CHECKENABLE_SIGNAL_REF_CLIP:
-
-			/* internal computation: */
-			VL53L0X_SETARRAYPARAMETERFIELD(Dev, LimitChecksEnable,
-				VL53L0X_CHECKENABLE_SIGNAL_REF_CLIP,
-				LimitCheckEnableInt);
-
-			break;
-
-		case VL53L0X_CHECKENABLE_RANGE_IGNORE_THRESHOLD:
-
-			/* internal computation: */
-			VL53L0X_SETARRAYPARAMETERFIELD(Dev, LimitChecksEnable,
-				VL53L0X_CHECKENABLE_RANGE_IGNORE_THRESHOLD,
-				LimitCheckEnableInt);
-
-			break;
-
-		case VL53L0X_CHECKENABLE_SIGNAL_RATE_MSRC:
-
-			Temp8 = (uint8_t)(LimitCheckDisable << 1);
-			Status = VL53L0X_UpdateByte(Dev,
-				VL53L0X_REG_MSRC_CONFIG_CONTROL,
-				0xFE, Temp8);
-
-			break;
-
-		case VL53L0X_CHECKENABLE_SIGNAL_RATE_PRE_RANGE:
-
-			Temp8 = (uint8_t)(LimitCheckDisable << 4);
-			Status = VL53L0X_UpdateByte(Dev,
-				VL53L0X_REG_MSRC_CONFIG_CONTROL,
-				0xEF, Temp8);
-
-			break;
-
-
-		default:
-			Status = VL53L0X_ERROR_INVALID_PARAMS;
-
-		}
-
-	}
-
-	if (Status == VL53L0X_ERROR_NONE) {
-		if (LimitCheckEnable == 0) {
-			VL53L0X_SETARRAYPARAMETERFIELD(Dev, LimitChecksEnable,
-				LimitCheckId, 0);
-		} else {
-			VL53L0X_SETARRAYPARAMETERFIELD(Dev, LimitChecksEnable,
-				LimitCheckId, 1);
-		}
-	}
-
-	LOG_FUNCTION_END(Status);
-	return Status;
-}
-
-VL53L0X_Error VL53L0X_GetLimitCheckEnable(VL53L0X_DEV Dev, uint16_t LimitCheckId,
-	uint8_t *pLimitCheckEnable)
-{
-	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
-	uint8_t Temp8;
-
-	LOG_FUNCTION_START("");
-
-	if (LimitCheckId >= VL53L0X_CHECKENABLE_NUMBER_OF_CHECKS) {
-		Status = VL53L0X_ERROR_INVALID_PARAMS;
-		*pLimitCheckEnable = 0;
-	} else {
-		VL53L0X_GETARRAYPARAMETERFIELD(Dev, LimitChecksEnable,
-			LimitCheckId, Temp8);
-		*pLimitCheckEnable = Temp8;
-	}
-
-	LOG_FUNCTION_END(Status);
-	return Status;
-}
-
-VL53L0X_Error VL53L0X_SetLimitCheckValue(VL53L0X_DEV Dev, uint16_t LimitCheckId,
-	FixPoint1616_t LimitCheckValue)
-{
-	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
-	uint8_t Temp8;
-
-	LOG_FUNCTION_START("");
-
-	VL53L0X_GETARRAYPARAMETERFIELD(Dev, LimitChecksEnable, LimitCheckId,
-		Temp8);
-
-	if (Temp8 == 0) { /* disabled write only internal value */
-		VL53L0X_SETARRAYPARAMETERFIELD(Dev, LimitChecksValue,
-			LimitCheckId, LimitCheckValue);
-	} else {
-
-		switch (LimitCheckId) {
-
-		case VL53L0X_CHECKENABLE_SIGMA_FINAL_RANGE:
-			/* internal computation: */
-			VL53L0X_SETARRAYPARAMETERFIELD(Dev, LimitChecksValue,
-				VL53L0X_CHECKENABLE_SIGMA_FINAL_RANGE,
-				LimitCheckValue);
-			break;
-
-		case VL53L0X_CHECKENABLE_SIGNAL_RATE_FINAL_RANGE:
-
-			Status = VL53L0X_WrWord(Dev,
-			VL53L0X_REG_FINAL_RANGE_CONFIG_MIN_COUNT_RATE_RTN_LIMIT,
-				VL53L0X_FIXPOINT1616TOFIXPOINT97(
-					LimitCheckValue));
-
-			break;
-
-		case VL53L0X_CHECKENABLE_SIGNAL_REF_CLIP:
-
-			/* internal computation: */
-			VL53L0X_SETARRAYPARAMETERFIELD(Dev, LimitChecksValue,
-				VL53L0X_CHECKENABLE_SIGNAL_REF_CLIP,
-				LimitCheckValue);
-
-			break;
-
-		case VL53L0X_CHECKENABLE_RANGE_IGNORE_THRESHOLD:
-
-			/* internal computation: */
-			VL53L0X_SETARRAYPARAMETERFIELD(Dev, LimitChecksValue,
-				VL53L0X_CHECKENABLE_RANGE_IGNORE_THRESHOLD,
-				LimitCheckValue);
-
-			break;
-
-		case VL53L0X_CHECKENABLE_SIGNAL_RATE_MSRC:
-		case VL53L0X_CHECKENABLE_SIGNAL_RATE_PRE_RANGE:
-
-			Status = VL53L0X_WrWord(Dev,
-				VL53L0X_REG_PRE_RANGE_MIN_COUNT_RATE_RTN_LIMIT,
-				VL53L0X_FIXPOINT1616TOFIXPOINT97(
-					LimitCheckValue));
-
-			break;
-
-		default:
-			Status = VL53L0X_ERROR_INVALID_PARAMS;
-
-		}
-
-		if (Status == VL53L0X_ERROR_NONE) {
-			VL53L0X_SETARRAYPARAMETERFIELD(Dev, LimitChecksValue,
-				LimitCheckId, LimitCheckValue);
-		}
-	}
-
-	LOG_FUNCTION_END(Status);
-	return Status;
-}
-
-VL53L0X_Error VL53L0X_GetLimitCheckValue(VL53L0X_DEV Dev, uint16_t LimitCheckId,
-	FixPoint1616_t *pLimitCheckValue)
-{
-	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
-	uint8_t EnableZeroValue = 0;
-	uint16_t Temp16;
-	FixPoint1616_t TempFix1616;
-
-	LOG_FUNCTION_START("");
-
-	switch (LimitCheckId) {
-
-	case VL53L0X_CHECKENABLE_SIGMA_FINAL_RANGE:
-		/* internal computation: */
-		VL53L0X_GETARRAYPARAMETERFIELD(Dev, LimitChecksValue,
-			VL53L0X_CHECKENABLE_SIGMA_FINAL_RANGE, TempFix1616);
-		EnableZeroValue = 0;
-		break;
-
-	case VL53L0X_CHECKENABLE_SIGNAL_RATE_FINAL_RANGE:
-		Status = VL53L0X_RdWord(Dev,
-		VL53L0X_REG_FINAL_RANGE_CONFIG_MIN_COUNT_RATE_RTN_LIMIT,
-			&Temp16);
-		if (Status == VL53L0X_ERROR_NONE)
-			TempFix1616 = VL53L0X_FIXPOINT97TOFIXPOINT1616(Temp16);
-
-
-		EnableZeroValue = 1;
-		break;
-
-	case VL53L0X_CHECKENABLE_SIGNAL_REF_CLIP:
-		/* internal computation: */
-		VL53L0X_GETARRAYPARAMETERFIELD(Dev, LimitChecksValue,
-			VL53L0X_CHECKENABLE_SIGNAL_REF_CLIP, TempFix1616);
-		EnableZeroValue = 0;
-		break;
-
-	case VL53L0X_CHECKENABLE_RANGE_IGNORE_THRESHOLD:
-		/* internal computation: */
-		VL53L0X_GETARRAYPARAMETERFIELD(Dev, LimitChecksValue,
-			VL53L0X_CHECKENABLE_RANGE_IGNORE_THRESHOLD, TempFix1616);
-		EnableZeroValue = 0;
-		break;
-
-	case VL53L0X_CHECKENABLE_SIGNAL_RATE_MSRC:
-	case VL53L0X_CHECKENABLE_SIGNAL_RATE_PRE_RANGE:
-		Status = VL53L0X_RdWord(Dev,
-			VL53L0X_REG_PRE_RANGE_MIN_COUNT_RATE_RTN_LIMIT,
-			&Temp16);
-		if (Status == VL53L0X_ERROR_NONE)
-			TempFix1616 = VL53L0X_FIXPOINT97TOFIXPOINT1616(Temp16);
-
-
-		EnableZeroValue = 0;
-		break;
-
-	default:
-		Status = VL53L0X_ERROR_INVALID_PARAMS;
-
-	}
-
-	if (Status == VL53L0X_ERROR_NONE) {
-
-		if (EnableZeroValue == 1) {
-
-			if (TempFix1616 == 0) {
-				/* disabled: return value from memory */
-				VL53L0X_GETARRAYPARAMETERFIELD(Dev,
-					LimitChecksValue, LimitCheckId,
-					TempFix1616);
-				*pLimitCheckValue = TempFix1616;
-				VL53L0X_SETARRAYPARAMETERFIELD(Dev,
-					LimitChecksEnable, LimitCheckId, 0);
-			} else {
-				*pLimitCheckValue = TempFix1616;
-				VL53L0X_SETARRAYPARAMETERFIELD(Dev,
-					LimitChecksValue, LimitCheckId,
-					TempFix1616);
-				VL53L0X_SETARRAYPARAMETERFIELD(Dev,
-					LimitChecksEnable, LimitCheckId, 1);
-			}
-		} else {
-			*pLimitCheckValue = TempFix1616;
-		}
-	}
-
-	LOG_FUNCTION_END(Status);
-	return Status;
-
-}
-
-VL53L0X_Error VL53L0X_GetLimitCheckCurrent(VL53L0X_DEV Dev, uint16_t LimitCheckId,
-	FixPoint1616_t *pLimitCheckCurrent)
-{
-	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
-	VL53L0X_RangingMeasurementData_t LastRangeDataBuffer;
-
-	LOG_FUNCTION_START("");
-
-	if (LimitCheckId >= VL53L0X_CHECKENABLE_NUMBER_OF_CHECKS) {
-		Status = VL53L0X_ERROR_INVALID_PARAMS;
-	} else {
-		switch (LimitCheckId) {
-		case VL53L0X_CHECKENABLE_SIGMA_FINAL_RANGE:
-			/* Need to run a ranging to have the latest values */
-			*pLimitCheckCurrent = PALDevDataGet(Dev, SigmaEstimate);
-
-			break;
-
-		case VL53L0X_CHECKENABLE_SIGNAL_RATE_FINAL_RANGE:
-			/* Need to run a ranging to have the latest values */
-			LastRangeDataBuffer = PALDevDataGet(Dev,
-				LastRangeMeasure);
-			*pLimitCheckCurrent =
-				LastRangeDataBuffer.SignalRateRtnMegaCps;
-
-			break;
-
-		case VL53L0X_CHECKENABLE_SIGNAL_REF_CLIP:
-			/* Need to run a ranging to have the latest values */
-			*pLimitCheckCurrent = PALDevDataGet(Dev,
-				LastSignalRefMcps);
-
-			break;
-
-		case VL53L0X_CHECKENABLE_RANGE_IGNORE_THRESHOLD:
-			/* Need to run a ranging to have the latest values */
-			LastRangeDataBuffer = PALDevDataGet(Dev,
-				LastRangeMeasure);
-			*pLimitCheckCurrent =
-				LastRangeDataBuffer.SignalRateRtnMegaCps;
-
-			break;
-
-		case VL53L0X_CHECKENABLE_SIGNAL_RATE_MSRC:
-			/* Need to run a ranging to have the latest values */
-			LastRangeDataBuffer = PALDevDataGet(Dev,
-				LastRangeMeasure);
-			*pLimitCheckCurrent =
-				LastRangeDataBuffer.SignalRateRtnMegaCps;
-
-			break;
-
-		case VL53L0X_CHECKENABLE_SIGNAL_RATE_PRE_RANGE:
-			/* Need to run a ranging to have the latest values */
-			LastRangeDataBuffer = PALDevDataGet(Dev,
-				LastRangeMeasure);
-			*pLimitCheckCurrent =
-				LastRangeDataBuffer.SignalRateRtnMegaCps;
-
-			break;
-
-		default:
-			Status = VL53L0X_ERROR_INVALID_PARAMS;
-		}
-	}
-
-	LOG_FUNCTION_END(Status);
-	return Status;
-
-}
-
-/*
- * WRAPAROUND Check
- */
-VL53L0X_Error VL53L0X_SetWrapAroundCheckEnable(VL53L0X_DEV Dev,
-	uint8_t WrapAroundCheckEnable)
-{
-	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
-	uint8_t Byte;
-	uint8_t WrapAroundCheckEnableInt;
-
-	LOG_FUNCTION_START("");
-
-	Status = VL53L0X_RdByte(Dev, VL53L0X_REG_SYSTEM_SEQUENCE_CONFIG, &Byte);
-	if (WrapAroundCheckEnable == 0) {
-		/* Disable wraparound */
-		Byte = Byte & 0x7F;
-		WrapAroundCheckEnableInt = 0;
-	} else {
-		/*Enable wraparound */
-		Byte = Byte | 0x80;
-		WrapAroundCheckEnableInt = 1;
-	}
-
-	Status = VL53L0X_WrByte(Dev, VL53L0X_REG_SYSTEM_SEQUENCE_CONFIG, Byte);
-
-	if (Status == VL53L0X_ERROR_NONE) {
-		PALDevDataSet(Dev, SequenceConfig, Byte);
-		VL53L0X_SETPARAMETERFIELD(Dev, WrapAroundCheckEnable,
-			WrapAroundCheckEnableInt);
-	}
-
-	LOG_FUNCTION_END(Status);
-	return Status;
-}
-
-VL53L0X_Error VL53L0X_GetWrapAroundCheckEnable(VL53L0X_DEV Dev,
-	uint8_t *pWrapAroundCheckEnable)
-{
-	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
-	uint8_t data;
-
-	LOG_FUNCTION_START("");
-
-	Status = VL53L0X_RdByte(Dev, VL53L0X_REG_SYSTEM_SEQUENCE_CONFIG, &data);
-	if (Status == VL53L0X_ERROR_NONE) {
-		PALDevDataSet(Dev, SequenceConfig, data);
-		if (data & (0x01 << 7))
-			*pWrapAroundCheckEnable = 0x01;
-		else
-			*pWrapAroundCheckEnable = 0x00;
-	}
-	if (Status == VL53L0X_ERROR_NONE) {
-		VL53L0X_SETPARAMETERFIELD(Dev, WrapAroundCheckEnable,
-			*pWrapAroundCheckEnable);
-	}
-
-	LOG_FUNCTION_END(Status);
-	return Status;
-}
-
-VL53L0X_Error VL53L0X_SetDmaxCalParameters(VL53L0X_DEV Dev,
-	uint16_t RangeMilliMeter, FixPoint1616_t SignalRateRtnMegaCps)
-{
-	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
-	FixPoint1616_t SignalRateRtnMegaCpsTemp = 0;
-
-	LOG_FUNCTION_START("");
-
-	/* Check if one of input parameter is zero, in that case the
-	 * value are get from NVM */
-	if ((RangeMilliMeter == 0) || (SignalRateRtnMegaCps == 0)) {
-		/* NVM parameters */
-		/* Run VL53L0X_get_info_from_device wit option 4 to get
-		 * signal rate at 400 mm if the value have been already
-		 * get this function will return with no access to device */
-		VL53L0X_get_info_from_device(Dev, 4);
-
-		SignalRateRtnMegaCpsTemp = VL53L0X_GETDEVICESPECIFICPARAMETER(
-			Dev, SignalRateMeasFixed400mm);
-
-		PALDevDataSet(Dev, DmaxCalRangeMilliMeter, 400);
-		PALDevDataSet(Dev, DmaxCalSignalRateRtnMegaCps,
-			SignalRateRtnMegaCpsTemp);
-	} else {
-		/* User parameters */
-		PALDevDataSet(Dev, DmaxCalRangeMilliMeter, RangeMilliMeter);
-		PALDevDataSet(Dev, DmaxCalSignalRateRtnMegaCps,
-			SignalRateRtnMegaCps);
-	}
-
-	LOG_FUNCTION_END(Status);
-	return Status;
-}
-
-VL53L0X_Error VL53L0X_GetDmaxCalParameters(VL53L0X_DEV Dev,
-	uint16_t *pRangeMilliMeter, FixPoint1616_t *pSignalRateRtnMegaCps)
-{
-	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
-
-	LOG_FUNCTION_START("");
-
-	*pRangeMilliMeter = PALDevDataGet(Dev, DmaxCalRangeMilliMeter);
-	*pSignalRateRtnMegaCps = PALDevDataGet(Dev,
-		DmaxCalSignalRateRtnMegaCps);
-
-	LOG_FUNCTION_END(Status);
-	return Status;
-}
-
-/* End Group PAL Parameters Functions */
-
-/* Group PAL Measurement Functions */
-VL53L0X_Error VL53L0X_PerformSingleMeasurement(VL53L0X_DEV Dev)
-{
-	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
-	VL53L0X_DeviceModes DeviceMode;
-
-	LOG_FUNCTION_START("");
-
-	/* Get Current DeviceMode */
-	Status = VL53L0X_GetDeviceMode(Dev, &DeviceMode);
-
-	/* Start immediately to run a single ranging measurement in case of
-	 * single ranging or single histogram */
-	if (Status == VL53L0X_ERROR_NONE
-		&& DeviceMode == VL53L0X_DEVICEMODE_SINGLE_RANGING)
-		Status = VL53L0X_StartMeasurement(Dev);
-
-
-	if (Status == VL53L0X_ERROR_NONE)
-		Status = VL53L0X_measurement_poll_for_completion(Dev);
-
-
-	/* Change PAL State in case of single ranging or single histogram */
-	if (Status == VL53L0X_ERROR_NONE
-		&& DeviceMode == VL53L0X_DEVICEMODE_SINGLE_RANGING)
-		PALDevDataSet(Dev, PalState, VL53L0X_STATE_IDLE);
-
-
-	LOG_FUNCTION_END(Status);
-	return Status;
-}
-
-VL53L0X_Error VL53L0X_PerformSingleHistogramMeasurement(VL53L0X_DEV Dev,
-	VL53L0X_HistogramMeasurementData_t *pHistogramMeasurementData)
-{
-	VL53L0X_Error Status = VL53L0X_ERROR_NOT_IMPLEMENTED;
-	LOG_FUNCTION_START("");
-
-	/* not implemented on VL53L0X */
-
-	LOG_FUNCTION_END(Status);
-	return Status;
-}
-
-VL53L0X_Error VL53L0X_PerformRefCalibration(VL53L0X_DEV Dev, uint8_t *pVhvSettings,
-	uint8_t *pPhaseCal)
-{
-	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
-	LOG_FUNCTION_START("");
-
-	Status = VL53L0X_perform_ref_calibration(Dev, pVhvSettings,
-		pPhaseCal, 1);
-
-	LOG_FUNCTION_END(Status);
-	return Status;
-}
-
-VL53L0X_Error VL53L0X_PerformXTalkMeasurement(VL53L0X_DEV Dev,
-	uint32_t TimeoutMs, FixPoint1616_t *pXtalkPerSpad,
-	uint8_t *pAmbientTooHigh)
-{
-	VL53L0X_Error Status = VL53L0X_ERROR_NOT_IMPLEMENTED;
-	LOG_FUNCTION_START("");
-
-	/* not implemented on VL53L0X */
-
-	LOG_FUNCTION_END(Status);
-	return Status;
-}
-
-VL53L0X_Error VL53L0X_PerformXTalkCalibration(VL53L0X_DEV Dev,
-	FixPoint1616_t XTalkCalDistance,
-	FixPoint1616_t *pXTalkCompensationRateMegaCps)
-{
-	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
-	LOG_FUNCTION_START("");
-
-	Status = VL53L0X_perform_xtalk_calibration(Dev, XTalkCalDistance,
-		pXTalkCompensationRateMegaCps);
-
-	LOG_FUNCTION_END(Status);
-	return Status;
-}
-
-VL53L0X_Error VL53L0X_PerformOffsetCalibration(VL53L0X_DEV Dev,
-	FixPoint1616_t CalDistanceMilliMeter, int32_t *pOffsetMicroMeter)
-{
-	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
-	LOG_FUNCTION_START("");
-
-	Status = VL53L0X_perform_offset_calibration(Dev, CalDistanceMilliMeter,
-		pOffsetMicroMeter);
-
-	LOG_FUNCTION_END(Status);
-	return Status;
-}
-
-VL53L0X_Error VL53L0X_CheckAndLoadInterruptSettings(VL53L0X_DEV Dev,
-	uint8_t StartNotStopFlag)
-{
-	uint8_t InterruptConfig;
-	FixPoint1616_t ThresholdLow;
-	FixPoint1616_t ThresholdHigh;
-	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
-
-	InterruptConfig = VL53L0X_GETDEVICESPECIFICPARAMETER(Dev,
-		Pin0GpioFunctionality);
-
-	if ((InterruptConfig ==
-		VL53L0X_GPIOFUNCTIONALITY_THRESHOLD_CROSSED_LOW) ||
-		(InterruptConfig ==
-		VL53L0X_GPIOFUNCTIONALITY_THRESHOLD_CROSSED_HIGH) ||
-		(InterruptConfig ==
-		VL53L0X_GPIOFUNCTIONALITY_THRESHOLD_CROSSED_OUT)) {
-
-		Status = VL53L0X_GetInterruptThresholds(Dev,
-			VL53L0X_DEVICEMODE_CONTINUOUS_RANGING,
-			&ThresholdLow, &ThresholdHigh);
-
-		if (((ThresholdLow > 255*65536) ||
-			(ThresholdHigh > 255*65536)) &&
-			(Status == VL53L0X_ERROR_NONE)) {
-
-			if (StartNotStopFlag != 0) {
-				Status = VL53L0X_load_tuning_settings(Dev,
-					InterruptThresholdSettings);
-			} else {
-				Status |= VL53L0X_WrByte(Dev, 0xFF, 0x04);
-				Status |= VL53L0X_WrByte(Dev, 0x70, 0x00);
-				Status |= VL53L0X_WrByte(Dev, 0xFF, 0x00);
-				Status |= VL53L0X_WrByte(Dev, 0x80, 0x00);
-			}
-
-		}
-
-
-	}
-
-	return Status;
-
-}
-
-
-VL53L0X_Error VL53L0X_StartMeasurement(VL53L0X_DEV Dev)
-{
-	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
-	VL53L0X_DeviceModes DeviceMode;
-	uint8_t Byte;
-	uint8_t StartStopByte = VL53L0X_REG_SYSRANGE_MODE_START_STOP;
-	uint32_t LoopNb;
-	LOG_FUNCTION_START("");
-
-	/* Get Current DeviceMode */
-	VL53L0X_GetDeviceMode(Dev, &DeviceMode);
-
-	Status = VL53L0X_WrByte(Dev, 0x80, 0x01);
-	Status = VL53L0X_WrByte(Dev, 0xFF, 0x01);
-	Status = VL53L0X_WrByte(Dev, 0x00, 0x00);
-	Status = VL53L0X_WrByte(Dev, 0x91, PALDevDataGet(Dev, StopVariable));
-	Status = VL53L0X_WrByte(Dev, 0x00, 0x01);
-	Status = VL53L0X_WrByte(Dev, 0xFF, 0x00);
-	Status = VL53L0X_WrByte(Dev, 0x80, 0x00);
-
-	switch (DeviceMode) {
-	case VL53L0X_DEVICEMODE_SINGLE_RANGING:
-		Status = VL53L0X_WrByte(Dev, VL53L0X_REG_SYSRANGE_START, 0x01);
-
-		Byte = StartStopByte;
-		if (Status == VL53L0X_ERROR_NONE) {
-			/* Wait until start bit has been cleared */
-			LoopNb = 0;
-			do {
-				if (LoopNb > 0)
-					Status = VL53L0X_RdByte(Dev,
-					VL53L0X_REG_SYSRANGE_START, &Byte);
-				LoopNb = LoopNb + 1;
-			} while (((Byte & StartStopByte) == StartStopByte)
-				&& (Status == VL53L0X_ERROR_NONE)
-				&& (LoopNb < VL53L0X_DEFAULT_MAX_LOOP));
-
-			if (LoopNb >= VL53L0X_DEFAULT_MAX_LOOP)
-				Status = VL53L0X_ERROR_TIME_OUT;
-
-		}
-
-		break;
-	case VL53L0X_DEVICEMODE_CONTINUOUS_RANGING:
-		/* Back-to-back mode */
-
-		/* Check if need to apply interrupt settings */
-		if (Status == VL53L0X_ERROR_NONE)
-			Status = VL53L0X_CheckAndLoadInterruptSettings(Dev, 1);
-
-		Status = VL53L0X_WrByte(Dev,
-		VL53L0X_REG_SYSRANGE_START,
-		VL53L0X_REG_SYSRANGE_MODE_BACKTOBACK);
-		if (Status == VL53L0X_ERROR_NONE) {
-			/* Set PAL State to Running */
-			PALDevDataSet(Dev, PalState, VL53L0X_STATE_RUNNING);
-		}
-		break;
-	case VL53L0X_DEVICEMODE_CONTINUOUS_TIMED_RANGING:
-		/* Continuous mode */
-		/* Check if need to apply interrupt settings */
-		if (Status == VL53L0X_ERROR_NONE)
-			Status = VL53L0X_CheckAndLoadInterruptSettings(Dev, 1);
-
-		Status = VL53L0X_WrByte(Dev,
-		VL53L0X_REG_SYSRANGE_START,
-		VL53L0X_REG_SYSRANGE_MODE_TIMED);
-
-		if (Status == VL53L0X_ERROR_NONE) {
-			/* Set PAL State to Running */
-			PALDevDataSet(Dev, PalState, VL53L0X_STATE_RUNNING);
-		}
-		break;
-	default:
-		/* Selected mode not supported */
-		Status = VL53L0X_ERROR_MODE_NOT_SUPPORTED;
-	}
-
-
-	LOG_FUNCTION_END(Status);
-	return Status;
-}
-
-VL53L0X_Error VL53L0X_StopMeasurement(VL53L0X_DEV Dev)
-{
-	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
-	LOG_FUNCTION_START("");
-
-	Status = VL53L0X_WrByte(Dev, VL53L0X_REG_SYSRANGE_START,
-	VL53L0X_REG_SYSRANGE_MODE_SINGLESHOT);
-
-	Status = VL53L0X_WrByte(Dev, 0xFF, 0x01);
-	Status = VL53L0X_WrByte(Dev, 0x00, 0x00);
-	Status = VL53L0X_WrByte(Dev, 0x91, 0x00);
-	Status = VL53L0X_WrByte(Dev, 0x00, 0x01);
-	Status = VL53L0X_WrByte(Dev, 0xFF, 0x00);
-
-	if (Status == VL53L0X_ERROR_NONE) {
-		/* Set PAL State to Idle */
-		PALDevDataSet(Dev, PalState, VL53L0X_STATE_IDLE);
-	}
-
-	/* Check if need to apply interrupt settings */
-	if (Status == VL53L0X_ERROR_NONE)
-		Status = VL53L0X_CheckAndLoadInterruptSettings(Dev, 0);
-
-	LOG_FUNCTION_END(Status);
-	return Status;
-}
-
-VL53L0X_Error VL53L0X_GetMeasurementDataReady(VL53L0X_DEV Dev,
-	uint8_t *pMeasurementDataReady)
-{
-	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
-	uint8_t SysRangeStatusRegister;
-	uint8_t InterruptConfig;
-	uint32_t InterruptMask;
-	LOG_FUNCTION_START("");
-
-	InterruptConfig = VL53L0X_GETDEVICESPECIFICPARAMETER(Dev,
-		Pin0GpioFunctionality);
-
-	if (InterruptConfig ==
-		VL53L0X_REG_SYSTEM_INTERRUPT_GPIO_NEW_SAMPLE_READY) {
-		Status = VL53L0X_GetInterruptMaskStatus(Dev, &InterruptMask);
-		if (InterruptMask ==
-		VL53L0X_REG_SYSTEM_INTERRUPT_GPIO_NEW_SAMPLE_READY)
-			*pMeasurementDataReady = 1;
-		else
-			*pMeasurementDataReady = 0;
-	} else {
-		Status = VL53L0X_RdByte(Dev, VL53L0X_REG_RESULT_RANGE_STATUS,
-			&SysRangeStatusRegister);
-		if (Status == VL53L0X_ERROR_NONE) {
-			if (SysRangeStatusRegister & 0x01)
-				*pMeasurementDataReady = 1;
-			else
-				*pMeasurementDataReady = 0;
-		}
-	}
-
-	LOG_FUNCTION_END(Status);
-	return Status;
-}
-
-VL53L0X_Error VL53L0X_WaitDeviceReadyForNewMeasurement(VL53L0X_DEV Dev,
-	uint32_t MaxLoop)
-{
-	VL53L0X_Error Status = VL53L0X_ERROR_NOT_IMPLEMENTED;
-	LOG_FUNCTION_START("");
-
-	/* not implemented for VL53L0X */
-
-	LOG_FUNCTION_END(Status);
-	return Status;
-}
-
-
-VL53L0X_Error VL53L0X_GetRangingMeasurementData(VL53L0X_DEV Dev,
-	VL53L0X_RangingMeasurementData_t *pRangingMeasurementData)
-{
-	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
-	uint8_t DeviceRangeStatus;
-	uint8_t RangeFractionalEnable;
-	uint8_t PalRangeStatus;
-	uint8_t XTalkCompensationEnable;
-	uint16_t AmbientRate;
-	FixPoint1616_t SignalRate;
-	uint16_t XTalkCompensationRateMegaCps;
-	uint16_t EffectiveSpadRtnCount;
-	uint16_t tmpuint16;
-	uint16_t XtalkRangeMilliMeter;
-	uint16_t LinearityCorrectiveGain;
-	uint8_t localBuffer[12];
-	VL53L0X_RangingMeasurementData_t LastRangeDataBuffer;
-
-	LOG_FUNCTION_START("");
-
-	/*
-	 * use multi read even if some registers are not useful, result will
-	 * be more efficient
-	 * start reading at 0x14 dec20
-	 * end reading at 0x21 dec33 total 14 bytes to read
-	 */
-	Status = VL53L0X_ReadMulti(Dev, 0x14, localBuffer, 12);
-
-	if (Status == VL53L0X_ERROR_NONE) {
-
-		pRangingMeasurementData->ZoneId = 0; /* Only one zone */
-		pRangingMeasurementData->TimeStamp = 0; /* Not Implemented */
-
-		tmpuint16 = VL53L0X_MAKEUINT16(localBuffer[11], localBuffer[10]);
-		/* cut1.1 if SYSTEM__RANGE_CONFIG if 1 range is 2bits fractional
-		 *(format 11.2) else no fractional
-		 */
-
-		pRangingMeasurementData->MeasurementTimeUsec = 0;
-
-		SignalRate = VL53L0X_FIXPOINT97TOFIXPOINT1616(
-			VL53L0X_MAKEUINT16(localBuffer[7], localBuffer[6]));
-		/* peak_signal_count_rate_rtn_mcps */
-		pRangingMeasurementData->SignalRateRtnMegaCps = SignalRate;
-
-		AmbientRate = VL53L0X_MAKEUINT16(localBuffer[9], localBuffer[8]);
-		pRangingMeasurementData->AmbientRateRtnMegaCps =
-			VL53L0X_FIXPOINT97TOFIXPOINT1616(AmbientRate);
-
-		EffectiveSpadRtnCount = VL53L0X_MAKEUINT16(localBuffer[3],
-			localBuffer[2]);
-		/* EffectiveSpadRtnCount is 8.8 format */
-		pRangingMeasurementData->EffectiveSpadRtnCount =
-			EffectiveSpadRtnCount;
-
-		DeviceRangeStatus = localBuffer[0];
-
-		/* Get Linearity Corrective Gain */
-		LinearityCorrectiveGain = PALDevDataGet(Dev,
-			LinearityCorrectiveGain);
-
-		/* Get ranging configuration */
-		RangeFractionalEnable = PALDevDataGet(Dev,
-			RangeFractionalEnable);
-
-		if (LinearityCorrectiveGain != 1000) {
-
-			tmpuint16 = (uint16_t)((LinearityCorrectiveGain
-				* tmpuint16 + 500) / 1000);
-
-			/* Implement Xtalk */
-			VL53L0X_GETPARAMETERFIELD(Dev,
-				XTalkCompensationRateMegaCps,
-				XTalkCompensationRateMegaCps);
-			VL53L0X_GETPARAMETERFIELD(Dev, XTalkCompensationEnable,
-				XTalkCompensationEnable);
-
-			if (XTalkCompensationEnable) {
-
-				if ((SignalRate
-					- ((XTalkCompensationRateMegaCps
-					* EffectiveSpadRtnCount) >> 8))
-					<= 0) {
-					if (RangeFractionalEnable)
-						XtalkRangeMilliMeter = 8888;
-					else
-						XtalkRangeMilliMeter = 8888
-							<< 2;
-				} else {
-					XtalkRangeMilliMeter =
-					(tmpuint16 * SignalRate)
-						/ (SignalRate
-						- ((XTalkCompensationRateMegaCps
-						* EffectiveSpadRtnCount)
-						>> 8));
-				}
-
-				tmpuint16 = XtalkRangeMilliMeter;
-			}
-
-		}
-
-		if (RangeFractionalEnable) {
-			pRangingMeasurementData->RangeMilliMeter =
-				(uint16_t)((tmpuint16) >> 2);
-			pRangingMeasurementData->RangeFractionalPart =
-				(uint8_t)((tmpuint16 & 0x03) << 6);
-		} else {
-			pRangingMeasurementData->RangeMilliMeter = tmpuint16;
-			pRangingMeasurementData->RangeFractionalPart = 0;
-		}
-
-		/*
-		 * For a standard definition of RangeStatus, this should
-		 * return 0 in case of good result after a ranging
-		 * The range status depends on the device so call a device
-		 * specific function to obtain the right Status.
-		 */
-		Status |= VL53L0X_get_pal_range_status(Dev, DeviceRangeStatus,
-			SignalRate, EffectiveSpadRtnCount,
-			pRangingMeasurementData, &PalRangeStatus);
-
-		if (Status == VL53L0X_ERROR_NONE)
-			pRangingMeasurementData->RangeStatus = PalRangeStatus;
-
-	}
-
-	if (Status == VL53L0X_ERROR_NONE) {
-		/* Copy last read data into Dev buffer */
-		LastRangeDataBuffer = PALDevDataGet(Dev, LastRangeMeasure);
-
-		LastRangeDataBuffer.RangeMilliMeter =
-			pRangingMeasurementData->RangeMilliMeter;
-		LastRangeDataBuffer.RangeFractionalPart =
-			pRangingMeasurementData->RangeFractionalPart;
-		LastRangeDataBuffer.RangeDMaxMilliMeter =
-			pRangingMeasurementData->RangeDMaxMilliMeter;
-		LastRangeDataBuffer.MeasurementTimeUsec =
-			pRangingMeasurementData->MeasurementTimeUsec;
-		LastRangeDataBuffer.SignalRateRtnMegaCps =
-			pRangingMeasurementData->SignalRateRtnMegaCps;
-		LastRangeDataBuffer.AmbientRateRtnMegaCps =
-			pRangingMeasurementData->AmbientRateRtnMegaCps;
-		LastRangeDataBuffer.EffectiveSpadRtnCount =
-			pRangingMeasurementData->EffectiveSpadRtnCount;
-		LastRangeDataBuffer.RangeStatus =
-			pRangingMeasurementData->RangeStatus;
-
-		PALDevDataSet(Dev, LastRangeMeasure, LastRangeDataBuffer);
-	}
-
-	LOG_FUNCTION_END(Status);
-	return Status;
-}
-
-VL53L0X_Error VL53L0X_GetMeasurementRefSignal(VL53L0X_DEV Dev,
-	FixPoint1616_t *pMeasurementRefSignal)
-{
-	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
-	uint8_t SignalRefClipLimitCheckEnable = 0;
-	LOG_FUNCTION_START("");
-
-	Status = VL53L0X_GetLimitCheckEnable(Dev,
-			VL53L0X_CHECKENABLE_SIGNAL_REF_CLIP,
-			&SignalRefClipLimitCheckEnable);
-	if (SignalRefClipLimitCheckEnable != 0) {
-		*pMeasurementRefSignal = PALDevDataGet(Dev, LastSignalRefMcps);
-	} else {
-		Status = VL53L0X_ERROR_INVALID_COMMAND;
-	}
-	LOG_FUNCTION_END(Status);
-
-	return Status;
-}
-
-VL53L0X_Error VL53L0X_GetHistogramMeasurementData(VL53L0X_DEV Dev,
-	VL53L0X_HistogramMeasurementData_t *pHistogramMeasurementData)
-{
-	VL53L0X_Error Status = VL53L0X_ERROR_NOT_IMPLEMENTED;
-	LOG_FUNCTION_START("");
-
-	LOG_FUNCTION_END(Status);
-	return Status;
-}
-
-VL53L0X_Error VL53L0X_PerformSingleRangingMeasurement(VL53L0X_DEV Dev,
-	VL53L0X_RangingMeasurementData_t *pRangingMeasurementData)
-{
-	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
-
-	LOG_FUNCTION_START("");
-
-	/* This function will do a complete single ranging
-	 * Here we fix the mode! */
-	Status = VL53L0X_SetDeviceMode(Dev, VL53L0X_DEVICEMODE_SINGLE_RANGING);
-
-	if (Status == VL53L0X_ERROR_NONE)
-		Status = VL53L0X_PerformSingleMeasurement(Dev);
-
-
-	if (Status == VL53L0X_ERROR_NONE)
-		Status = VL53L0X_GetRangingMeasurementData(Dev,
-			pRangingMeasurementData);
-
-
-	if (Status == VL53L0X_ERROR_NONE)
-		Status = VL53L0X_ClearInterruptMask(Dev, 0);
-
-
-	LOG_FUNCTION_END(Status);
-	return Status;
-}
-
-VL53L0X_Error VL53L0X_SetNumberOfROIZones(VL53L0X_DEV Dev,
-	uint8_t NumberOfROIZones)
-{
-	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
-
-	LOG_FUNCTION_START("");
-
-	if (NumberOfROIZones != 1)
-		Status = VL53L0X_ERROR_INVALID_PARAMS;
-
-
-	LOG_FUNCTION_END(Status);
-	return Status;
-}
-
-VL53L0X_Error VL53L0X_GetNumberOfROIZones(VL53L0X_DEV Dev,
-	uint8_t *pNumberOfROIZones)
-{
-	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
-
-	LOG_FUNCTION_START("");
-
-	*pNumberOfROIZones = 1;
-
-	LOG_FUNCTION_END(Status);
-	return Status;
-}
-
-VL53L0X_Error VL53L0X_GetMaxNumberOfROIZones(VL53L0X_DEV Dev,
-	uint8_t *pMaxNumberOfROIZones)
-{
-	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
-
-	LOG_FUNCTION_START("");
-
-	*pMaxNumberOfROIZones = 1;
-
-	LOG_FUNCTION_END(Status);
-	return Status;
-}
-
-/* End Group PAL Measurement Functions */
-
-VL53L0X_Error VL53L0X_SetGpioConfig(VL53L0X_DEV Dev, uint8_t Pin,
-	VL53L0X_DeviceModes DeviceMode, VL53L0X_GpioFunctionality Functionality,
-	VL53L0X_InterruptPolarity Polarity)
-{
-	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
-	uint8_t data;
-
-	LOG_FUNCTION_START("");
-
-	if (Pin != 0) {
-		Status = VL53L0X_ERROR_GPIO_NOT_EXISTING;
-	} else if (DeviceMode == VL53L0X_DEVICEMODE_GPIO_DRIVE) {
-		if (Polarity == VL53L0X_INTERRUPTPOLARITY_LOW)
-			data = 0x10;
-		else
-			data = 1;
-
-		Status = VL53L0X_WrByte(Dev,
-		VL53L0X_REG_GPIO_HV_MUX_ACTIVE_HIGH, data);
-
-	} else if (DeviceMode == VL53L0X_DEVICEMODE_GPIO_OSC) {
-
-		Status |= VL53L0X_WrByte(Dev, 0xff, 0x01);
-		Status |= VL53L0X_WrByte(Dev, 0x00, 0x00);
-
-		Status |= VL53L0X_WrByte(Dev, 0xff, 0x00);
-		Status |= VL53L0X_WrByte(Dev, 0x80, 0x01);
-		Status |= VL53L0X_WrByte(Dev, 0x85, 0x02);
-
-		Status |= VL53L0X_WrByte(Dev, 0xff, 0x04);
-		Status |= VL53L0X_WrByte(Dev, 0xcd, 0x00);
-		Status |= VL53L0X_WrByte(Dev, 0xcc, 0x11);
-
-		Status |= VL53L0X_WrByte(Dev, 0xff, 0x07);
-		Status |= VL53L0X_WrByte(Dev, 0xbe, 0x00);
-
-		Status |= VL53L0X_WrByte(Dev, 0xff, 0x06);
-		Status |= VL53L0X_WrByte(Dev, 0xcc, 0x09);
-
-		Status |= VL53L0X_WrByte(Dev, 0xff, 0x00);
-		Status |= VL53L0X_WrByte(Dev, 0xff, 0x01);
-		Status |= VL53L0X_WrByte(Dev, 0x00, 0x00);
-
-	} else {
-
-		if (Status == VL53L0X_ERROR_NONE) {
-			switch (Functionality) {
-			case VL53L0X_GPIOFUNCTIONALITY_OFF:
-				data = 0x00;
-				break;
-			case VL53L0X_GPIOFUNCTIONALITY_THRESHOLD_CROSSED_LOW:
-				data = 0x01;
-				break;
-			case VL53L0X_GPIOFUNCTIONALITY_THRESHOLD_CROSSED_HIGH:
-				data = 0x02;
-				break;
-			case VL53L0X_GPIOFUNCTIONALITY_THRESHOLD_CROSSED_OUT:
-				data = 0x03;
-				break;
-			case VL53L0X_GPIOFUNCTIONALITY_NEW_MEASURE_READY:
-				data = 0x04;
-				break;
-			default:
-				Status =
-				VL53L0X_ERROR_GPIO_FUNCTIONALITY_NOT_SUPPORTED;
-			}
-		}
-
-		if (Status == VL53L0X_ERROR_NONE)
-			Status = VL53L0X_WrByte(Dev,
-			VL53L0X_REG_SYSTEM_INTERRUPT_CONFIG_GPIO, data);
-
-		if (Status == VL53L0X_ERROR_NONE) {
-			if (Polarity == VL53L0X_INTERRUPTPOLARITY_LOW)
-				data = 0;
-			else
-				data = (uint8_t)(1 << 4);
-
-			Status = VL53L0X_UpdateByte(Dev,
-			VL53L0X_REG_GPIO_HV_MUX_ACTIVE_HIGH, 0xEF, data);
-		}
-
-		if (Status == VL53L0X_ERROR_NONE)
-			VL53L0X_SETDEVICESPECIFICPARAMETER(Dev,
-				Pin0GpioFunctionality, Functionality);
-
-		if (Status == VL53L0X_ERROR_NONE)
-			Status = VL53L0X_ClearInterruptMask(Dev, 0);
-
-	}
-
-	LOG_FUNCTION_END(Status);
-	return Status;
-}
-
-VL53L0X_Error VL53L0X_GetGpioConfig(VL53L0X_DEV Dev, uint8_t Pin,
-	VL53L0X_DeviceModes *pDeviceMode,
-	VL53L0X_GpioFunctionality *pFunctionality,
-	VL53L0X_InterruptPolarity *pPolarity)
-{
-	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
-	VL53L0X_GpioFunctionality GpioFunctionality;
-	uint8_t data;
-
-	LOG_FUNCTION_START("");
-
-	/* pDeviceMode not managed by Ewok it return the current mode */
-
-	Status = VL53L0X_GetDeviceMode(Dev, pDeviceMode);
-
-	if (Status == VL53L0X_ERROR_NONE) {
-		if (Pin != 0) {
-			Status = VL53L0X_ERROR_GPIO_NOT_EXISTING;
-		} else {
-			Status = VL53L0X_RdByte(Dev,
-			VL53L0X_REG_SYSTEM_INTERRUPT_CONFIG_GPIO, &data);
-		}
-	}
-
-	if (Status == VL53L0X_ERROR_NONE) {
-		switch (data & 0x07) {
-		case 0x00:
-			GpioFunctionality = VL53L0X_GPIOFUNCTIONALITY_OFF;
-			break;
-		case 0x01:
-			GpioFunctionality =
-			VL53L0X_GPIOFUNCTIONALITY_THRESHOLD_CROSSED_LOW;
-			break;
-		case 0x02:
-			GpioFunctionality =
-			VL53L0X_GPIOFUNCTIONALITY_THRESHOLD_CROSSED_HIGH;
-			break;
-		case 0x03:
-			GpioFunctionality =
-			VL53L0X_GPIOFUNCTIONALITY_THRESHOLD_CROSSED_OUT;
-			break;
-		case 0x04:
-			GpioFunctionality =
-			VL53L0X_GPIOFUNCTIONALITY_NEW_MEASURE_READY;
-			break;
-		default:
-			Status = VL53L0X_ERROR_GPIO_FUNCTIONALITY_NOT_SUPPORTED;
-		}
-	}
-
-	if (Status == VL53L0X_ERROR_NONE)
-		Status = VL53L0X_RdByte(Dev, VL53L0X_REG_GPIO_HV_MUX_ACTIVE_HIGH,
-			&data);
-
-	if (Status == VL53L0X_ERROR_NONE) {
-		if ((data & (uint8_t)(1 << 4)) == 0)
-			*pPolarity = VL53L0X_INTERRUPTPOLARITY_LOW;
-		else
-			*pPolarity = VL53L0X_INTERRUPTPOLARITY_HIGH;
-	}
-
-	if (Status == VL53L0X_ERROR_NONE) {
-		*pFunctionality = GpioFunctionality;
-		VL53L0X_SETDEVICESPECIFICPARAMETER(Dev, Pin0GpioFunctionality,
-			GpioFunctionality);
-	}
-
-	LOG_FUNCTION_END(Status);
-	return Status;
-}
-
-VL53L0X_Error VL53L0X_SetInterruptThresholds(VL53L0X_DEV Dev,
-	VL53L0X_DeviceModes DeviceMode, FixPoint1616_t ThresholdLow,
-	FixPoint1616_t ThresholdHigh)
-{
-	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
-	uint16_t Threshold16;
-	LOG_FUNCTION_START("");
-
-	/* no dependency on DeviceMode for Ewok */
-	/* Need to divide by 2 because the FW will apply a x2 */
-	Threshold16 = (uint16_t)((ThresholdLow >> 17) & 0x00fff);
-	Status = VL53L0X_WrWord(Dev, VL53L0X_REG_SYSTEM_THRESH_LOW, Threshold16);
-
-	if (Status == VL53L0X_ERROR_NONE) {
-		/* Need to divide by 2 because the FW will apply a x2 */
-		Threshold16 = (uint16_t)((ThresholdHigh >> 17) & 0x00fff);
-		Status = VL53L0X_WrWord(Dev, VL53L0X_REG_SYSTEM_THRESH_HIGH,
-			Threshold16);
-	}
-
-	LOG_FUNCTION_END(Status);
-	return Status;
-}
-
-VL53L0X_Error VL53L0X_GetInterruptThresholds(VL53L0X_DEV Dev,
-	VL53L0X_DeviceModes DeviceMode, FixPoint1616_t *pThresholdLow,
-	FixPoint1616_t *pThresholdHigh)
-{
-	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
-	uint16_t Threshold16;
-	LOG_FUNCTION_START("");
-
-	/* no dependency on DeviceMode for Ewok */
-
-	Status = VL53L0X_RdWord(Dev, VL53L0X_REG_SYSTEM_THRESH_LOW, &Threshold16);
-	/* Need to multiply by 2 because the FW will apply a x2 */
-	*pThresholdLow = (FixPoint1616_t)((0x00fff & Threshold16) << 17);
-
-	if (Status == VL53L0X_ERROR_NONE) {
-		Status = VL53L0X_RdWord(Dev, VL53L0X_REG_SYSTEM_THRESH_HIGH,
-			&Threshold16);
-		/* Need to multiply by 2 because the FW will apply a x2 */
-		*pThresholdHigh =
-			(FixPoint1616_t)((0x00fff & Threshold16) << 17);
-	}
-
-	LOG_FUNCTION_END(Status);
-	return Status;
-}
-
-VL53L0X_Error VL53L0X_GetStopCompletedStatus(VL53L0X_DEV Dev,
-	uint32_t *pStopStatus)
-{
-	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
-	uint8_t Byte = 0;
-	LOG_FUNCTION_START("");
-
-	Status = VL53L0X_WrByte(Dev, 0xFF, 0x01);
-
-	if (Status == VL53L0X_ERROR_NONE)
-		Status = VL53L0X_RdByte(Dev, 0x04, &Byte);
-
-	if (Status == VL53L0X_ERROR_NONE)
-		Status = VL53L0X_WrByte(Dev, 0xFF, 0x0);
-
-	*pStopStatus = Byte;
-
-	if (Byte == 0) {
-		Status = VL53L0X_WrByte(Dev, 0x80, 0x01);
-		Status = VL53L0X_WrByte(Dev, 0xFF, 0x01);
-		Status = VL53L0X_WrByte(Dev, 0x00, 0x00);
-		Status = VL53L0X_WrByte(Dev, 0x91,
-			PALDevDataGet(Dev, StopVariable));
-		Status = VL53L0X_WrByte(Dev, 0x00, 0x01);
-		Status = VL53L0X_WrByte(Dev, 0xFF, 0x00);
-		Status = VL53L0X_WrByte(Dev, 0x80, 0x00);
-	}
-
-	LOG_FUNCTION_END(Status);
-	return Status;
-}
-
-/* Group PAL Interrupt Functions */
-VL53L0X_Error VL53L0X_ClearInterruptMask(VL53L0X_DEV Dev, uint32_t InterruptMask)
-{
-	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
-	uint8_t LoopCount;
-	uint8_t Byte;
-	LOG_FUNCTION_START("");
-
-	/* clear bit 0 range interrupt, bit 1 error interrupt */
-	LoopCount = 0;
-	do {
-		Status = VL53L0X_WrByte(Dev,
-			VL53L0X_REG_SYSTEM_INTERRUPT_CLEAR, 0x01);
-		Status |= VL53L0X_WrByte(Dev,
-			VL53L0X_REG_SYSTEM_INTERRUPT_CLEAR, 0x00);
-		Status |= VL53L0X_RdByte(Dev,
-			VL53L0X_REG_RESULT_INTERRUPT_STATUS, &Byte);
-		LoopCount++;
-	} while (((Byte & 0x07) != 0x00)
-			&& (LoopCount < 3)
-			&& (Status == VL53L0X_ERROR_NONE));
-
-
-	if (LoopCount >= 3)
-		Status = VL53L0X_ERROR_INTERRUPT_NOT_CLEARED;
-
-	LOG_FUNCTION_END(Status);
-	return Status;
-}
-
-VL53L0X_Error VL53L0X_GetInterruptMaskStatus(VL53L0X_DEV Dev,
-	uint32_t *pInterruptMaskStatus)
-{
-	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
-	uint8_t Byte;
-	LOG_FUNCTION_START("");
-
-	Status = VL53L0X_RdByte(Dev, VL53L0X_REG_RESULT_INTERRUPT_STATUS, &Byte);
-	*pInterruptMaskStatus = Byte & 0x07;
-
-	if (Byte & 0x18)
-		Status = VL53L0X_ERROR_RANGE_ERROR;
-
-	LOG_FUNCTION_END(Status);
-	return Status;
-}
-
-VL53L0X_Error VL53L0X_EnableInterruptMask(VL53L0X_DEV Dev, uint32_t InterruptMask)
-{
-	VL53L0X_Error Status = VL53L0X_ERROR_NOT_IMPLEMENTED;
-	LOG_FUNCTION_START("");
-
-	/* not implemented for VL53L0X */
-
-	LOG_FUNCTION_END(Status);
-	return Status;
-}
-
-/* End Group PAL Interrupt Functions */
-
-/* Group SPAD functions */
-
-VL53L0X_Error VL53L0X_SetSpadAmbientDamperThreshold(VL53L0X_DEV Dev,
-	uint16_t SpadAmbientDamperThreshold)
-{
-	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
-	LOG_FUNCTION_START("");
-
-	Status = VL53L0X_WrByte(Dev, 0xFF, 0x01);
-	Status |= VL53L0X_WrWord(Dev, 0x40, SpadAmbientDamperThreshold);
-	Status |= VL53L0X_WrByte(Dev, 0xFF, 0x00);
-
-	LOG_FUNCTION_END(Status);
-	return Status;
-}
-
-VL53L0X_Error VL53L0X_GetSpadAmbientDamperThreshold(VL53L0X_DEV Dev,
-	uint16_t *pSpadAmbientDamperThreshold)
-{
-	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
-	LOG_FUNCTION_START("");
-
-	Status = VL53L0X_WrByte(Dev, 0xFF, 0x01);
-	Status |= VL53L0X_RdWord(Dev, 0x40, pSpadAmbientDamperThreshold);
-	Status |= VL53L0X_WrByte(Dev, 0xFF, 0x00);
-
-	LOG_FUNCTION_END(Status);
-	return Status;
-}
-
-VL53L0X_Error VL53L0X_SetSpadAmbientDamperFactor(VL53L0X_DEV Dev,
-	uint16_t SpadAmbientDamperFactor)
-{
-	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
-	uint8_t Byte;
-	LOG_FUNCTION_START("");
-
-	Byte = (uint8_t)(SpadAmbientDamperFactor & 0x00FF);
-
-	Status = VL53L0X_WrByte(Dev, 0xFF, 0x01);
-	Status |= VL53L0X_WrByte(Dev, 0x42, Byte);
-	Status |= VL53L0X_WrByte(Dev, 0xFF, 0x00);
-
-	LOG_FUNCTION_END(Status);
-	return Status;
-}
-
-VL53L0X_Error VL53L0X_GetSpadAmbientDamperFactor(VL53L0X_DEV Dev,
-	uint16_t *pSpadAmbientDamperFactor)
-{
-	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
-	uint8_t Byte;
-	LOG_FUNCTION_START("");
-
-	Status = VL53L0X_WrByte(Dev, 0xFF, 0x01);
-	Status |= VL53L0X_RdByte(Dev, 0x42, &Byte);
-	Status |= VL53L0X_WrByte(Dev, 0xFF, 0x00);
-	*pSpadAmbientDamperFactor = (uint16_t)Byte;
-
-	LOG_FUNCTION_END(Status);
-	return Status;
-}
-
-/* END Group SPAD functions */
-
-/*****************************************************************************
- * Internal functions
- *****************************************************************************/
-
-VL53L0X_Error VL53L0X_SetReferenceSpads(VL53L0X_DEV Dev, uint32_t count,
-	uint8_t isApertureSpads)
-{
-	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
-	LOG_FUNCTION_START("");
-
-	Status = VL53L0X_set_reference_spads(Dev, count, isApertureSpads);
-
-	LOG_FUNCTION_END(Status);
-
-	return Status;
-}
-
-VL53L0X_Error VL53L0X_GetReferenceSpads(VL53L0X_DEV Dev, uint32_t *pSpadCount,
-	uint8_t *pIsApertureSpads)
-{
-	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
-	LOG_FUNCTION_START("");
-
-	Status = VL53L0X_get_reference_spads(Dev, pSpadCount, pIsApertureSpads);
-
-	LOG_FUNCTION_END(Status);
-
-	return Status;
-}
-
-VL53L0X_Error VL53L0X_PerformRefSpadManagement(VL53L0X_DEV Dev,
-	uint32_t *refSpadCount, uint8_t *isApertureSpads)
-{
-	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
-	LOG_FUNCTION_START("");
-
-	Status = VL53L0X_perform_ref_spad_management(Dev, refSpadCount,
-		isApertureSpads);
-
-	LOG_FUNCTION_END(Status);
-
-	return Status;
-}
+/*******************************************************************************
+ Copyright � 2016, STMicroelectronics International N.V.
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ * 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.
+ * 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, FITNESS FOR A PARTICULAR PURPOSE, AND
+ NON-INFRINGEMENT OF INTELLECTUAL PROPERTY RIGHTS ARE DISCLAIMED.
+ IN NO EVENT SHALL STMICROELECTRONICS INTERNATIONAL N.V. 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 "vl53l0x_api.h"
+#include "vl53l0x_tuning.h"
+#include "vl53l0x_interrupt_threshold_settings.h"
+#include "vl53l0x_api_core.h"
+#include "vl53l0x_api_calibration.h"
+#include "vl53l0x_api_strings.h"
+
+#ifndef __KERNEL__
+#include <stdlib.h>
+#endif
+#define LOG_FUNCTION_START(fmt, ...) \
+	_LOG_FUNCTION_START(TRACE_MODULE_API, fmt, ##__VA_ARGS__)
+#define LOG_FUNCTION_END(status, ...) \
+	_LOG_FUNCTION_END(TRACE_MODULE_API, status, ##__VA_ARGS__)
+#define LOG_FUNCTION_END_FMT(status, fmt, ...) \
+	_LOG_FUNCTION_END_FMT(TRACE_MODULE_API, status, fmt, ##__VA_ARGS__)
+
+#ifdef VL53L0X_LOG_ENABLE
+#define trace_print(level, ...) trace_print_module_function(TRACE_MODULE_API, \
+	level, TRACE_FUNCTION_NONE, ##__VA_ARGS__)
+#endif
+
+/* Group PAL General Functions */
+
+VL53L0X_Error VL53L0X_GetVersion(VL53L0X_Version_t *pVersion)
+{
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+	LOG_FUNCTION_START("");
+
+	pVersion->major = VL53L0X_IMPLEMENTATION_VER_MAJOR;
+	pVersion->minor = VL53L0X_IMPLEMENTATION_VER_MINOR;
+	pVersion->build = VL53L0X_IMPLEMENTATION_VER_SUB;
+
+	pVersion->revision = VL53L0X_IMPLEMENTATION_VER_REVISION;
+
+	LOG_FUNCTION_END(Status);
+	return Status;
+}
+
+VL53L0X_Error VL53L0X_GetPalSpecVersion(VL53L0X_Version_t *pPalSpecVersion)
+{
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+
+	LOG_FUNCTION_START("");
+
+	pPalSpecVersion->major = VL53L0X_SPECIFICATION_VER_MAJOR;
+	pPalSpecVersion->minor = VL53L0X_SPECIFICATION_VER_MINOR;
+	pPalSpecVersion->build = VL53L0X_SPECIFICATION_VER_SUB;
+
+	pPalSpecVersion->revision = VL53L0X_SPECIFICATION_VER_REVISION;
+
+	LOG_FUNCTION_END(Status);
+	return Status;
+}
+
+VL53L0X_Error VL53L0X_GetProductRevision(VL53L0X_DEV Dev,
+	uint8_t *pProductRevisionMajor, uint8_t *pProductRevisionMinor)
+{
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+	uint8_t revision_id;
+
+	LOG_FUNCTION_START("");
+
+	Status = VL53L0X_RdByte(Dev, VL53L0X_REG_IDENTIFICATION_REVISION_ID,
+		&revision_id);
+	*pProductRevisionMajor = 1;
+	*pProductRevisionMinor = (revision_id & 0xF0) >> 4;
+
+	LOG_FUNCTION_END(Status);
+	return Status;
+
+}
+
+VL53L0X_Error VL53L0X_GetDeviceInfo(VL53L0X_DEV Dev,
+	VL53L0X_DeviceInfo_t *pVL53L0X_DeviceInfo)
+{
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+	LOG_FUNCTION_START("");
+
+	Status = VL53L0X_get_device_info(Dev, pVL53L0X_DeviceInfo);
+
+	LOG_FUNCTION_END(Status);
+	return Status;
+}
+
+VL53L0X_Error VL53L0X_GetDeviceErrorStatus(VL53L0X_DEV Dev,
+	VL53L0X_DeviceError *pDeviceErrorStatus)
+{
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+	uint8_t RangeStatus;
+
+	LOG_FUNCTION_START("");
+
+	Status = VL53L0X_RdByte(Dev, VL53L0X_REG_RESULT_RANGE_STATUS,
+		&RangeStatus);
+
+	*pDeviceErrorStatus = (VL53L0X_DeviceError)((RangeStatus & 0x78) >> 3);
+
+	LOG_FUNCTION_END(Status);
+	return Status;
+}
+
+
+VL53L0X_Error VL53L0X_GetDeviceErrorString(VL53L0X_DeviceError ErrorCode,
+	char *pDeviceErrorString)
+{
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+
+	LOG_FUNCTION_START("");
+
+	Status = VL53L0X_get_device_error_string(ErrorCode, pDeviceErrorString);
+
+	LOG_FUNCTION_END(Status);
+	return Status;
+}
+
+VL53L0X_Error VL53L0X_GetRangeStatusString(uint8_t RangeStatus,
+	char *pRangeStatusString)
+{
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+	LOG_FUNCTION_START("");
+
+	Status = VL53L0X_get_range_status_string(RangeStatus,
+		pRangeStatusString);
+
+	LOG_FUNCTION_END(Status);
+	return Status;
+}
+
+VL53L0X_Error VL53L0X_GetPalErrorString(VL53L0X_Error PalErrorCode,
+	char *pPalErrorString)
+{
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+	LOG_FUNCTION_START("");
+
+	Status = VL53L0X_get_pal_error_string(PalErrorCode, pPalErrorString);
+
+	LOG_FUNCTION_END(Status);
+	return Status;
+}
+
+VL53L0X_Error VL53L0X_GetPalStateString(VL53L0X_State PalStateCode,
+	char *pPalStateString)
+{
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+	LOG_FUNCTION_START("");
+
+	Status = VL53L0X_get_pal_state_string(PalStateCode, pPalStateString);
+
+	LOG_FUNCTION_END(Status);
+	return Status;
+}
+
+VL53L0X_Error VL53L0X_GetPalState(VL53L0X_DEV Dev, VL53L0X_State *pPalState)
+{
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+	LOG_FUNCTION_START("");
+
+	*pPalState = PALDevDataGet(Dev, PalState);
+
+	LOG_FUNCTION_END(Status);
+	return Status;
+}
+
+VL53L0X_Error VL53L0X_SetPowerMode(VL53L0X_DEV Dev, VL53L0X_PowerModes PowerMode)
+{
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+	LOG_FUNCTION_START("");
+
+	/* Only level1 of Power mode exists */
+	if ((PowerMode != VL53L0X_POWERMODE_STANDBY_LEVEL1)
+		&& (PowerMode != VL53L0X_POWERMODE_IDLE_LEVEL1)) {
+		Status = VL53L0X_ERROR_MODE_NOT_SUPPORTED;
+	} else if (PowerMode == VL53L0X_POWERMODE_STANDBY_LEVEL1) {
+		/* set the standby level1 of power mode */
+		Status = VL53L0X_WrByte(Dev, 0x80, 0x00);
+		if (Status == VL53L0X_ERROR_NONE) {
+			/* Set PAL State to standby */
+			PALDevDataSet(Dev, PalState, VL53L0X_STATE_STANDBY);
+			PALDevDataSet(Dev, PowerMode,
+				VL53L0X_POWERMODE_STANDBY_LEVEL1);
+		}
+
+	} else {
+		/* VL53L0X_POWERMODE_IDLE_LEVEL1 */
+		Status = VL53L0X_WrByte(Dev, 0x80, 0x00);
+		if (Status == VL53L0X_ERROR_NONE)
+			Status = VL53L0X_StaticInit(Dev);
+
+		if (Status == VL53L0X_ERROR_NONE)
+			PALDevDataSet(Dev, PowerMode,
+				VL53L0X_POWERMODE_IDLE_LEVEL1);
+
+	}
+
+	LOG_FUNCTION_END(Status);
+	return Status;
+}
+
+VL53L0X_Error VL53L0X_GetPowerMode(VL53L0X_DEV Dev, VL53L0X_PowerModes *pPowerMode)
+{
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+	uint8_t Byte;
+	LOG_FUNCTION_START("");
+
+	/* Only level1 of Power mode exists */
+	Status = VL53L0X_RdByte(Dev, 0x80, &Byte);
+
+	if (Status == VL53L0X_ERROR_NONE) {
+		if (Byte == 1) {
+			PALDevDataSet(Dev, PowerMode,
+				VL53L0X_POWERMODE_IDLE_LEVEL1);
+		} else {
+			PALDevDataSet(Dev, PowerMode,
+				VL53L0X_POWERMODE_STANDBY_LEVEL1);
+		}
+	}
+
+	LOG_FUNCTION_END(Status);
+	return Status;
+}
+
+VL53L0X_Error VL53L0X_SetOffsetCalibrationDataMicroMeter(VL53L0X_DEV Dev,
+	int32_t OffsetCalibrationDataMicroMeter)
+{
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+	LOG_FUNCTION_START("");
+
+	Status = VL53L0X_set_offset_calibration_data_micro_meter(Dev,
+		OffsetCalibrationDataMicroMeter);
+
+	LOG_FUNCTION_END(Status);
+	return Status;
+}
+
+VL53L0X_Error VL53L0X_GetOffsetCalibrationDataMicroMeter(VL53L0X_DEV Dev,
+	int32_t *pOffsetCalibrationDataMicroMeter)
+{
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+	LOG_FUNCTION_START("");
+
+	Status = VL53L0X_get_offset_calibration_data_micro_meter(Dev,
+		pOffsetCalibrationDataMicroMeter);
+
+	LOG_FUNCTION_END(Status);
+	return Status;
+}
+
+VL53L0X_Error VL53L0X_SetLinearityCorrectiveGain(VL53L0X_DEV Dev,
+	int16_t LinearityCorrectiveGain)
+{
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+	LOG_FUNCTION_START("");
+
+	if ((LinearityCorrectiveGain < 0) || (LinearityCorrectiveGain > 1000))
+		Status = VL53L0X_ERROR_INVALID_PARAMS;
+	else {
+		PALDevDataSet(Dev, LinearityCorrectiveGain,
+			LinearityCorrectiveGain);
+
+		if (LinearityCorrectiveGain != 1000) {
+			/* Disable FW Xtalk */
+			Status = VL53L0X_WrWord(Dev,
+			VL53L0X_REG_CROSSTALK_COMPENSATION_PEAK_RATE_MCPS, 0);
+		}
+	}
+
+	LOG_FUNCTION_END(Status);
+	return Status;
+}
+
+VL53L0X_Error VL53L0X_GetLinearityCorrectiveGain(VL53L0X_DEV Dev,
+	uint16_t *pLinearityCorrectiveGain)
+{
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+	LOG_FUNCTION_START("");
+
+	*pLinearityCorrectiveGain = PALDevDataGet(Dev, LinearityCorrectiveGain);
+
+	LOG_FUNCTION_END(Status);
+	return Status;
+}
+
+VL53L0X_Error VL53L0X_SetGroupParamHold(VL53L0X_DEV Dev, uint8_t GroupParamHold)
+{
+	VL53L0X_Error Status = VL53L0X_ERROR_NOT_IMPLEMENTED;
+	LOG_FUNCTION_START("");
+
+	/* not implemented on VL53L0X */
+
+	LOG_FUNCTION_END(Status);
+	return Status;
+}
+
+VL53L0X_Error VL53L0X_GetUpperLimitMilliMeter(VL53L0X_DEV Dev,
+	uint16_t *pUpperLimitMilliMeter)
+{
+	VL53L0X_Error Status = VL53L0X_ERROR_NOT_IMPLEMENTED;
+	LOG_FUNCTION_START("");
+
+	/* not implemented on VL53L0X */
+
+	LOG_FUNCTION_END(Status);
+	return Status;
+}
+
+VL53L0X_Error VL53L0X_GetTotalSignalRate(VL53L0X_DEV Dev,
+	FixPoint1616_t *pTotalSignalRate)
+{
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+	VL53L0X_RangingMeasurementData_t LastRangeDataBuffer;
+
+	LOG_FUNCTION_START("");
+
+	LastRangeDataBuffer = PALDevDataGet(Dev, LastRangeMeasure);
+
+	Status = VL53L0X_get_total_signal_rate(
+		Dev, &LastRangeDataBuffer, pTotalSignalRate);
+
+	LOG_FUNCTION_END(Status);
+	return Status;
+}
+
+/* End Group PAL General Functions */
+
+/* Group PAL Init Functions */
+VL53L0X_Error VL53L0X_SetDeviceAddress(VL53L0X_DEV Dev, uint8_t DeviceAddress)
+{
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+	LOG_FUNCTION_START("");
+
+	Status = VL53L0X_WrByte(Dev, VL53L0X_REG_I2C_SLAVE_DEVICE_ADDRESS,
+		DeviceAddress / 2);
+
+	LOG_FUNCTION_END(Status);
+	return Status;
+}
+
+VL53L0X_Error VL53L0X_DataInit(VL53L0X_DEV Dev)
+{
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+	VL53L0X_DeviceParameters_t CurrentParameters;
+	int i;
+	uint8_t StopVariable;
+
+	LOG_FUNCTION_START("");
+
+	/* by default the I2C is running at 1V8 if you want to change it you
+	 * need to include this define at compilation level. */
+#ifdef USE_I2C_2V8
+	Status = VL53L0X_UpdateByte(Dev,
+		VL53L0X_REG_VHV_CONFIG_PAD_SCL_SDA__EXTSUP_HV,
+		0xFE,
+		0x01);
+#endif
+
+	/* Set I2C standard mode */
+	if (Status == VL53L0X_ERROR_NONE)
+		Status = VL53L0X_WrByte(Dev, 0x88, 0x00);
+
+	VL53L0X_SETDEVICESPECIFICPARAMETER(Dev, ReadDataFromDeviceDone, 0);
+
+#ifdef USE_IQC_STATION
+	if (Status == VL53L0X_ERROR_NONE)
+		Status = VL53L0X_apply_offset_adjustment(Dev);
+#endif
+
+	/* Default value is 1000 for Linearity Corrective Gain */
+	PALDevDataSet(Dev, LinearityCorrectiveGain, 1000);
+
+	/* Dmax default Parameter */
+	PALDevDataSet(Dev, DmaxCalRangeMilliMeter, 400);
+	PALDevDataSet(Dev, DmaxCalSignalRateRtnMegaCps,
+		(FixPoint1616_t)((0x00016B85))); /* 1.42 No Cover Glass*/
+
+	/* Set Default static parameters
+	 *set first temporary values 9.44MHz * 65536 = 618660 */
+	VL53L0X_SETDEVICESPECIFICPARAMETER(Dev, OscFrequencyMHz, 618660);
+
+	/* Set Default XTalkCompensationRateMegaCps to 0  */
+	VL53L0X_SETPARAMETERFIELD(Dev, XTalkCompensationRateMegaCps, 0);
+
+	/* Get default parameters */
+	Status = VL53L0X_GetDeviceParameters(Dev, &CurrentParameters);
+	if (Status == VL53L0X_ERROR_NONE) {
+		/* initialize PAL values */
+		CurrentParameters.DeviceMode = VL53L0X_DEVICEMODE_SINGLE_RANGING;
+		CurrentParameters.HistogramMode = VL53L0X_HISTOGRAMMODE_DISABLED;
+		PALDevDataSet(Dev, CurrentParameters, CurrentParameters);
+	}
+
+	/* Sigma estimator variable */
+	PALDevDataSet(Dev, SigmaEstRefArray, 100);
+	PALDevDataSet(Dev, SigmaEstEffPulseWidth, 900);
+	PALDevDataSet(Dev, SigmaEstEffAmbWidth, 500);
+	PALDevDataSet(Dev, targetRefRate, 0x0A00); /* 20 MCPS in 9:7 format */
+
+	/* Use internal default settings */
+	PALDevDataSet(Dev, UseInternalTuningSettings, 1);
+
+	Status |= VL53L0X_WrByte(Dev, 0x80, 0x01);
+	Status |= VL53L0X_WrByte(Dev, 0xFF, 0x01);
+	Status |= VL53L0X_WrByte(Dev, 0x00, 0x00);
+	Status |= VL53L0X_RdByte(Dev, 0x91, &StopVariable);
+	PALDevDataSet(Dev, StopVariable, StopVariable);
+	Status |= VL53L0X_WrByte(Dev, 0x00, 0x01);
+	Status |= VL53L0X_WrByte(Dev, 0xFF, 0x00);
+	Status |= VL53L0X_WrByte(Dev, 0x80, 0x00);
+
+	/* Enable all check */
+	for (i = 0; i < VL53L0X_CHECKENABLE_NUMBER_OF_CHECKS; i++) {
+		if (Status == VL53L0X_ERROR_NONE)
+			Status |= VL53L0X_SetLimitCheckEnable(Dev, i, 1);
+		else
+			break;
+
+	}
+
+	/* Disable the following checks */
+	if (Status == VL53L0X_ERROR_NONE)
+		Status = VL53L0X_SetLimitCheckEnable(Dev,
+			VL53L0X_CHECKENABLE_SIGNAL_REF_CLIP, 0);
+
+	if (Status == VL53L0X_ERROR_NONE)
+		Status = VL53L0X_SetLimitCheckEnable(Dev,
+			VL53L0X_CHECKENABLE_RANGE_IGNORE_THRESHOLD, 0);
+
+	if (Status == VL53L0X_ERROR_NONE)
+		Status = VL53L0X_SetLimitCheckEnable(Dev,
+			VL53L0X_CHECKENABLE_SIGNAL_RATE_MSRC, 0);
+
+	if (Status == VL53L0X_ERROR_NONE)
+		Status = VL53L0X_SetLimitCheckEnable(Dev,
+			VL53L0X_CHECKENABLE_SIGNAL_RATE_PRE_RANGE, 0);
+
+	/* Limit default values */
+	if (Status == VL53L0X_ERROR_NONE) {
+		Status = VL53L0X_SetLimitCheckValue(Dev,
+			VL53L0X_CHECKENABLE_SIGMA_FINAL_RANGE,
+				(FixPoint1616_t)(18 * 65536));
+	}
+	if (Status == VL53L0X_ERROR_NONE) {
+		Status = VL53L0X_SetLimitCheckValue(Dev,
+			VL53L0X_CHECKENABLE_SIGNAL_RATE_FINAL_RANGE,
+				(FixPoint1616_t)(25 * 65536 / 100));
+				/* 0.25 * 65536 */
+	}
+
+	if (Status == VL53L0X_ERROR_NONE) {
+		Status = VL53L0X_SetLimitCheckValue(Dev,
+			VL53L0X_CHECKENABLE_SIGNAL_REF_CLIP,
+				(FixPoint1616_t)(35 * 65536));
+	}
+
+	if (Status == VL53L0X_ERROR_NONE) {
+		Status = VL53L0X_SetLimitCheckValue(Dev,
+			VL53L0X_CHECKENABLE_RANGE_IGNORE_THRESHOLD,
+				(FixPoint1616_t)(0 * 65536));
+	}
+
+	if (Status == VL53L0X_ERROR_NONE) {
+
+		PALDevDataSet(Dev, SequenceConfig, 0xFF);
+		Status = VL53L0X_WrByte(Dev, VL53L0X_REG_SYSTEM_SEQUENCE_CONFIG,
+			0xFF);
+
+		/* Set PAL state to tell that we are waiting for call to
+		 * VL53L0X_StaticInit */
+		PALDevDataSet(Dev, PalState, VL53L0X_STATE_WAIT_STATICINIT);
+	}
+
+	if (Status == VL53L0X_ERROR_NONE)
+		VL53L0X_SETDEVICESPECIFICPARAMETER(Dev, RefSpadsInitialised, 0);
+
+
+	LOG_FUNCTION_END(Status);
+	return Status;
+}
+
+VL53L0X_Error VL53L0X_SetTuningSettingBuffer(VL53L0X_DEV Dev,
+	uint8_t *pTuningSettingBuffer, uint8_t UseInternalTuningSettings)
+{
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+
+	LOG_FUNCTION_START("");
+
+	if (UseInternalTuningSettings == 1) {
+		/* Force use internal settings */
+		PALDevDataSet(Dev, UseInternalTuningSettings, 1);
+	} else {
+
+		/* check that the first byte is not 0 */
+		if (*pTuningSettingBuffer != 0) {
+			PALDevDataSet(Dev, pTuningSettingsPointer,
+				pTuningSettingBuffer);
+			PALDevDataSet(Dev, UseInternalTuningSettings, 0);
+
+		} else {
+			Status = VL53L0X_ERROR_INVALID_PARAMS;
+		}
+	}
+
+	LOG_FUNCTION_END(Status);
+	return Status;
+}
+
+VL53L0X_Error VL53L0X_GetTuningSettingBuffer(VL53L0X_DEV Dev,
+	uint8_t **ppTuningSettingBuffer, uint8_t *pUseInternalTuningSettings)
+{
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+
+	LOG_FUNCTION_START("");
+
+	*ppTuningSettingBuffer = PALDevDataGet(Dev, pTuningSettingsPointer);
+	*pUseInternalTuningSettings = PALDevDataGet(Dev,
+		UseInternalTuningSettings);
+
+	LOG_FUNCTION_END(Status);
+	return Status;
+}
+
+VL53L0X_Error VL53L0X_StaticInit(VL53L0X_DEV Dev)
+{
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+	VL53L0X_DeviceParameters_t CurrentParameters = {0};
+	uint8_t *pTuningSettingBuffer;
+	uint16_t tempword = 0;
+	uint8_t tempbyte = 0;
+	uint8_t UseInternalTuningSettings = 0;
+	uint32_t count = 0;
+	uint8_t isApertureSpads = 0;
+	uint32_t refSpadCount = 0;
+	uint8_t ApertureSpads = 0;
+	uint8_t vcselPulsePeriodPCLK;
+	uint32_t seqTimeoutMicroSecs;
+
+	LOG_FUNCTION_START("");
+
+	Status = VL53L0X_get_info_from_device(Dev, 1);
+
+	/* set the ref spad from NVM */
+	count	= (uint32_t)VL53L0X_GETDEVICESPECIFICPARAMETER(Dev,
+		ReferenceSpadCount);
+	ApertureSpads = VL53L0X_GETDEVICESPECIFICPARAMETER(Dev,
+		ReferenceSpadType);
+
+	/* NVM value invalid */
+	if ((ApertureSpads > 1) ||
+		((ApertureSpads == 1) && (count > 32)) ||
+		((ApertureSpads == 0) && (count > 12)))
+		Status = VL53L0X_perform_ref_spad_management(Dev, &refSpadCount,
+			&isApertureSpads);
+	else
+		Status = VL53L0X_set_reference_spads(Dev, count, ApertureSpads);
+
+
+	/* Initialize tuning settings buffer to prevent compiler warning. */
+	pTuningSettingBuffer = DefaultTuningSettings;
+
+	if (Status == VL53L0X_ERROR_NONE) {
+		UseInternalTuningSettings = PALDevDataGet(Dev,
+			UseInternalTuningSettings);
+
+		if (UseInternalTuningSettings == 0)
+			pTuningSettingBuffer = PALDevDataGet(Dev,
+				pTuningSettingsPointer);
+		else
+			pTuningSettingBuffer = DefaultTuningSettings;
+
+	}
+
+	if (Status == VL53L0X_ERROR_NONE)
+		Status = VL53L0X_load_tuning_settings(Dev, pTuningSettingBuffer);
+
+
+	/* Set interrupt config to new sample ready */
+	if (Status == VL53L0X_ERROR_NONE) {
+		Status = VL53L0X_SetGpioConfig(Dev, 0, 0,
+		VL53L0X_REG_SYSTEM_INTERRUPT_GPIO_NEW_SAMPLE_READY,
+		VL53L0X_INTERRUPTPOLARITY_LOW);
+	}
+
+	if (Status == VL53L0X_ERROR_NONE) {
+		Status = VL53L0X_WrByte(Dev, 0xFF, 0x01);
+		Status |= VL53L0X_RdWord(Dev, 0x84, &tempword);
+		Status |= VL53L0X_WrByte(Dev, 0xFF, 0x00);
+	}
+
+	if (Status == VL53L0X_ERROR_NONE) {
+		VL53L0X_SETDEVICESPECIFICPARAMETER(Dev, OscFrequencyMHz,
+			VL53L0X_FIXPOINT412TOFIXPOINT1616(tempword));
+	}
+
+	/* After static init, some device parameters may be changed,
+	 * so update them */
+	if (Status == VL53L0X_ERROR_NONE)
+		Status = VL53L0X_GetDeviceParameters(Dev, &CurrentParameters);
+
+
+	if (Status == VL53L0X_ERROR_NONE) {
+		Status = VL53L0X_GetFractionEnable(Dev, &tempbyte);
+		if (Status == VL53L0X_ERROR_NONE)
+			PALDevDataSet(Dev, RangeFractionalEnable, tempbyte);
+
+	}
+
+	if (Status == VL53L0X_ERROR_NONE)
+		PALDevDataSet(Dev, CurrentParameters, CurrentParameters);
+
+
+	/* read the sequence config and save it */
+	if (Status == VL53L0X_ERROR_NONE) {
+		Status = VL53L0X_RdByte(Dev,
+		VL53L0X_REG_SYSTEM_SEQUENCE_CONFIG, &tempbyte);
+		if (Status == VL53L0X_ERROR_NONE)
+			PALDevDataSet(Dev, SequenceConfig, tempbyte);
+
+	}
+
+	/* Disable MSRC and TCC by default */
+	if (Status == VL53L0X_ERROR_NONE)
+		Status = VL53L0X_SetSequenceStepEnable(Dev,
+					VL53L0X_SEQUENCESTEP_TCC, 0);
+
+
+	if (Status == VL53L0X_ERROR_NONE)
+		Status = VL53L0X_SetSequenceStepEnable(Dev,
+		VL53L0X_SEQUENCESTEP_MSRC, 0);
+
+
+	/* Set PAL State to standby */
+	if (Status == VL53L0X_ERROR_NONE)
+		PALDevDataSet(Dev, PalState, VL53L0X_STATE_IDLE);
+
+
+
+	/* Store pre-range vcsel period */
+	if (Status == VL53L0X_ERROR_NONE) {
+		Status = VL53L0X_GetVcselPulsePeriod(
+			Dev,
+			VL53L0X_VCSEL_PERIOD_PRE_RANGE,
+			&vcselPulsePeriodPCLK);
+	}
+
+	if (Status == VL53L0X_ERROR_NONE) {
+			VL53L0X_SETDEVICESPECIFICPARAMETER(
+				Dev,
+				PreRangeVcselPulsePeriod,
+				vcselPulsePeriodPCLK);
+	}
+
+	/* Store final-range vcsel period */
+	if (Status == VL53L0X_ERROR_NONE) {
+		Status = VL53L0X_GetVcselPulsePeriod(
+			Dev,
+			VL53L0X_VCSEL_PERIOD_FINAL_RANGE,
+			&vcselPulsePeriodPCLK);
+	}
+
+	if (Status == VL53L0X_ERROR_NONE) {
+			VL53L0X_SETDEVICESPECIFICPARAMETER(
+				Dev,
+				FinalRangeVcselPulsePeriod,
+				vcselPulsePeriodPCLK);
+	}
+
+	/* Store pre-range timeout */
+	if (Status == VL53L0X_ERROR_NONE) {
+		Status = get_sequence_step_timeout(
+			Dev,
+			VL53L0X_SEQUENCESTEP_PRE_RANGE,
+			&seqTimeoutMicroSecs);
+	}
+
+	if (Status == VL53L0X_ERROR_NONE) {
+		VL53L0X_SETDEVICESPECIFICPARAMETER(
+			Dev,
+			PreRangeTimeoutMicroSecs,
+			seqTimeoutMicroSecs);
+	}
+
+	/* Store final-range timeout */
+	if (Status == VL53L0X_ERROR_NONE) {
+		Status = get_sequence_step_timeout(
+			Dev,
+			VL53L0X_SEQUENCESTEP_FINAL_RANGE,
+			&seqTimeoutMicroSecs);
+	}
+
+	if (Status == VL53L0X_ERROR_NONE) {
+		VL53L0X_SETDEVICESPECIFICPARAMETER(
+			Dev,
+			FinalRangeTimeoutMicroSecs,
+			seqTimeoutMicroSecs);
+	}
+
+	LOG_FUNCTION_END(Status);
+	return Status;
+}
+
+VL53L0X_Error VL53L0X_WaitDeviceBooted(VL53L0X_DEV Dev)
+{
+	VL53L0X_Error Status = VL53L0X_ERROR_NOT_IMPLEMENTED;
+	LOG_FUNCTION_START("");
+
+	/* not implemented on VL53L0X */
+
+	LOG_FUNCTION_END(Status);
+	return Status;
+}
+
+VL53L0X_Error VL53L0X_ResetDevice(VL53L0X_DEV Dev)
+{
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+	uint8_t Byte;
+	LOG_FUNCTION_START("");
+
+	/* Set reset bit */
+	Status = VL53L0X_WrByte(Dev, VL53L0X_REG_SOFT_RESET_GO2_SOFT_RESET_N,
+		0x00);
+
+	/* Wait for some time */
+	if (Status == VL53L0X_ERROR_NONE) {
+		do {
+			Status = VL53L0X_RdByte(Dev,
+			VL53L0X_REG_IDENTIFICATION_MODEL_ID, &Byte);
+		} while (Byte != 0x00);
+	}
+
+	VL53L0X_PollingDelay(Dev);
+
+	/* Release reset */
+	Status = VL53L0X_WrByte(Dev, VL53L0X_REG_SOFT_RESET_GO2_SOFT_RESET_N,
+		0x01);
+
+	/* Wait until correct boot-up of the device */
+	if (Status == VL53L0X_ERROR_NONE) {
+		do {
+			Status = VL53L0X_RdByte(Dev,
+			VL53L0X_REG_IDENTIFICATION_MODEL_ID, &Byte);
+		} while (Byte == 0x00);
+	}
+
+	VL53L0X_PollingDelay(Dev);
+
+	/* Set PAL State to VL53L0X_STATE_POWERDOWN */
+	if (Status == VL53L0X_ERROR_NONE)
+		PALDevDataSet(Dev, PalState, VL53L0X_STATE_POWERDOWN);
+
+
+	LOG_FUNCTION_END(Status);
+	return Status;
+}
+/* End Group PAL Init Functions */
+
+/* Group PAL Parameters Functions */
+VL53L0X_Error VL53L0X_SetDeviceParameters(VL53L0X_DEV Dev,
+	const VL53L0X_DeviceParameters_t *pDeviceParameters)
+{
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+	int i;
+	LOG_FUNCTION_START("");
+	Status = VL53L0X_SetDeviceMode(Dev, pDeviceParameters->DeviceMode);
+
+	if (Status == VL53L0X_ERROR_NONE)
+		Status = VL53L0X_SetInterMeasurementPeriodMilliSeconds(Dev,
+			pDeviceParameters->InterMeasurementPeriodMilliSeconds);
+
+
+	if (Status == VL53L0X_ERROR_NONE)
+		Status = VL53L0X_SetXTalkCompensationRateMegaCps(Dev,
+			pDeviceParameters->XTalkCompensationRateMegaCps);
+
+
+	if (Status == VL53L0X_ERROR_NONE)
+		Status = VL53L0X_SetOffsetCalibrationDataMicroMeter(Dev,
+			pDeviceParameters->RangeOffsetMicroMeters);
+
+
+	for (i = 0; i < VL53L0X_CHECKENABLE_NUMBER_OF_CHECKS; i++) {
+		if (Status == VL53L0X_ERROR_NONE)
+			Status |= VL53L0X_SetLimitCheckEnable(Dev, i,
+				pDeviceParameters->LimitChecksEnable[i]);
+		else
+			break;
+
+		if (Status == VL53L0X_ERROR_NONE)
+			Status |= VL53L0X_SetLimitCheckValue(Dev, i,
+				pDeviceParameters->LimitChecksValue[i]);
+		else
+			break;
+
+	}
+
+	if (Status == VL53L0X_ERROR_NONE)
+		Status = VL53L0X_SetWrapAroundCheckEnable(Dev,
+			pDeviceParameters->WrapAroundCheckEnable);
+
+	if (Status == VL53L0X_ERROR_NONE)
+		Status = VL53L0X_SetMeasurementTimingBudgetMicroSeconds(Dev,
+			pDeviceParameters->MeasurementTimingBudgetMicroSeconds);
+
+
+	LOG_FUNCTION_END(Status);
+	return Status;
+}
+
+VL53L0X_Error VL53L0X_GetDeviceParameters(VL53L0X_DEV Dev,
+	VL53L0X_DeviceParameters_t *pDeviceParameters)
+{
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+	int i;
+
+	LOG_FUNCTION_START("");
+
+	Status = VL53L0X_GetDeviceMode(Dev, &(pDeviceParameters->DeviceMode));
+
+	if (Status == VL53L0X_ERROR_NONE)
+		Status = VL53L0X_GetInterMeasurementPeriodMilliSeconds(Dev,
+		&(pDeviceParameters->InterMeasurementPeriodMilliSeconds));
+
+
+	if (Status == VL53L0X_ERROR_NONE)
+		pDeviceParameters->XTalkCompensationEnable = 0;
+
+	if (Status == VL53L0X_ERROR_NONE)
+		Status = VL53L0X_GetXTalkCompensationRateMegaCps(Dev,
+			&(pDeviceParameters->XTalkCompensationRateMegaCps));
+
+
+	if (Status == VL53L0X_ERROR_NONE)
+		Status = VL53L0X_GetOffsetCalibrationDataMicroMeter(Dev,
+			&(pDeviceParameters->RangeOffsetMicroMeters));
+
+
+	if (Status == VL53L0X_ERROR_NONE) {
+		for (i = 0; i < VL53L0X_CHECKENABLE_NUMBER_OF_CHECKS; i++) {
+			/* get first the values, then the enables.
+			 * VL53L0X_GetLimitCheckValue will modify the enable
+			 * flags
+			 */
+			if (Status == VL53L0X_ERROR_NONE) {
+				Status |= VL53L0X_GetLimitCheckValue(Dev, i,
+				&(pDeviceParameters->LimitChecksValue[i]));
+			} else {
+				break;
+			}
+			if (Status == VL53L0X_ERROR_NONE) {
+				Status |= VL53L0X_GetLimitCheckEnable(Dev, i,
+				&(pDeviceParameters->LimitChecksEnable[i]));
+			} else {
+				break;
+			}
+		}
+	}
+
+	if (Status == VL53L0X_ERROR_NONE) {
+		Status = VL53L0X_GetWrapAroundCheckEnable(Dev,
+			&(pDeviceParameters->WrapAroundCheckEnable));
+	}
+
+	/* Need to be done at the end as it uses VCSELPulsePeriod */
+	if (Status == VL53L0X_ERROR_NONE) {
+		Status = VL53L0X_GetMeasurementTimingBudgetMicroSeconds(Dev,
+		&(pDeviceParameters->MeasurementTimingBudgetMicroSeconds));
+	}
+
+	LOG_FUNCTION_END(Status);
+	return Status;
+}
+
+VL53L0X_Error VL53L0X_SetDeviceMode(VL53L0X_DEV Dev, VL53L0X_DeviceModes DeviceMode)
+{
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+
+	LOG_FUNCTION_START("%d", (int)DeviceMode);
+
+	switch (DeviceMode) {
+	case VL53L0X_DEVICEMODE_SINGLE_RANGING:
+	case VL53L0X_DEVICEMODE_CONTINUOUS_RANGING:
+	case VL53L0X_DEVICEMODE_CONTINUOUS_TIMED_RANGING:
+	case VL53L0X_DEVICEMODE_GPIO_DRIVE:
+	case VL53L0X_DEVICEMODE_GPIO_OSC:
+		/* Supported modes */
+		VL53L0X_SETPARAMETERFIELD(Dev, DeviceMode, DeviceMode);
+		break;
+	default:
+		/* Unsupported mode */
+		Status = VL53L0X_ERROR_MODE_NOT_SUPPORTED;
+	}
+
+	LOG_FUNCTION_END(Status);
+	return Status;
+}
+
+VL53L0X_Error VL53L0X_GetDeviceMode(VL53L0X_DEV Dev,
+	VL53L0X_DeviceModes *pDeviceMode)
+{
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+	LOG_FUNCTION_START("");
+
+	VL53L0X_GETPARAMETERFIELD(Dev, DeviceMode, *pDeviceMode);
+
+	LOG_FUNCTION_END(Status);
+	return Status;
+}
+
+VL53L0X_Error VL53L0X_SetRangeFractionEnable(VL53L0X_DEV Dev,	uint8_t Enable)
+{
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+
+	LOG_FUNCTION_START("%d", (int)Enable);
+
+	Status = VL53L0X_WrByte(Dev, VL53L0X_REG_SYSTEM_RANGE_CONFIG, Enable);
+
+	if (Status == VL53L0X_ERROR_NONE)
+		PALDevDataSet(Dev, RangeFractionalEnable, Enable);
+
+	LOG_FUNCTION_END(Status);
+	return Status;
+}
+
+VL53L0X_Error VL53L0X_GetFractionEnable(VL53L0X_DEV Dev, uint8_t *pEnabled)
+{
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+	LOG_FUNCTION_START("");
+
+	Status = VL53L0X_RdByte(Dev, VL53L0X_REG_SYSTEM_RANGE_CONFIG, pEnabled);
+
+	if (Status == VL53L0X_ERROR_NONE)
+		*pEnabled = (*pEnabled & 1);
+
+	LOG_FUNCTION_END(Status);
+	return Status;
+}
+
+VL53L0X_Error VL53L0X_SetHistogramMode(VL53L0X_DEV Dev,
+	VL53L0X_HistogramModes HistogramMode)
+{
+	VL53L0X_Error Status = VL53L0X_ERROR_NOT_IMPLEMENTED;
+	LOG_FUNCTION_START("");
+
+	/* not implemented on VL53L0X */
+
+	LOG_FUNCTION_END(Status);
+	return Status;
+}
+
+VL53L0X_Error VL53L0X_GetHistogramMode(VL53L0X_DEV Dev,
+	VL53L0X_HistogramModes *pHistogramMode)
+{
+	VL53L0X_Error Status = VL53L0X_ERROR_NOT_IMPLEMENTED;
+	LOG_FUNCTION_START("");
+
+	/* not implemented on VL53L0X */
+
+	LOG_FUNCTION_END(Status);
+	return Status;
+}
+
+VL53L0X_Error VL53L0X_SetMeasurementTimingBudgetMicroSeconds(VL53L0X_DEV Dev,
+	uint32_t MeasurementTimingBudgetMicroSeconds)
+{
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+	LOG_FUNCTION_START("");
+
+	Status = VL53L0X_set_measurement_timing_budget_micro_seconds(Dev,
+		MeasurementTimingBudgetMicroSeconds);
+
+	LOG_FUNCTION_END(Status);
+
+	return Status;
+}
+
+VL53L0X_Error VL53L0X_GetMeasurementTimingBudgetMicroSeconds(VL53L0X_DEV Dev,
+	uint32_t *pMeasurementTimingBudgetMicroSeconds)
+{
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+	LOG_FUNCTION_START("");
+
+	Status = VL53L0X_get_measurement_timing_budget_micro_seconds(Dev,
+		pMeasurementTimingBudgetMicroSeconds);
+
+	LOG_FUNCTION_END(Status);
+	return Status;
+}
+
+VL53L0X_Error VL53L0X_SetVcselPulsePeriod(VL53L0X_DEV Dev,
+	VL53L0X_VcselPeriod VcselPeriodType, uint8_t VCSELPulsePeriodPCLK)
+{
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+	LOG_FUNCTION_START("");
+
+	Status = VL53L0X_set_vcsel_pulse_period(Dev, VcselPeriodType,
+		VCSELPulsePeriodPCLK);
+
+	LOG_FUNCTION_END(Status);
+	return Status;
+}
+
+VL53L0X_Error VL53L0X_GetVcselPulsePeriod(VL53L0X_DEV Dev,
+	VL53L0X_VcselPeriod VcselPeriodType, uint8_t *pVCSELPulsePeriodPCLK)
+{
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+	LOG_FUNCTION_START("");
+
+	Status = VL53L0X_get_vcsel_pulse_period(Dev, VcselPeriodType,
+		pVCSELPulsePeriodPCLK);
+
+	LOG_FUNCTION_END(Status);
+	return Status;
+}
+
+VL53L0X_Error VL53L0X_SetSequenceStepEnable(VL53L0X_DEV Dev,
+	VL53L0X_SequenceStepId SequenceStepId, uint8_t SequenceStepEnabled)
+{
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+	uint8_t SequenceConfig = 0;
+	uint8_t SequenceConfigNew = 0;
+	uint32_t MeasurementTimingBudgetMicroSeconds;
+	LOG_FUNCTION_START("");
+
+	Status = VL53L0X_RdByte(Dev, VL53L0X_REG_SYSTEM_SEQUENCE_CONFIG,
+		&SequenceConfig);
+
+	SequenceConfigNew = SequenceConfig;
+
+	if (Status == VL53L0X_ERROR_NONE) {
+		if (SequenceStepEnabled == 1) {
+
+			/* Enable requested sequence step
+			 */
+			switch (SequenceStepId) {
+			case VL53L0X_SEQUENCESTEP_TCC:
+				SequenceConfigNew |= 0x10;
+				break;
+			case VL53L0X_SEQUENCESTEP_DSS:
+				SequenceConfigNew |= 0x28;
+				break;
+			case VL53L0X_SEQUENCESTEP_MSRC:
+				SequenceConfigNew |= 0x04;
+				break;
+			case VL53L0X_SEQUENCESTEP_PRE_RANGE:
+				SequenceConfigNew |= 0x40;
+				break;
+			case VL53L0X_SEQUENCESTEP_FINAL_RANGE:
+				SequenceConfigNew |= 0x80;
+				break;
+			default:
+				Status = VL53L0X_ERROR_INVALID_PARAMS;
+			}
+		} else {
+			/* Disable requested sequence step
+			 */
+			switch (SequenceStepId) {
+			case VL53L0X_SEQUENCESTEP_TCC:
+				SequenceConfigNew &= 0xef;
+				break;
+			case VL53L0X_SEQUENCESTEP_DSS:
+				SequenceConfigNew &= 0xd7;
+				break;
+			case VL53L0X_SEQUENCESTEP_MSRC:
+				SequenceConfigNew &= 0xfb;
+				break;
+			case VL53L0X_SEQUENCESTEP_PRE_RANGE:
+				SequenceConfigNew &= 0xbf;
+				break;
+			case VL53L0X_SEQUENCESTEP_FINAL_RANGE:
+				SequenceConfigNew &= 0x7f;
+				break;
+			default:
+				Status = VL53L0X_ERROR_INVALID_PARAMS;
+			}
+		}
+	}
+
+	if (SequenceConfigNew != SequenceConfig) {
+		/* Apply New Setting */
+		if (Status == VL53L0X_ERROR_NONE) {
+			Status = VL53L0X_WrByte(Dev,
+			VL53L0X_REG_SYSTEM_SEQUENCE_CONFIG, SequenceConfigNew);
+		}
+		if (Status == VL53L0X_ERROR_NONE)
+			PALDevDataSet(Dev, SequenceConfig, SequenceConfigNew);
+
+
+		/* Recalculate timing budget */
+		if (Status == VL53L0X_ERROR_NONE) {
+			VL53L0X_GETPARAMETERFIELD(Dev,
+				MeasurementTimingBudgetMicroSeconds,
+				MeasurementTimingBudgetMicroSeconds);
+
+			VL53L0X_SetMeasurementTimingBudgetMicroSeconds(Dev,
+				MeasurementTimingBudgetMicroSeconds);
+		}
+	}
+
+	LOG_FUNCTION_END(Status);
+
+	return Status;
+}
+
+VL53L0X_Error sequence_step_enabled(VL53L0X_DEV Dev,
+	VL53L0X_SequenceStepId SequenceStepId, uint8_t SequenceConfig,
+	uint8_t *pSequenceStepEnabled)
+{
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+	*pSequenceStepEnabled = 0;
+	LOG_FUNCTION_START("");
+
+	switch (SequenceStepId) {
+	case VL53L0X_SEQUENCESTEP_TCC:
+		*pSequenceStepEnabled = (SequenceConfig & 0x10) >> 4;
+		break;
+	case VL53L0X_SEQUENCESTEP_DSS:
+		*pSequenceStepEnabled = (SequenceConfig & 0x08) >> 3;
+		break;
+	case VL53L0X_SEQUENCESTEP_MSRC:
+		*pSequenceStepEnabled = (SequenceConfig & 0x04) >> 2;
+		break;
+	case VL53L0X_SEQUENCESTEP_PRE_RANGE:
+		*pSequenceStepEnabled = (SequenceConfig & 0x40) >> 6;
+		break;
+	case VL53L0X_SEQUENCESTEP_FINAL_RANGE:
+		*pSequenceStepEnabled = (SequenceConfig & 0x80) >> 7;
+		break;
+	default:
+		Status = VL53L0X_ERROR_INVALID_PARAMS;
+	}
+
+	LOG_FUNCTION_END(Status);
+	return Status;
+}
+
+VL53L0X_Error VL53L0X_GetSequenceStepEnable(VL53L0X_DEV Dev,
+	VL53L0X_SequenceStepId SequenceStepId, uint8_t *pSequenceStepEnabled)
+{
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+	uint8_t SequenceConfig = 0;
+	LOG_FUNCTION_START("");
+
+	Status = VL53L0X_RdByte(Dev, VL53L0X_REG_SYSTEM_SEQUENCE_CONFIG,
+		&SequenceConfig);
+
+	if (Status == VL53L0X_ERROR_NONE) {
+		Status = sequence_step_enabled(Dev, SequenceStepId,
+			SequenceConfig, pSequenceStepEnabled);
+	}
+
+	LOG_FUNCTION_END(Status);
+	return Status;
+}
+
+VL53L0X_Error VL53L0X_GetSequenceStepEnables(VL53L0X_DEV Dev,
+	VL53L0X_SchedulerSequenceSteps_t *pSchedulerSequenceSteps)
+{
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+	uint8_t SequenceConfig = 0;
+	LOG_FUNCTION_START("");
+
+	Status = VL53L0X_RdByte(Dev, VL53L0X_REG_SYSTEM_SEQUENCE_CONFIG,
+		&SequenceConfig);
+
+	if (Status == VL53L0X_ERROR_NONE) {
+		Status = sequence_step_enabled(Dev,
+		VL53L0X_SEQUENCESTEP_TCC, SequenceConfig,
+			&pSchedulerSequenceSteps->TccOn);
+	}
+	if (Status == VL53L0X_ERROR_NONE) {
+		Status = sequence_step_enabled(Dev,
+		VL53L0X_SEQUENCESTEP_DSS, SequenceConfig,
+			&pSchedulerSequenceSteps->DssOn);
+	}
+	if (Status == VL53L0X_ERROR_NONE) {
+		Status = sequence_step_enabled(Dev,
+		VL53L0X_SEQUENCESTEP_MSRC, SequenceConfig,
+			&pSchedulerSequenceSteps->MsrcOn);
+	}
+	if (Status == VL53L0X_ERROR_NONE) {
+		Status = sequence_step_enabled(Dev,
+		VL53L0X_SEQUENCESTEP_PRE_RANGE, SequenceConfig,
+			&pSchedulerSequenceSteps->PreRangeOn);
+	}
+	if (Status == VL53L0X_ERROR_NONE) {
+		Status = sequence_step_enabled(Dev,
+		VL53L0X_SEQUENCESTEP_FINAL_RANGE, SequenceConfig,
+			&pSchedulerSequenceSteps->FinalRangeOn);
+	}
+
+	LOG_FUNCTION_END(Status);
+	return Status;
+}
+
+VL53L0X_Error VL53L0X_GetNumberOfSequenceSteps(VL53L0X_DEV Dev,
+	uint8_t *pNumberOfSequenceSteps)
+{
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+	LOG_FUNCTION_START("");
+
+	*pNumberOfSequenceSteps = VL53L0X_SEQUENCESTEP_NUMBER_OF_CHECKS;
+
+	LOG_FUNCTION_END(Status);
+	return Status;
+}
+
+VL53L0X_Error VL53L0X_GetSequenceStepsInfo(VL53L0X_SequenceStepId SequenceStepId,
+	char *pSequenceStepsString)
+{
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+	LOG_FUNCTION_START("");
+
+	Status = VL53L0X_get_sequence_steps_info(
+			SequenceStepId,
+			pSequenceStepsString);
+
+	LOG_FUNCTION_END(Status);
+
+	return Status;
+}
+
+VL53L0X_Error VL53L0X_SetSequenceStepTimeout(VL53L0X_DEV Dev,
+	VL53L0X_SequenceStepId SequenceStepId, FixPoint1616_t TimeOutMilliSecs)
+{
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+	VL53L0X_Error Status1 = VL53L0X_ERROR_NONE;
+	uint32_t TimeoutMicroSeconds = ((TimeOutMilliSecs * 1000) + 0x8000)
+		>> 16;
+	uint32_t MeasurementTimingBudgetMicroSeconds;
+	FixPoint1616_t OldTimeOutMicroSeconds;
+
+	LOG_FUNCTION_START("");
+
+	/* Read back the current value in case we need to revert back to this.
+	 */
+	Status = get_sequence_step_timeout(Dev, SequenceStepId,
+		&OldTimeOutMicroSeconds);
+
+	if (Status == VL53L0X_ERROR_NONE) {
+		Status = set_sequence_step_timeout(Dev, SequenceStepId,
+			TimeoutMicroSeconds);
+	}
+
+	if (Status == VL53L0X_ERROR_NONE) {
+		VL53L0X_GETPARAMETERFIELD(Dev,
+			MeasurementTimingBudgetMicroSeconds,
+			MeasurementTimingBudgetMicroSeconds);
+
+		/* At this point we don't know if the requested value is valid,
+		 therefore proceed to update the entire timing budget and
+		 if this fails, revert back to the previous value.
+		 */
+		Status = VL53L0X_SetMeasurementTimingBudgetMicroSeconds(Dev,
+			MeasurementTimingBudgetMicroSeconds);
+
+		if (Status != VL53L0X_ERROR_NONE) {
+			Status1 = set_sequence_step_timeout(Dev, SequenceStepId,
+				OldTimeOutMicroSeconds);
+
+			if (Status1 == VL53L0X_ERROR_NONE) {
+				Status1 =
+				VL53L0X_SetMeasurementTimingBudgetMicroSeconds(
+					Dev,
+					MeasurementTimingBudgetMicroSeconds);
+			}
+
+			Status = Status1;
+		}
+	}
+
+	LOG_FUNCTION_END(Status);
+
+	return Status;
+}
+
+VL53L0X_Error VL53L0X_GetSequenceStepTimeout(VL53L0X_DEV Dev,
+	VL53L0X_SequenceStepId SequenceStepId, FixPoint1616_t *pTimeOutMilliSecs)
+{
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+	uint32_t TimeoutMicroSeconds;
+	LOG_FUNCTION_START("");
+
+	Status = get_sequence_step_timeout(Dev, SequenceStepId,
+		&TimeoutMicroSeconds);
+	if (Status == VL53L0X_ERROR_NONE) {
+		TimeoutMicroSeconds <<= 8;
+		*pTimeOutMilliSecs = (TimeoutMicroSeconds + 500)/1000;
+		*pTimeOutMilliSecs <<= 8;
+	}
+
+	LOG_FUNCTION_END(Status);
+	return Status;
+}
+
+VL53L0X_Error VL53L0X_SetInterMeasurementPeriodMilliSeconds(VL53L0X_DEV Dev,
+	uint32_t InterMeasurementPeriodMilliSeconds)
+{
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+	uint16_t osc_calibrate_val;
+	uint32_t IMPeriodMilliSeconds;
+
+	LOG_FUNCTION_START("");
+
+	Status = VL53L0X_RdWord(Dev, VL53L0X_REG_OSC_CALIBRATE_VAL,
+		&osc_calibrate_val);
+
+	if (Status == VL53L0X_ERROR_NONE) {
+		if (osc_calibrate_val != 0) {
+			IMPeriodMilliSeconds =
+				InterMeasurementPeriodMilliSeconds
+					* osc_calibrate_val;
+		} else {
+			IMPeriodMilliSeconds =
+				InterMeasurementPeriodMilliSeconds;
+		}
+		Status = VL53L0X_WrDWord(Dev,
+		VL53L0X_REG_SYSTEM_INTERMEASUREMENT_PERIOD,
+			IMPeriodMilliSeconds);
+	}
+
+	if (Status == VL53L0X_ERROR_NONE) {
+		VL53L0X_SETPARAMETERFIELD(Dev,
+			InterMeasurementPeriodMilliSeconds,
+			InterMeasurementPeriodMilliSeconds);
+	}
+
+	LOG_FUNCTION_END(Status);
+	return Status;
+}
+
+VL53L0X_Error VL53L0X_GetInterMeasurementPeriodMilliSeconds(VL53L0X_DEV Dev,
+	uint32_t *pInterMeasurementPeriodMilliSeconds)
+{
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+	uint16_t osc_calibrate_val;
+	uint32_t IMPeriodMilliSeconds;
+
+	LOG_FUNCTION_START("");
+
+	Status = VL53L0X_RdWord(Dev, VL53L0X_REG_OSC_CALIBRATE_VAL,
+		&osc_calibrate_val);
+
+	if (Status == VL53L0X_ERROR_NONE) {
+		Status = VL53L0X_RdDWord(Dev,
+		VL53L0X_REG_SYSTEM_INTERMEASUREMENT_PERIOD,
+			&IMPeriodMilliSeconds);
+	}
+
+	if (Status == VL53L0X_ERROR_NONE) {
+		if (osc_calibrate_val != 0) {
+			*pInterMeasurementPeriodMilliSeconds =
+				IMPeriodMilliSeconds / osc_calibrate_val;
+		}
+		VL53L0X_SETPARAMETERFIELD(Dev,
+			InterMeasurementPeriodMilliSeconds,
+			*pInterMeasurementPeriodMilliSeconds);
+	}
+
+	LOG_FUNCTION_END(Status);
+	return Status;
+}
+
+VL53L0X_Error VL53L0X_SetXTalkCompensationEnable(VL53L0X_DEV Dev,
+	uint8_t XTalkCompensationEnable)
+{
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+	FixPoint1616_t TempFix1616;
+	uint16_t LinearityCorrectiveGain;
+
+	LOG_FUNCTION_START("");
+
+	LinearityCorrectiveGain = PALDevDataGet(Dev, LinearityCorrectiveGain);
+
+	if ((XTalkCompensationEnable == 0)
+		|| (LinearityCorrectiveGain != 1000)) {
+		TempFix1616 = 0;
+	} else {
+		VL53L0X_GETPARAMETERFIELD(Dev, XTalkCompensationRateMegaCps,
+			TempFix1616);
+	}
+
+	/* the following register has a format 3.13 */
+	Status = VL53L0X_WrWord(Dev,
+	VL53L0X_REG_CROSSTALK_COMPENSATION_PEAK_RATE_MCPS,
+		VL53L0X_FIXPOINT1616TOFIXPOINT313(TempFix1616));
+
+	if (Status == VL53L0X_ERROR_NONE) {
+		if (XTalkCompensationEnable == 0) {
+			VL53L0X_SETPARAMETERFIELD(Dev, XTalkCompensationEnable,
+				0);
+		} else {
+			VL53L0X_SETPARAMETERFIELD(Dev, XTalkCompensationEnable,
+				1);
+		}
+	}
+
+	LOG_FUNCTION_END(Status);
+	return Status;
+}
+
+VL53L0X_Error VL53L0X_GetXTalkCompensationEnable(VL53L0X_DEV Dev,
+	uint8_t *pXTalkCompensationEnable)
+{
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+	uint8_t Temp8;
+	LOG_FUNCTION_START("");
+
+	VL53L0X_GETPARAMETERFIELD(Dev, XTalkCompensationEnable, Temp8);
+	*pXTalkCompensationEnable = Temp8;
+
+	LOG_FUNCTION_END(Status);
+	return Status;
+}
+
+VL53L0X_Error VL53L0X_SetXTalkCompensationRateMegaCps(VL53L0X_DEV Dev,
+	FixPoint1616_t XTalkCompensationRateMegaCps)
+{
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+	uint8_t Temp8;
+	uint16_t LinearityCorrectiveGain;
+	uint16_t data;
+	LOG_FUNCTION_START("");
+
+	VL53L0X_GETPARAMETERFIELD(Dev, XTalkCompensationEnable, Temp8);
+	LinearityCorrectiveGain = PALDevDataGet(Dev, LinearityCorrectiveGain);
+
+	if (Temp8 == 0) { /* disabled write only internal value */
+		VL53L0X_SETPARAMETERFIELD(Dev, XTalkCompensationRateMegaCps,
+			XTalkCompensationRateMegaCps);
+	} else {
+		/* the following register has a format 3.13 */
+		if (LinearityCorrectiveGain == 1000) {
+			data = VL53L0X_FIXPOINT1616TOFIXPOINT313(
+				XTalkCompensationRateMegaCps);
+		} else {
+			data = 0;
+		}
+
+		Status = VL53L0X_WrWord(Dev,
+		VL53L0X_REG_CROSSTALK_COMPENSATION_PEAK_RATE_MCPS, data);
+
+		if (Status == VL53L0X_ERROR_NONE) {
+			VL53L0X_SETPARAMETERFIELD(Dev,
+				XTalkCompensationRateMegaCps,
+				XTalkCompensationRateMegaCps);
+		}
+	}
+
+	LOG_FUNCTION_END(Status);
+	return Status;
+}
+
+VL53L0X_Error VL53L0X_GetXTalkCompensationRateMegaCps(VL53L0X_DEV Dev,
+	FixPoint1616_t *pXTalkCompensationRateMegaCps)
+{
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+	uint16_t Value;
+	FixPoint1616_t TempFix1616;
+
+	LOG_FUNCTION_START("");
+
+	Status = VL53L0X_RdWord(Dev,
+	VL53L0X_REG_CROSSTALK_COMPENSATION_PEAK_RATE_MCPS, (uint16_t *)&Value);
+	if (Status == VL53L0X_ERROR_NONE) {
+		if (Value == 0) {
+			/* the Xtalk is disabled return value from memory */
+			VL53L0X_GETPARAMETERFIELD(Dev,
+				XTalkCompensationRateMegaCps, TempFix1616);
+			*pXTalkCompensationRateMegaCps = TempFix1616;
+			VL53L0X_SETPARAMETERFIELD(Dev, XTalkCompensationEnable,
+				0);
+		} else {
+			TempFix1616 = VL53L0X_FIXPOINT313TOFIXPOINT1616(Value);
+			*pXTalkCompensationRateMegaCps = TempFix1616;
+			VL53L0X_SETPARAMETERFIELD(Dev,
+				XTalkCompensationRateMegaCps, TempFix1616);
+			VL53L0X_SETPARAMETERFIELD(Dev, XTalkCompensationEnable,
+				1);
+		}
+	}
+
+	LOG_FUNCTION_END(Status);
+	return Status;
+}
+
+VL53L0X_Error VL53L0X_SetRefCalibration(VL53L0X_DEV Dev, uint8_t VhvSettings,
+	uint8_t PhaseCal)
+{
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+	LOG_FUNCTION_START("");
+
+	Status = VL53L0X_set_ref_calibration(Dev, VhvSettings, PhaseCal);
+
+	LOG_FUNCTION_END(Status);
+	return Status;
+}
+
+VL53L0X_Error VL53L0X_GetRefCalibration(VL53L0X_DEV Dev, uint8_t *pVhvSettings,
+	uint8_t *pPhaseCal)
+{
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+	LOG_FUNCTION_START("");
+
+	Status = VL53L0X_get_ref_calibration(Dev, pVhvSettings, pPhaseCal);
+
+	LOG_FUNCTION_END(Status);
+	return Status;
+}
+
+/*
+ * CHECK LIMIT FUNCTIONS
+ */
+
+VL53L0X_Error VL53L0X_GetNumberOfLimitCheck(uint16_t *pNumberOfLimitCheck)
+{
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+	LOG_FUNCTION_START("");
+
+	*pNumberOfLimitCheck = VL53L0X_CHECKENABLE_NUMBER_OF_CHECKS;
+
+	LOG_FUNCTION_END(Status);
+	return Status;
+}
+
+VL53L0X_Error VL53L0X_GetLimitCheckInfo(VL53L0X_DEV Dev, uint16_t LimitCheckId,
+	char *pLimitCheckString)
+{
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+
+	LOG_FUNCTION_START("");
+
+	Status = VL53L0X_get_limit_check_info(Dev, LimitCheckId,
+		pLimitCheckString);
+
+	LOG_FUNCTION_END(Status);
+	return Status;
+}
+
+VL53L0X_Error VL53L0X_GetLimitCheckStatus(VL53L0X_DEV Dev, uint16_t LimitCheckId,
+	uint8_t *pLimitCheckStatus)
+{
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+	uint8_t Temp8;
+
+	LOG_FUNCTION_START("");
+
+	if (LimitCheckId >= VL53L0X_CHECKENABLE_NUMBER_OF_CHECKS) {
+		Status = VL53L0X_ERROR_INVALID_PARAMS;
+	} else {
+
+		VL53L0X_GETARRAYPARAMETERFIELD(Dev, LimitChecksStatus,
+			LimitCheckId, Temp8);
+
+		*pLimitCheckStatus = Temp8;
+
+	}
+
+	LOG_FUNCTION_END(Status);
+	return Status;
+}
+
+VL53L0X_Error VL53L0X_SetLimitCheckEnable(VL53L0X_DEV Dev, uint16_t LimitCheckId,
+	uint8_t LimitCheckEnable)
+{
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+	FixPoint1616_t TempFix1616 = 0;
+	uint8_t LimitCheckEnableInt = 0;
+	uint8_t LimitCheckDisable = 0;
+	uint8_t Temp8;
+
+	LOG_FUNCTION_START("");
+
+	if (LimitCheckId >= VL53L0X_CHECKENABLE_NUMBER_OF_CHECKS) {
+		Status = VL53L0X_ERROR_INVALID_PARAMS;
+	} else {
+		if (LimitCheckEnable == 0) {
+			TempFix1616 = 0;
+			LimitCheckEnableInt = 0;
+			LimitCheckDisable = 1;
+
+		} else {
+			VL53L0X_GETARRAYPARAMETERFIELD(Dev, LimitChecksValue,
+				LimitCheckId, TempFix1616);
+			LimitCheckDisable = 0;
+			/* this to be sure to have either 0 or 1 */
+			LimitCheckEnableInt = 1;
+		}
+
+		switch (LimitCheckId) {
+
+		case VL53L0X_CHECKENABLE_SIGMA_FINAL_RANGE:
+			/* internal computation: */
+			VL53L0X_SETARRAYPARAMETERFIELD(Dev, LimitChecksEnable,
+				VL53L0X_CHECKENABLE_SIGMA_FINAL_RANGE,
+				LimitCheckEnableInt);
+
+			break;
+
+		case VL53L0X_CHECKENABLE_SIGNAL_RATE_FINAL_RANGE:
+
+			Status = VL53L0X_WrWord(Dev,
+			VL53L0X_REG_FINAL_RANGE_CONFIG_MIN_COUNT_RATE_RTN_LIMIT,
+				VL53L0X_FIXPOINT1616TOFIXPOINT97(TempFix1616));
+
+			break;
+
+		case VL53L0X_CHECKENABLE_SIGNAL_REF_CLIP:
+
+			/* internal computation: */
+			VL53L0X_SETARRAYPARAMETERFIELD(Dev, LimitChecksEnable,
+				VL53L0X_CHECKENABLE_SIGNAL_REF_CLIP,
+				LimitCheckEnableInt);
+
+			break;
+
+		case VL53L0X_CHECKENABLE_RANGE_IGNORE_THRESHOLD:
+
+			/* internal computation: */
+			VL53L0X_SETARRAYPARAMETERFIELD(Dev, LimitChecksEnable,
+				VL53L0X_CHECKENABLE_RANGE_IGNORE_THRESHOLD,
+				LimitCheckEnableInt);
+
+			break;
+
+		case VL53L0X_CHECKENABLE_SIGNAL_RATE_MSRC:
+
+			Temp8 = (uint8_t)(LimitCheckDisable << 1);
+			Status = VL53L0X_UpdateByte(Dev,
+				VL53L0X_REG_MSRC_CONFIG_CONTROL,
+				0xFE, Temp8);
+
+			break;
+
+		case VL53L0X_CHECKENABLE_SIGNAL_RATE_PRE_RANGE:
+
+			Temp8 = (uint8_t)(LimitCheckDisable << 4);
+			Status = VL53L0X_UpdateByte(Dev,
+				VL53L0X_REG_MSRC_CONFIG_CONTROL,
+				0xEF, Temp8);
+
+			break;
+
+
+		default:
+			Status = VL53L0X_ERROR_INVALID_PARAMS;
+
+		}
+
+	}
+
+	if (Status == VL53L0X_ERROR_NONE) {
+		if (LimitCheckEnable == 0) {
+			VL53L0X_SETARRAYPARAMETERFIELD(Dev, LimitChecksEnable,
+				LimitCheckId, 0);
+		} else {
+			VL53L0X_SETARRAYPARAMETERFIELD(Dev, LimitChecksEnable,
+				LimitCheckId, 1);
+		}
+	}
+
+	LOG_FUNCTION_END(Status);
+	return Status;
+}
+
+VL53L0X_Error VL53L0X_GetLimitCheckEnable(VL53L0X_DEV Dev, uint16_t LimitCheckId,
+	uint8_t *pLimitCheckEnable)
+{
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+	uint8_t Temp8;
+
+	LOG_FUNCTION_START("");
+
+	if (LimitCheckId >= VL53L0X_CHECKENABLE_NUMBER_OF_CHECKS) {
+		Status = VL53L0X_ERROR_INVALID_PARAMS;
+		*pLimitCheckEnable = 0;
+	} else {
+		VL53L0X_GETARRAYPARAMETERFIELD(Dev, LimitChecksEnable,
+			LimitCheckId, Temp8);
+		*pLimitCheckEnable = Temp8;
+	}
+
+	LOG_FUNCTION_END(Status);
+	return Status;
+}
+
+VL53L0X_Error VL53L0X_SetLimitCheckValue(VL53L0X_DEV Dev, uint16_t LimitCheckId,
+	FixPoint1616_t LimitCheckValue)
+{
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+	uint8_t Temp8;
+
+	LOG_FUNCTION_START("");
+
+	VL53L0X_GETARRAYPARAMETERFIELD(Dev, LimitChecksEnable, LimitCheckId,
+		Temp8);
+
+	if (Temp8 == 0) { /* disabled write only internal value */
+		VL53L0X_SETARRAYPARAMETERFIELD(Dev, LimitChecksValue,
+			LimitCheckId, LimitCheckValue);
+	} else {
+
+		switch (LimitCheckId) {
+
+		case VL53L0X_CHECKENABLE_SIGMA_FINAL_RANGE:
+			/* internal computation: */
+			VL53L0X_SETARRAYPARAMETERFIELD(Dev, LimitChecksValue,
+				VL53L0X_CHECKENABLE_SIGMA_FINAL_RANGE,
+				LimitCheckValue);
+			break;
+
+		case VL53L0X_CHECKENABLE_SIGNAL_RATE_FINAL_RANGE:
+
+			Status = VL53L0X_WrWord(Dev,
+			VL53L0X_REG_FINAL_RANGE_CONFIG_MIN_COUNT_RATE_RTN_LIMIT,
+				VL53L0X_FIXPOINT1616TOFIXPOINT97(
+					LimitCheckValue));
+
+			break;
+
+		case VL53L0X_CHECKENABLE_SIGNAL_REF_CLIP:
+
+			/* internal computation: */
+			VL53L0X_SETARRAYPARAMETERFIELD(Dev, LimitChecksValue,
+				VL53L0X_CHECKENABLE_SIGNAL_REF_CLIP,
+				LimitCheckValue);
+
+			break;
+
+		case VL53L0X_CHECKENABLE_RANGE_IGNORE_THRESHOLD:
+
+			/* internal computation: */
+			VL53L0X_SETARRAYPARAMETERFIELD(Dev, LimitChecksValue,
+				VL53L0X_CHECKENABLE_RANGE_IGNORE_THRESHOLD,
+				LimitCheckValue);
+
+			break;
+
+		case VL53L0X_CHECKENABLE_SIGNAL_RATE_MSRC:
+		case VL53L0X_CHECKENABLE_SIGNAL_RATE_PRE_RANGE:
+
+			Status = VL53L0X_WrWord(Dev,
+				VL53L0X_REG_PRE_RANGE_MIN_COUNT_RATE_RTN_LIMIT,
+				VL53L0X_FIXPOINT1616TOFIXPOINT97(
+					LimitCheckValue));
+
+			break;
+
+		default:
+			Status = VL53L0X_ERROR_INVALID_PARAMS;
+
+		}
+
+		if (Status == VL53L0X_ERROR_NONE) {
+			VL53L0X_SETARRAYPARAMETERFIELD(Dev, LimitChecksValue,
+				LimitCheckId, LimitCheckValue);
+		}
+	}
+
+	LOG_FUNCTION_END(Status);
+	return Status;
+}
+
+VL53L0X_Error VL53L0X_GetLimitCheckValue(VL53L0X_DEV Dev, uint16_t LimitCheckId,
+	FixPoint1616_t *pLimitCheckValue)
+{
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+	uint8_t EnableZeroValue = 0;
+	uint16_t Temp16;
+	FixPoint1616_t TempFix1616;
+
+	LOG_FUNCTION_START("");
+
+	switch (LimitCheckId) {
+
+	case VL53L0X_CHECKENABLE_SIGMA_FINAL_RANGE:
+		/* internal computation: */
+		VL53L0X_GETARRAYPARAMETERFIELD(Dev, LimitChecksValue,
+			VL53L0X_CHECKENABLE_SIGMA_FINAL_RANGE, TempFix1616);
+		EnableZeroValue = 0;
+		break;
+
+	case VL53L0X_CHECKENABLE_SIGNAL_RATE_FINAL_RANGE:
+		Status = VL53L0X_RdWord(Dev,
+		VL53L0X_REG_FINAL_RANGE_CONFIG_MIN_COUNT_RATE_RTN_LIMIT,
+			&Temp16);
+		if (Status == VL53L0X_ERROR_NONE)
+			TempFix1616 = VL53L0X_FIXPOINT97TOFIXPOINT1616(Temp16);
+
+
+		EnableZeroValue = 1;
+		break;
+
+	case VL53L0X_CHECKENABLE_SIGNAL_REF_CLIP:
+		/* internal computation: */
+		VL53L0X_GETARRAYPARAMETERFIELD(Dev, LimitChecksValue,
+			VL53L0X_CHECKENABLE_SIGNAL_REF_CLIP, TempFix1616);
+		EnableZeroValue = 0;
+		break;
+
+	case VL53L0X_CHECKENABLE_RANGE_IGNORE_THRESHOLD:
+		/* internal computation: */
+		VL53L0X_GETARRAYPARAMETERFIELD(Dev, LimitChecksValue,
+			VL53L0X_CHECKENABLE_RANGE_IGNORE_THRESHOLD, TempFix1616);
+		EnableZeroValue = 0;
+		break;
+
+	case VL53L0X_CHECKENABLE_SIGNAL_RATE_MSRC:
+	case VL53L0X_CHECKENABLE_SIGNAL_RATE_PRE_RANGE:
+		Status = VL53L0X_RdWord(Dev,
+			VL53L0X_REG_PRE_RANGE_MIN_COUNT_RATE_RTN_LIMIT,
+			&Temp16);
+		if (Status == VL53L0X_ERROR_NONE)
+			TempFix1616 = VL53L0X_FIXPOINT97TOFIXPOINT1616(Temp16);
+
+
+		EnableZeroValue = 0;
+		break;
+
+	default:
+		Status = VL53L0X_ERROR_INVALID_PARAMS;
+
+	}
+
+	if (Status == VL53L0X_ERROR_NONE) {
+
+		if (EnableZeroValue == 1) {
+
+			if (TempFix1616 == 0) {
+				/* disabled: return value from memory */
+				VL53L0X_GETARRAYPARAMETERFIELD(Dev,
+					LimitChecksValue, LimitCheckId,
+					TempFix1616);
+				*pLimitCheckValue = TempFix1616;
+				VL53L0X_SETARRAYPARAMETERFIELD(Dev,
+					LimitChecksEnable, LimitCheckId, 0);
+			} else {
+				*pLimitCheckValue = TempFix1616;
+				VL53L0X_SETARRAYPARAMETERFIELD(Dev,
+					LimitChecksValue, LimitCheckId,
+					TempFix1616);
+				VL53L0X_SETARRAYPARAMETERFIELD(Dev,
+					LimitChecksEnable, LimitCheckId, 1);
+			}
+		} else {
+			*pLimitCheckValue = TempFix1616;
+		}
+	}
+
+	LOG_FUNCTION_END(Status);
+	return Status;
+
+}
+
+VL53L0X_Error VL53L0X_GetLimitCheckCurrent(VL53L0X_DEV Dev, uint16_t LimitCheckId,
+	FixPoint1616_t *pLimitCheckCurrent)
+{
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+	VL53L0X_RangingMeasurementData_t LastRangeDataBuffer;
+
+	LOG_FUNCTION_START("");
+
+	if (LimitCheckId >= VL53L0X_CHECKENABLE_NUMBER_OF_CHECKS) {
+		Status = VL53L0X_ERROR_INVALID_PARAMS;
+	} else {
+		switch (LimitCheckId) {
+		case VL53L0X_CHECKENABLE_SIGMA_FINAL_RANGE:
+			/* Need to run a ranging to have the latest values */
+			*pLimitCheckCurrent = PALDevDataGet(Dev, SigmaEstimate);
+
+			break;
+
+		case VL53L0X_CHECKENABLE_SIGNAL_RATE_FINAL_RANGE:
+			/* Need to run a ranging to have the latest values */
+			LastRangeDataBuffer = PALDevDataGet(Dev,
+				LastRangeMeasure);
+			*pLimitCheckCurrent =
+				LastRangeDataBuffer.SignalRateRtnMegaCps;
+
+			break;
+
+		case VL53L0X_CHECKENABLE_SIGNAL_REF_CLIP:
+			/* Need to run a ranging to have the latest values */
+			*pLimitCheckCurrent = PALDevDataGet(Dev,
+				LastSignalRefMcps);
+
+			break;
+
+		case VL53L0X_CHECKENABLE_RANGE_IGNORE_THRESHOLD:
+			/* Need to run a ranging to have the latest values */
+			LastRangeDataBuffer = PALDevDataGet(Dev,
+				LastRangeMeasure);
+			*pLimitCheckCurrent =
+				LastRangeDataBuffer.SignalRateRtnMegaCps;
+
+			break;
+
+		case VL53L0X_CHECKENABLE_SIGNAL_RATE_MSRC:
+			/* Need to run a ranging to have the latest values */
+			LastRangeDataBuffer = PALDevDataGet(Dev,
+				LastRangeMeasure);
+			*pLimitCheckCurrent =
+				LastRangeDataBuffer.SignalRateRtnMegaCps;
+
+			break;
+
+		case VL53L0X_CHECKENABLE_SIGNAL_RATE_PRE_RANGE:
+			/* Need to run a ranging to have the latest values */
+			LastRangeDataBuffer = PALDevDataGet(Dev,
+				LastRangeMeasure);
+			*pLimitCheckCurrent =
+				LastRangeDataBuffer.SignalRateRtnMegaCps;
+
+			break;
+
+		default:
+			Status = VL53L0X_ERROR_INVALID_PARAMS;
+		}
+	}
+
+	LOG_FUNCTION_END(Status);
+	return Status;
+
+}
+
+/*
+ * WRAPAROUND Check
+ */
+VL53L0X_Error VL53L0X_SetWrapAroundCheckEnable(VL53L0X_DEV Dev,
+	uint8_t WrapAroundCheckEnable)
+{
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+	uint8_t Byte;
+	uint8_t WrapAroundCheckEnableInt;
+
+	LOG_FUNCTION_START("");
+
+	Status = VL53L0X_RdByte(Dev, VL53L0X_REG_SYSTEM_SEQUENCE_CONFIG, &Byte);
+	if (WrapAroundCheckEnable == 0) {
+		/* Disable wraparound */
+		Byte = Byte & 0x7F;
+		WrapAroundCheckEnableInt = 0;
+	} else {
+		/*Enable wraparound */
+		Byte = Byte | 0x80;
+		WrapAroundCheckEnableInt = 1;
+	}
+
+	Status = VL53L0X_WrByte(Dev, VL53L0X_REG_SYSTEM_SEQUENCE_CONFIG, Byte);
+
+	if (Status == VL53L0X_ERROR_NONE) {
+		PALDevDataSet(Dev, SequenceConfig, Byte);
+		VL53L0X_SETPARAMETERFIELD(Dev, WrapAroundCheckEnable,
+			WrapAroundCheckEnableInt);
+	}
+
+	LOG_FUNCTION_END(Status);
+	return Status;
+}
+
+VL53L0X_Error VL53L0X_GetWrapAroundCheckEnable(VL53L0X_DEV Dev,
+	uint8_t *pWrapAroundCheckEnable)
+{
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+	uint8_t data;
+
+	LOG_FUNCTION_START("");
+
+	Status = VL53L0X_RdByte(Dev, VL53L0X_REG_SYSTEM_SEQUENCE_CONFIG, &data);
+	if (Status == VL53L0X_ERROR_NONE) {
+		PALDevDataSet(Dev, SequenceConfig, data);
+		if (data & (0x01 << 7))
+			*pWrapAroundCheckEnable = 0x01;
+		else
+			*pWrapAroundCheckEnable = 0x00;
+	}
+	if (Status == VL53L0X_ERROR_NONE) {
+		VL53L0X_SETPARAMETERFIELD(Dev, WrapAroundCheckEnable,
+			*pWrapAroundCheckEnable);
+	}
+
+	LOG_FUNCTION_END(Status);
+	return Status;
+}
+
+VL53L0X_Error VL53L0X_SetDmaxCalParameters(VL53L0X_DEV Dev,
+	uint16_t RangeMilliMeter, FixPoint1616_t SignalRateRtnMegaCps)
+{
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+	FixPoint1616_t SignalRateRtnMegaCpsTemp = 0;
+
+	LOG_FUNCTION_START("");
+
+	/* Check if one of input parameter is zero, in that case the
+	 * value are get from NVM */
+	if ((RangeMilliMeter == 0) || (SignalRateRtnMegaCps == 0)) {
+		/* NVM parameters */
+		/* Run VL53L0X_get_info_from_device wit option 4 to get
+		 * signal rate at 400 mm if the value have been already
+		 * get this function will return with no access to device */
+		VL53L0X_get_info_from_device(Dev, 4);
+
+		SignalRateRtnMegaCpsTemp = VL53L0X_GETDEVICESPECIFICPARAMETER(
+			Dev, SignalRateMeasFixed400mm);
+
+		PALDevDataSet(Dev, DmaxCalRangeMilliMeter, 400);
+		PALDevDataSet(Dev, DmaxCalSignalRateRtnMegaCps,
+			SignalRateRtnMegaCpsTemp);
+	} else {
+		/* User parameters */
+		PALDevDataSet(Dev, DmaxCalRangeMilliMeter, RangeMilliMeter);
+		PALDevDataSet(Dev, DmaxCalSignalRateRtnMegaCps,
+			SignalRateRtnMegaCps);
+	}
+
+	LOG_FUNCTION_END(Status);
+	return Status;
+}
+
+VL53L0X_Error VL53L0X_GetDmaxCalParameters(VL53L0X_DEV Dev,
+	uint16_t *pRangeMilliMeter, FixPoint1616_t *pSignalRateRtnMegaCps)
+{
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+
+	LOG_FUNCTION_START("");
+
+	*pRangeMilliMeter = PALDevDataGet(Dev, DmaxCalRangeMilliMeter);
+	*pSignalRateRtnMegaCps = PALDevDataGet(Dev,
+		DmaxCalSignalRateRtnMegaCps);
+
+	LOG_FUNCTION_END(Status);
+	return Status;
+}
+
+/* End Group PAL Parameters Functions */
+
+/* Group PAL Measurement Functions */
+VL53L0X_Error VL53L0X_PerformSingleMeasurement(VL53L0X_DEV Dev)
+{
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+	VL53L0X_DeviceModes DeviceMode;
+
+	LOG_FUNCTION_START("");
+
+	/* Get Current DeviceMode */
+	Status = VL53L0X_GetDeviceMode(Dev, &DeviceMode);
+
+	/* Start immediately to run a single ranging measurement in case of
+	 * single ranging or single histogram */
+	if (Status == VL53L0X_ERROR_NONE
+		&& DeviceMode == VL53L0X_DEVICEMODE_SINGLE_RANGING)
+		Status = VL53L0X_StartMeasurement(Dev);
+
+
+	if (Status == VL53L0X_ERROR_NONE)
+		Status = VL53L0X_measurement_poll_for_completion(Dev);
+
+
+	/* Change PAL State in case of single ranging or single histogram */
+	if (Status == VL53L0X_ERROR_NONE
+		&& DeviceMode == VL53L0X_DEVICEMODE_SINGLE_RANGING)
+		PALDevDataSet(Dev, PalState, VL53L0X_STATE_IDLE);
+
+
+	LOG_FUNCTION_END(Status);
+	return Status;
+}
+
+VL53L0X_Error VL53L0X_PerformSingleHistogramMeasurement(VL53L0X_DEV Dev,
+	VL53L0X_HistogramMeasurementData_t *pHistogramMeasurementData)
+{
+	VL53L0X_Error Status = VL53L0X_ERROR_NOT_IMPLEMENTED;
+	LOG_FUNCTION_START("");
+
+	/* not implemented on VL53L0X */
+
+	LOG_FUNCTION_END(Status);
+	return Status;
+}
+
+VL53L0X_Error VL53L0X_PerformRefCalibration(VL53L0X_DEV Dev, uint8_t *pVhvSettings,
+	uint8_t *pPhaseCal)
+{
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+	LOG_FUNCTION_START("");
+
+	Status = VL53L0X_perform_ref_calibration(Dev, pVhvSettings,
+		pPhaseCal, 1);
+
+	LOG_FUNCTION_END(Status);
+	return Status;
+}
+
+VL53L0X_Error VL53L0X_PerformXTalkMeasurement(VL53L0X_DEV Dev,
+	uint32_t TimeoutMs, FixPoint1616_t *pXtalkPerSpad,
+	uint8_t *pAmbientTooHigh)
+{
+	VL53L0X_Error Status = VL53L0X_ERROR_NOT_IMPLEMENTED;
+	LOG_FUNCTION_START("");
+
+	/* not implemented on VL53L0X */
+
+	LOG_FUNCTION_END(Status);
+	return Status;
+}
+
+VL53L0X_Error VL53L0X_PerformXTalkCalibration(VL53L0X_DEV Dev,
+	FixPoint1616_t XTalkCalDistance,
+	FixPoint1616_t *pXTalkCompensationRateMegaCps)
+{
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+	LOG_FUNCTION_START("");
+
+	Status = VL53L0X_perform_xtalk_calibration(Dev, XTalkCalDistance,
+		pXTalkCompensationRateMegaCps);
+
+	LOG_FUNCTION_END(Status);
+	return Status;
+}
+
+VL53L0X_Error VL53L0X_PerformOffsetCalibration(VL53L0X_DEV Dev,
+	FixPoint1616_t CalDistanceMilliMeter, int32_t *pOffsetMicroMeter)
+{
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+	LOG_FUNCTION_START("");
+
+	Status = VL53L0X_perform_offset_calibration(Dev, CalDistanceMilliMeter,
+		pOffsetMicroMeter);
+
+	LOG_FUNCTION_END(Status);
+	return Status;
+}
+
+VL53L0X_Error VL53L0X_CheckAndLoadInterruptSettings(VL53L0X_DEV Dev,
+	uint8_t StartNotStopFlag)
+{
+	uint8_t InterruptConfig;
+	FixPoint1616_t ThresholdLow;
+	FixPoint1616_t ThresholdHigh;
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+
+	InterruptConfig = VL53L0X_GETDEVICESPECIFICPARAMETER(Dev,
+		Pin0GpioFunctionality);
+
+	if ((InterruptConfig ==
+		VL53L0X_GPIOFUNCTIONALITY_THRESHOLD_CROSSED_LOW) ||
+		(InterruptConfig ==
+		VL53L0X_GPIOFUNCTIONALITY_THRESHOLD_CROSSED_HIGH) ||
+		(InterruptConfig ==
+		VL53L0X_GPIOFUNCTIONALITY_THRESHOLD_CROSSED_OUT)) {
+
+		Status = VL53L0X_GetInterruptThresholds(Dev,
+			VL53L0X_DEVICEMODE_CONTINUOUS_RANGING,
+			&ThresholdLow, &ThresholdHigh);
+
+		if (((ThresholdLow > 255*65536) ||
+			(ThresholdHigh > 255*65536)) &&
+			(Status == VL53L0X_ERROR_NONE)) {
+
+			if (StartNotStopFlag != 0) {
+				Status = VL53L0X_load_tuning_settings(Dev,
+					InterruptThresholdSettings);
+			} else {
+				Status |= VL53L0X_WrByte(Dev, 0xFF, 0x04);
+				Status |= VL53L0X_WrByte(Dev, 0x70, 0x00);
+				Status |= VL53L0X_WrByte(Dev, 0xFF, 0x00);
+				Status |= VL53L0X_WrByte(Dev, 0x80, 0x00);
+			}
+
+		}
+
+
+	}
+
+	return Status;
+
+}
+
+
+VL53L0X_Error VL53L0X_StartMeasurement(VL53L0X_DEV Dev)
+{
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+	VL53L0X_DeviceModes DeviceMode;
+	uint8_t Byte;
+	uint8_t StartStopByte = VL53L0X_REG_SYSRANGE_MODE_START_STOP;
+	uint32_t LoopNb;
+	LOG_FUNCTION_START("");
+
+	/* Get Current DeviceMode */
+	VL53L0X_GetDeviceMode(Dev, &DeviceMode);
+
+	Status = VL53L0X_WrByte(Dev, 0x80, 0x01);
+	Status = VL53L0X_WrByte(Dev, 0xFF, 0x01);
+	Status = VL53L0X_WrByte(Dev, 0x00, 0x00);
+	Status = VL53L0X_WrByte(Dev, 0x91, PALDevDataGet(Dev, StopVariable));
+	Status = VL53L0X_WrByte(Dev, 0x00, 0x01);
+	Status = VL53L0X_WrByte(Dev, 0xFF, 0x00);
+	Status = VL53L0X_WrByte(Dev, 0x80, 0x00);
+
+	switch (DeviceMode) {
+	case VL53L0X_DEVICEMODE_SINGLE_RANGING:
+		Status = VL53L0X_WrByte(Dev, VL53L0X_REG_SYSRANGE_START, 0x01);
+
+		Byte = StartStopByte;
+		if (Status == VL53L0X_ERROR_NONE) {
+			/* Wait until start bit has been cleared */
+			LoopNb = 0;
+			do {
+				if (LoopNb > 0)
+					Status = VL53L0X_RdByte(Dev,
+					VL53L0X_REG_SYSRANGE_START, &Byte);
+				LoopNb = LoopNb + 1;
+			} while (((Byte & StartStopByte) == StartStopByte)
+				&& (Status == VL53L0X_ERROR_NONE)
+				&& (LoopNb < VL53L0X_DEFAULT_MAX_LOOP));
+
+			if (LoopNb >= VL53L0X_DEFAULT_MAX_LOOP)
+				Status = VL53L0X_ERROR_TIME_OUT;
+
+		}
+
+		break;
+	case VL53L0X_DEVICEMODE_CONTINUOUS_RANGING:
+		/* Back-to-back mode */
+
+		/* Check if need to apply interrupt settings */
+		if (Status == VL53L0X_ERROR_NONE)
+			Status = VL53L0X_CheckAndLoadInterruptSettings(Dev, 1);
+
+		Status = VL53L0X_WrByte(Dev,
+		VL53L0X_REG_SYSRANGE_START,
+		VL53L0X_REG_SYSRANGE_MODE_BACKTOBACK);
+		if (Status == VL53L0X_ERROR_NONE) {
+			/* Set PAL State to Running */
+			PALDevDataSet(Dev, PalState, VL53L0X_STATE_RUNNING);
+		}
+		break;
+	case VL53L0X_DEVICEMODE_CONTINUOUS_TIMED_RANGING:
+		/* Continuous mode */
+		/* Check if need to apply interrupt settings */
+		if (Status == VL53L0X_ERROR_NONE)
+			Status = VL53L0X_CheckAndLoadInterruptSettings(Dev, 1);
+
+		Status = VL53L0X_WrByte(Dev,
+		VL53L0X_REG_SYSRANGE_START,
+		VL53L0X_REG_SYSRANGE_MODE_TIMED);
+
+		if (Status == VL53L0X_ERROR_NONE) {
+			/* Set PAL State to Running */
+			PALDevDataSet(Dev, PalState, VL53L0X_STATE_RUNNING);
+		}
+		break;
+	default:
+		/* Selected mode not supported */
+		Status = VL53L0X_ERROR_MODE_NOT_SUPPORTED;
+	}
+
+
+	LOG_FUNCTION_END(Status);
+	return Status;
+}
+
+VL53L0X_Error VL53L0X_StopMeasurement(VL53L0X_DEV Dev)
+{
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+	LOG_FUNCTION_START("");
+
+	Status = VL53L0X_WrByte(Dev, VL53L0X_REG_SYSRANGE_START,
+	VL53L0X_REG_SYSRANGE_MODE_SINGLESHOT);
+
+	Status = VL53L0X_WrByte(Dev, 0xFF, 0x01);
+	Status = VL53L0X_WrByte(Dev, 0x00, 0x00);
+	Status = VL53L0X_WrByte(Dev, 0x91, 0x00);
+	Status = VL53L0X_WrByte(Dev, 0x00, 0x01);
+	Status = VL53L0X_WrByte(Dev, 0xFF, 0x00);
+
+	if (Status == VL53L0X_ERROR_NONE) {
+		/* Set PAL State to Idle */
+		PALDevDataSet(Dev, PalState, VL53L0X_STATE_IDLE);
+	}
+
+	/* Check if need to apply interrupt settings */
+	if (Status == VL53L0X_ERROR_NONE)
+		Status = VL53L0X_CheckAndLoadInterruptSettings(Dev, 0);
+
+	LOG_FUNCTION_END(Status);
+	return Status;
+}
+
+VL53L0X_Error VL53L0X_GetMeasurementDataReady(VL53L0X_DEV Dev,
+	uint8_t *pMeasurementDataReady)
+{
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+	uint8_t SysRangeStatusRegister;
+	uint8_t InterruptConfig;
+	uint32_t InterruptMask;
+	LOG_FUNCTION_START("");
+
+	InterruptConfig = VL53L0X_GETDEVICESPECIFICPARAMETER(Dev,
+		Pin0GpioFunctionality);
+
+	if (InterruptConfig ==
+		VL53L0X_REG_SYSTEM_INTERRUPT_GPIO_NEW_SAMPLE_READY) {
+		Status = VL53L0X_GetInterruptMaskStatus(Dev, &InterruptMask);
+		if (InterruptMask ==
+		VL53L0X_REG_SYSTEM_INTERRUPT_GPIO_NEW_SAMPLE_READY)
+			*pMeasurementDataReady = 1;
+		else
+			*pMeasurementDataReady = 0;
+	} else {
+		Status = VL53L0X_RdByte(Dev, VL53L0X_REG_RESULT_RANGE_STATUS,
+			&SysRangeStatusRegister);
+		if (Status == VL53L0X_ERROR_NONE) {
+			if (SysRangeStatusRegister & 0x01)
+				*pMeasurementDataReady = 1;
+			else
+				*pMeasurementDataReady = 0;
+		}
+	}
+
+	LOG_FUNCTION_END(Status);
+	return Status;
+}
+
+VL53L0X_Error VL53L0X_WaitDeviceReadyForNewMeasurement(VL53L0X_DEV Dev,
+	uint32_t MaxLoop)
+{
+	VL53L0X_Error Status = VL53L0X_ERROR_NOT_IMPLEMENTED;
+	LOG_FUNCTION_START("");
+
+	/* not implemented for VL53L0X */
+
+	LOG_FUNCTION_END(Status);
+	return Status;
+}
+
+
+VL53L0X_Error VL53L0X_GetRangingMeasurementData(VL53L0X_DEV Dev,
+	VL53L0X_RangingMeasurementData_t *pRangingMeasurementData)
+{
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+	uint8_t DeviceRangeStatus;
+	uint8_t RangeFractionalEnable;
+	uint8_t PalRangeStatus;
+	uint8_t XTalkCompensationEnable;
+	uint16_t AmbientRate;
+	FixPoint1616_t SignalRate;
+	uint16_t XTalkCompensationRateMegaCps;
+	uint16_t EffectiveSpadRtnCount;
+	uint16_t tmpuint16;
+	uint16_t XtalkRangeMilliMeter;
+	uint16_t LinearityCorrectiveGain;
+	uint8_t localBuffer[12];
+	VL53L0X_RangingMeasurementData_t LastRangeDataBuffer;
+
+	LOG_FUNCTION_START("");
+
+	/*
+	 * use multi read even if some registers are not useful, result will
+	 * be more efficient
+	 * start reading at 0x14 dec20
+	 * end reading at 0x21 dec33 total 14 bytes to read
+	 */
+	Status = VL53L0X_ReadMulti(Dev, 0x14, localBuffer, 12);
+
+	if (Status == VL53L0X_ERROR_NONE) {
+
+		pRangingMeasurementData->ZoneId = 0; /* Only one zone */
+		pRangingMeasurementData->TimeStamp = 0; /* Not Implemented */
+
+		tmpuint16 = VL53L0X_MAKEUINT16(localBuffer[11], localBuffer[10]);
+		/* cut1.1 if SYSTEM__RANGE_CONFIG if 1 range is 2bits fractional
+		 *(format 11.2) else no fractional
+		 */
+
+		pRangingMeasurementData->MeasurementTimeUsec = 0;
+
+		SignalRate = VL53L0X_FIXPOINT97TOFIXPOINT1616(
+			VL53L0X_MAKEUINT16(localBuffer[7], localBuffer[6]));
+		/* peak_signal_count_rate_rtn_mcps */
+		pRangingMeasurementData->SignalRateRtnMegaCps = SignalRate;
+
+		AmbientRate = VL53L0X_MAKEUINT16(localBuffer[9], localBuffer[8]);
+		pRangingMeasurementData->AmbientRateRtnMegaCps =
+			VL53L0X_FIXPOINT97TOFIXPOINT1616(AmbientRate);
+
+		EffectiveSpadRtnCount = VL53L0X_MAKEUINT16(localBuffer[3],
+			localBuffer[2]);
+		/* EffectiveSpadRtnCount is 8.8 format */
+		pRangingMeasurementData->EffectiveSpadRtnCount =
+			EffectiveSpadRtnCount;
+
+		DeviceRangeStatus = localBuffer[0];
+
+		/* Get Linearity Corrective Gain */
+		LinearityCorrectiveGain = PALDevDataGet(Dev,
+			LinearityCorrectiveGain);
+
+		/* Get ranging configuration */
+		RangeFractionalEnable = PALDevDataGet(Dev,
+			RangeFractionalEnable);
+
+		if (LinearityCorrectiveGain != 1000) {
+
+			tmpuint16 = (uint16_t)((LinearityCorrectiveGain
+				* tmpuint16 + 500) / 1000);
+
+			/* Implement Xtalk */
+			VL53L0X_GETPARAMETERFIELD(Dev,
+				XTalkCompensationRateMegaCps,
+				XTalkCompensationRateMegaCps);
+			VL53L0X_GETPARAMETERFIELD(Dev, XTalkCompensationEnable,
+				XTalkCompensationEnable);
+
+			if (XTalkCompensationEnable) {
+
+				if ((SignalRate
+					- ((XTalkCompensationRateMegaCps
+					* EffectiveSpadRtnCount) >> 8))
+					<= 0) {
+					if (RangeFractionalEnable)
+						XtalkRangeMilliMeter = 8888;
+					else
+						XtalkRangeMilliMeter = 8888
+							<< 2;
+				} else {
+					XtalkRangeMilliMeter =
+					(tmpuint16 * SignalRate)
+						/ (SignalRate
+						- ((XTalkCompensationRateMegaCps
+						* EffectiveSpadRtnCount)
+						>> 8));
+				}
+
+				tmpuint16 = XtalkRangeMilliMeter;
+			}
+
+		}
+
+		if (RangeFractionalEnable) {
+			pRangingMeasurementData->RangeMilliMeter =
+				(uint16_t)((tmpuint16) >> 2);
+			pRangingMeasurementData->RangeFractionalPart =
+				(uint8_t)((tmpuint16 & 0x03) << 6);
+		} else {
+			pRangingMeasurementData->RangeMilliMeter = tmpuint16;
+			pRangingMeasurementData->RangeFractionalPart = 0;
+		}
+
+		/*
+		 * For a standard definition of RangeStatus, this should
+		 * return 0 in case of good result after a ranging
+		 * The range status depends on the device so call a device
+		 * specific function to obtain the right Status.
+		 */
+		Status |= VL53L0X_get_pal_range_status(Dev, DeviceRangeStatus,
+			SignalRate, EffectiveSpadRtnCount,
+			pRangingMeasurementData, &PalRangeStatus);
+
+		if (Status == VL53L0X_ERROR_NONE)
+			pRangingMeasurementData->RangeStatus = PalRangeStatus;
+
+	}
+
+	if (Status == VL53L0X_ERROR_NONE) {
+		/* Copy last read data into Dev buffer */
+		LastRangeDataBuffer = PALDevDataGet(Dev, LastRangeMeasure);
+
+		LastRangeDataBuffer.RangeMilliMeter =
+			pRangingMeasurementData->RangeMilliMeter;
+		LastRangeDataBuffer.RangeFractionalPart =
+			pRangingMeasurementData->RangeFractionalPart;
+		LastRangeDataBuffer.RangeDMaxMilliMeter =
+			pRangingMeasurementData->RangeDMaxMilliMeter;
+		LastRangeDataBuffer.MeasurementTimeUsec =
+			pRangingMeasurementData->MeasurementTimeUsec;
+		LastRangeDataBuffer.SignalRateRtnMegaCps =
+			pRangingMeasurementData->SignalRateRtnMegaCps;
+		LastRangeDataBuffer.AmbientRateRtnMegaCps =
+			pRangingMeasurementData->AmbientRateRtnMegaCps;
+		LastRangeDataBuffer.EffectiveSpadRtnCount =
+			pRangingMeasurementData->EffectiveSpadRtnCount;
+		LastRangeDataBuffer.RangeStatus =
+			pRangingMeasurementData->RangeStatus;
+
+		PALDevDataSet(Dev, LastRangeMeasure, LastRangeDataBuffer);
+	}
+
+	LOG_FUNCTION_END(Status);
+	return Status;
+}
+
+VL53L0X_Error VL53L0X_GetMeasurementRefSignal(VL53L0X_DEV Dev,
+	FixPoint1616_t *pMeasurementRefSignal)
+{
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+	uint8_t SignalRefClipLimitCheckEnable = 0;
+	LOG_FUNCTION_START("");
+
+	Status = VL53L0X_GetLimitCheckEnable(Dev,
+			VL53L0X_CHECKENABLE_SIGNAL_REF_CLIP,
+			&SignalRefClipLimitCheckEnable);
+	if (SignalRefClipLimitCheckEnable != 0) {
+		*pMeasurementRefSignal = PALDevDataGet(Dev, LastSignalRefMcps);
+	} else {
+		Status = VL53L0X_ERROR_INVALID_COMMAND;
+	}
+	LOG_FUNCTION_END(Status);
+
+	return Status;
+}
+
+VL53L0X_Error VL53L0X_GetHistogramMeasurementData(VL53L0X_DEV Dev,
+	VL53L0X_HistogramMeasurementData_t *pHistogramMeasurementData)
+{
+	VL53L0X_Error Status = VL53L0X_ERROR_NOT_IMPLEMENTED;
+	LOG_FUNCTION_START("");
+
+	LOG_FUNCTION_END(Status);
+	return Status;
+}
+
+VL53L0X_Error VL53L0X_PerformSingleRangingMeasurement(VL53L0X_DEV Dev,
+	VL53L0X_RangingMeasurementData_t *pRangingMeasurementData)
+{
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+
+	LOG_FUNCTION_START("");
+
+	/* This function will do a complete single ranging
+	 * Here we fix the mode! */
+	Status = VL53L0X_SetDeviceMode(Dev, VL53L0X_DEVICEMODE_SINGLE_RANGING);
+
+	if (Status == VL53L0X_ERROR_NONE)
+		Status = VL53L0X_PerformSingleMeasurement(Dev);
+
+
+	if (Status == VL53L0X_ERROR_NONE)
+		Status = VL53L0X_GetRangingMeasurementData(Dev,
+			pRangingMeasurementData);
+
+
+	if (Status == VL53L0X_ERROR_NONE)
+		Status = VL53L0X_ClearInterruptMask(Dev, 0);
+
+
+	LOG_FUNCTION_END(Status);
+	return Status;
+}
+
+VL53L0X_Error VL53L0X_SetNumberOfROIZones(VL53L0X_DEV Dev,
+	uint8_t NumberOfROIZones)
+{
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+
+	LOG_FUNCTION_START("");
+
+	if (NumberOfROIZones != 1)
+		Status = VL53L0X_ERROR_INVALID_PARAMS;
+
+
+	LOG_FUNCTION_END(Status);
+	return Status;
+}
+
+VL53L0X_Error VL53L0X_GetNumberOfROIZones(VL53L0X_DEV Dev,
+	uint8_t *pNumberOfROIZones)
+{
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+
+	LOG_FUNCTION_START("");
+
+	*pNumberOfROIZones = 1;
+
+	LOG_FUNCTION_END(Status);
+	return Status;
+}
+
+VL53L0X_Error VL53L0X_GetMaxNumberOfROIZones(VL53L0X_DEV Dev,
+	uint8_t *pMaxNumberOfROIZones)
+{
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+
+	LOG_FUNCTION_START("");
+
+	*pMaxNumberOfROIZones = 1;
+
+	LOG_FUNCTION_END(Status);
+	return Status;
+}
+
+/* End Group PAL Measurement Functions */
+
+VL53L0X_Error VL53L0X_SetGpioConfig(VL53L0X_DEV Dev, uint8_t Pin,
+	VL53L0X_DeviceModes DeviceMode, VL53L0X_GpioFunctionality Functionality,
+	VL53L0X_InterruptPolarity Polarity)
+{
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+	uint8_t data;
+
+	LOG_FUNCTION_START("");
+
+	if (Pin != 0) {
+		Status = VL53L0X_ERROR_GPIO_NOT_EXISTING;
+	} else if (DeviceMode == VL53L0X_DEVICEMODE_GPIO_DRIVE) {
+		if (Polarity == VL53L0X_INTERRUPTPOLARITY_LOW)
+			data = 0x10;
+		else
+			data = 1;
+
+		Status = VL53L0X_WrByte(Dev,
+		VL53L0X_REG_GPIO_HV_MUX_ACTIVE_HIGH, data);
+
+	} else if (DeviceMode == VL53L0X_DEVICEMODE_GPIO_OSC) {
+
+		Status |= VL53L0X_WrByte(Dev, 0xff, 0x01);
+		Status |= VL53L0X_WrByte(Dev, 0x00, 0x00);
+
+		Status |= VL53L0X_WrByte(Dev, 0xff, 0x00);
+		Status |= VL53L0X_WrByte(Dev, 0x80, 0x01);
+		Status |= VL53L0X_WrByte(Dev, 0x85, 0x02);
+
+		Status |= VL53L0X_WrByte(Dev, 0xff, 0x04);
+		Status |= VL53L0X_WrByte(Dev, 0xcd, 0x00);
+		Status |= VL53L0X_WrByte(Dev, 0xcc, 0x11);
+
+		Status |= VL53L0X_WrByte(Dev, 0xff, 0x07);
+		Status |= VL53L0X_WrByte(Dev, 0xbe, 0x00);
+
+		Status |= VL53L0X_WrByte(Dev, 0xff, 0x06);
+		Status |= VL53L0X_WrByte(Dev, 0xcc, 0x09);
+
+		Status |= VL53L0X_WrByte(Dev, 0xff, 0x00);
+		Status |= VL53L0X_WrByte(Dev, 0xff, 0x01);
+		Status |= VL53L0X_WrByte(Dev, 0x00, 0x00);
+
+	} else {
+
+		if (Status == VL53L0X_ERROR_NONE) {
+			switch (Functionality) {
+			case VL53L0X_GPIOFUNCTIONALITY_OFF:
+				data = 0x00;
+				break;
+			case VL53L0X_GPIOFUNCTIONALITY_THRESHOLD_CROSSED_LOW:
+				data = 0x01;
+				break;
+			case VL53L0X_GPIOFUNCTIONALITY_THRESHOLD_CROSSED_HIGH:
+				data = 0x02;
+				break;
+			case VL53L0X_GPIOFUNCTIONALITY_THRESHOLD_CROSSED_OUT:
+				data = 0x03;
+				break;
+			case VL53L0X_GPIOFUNCTIONALITY_NEW_MEASURE_READY:
+				data = 0x04;
+				break;
+			default:
+				Status =
+				VL53L0X_ERROR_GPIO_FUNCTIONALITY_NOT_SUPPORTED;
+			}
+		}
+
+		if (Status == VL53L0X_ERROR_NONE)
+			Status = VL53L0X_WrByte(Dev,
+			VL53L0X_REG_SYSTEM_INTERRUPT_CONFIG_GPIO, data);
+
+		if (Status == VL53L0X_ERROR_NONE) {
+			if (Polarity == VL53L0X_INTERRUPTPOLARITY_LOW)
+				data = 0;
+			else
+				data = (uint8_t)(1 << 4);
+
+			Status = VL53L0X_UpdateByte(Dev,
+			VL53L0X_REG_GPIO_HV_MUX_ACTIVE_HIGH, 0xEF, data);
+		}
+
+		if (Status == VL53L0X_ERROR_NONE)
+			VL53L0X_SETDEVICESPECIFICPARAMETER(Dev,
+				Pin0GpioFunctionality, Functionality);
+
+		if (Status == VL53L0X_ERROR_NONE)
+			Status = VL53L0X_ClearInterruptMask(Dev, 0);
+
+	}
+
+	LOG_FUNCTION_END(Status);
+	return Status;
+}
+
+VL53L0X_Error VL53L0X_GetGpioConfig(VL53L0X_DEV Dev, uint8_t Pin,
+	VL53L0X_DeviceModes *pDeviceMode,
+	VL53L0X_GpioFunctionality *pFunctionality,
+	VL53L0X_InterruptPolarity *pPolarity)
+{
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+	VL53L0X_GpioFunctionality GpioFunctionality;
+	uint8_t data;
+
+	LOG_FUNCTION_START("");
+
+	/* pDeviceMode not managed by Ewok it return the current mode */
+
+	Status = VL53L0X_GetDeviceMode(Dev, pDeviceMode);
+
+	if (Status == VL53L0X_ERROR_NONE) {
+		if (Pin != 0) {
+			Status = VL53L0X_ERROR_GPIO_NOT_EXISTING;
+		} else {
+			Status = VL53L0X_RdByte(Dev,
+			VL53L0X_REG_SYSTEM_INTERRUPT_CONFIG_GPIO, &data);
+		}
+	}
+
+	if (Status == VL53L0X_ERROR_NONE) {
+		switch (data & 0x07) {
+		case 0x00:
+			GpioFunctionality = VL53L0X_GPIOFUNCTIONALITY_OFF;
+			break;
+		case 0x01:
+			GpioFunctionality =
+			VL53L0X_GPIOFUNCTIONALITY_THRESHOLD_CROSSED_LOW;
+			break;
+		case 0x02:
+			GpioFunctionality =
+			VL53L0X_GPIOFUNCTIONALITY_THRESHOLD_CROSSED_HIGH;
+			break;
+		case 0x03:
+			GpioFunctionality =
+			VL53L0X_GPIOFUNCTIONALITY_THRESHOLD_CROSSED_OUT;
+			break;
+		case 0x04:
+			GpioFunctionality =
+			VL53L0X_GPIOFUNCTIONALITY_NEW_MEASURE_READY;
+			break;
+		default:
+			Status = VL53L0X_ERROR_GPIO_FUNCTIONALITY_NOT_SUPPORTED;
+		}
+	}
+
+	if (Status == VL53L0X_ERROR_NONE)
+		Status = VL53L0X_RdByte(Dev, VL53L0X_REG_GPIO_HV_MUX_ACTIVE_HIGH,
+			&data);
+
+	if (Status == VL53L0X_ERROR_NONE) {
+		if ((data & (uint8_t)(1 << 4)) == 0)
+			*pPolarity = VL53L0X_INTERRUPTPOLARITY_LOW;
+		else
+			*pPolarity = VL53L0X_INTERRUPTPOLARITY_HIGH;
+	}
+
+	if (Status == VL53L0X_ERROR_NONE) {
+		*pFunctionality = GpioFunctionality;
+		VL53L0X_SETDEVICESPECIFICPARAMETER(Dev, Pin0GpioFunctionality,
+			GpioFunctionality);
+	}
+
+	LOG_FUNCTION_END(Status);
+	return Status;
+}
+
+VL53L0X_Error VL53L0X_SetInterruptThresholds(VL53L0X_DEV Dev,
+	VL53L0X_DeviceModes DeviceMode, FixPoint1616_t ThresholdLow,
+	FixPoint1616_t ThresholdHigh)
+{
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+	uint16_t Threshold16;
+	LOG_FUNCTION_START("");
+
+	/* no dependency on DeviceMode for Ewok */
+	/* Need to divide by 2 because the FW will apply a x2 */
+	Threshold16 = (uint16_t)((ThresholdLow >> 17) & 0x00fff);
+	Status = VL53L0X_WrWord(Dev, VL53L0X_REG_SYSTEM_THRESH_LOW, Threshold16);
+
+	if (Status == VL53L0X_ERROR_NONE) {
+		/* Need to divide by 2 because the FW will apply a x2 */
+		Threshold16 = (uint16_t)((ThresholdHigh >> 17) & 0x00fff);
+		Status = VL53L0X_WrWord(Dev, VL53L0X_REG_SYSTEM_THRESH_HIGH,
+			Threshold16);
+	}
+
+	LOG_FUNCTION_END(Status);
+	return Status;
+}
+
+VL53L0X_Error VL53L0X_GetInterruptThresholds(VL53L0X_DEV Dev,
+	VL53L0X_DeviceModes DeviceMode, FixPoint1616_t *pThresholdLow,
+	FixPoint1616_t *pThresholdHigh)
+{
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+	uint16_t Threshold16;
+	LOG_FUNCTION_START("");
+
+	/* no dependency on DeviceMode for Ewok */
+
+	Status = VL53L0X_RdWord(Dev, VL53L0X_REG_SYSTEM_THRESH_LOW, &Threshold16);
+	/* Need to multiply by 2 because the FW will apply a x2 */
+	*pThresholdLow = (FixPoint1616_t)((0x00fff & Threshold16) << 17);
+
+	if (Status == VL53L0X_ERROR_NONE) {
+		Status = VL53L0X_RdWord(Dev, VL53L0X_REG_SYSTEM_THRESH_HIGH,
+			&Threshold16);
+		/* Need to multiply by 2 because the FW will apply a x2 */
+		*pThresholdHigh =
+			(FixPoint1616_t)((0x00fff & Threshold16) << 17);
+	}
+
+	LOG_FUNCTION_END(Status);
+	return Status;
+}
+
+VL53L0X_Error VL53L0X_GetStopCompletedStatus(VL53L0X_DEV Dev,
+	uint32_t *pStopStatus)
+{
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+	uint8_t Byte = 0;
+	LOG_FUNCTION_START("");
+
+	Status = VL53L0X_WrByte(Dev, 0xFF, 0x01);
+
+	if (Status == VL53L0X_ERROR_NONE)
+		Status = VL53L0X_RdByte(Dev, 0x04, &Byte);
+
+	if (Status == VL53L0X_ERROR_NONE)
+		Status = VL53L0X_WrByte(Dev, 0xFF, 0x0);
+
+	*pStopStatus = Byte;
+
+	if (Byte == 0) {
+		Status = VL53L0X_WrByte(Dev, 0x80, 0x01);
+		Status = VL53L0X_WrByte(Dev, 0xFF, 0x01);
+		Status = VL53L0X_WrByte(Dev, 0x00, 0x00);
+		Status = VL53L0X_WrByte(Dev, 0x91,
+			PALDevDataGet(Dev, StopVariable));
+		Status = VL53L0X_WrByte(Dev, 0x00, 0x01);
+		Status = VL53L0X_WrByte(Dev, 0xFF, 0x00);
+		Status = VL53L0X_WrByte(Dev, 0x80, 0x00);
+	}
+
+	LOG_FUNCTION_END(Status);
+	return Status;
+}
+
+/* Group PAL Interrupt Functions */
+VL53L0X_Error VL53L0X_ClearInterruptMask(VL53L0X_DEV Dev, uint32_t InterruptMask)
+{
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+	uint8_t LoopCount;
+	uint8_t Byte;
+	LOG_FUNCTION_START("");
+
+	/* clear bit 0 range interrupt, bit 1 error interrupt */
+	LoopCount = 0;
+	do {
+		Status = VL53L0X_WrByte(Dev,
+			VL53L0X_REG_SYSTEM_INTERRUPT_CLEAR, 0x01);
+		Status |= VL53L0X_WrByte(Dev,
+			VL53L0X_REG_SYSTEM_INTERRUPT_CLEAR, 0x00);
+		Status |= VL53L0X_RdByte(Dev,
+			VL53L0X_REG_RESULT_INTERRUPT_STATUS, &Byte);
+		LoopCount++;
+	} while (((Byte & 0x07) != 0x00)
+			&& (LoopCount < 3)
+			&& (Status == VL53L0X_ERROR_NONE));
+
+
+	if (LoopCount >= 3)
+		Status = VL53L0X_ERROR_INTERRUPT_NOT_CLEARED;
+
+	LOG_FUNCTION_END(Status);
+	return Status;
+}
+
+VL53L0X_Error VL53L0X_GetInterruptMaskStatus(VL53L0X_DEV Dev,
+	uint32_t *pInterruptMaskStatus)
+{
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+	uint8_t Byte;
+	LOG_FUNCTION_START("");
+
+	Status = VL53L0X_RdByte(Dev, VL53L0X_REG_RESULT_INTERRUPT_STATUS, &Byte);
+	*pInterruptMaskStatus = Byte & 0x07;
+
+	if (Byte & 0x18)
+		Status = VL53L0X_ERROR_RANGE_ERROR;
+
+	LOG_FUNCTION_END(Status);
+	return Status;
+}
+
+VL53L0X_Error VL53L0X_EnableInterruptMask(VL53L0X_DEV Dev, uint32_t InterruptMask)
+{
+	VL53L0X_Error Status = VL53L0X_ERROR_NOT_IMPLEMENTED;
+	LOG_FUNCTION_START("");
+
+	/* not implemented for VL53L0X */
+
+	LOG_FUNCTION_END(Status);
+	return Status;
+}
+
+/* End Group PAL Interrupt Functions */
+
+/* Group SPAD functions */
+
+VL53L0X_Error VL53L0X_SetSpadAmbientDamperThreshold(VL53L0X_DEV Dev,
+	uint16_t SpadAmbientDamperThreshold)
+{
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+	LOG_FUNCTION_START("");
+
+	Status = VL53L0X_WrByte(Dev, 0xFF, 0x01);
+	Status |= VL53L0X_WrWord(Dev, 0x40, SpadAmbientDamperThreshold);
+	Status |= VL53L0X_WrByte(Dev, 0xFF, 0x00);
+
+	LOG_FUNCTION_END(Status);
+	return Status;
+}
+
+VL53L0X_Error VL53L0X_GetSpadAmbientDamperThreshold(VL53L0X_DEV Dev,
+	uint16_t *pSpadAmbientDamperThreshold)
+{
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+	LOG_FUNCTION_START("");
+
+	Status = VL53L0X_WrByte(Dev, 0xFF, 0x01);
+	Status |= VL53L0X_RdWord(Dev, 0x40, pSpadAmbientDamperThreshold);
+	Status |= VL53L0X_WrByte(Dev, 0xFF, 0x00);
+
+	LOG_FUNCTION_END(Status);
+	return Status;
+}
+
+VL53L0X_Error VL53L0X_SetSpadAmbientDamperFactor(VL53L0X_DEV Dev,
+	uint16_t SpadAmbientDamperFactor)
+{
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+	uint8_t Byte;
+	LOG_FUNCTION_START("");
+
+	Byte = (uint8_t)(SpadAmbientDamperFactor & 0x00FF);
+
+	Status = VL53L0X_WrByte(Dev, 0xFF, 0x01);
+	Status |= VL53L0X_WrByte(Dev, 0x42, Byte);
+	Status |= VL53L0X_WrByte(Dev, 0xFF, 0x00);
+
+	LOG_FUNCTION_END(Status);
+	return Status;
+}
+
+VL53L0X_Error VL53L0X_GetSpadAmbientDamperFactor(VL53L0X_DEV Dev,
+	uint16_t *pSpadAmbientDamperFactor)
+{
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+	uint8_t Byte;
+	LOG_FUNCTION_START("");
+
+	Status = VL53L0X_WrByte(Dev, 0xFF, 0x01);
+	Status |= VL53L0X_RdByte(Dev, 0x42, &Byte);
+	Status |= VL53L0X_WrByte(Dev, 0xFF, 0x00);
+	*pSpadAmbientDamperFactor = (uint16_t)Byte;
+
+	LOG_FUNCTION_END(Status);
+	return Status;
+}
+
+/* END Group SPAD functions */
+
+/*****************************************************************************
+ * Internal functions
+ *****************************************************************************/
+
+VL53L0X_Error VL53L0X_SetReferenceSpads(VL53L0X_DEV Dev, uint32_t count,
+	uint8_t isApertureSpads)
+{
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+	LOG_FUNCTION_START("");
+
+	Status = VL53L0X_set_reference_spads(Dev, count, isApertureSpads);
+
+	LOG_FUNCTION_END(Status);
+
+	return Status;
+}
+
+VL53L0X_Error VL53L0X_GetReferenceSpads(VL53L0X_DEV Dev, uint32_t *pSpadCount,
+	uint8_t *pIsApertureSpads)
+{
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+	LOG_FUNCTION_START("");
+
+	Status = VL53L0X_get_reference_spads(Dev, pSpadCount, pIsApertureSpads);
+
+	LOG_FUNCTION_END(Status);
+
+	return Status;
+}
+
+VL53L0X_Error VL53L0X_PerformRefSpadManagement(VL53L0X_DEV Dev,
+	uint32_t *refSpadCount, uint8_t *isApertureSpads)
+{
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+	LOG_FUNCTION_START("");
+
+	Status = VL53L0X_perform_ref_spad_management(Dev, refSpadCount,
+		isApertureSpads);
+
+	LOG_FUNCTION_END(Status);
+
+	return Status;
+}
diff --git a/STS/TOF/vl53l0x/vl53l0x_api.h b/STS/TOF/vl53l0x/vl53l0x_api.h
index f3987f2..382a7c2 100644
--- a/STS/TOF/vl53l0x/vl53l0x_api.h
+++ b/STS/TOF/vl53l0x/vl53l0x_api.h
@@ -1,1950 +1,1950 @@
-/*******************************************************************************
- Copyright � 2016, STMicroelectronics International N.V.
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
- * 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.
- * 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, FITNESS FOR A PARTICULAR PURPOSE, AND
- NON-INFRINGEMENT OF INTELLECTUAL PROPERTY RIGHTS ARE DISCLAIMED.
- IN NO EVENT SHALL STMICROELECTRONICS INTERNATIONAL N.V. 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 _VL53L0X_API_H_
-#define _VL53L0X_API_H_
-
-#include "vl53l0x_api_strings.h"
-#include "vl53l0x_def.h"
-#include "vl53l0x_platform.h"
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-
-#ifdef _MSC_VER
-#   ifdef VL53L0X_API_EXPORTS
-#       define VL53L0X_API  __declspec(dllexport)
-#   else
-#       define VL53L0X_API
-#   endif
-#else
-#   define VL53L0X_API
-#endif
-
-/** @defgroup VL53L0X_cut11_group VL53L0X cut1.1 Function Definition
- *  @brief    VL53L0X cut1.1 Function Definition
- *  @{
- */
-
-/** @defgroup VL53L0X_general_group VL53L0X General Functions
- *  @brief    General functions and definitions
- *  @{
- */
-
-/**
- * @brief Return the VL53L0X PAL Implementation Version
- *
- * @note This function doesn't access to the device
- *
- * @param   pVersion              Pointer to current PAL Implementation Version
- * @return  VL53L0X_ERROR_NONE     Success
- * @return  "Other error code"    See ::VL53L0X_Error
- */
-VL53L0X_API VL53L0X_Error VL53L0X_GetVersion(VL53L0X_Version_t *pVersion);
-
-/**
- * @brief Return the PAL Specification Version used for the current
- * implementation.
- *
- * @note This function doesn't access to the device
- *
- * @param   pPalSpecVersion       Pointer to current PAL Specification Version
- * @return  VL53L0X_ERROR_NONE        Success
- * @return  "Other error code"    See ::VL53L0X_Error
- */
-VL53L0X_API VL53L0X_Error VL53L0X_GetPalSpecVersion(
-	VL53L0X_Version_t *pPalSpecVersion);
-
-/**
- * @brief Reads the Product Revision for a for given Device
- * This function can be used to distinguish cut1.0 from cut1.1.
- *
- * @note This function Access to the device
- *
- * @param   Dev                 Device Handle
- * @param   pProductRevisionMajor  Pointer to Product Revision Major
- * for a given Device
- * @param   pProductRevisionMinor  Pointer to Product Revision Minor
- * for a given Device
- * @return  VL53L0X_ERROR_NONE      Success
- * @return  "Other error code"  See ::VL53L0X_Error
- */
-VL53L0X_API VL53L0X_Error VL53L0X_GetProductRevision(VL53L0X_DEV Dev,
-	uint8_t *pProductRevisionMajor, uint8_t *pProductRevisionMinor);
-
-/**
- * @brief Reads the Device information for given Device
- *
- * @note This function Access to the device
- *
- * @param   Dev                 Device Handle
- * @param   pVL53L0X_DeviceInfo  Pointer to current device info for a given
- *  Device
- * @return  VL53L0X_ERROR_NONE   Success
- * @return  "Other error code"  See ::VL53L0X_Error
- */
-VL53L0X_API VL53L0X_Error VL53L0X_GetDeviceInfo(VL53L0X_DEV Dev,
-	VL53L0X_DeviceInfo_t *pVL53L0X_DeviceInfo);
-
-/**
- * @brief Read current status of the error register for the selected device
- *
- * @note This function Access to the device
- *
- * @param   Dev                   Device Handle
- * @param   pDeviceErrorStatus    Pointer to current error code of the device
- * @return  VL53L0X_ERROR_NONE     Success
- * @return  "Other error code"    See ::VL53L0X_Error
- */
-VL53L0X_API VL53L0X_Error VL53L0X_GetDeviceErrorStatus(VL53L0X_DEV Dev,
-	VL53L0X_DeviceError *pDeviceErrorStatus);
-
-/**
- * @brief Human readable Range Status string for a given RangeStatus
- *
- * @note This function doesn't access to the device
- *
- * @param   RangeStatus         The RangeStatus code as stored on
- * @a VL53L0X_RangingMeasurementData_t
- * @param   pRangeStatusString  The returned RangeStatus string.
- * @return  VL53L0X_ERROR_NONE   Success
- * @return  "Other error code"  See ::VL53L0X_Error
- */
-VL53L0X_API VL53L0X_Error VL53L0X_GetRangeStatusString(uint8_t RangeStatus,
-	char *pRangeStatusString);
-
-/**
- * @brief Human readable error string for a given Error Code
- *
- * @note This function doesn't access to the device
- *
- * @param   ErrorCode           The error code as stored on ::VL53L0X_DeviceError
- * @param   pDeviceErrorString  The error string corresponding to the ErrorCode
- * @return  VL53L0X_ERROR_NONE   Success
- * @return  "Other error code"  See ::VL53L0X_Error
- */
-VL53L0X_API VL53L0X_Error VL53L0X_GetDeviceErrorString(
-	VL53L0X_DeviceError ErrorCode, char *pDeviceErrorString);
-
-/**
- * @brief Human readable error string for current PAL error status
- *
- * @note This function doesn't access to the device
- *
- * @param   PalErrorCode       The error code as stored on @a VL53L0X_Error
- * @param   pPalErrorString    The error string corresponding to the
- * PalErrorCode
- * @return  VL53L0X_ERROR_NONE  Success
- * @return  "Other error code" See ::VL53L0X_Error
- */
-VL53L0X_API VL53L0X_Error VL53L0X_GetPalErrorString(VL53L0X_Error PalErrorCode,
-	char *pPalErrorString);
-
-/**
- * @brief Human readable PAL State string
- *
- * @note This function doesn't access to the device
- *
- * @param   PalStateCode          The State code as stored on @a VL53L0X_State
- * @param   pPalStateString       The State string corresponding to the
- * PalStateCode
- * @return  VL53L0X_ERROR_NONE     Success
- * @return  "Other error code"    See ::VL53L0X_Error
- */
-VL53L0X_API VL53L0X_Error VL53L0X_GetPalStateString(VL53L0X_State PalStateCode,
-	char *pPalStateString);
-
-/**
- * @brief Reads the internal state of the PAL for a given Device
- *
- * @note This function doesn't access to the device
- *
- * @param   Dev                   Device Handle
- * @param   pPalState             Pointer to current state of the PAL for a
- * given Device
- * @return  VL53L0X_ERROR_NONE     Success
- * @return  "Other error code"    See ::VL53L0X_Error
- */
-VL53L0X_API VL53L0X_Error VL53L0X_GetPalState(VL53L0X_DEV Dev,
-	VL53L0X_State *pPalState);
-
-/**
- * @brief Set the power mode for a given Device
- * The power mode can be Standby or Idle. Different level of both Standby and
- * Idle can exists.
- * This function should not be used when device is in Ranging state.
- *
- * @note This function Access to the device
- *
- * @param   Dev                   Device Handle
- * @param   PowerMode             The value of the power mode to set.
- * see ::VL53L0X_PowerModes
- *                                Valid values are:
- *                                VL53L0X_POWERMODE_STANDBY_LEVEL1,
- *                                VL53L0X_POWERMODE_IDLE_LEVEL1
- * @return  VL53L0X_ERROR_NONE                  Success
- * @return  VL53L0X_ERROR_MODE_NOT_SUPPORTED    This error occurs when PowerMode
- * is not in the supported list
- * @return  "Other error code"    See ::VL53L0X_Error
- */
-VL53L0X_API VL53L0X_Error VL53L0X_SetPowerMode(VL53L0X_DEV Dev,
-	VL53L0X_PowerModes PowerMode);
-
-/**
- * @brief Get the power mode for a given Device
- *
- * @note This function Access to the device
- *
- * @param   Dev                   Device Handle
- * @param   pPowerMode            Pointer to the current value of the power
- * mode. see ::VL53L0X_PowerModes
- *                                Valid values are:
- *                                VL53L0X_POWERMODE_STANDBY_LEVEL1,
- *                                VL53L0X_POWERMODE_IDLE_LEVEL1
- * @return  VL53L0X_ERROR_NONE     Success
- * @return  "Other error code"    See ::VL53L0X_Error
- */
-VL53L0X_API VL53L0X_Error VL53L0X_GetPowerMode(VL53L0X_DEV Dev,
-	VL53L0X_PowerModes *pPowerMode);
-
-/**
- * Set or over-hide part to part calibration offset
- * \sa VL53L0X_DataInit()   VL53L0X_GetOffsetCalibrationDataMicroMeter()
- *
- * @note This function Access to the device
- *
- * @param   Dev                                Device Handle
- * @param   OffsetCalibrationDataMicroMeter    Offset (microns)
- * @return  VL53L0X_ERROR_NONE                  Success
- * @return  "Other error code"                 See ::VL53L0X_Error
- */
-VL53L0X_API VL53L0X_Error VL53L0X_SetOffsetCalibrationDataMicroMeter(
-	VL53L0X_DEV Dev, int32_t OffsetCalibrationDataMicroMeter);
-
-/**
- * @brief Get part to part calibration offset
- *
- * @par Function Description
- * Should only be used after a successful call to @a VL53L0X_DataInit to backup
- * device NVM value
- *
- * @note This function Access to the device
- *
- * @param   Dev                                Device Handle
- * @param   pOffsetCalibrationDataMicroMeter   Return part to part
- * calibration offset from device (microns)
- * @return  VL53L0X_ERROR_NONE                  Success
- * @return  "Other error code"                 See ::VL53L0X_Error
- */
-VL53L0X_API VL53L0X_Error VL53L0X_GetOffsetCalibrationDataMicroMeter(
-	VL53L0X_DEV Dev, int32_t *pOffsetCalibrationDataMicroMeter);
-
-/**
- * Set the linearity corrective gain
- *
- * @note This function Access to the device
- *
- * @param   Dev                                Device Handle
- * @param   LinearityCorrectiveGain            Linearity corrective
- * gain in x1000
- * if value is 1000 then no modification is applied.
- * @return  VL53L0X_ERROR_NONE                  Success
- * @return  "Other error code"                 See ::VL53L0X_Error
- */
-VL53L0X_API VL53L0X_Error VL53L0X_SetLinearityCorrectiveGain(VL53L0X_DEV Dev,
-	int16_t LinearityCorrectiveGain);
-
-/**
- * @brief Get the linearity corrective gain
- *
- * @par Function Description
- * Should only be used after a successful call to @a VL53L0X_DataInit to backup
- * device NVM value
- *
- * @note This function Access to the device
- *
- * @param   Dev                                Device Handle
- * @param   pLinearityCorrectiveGain           Pointer to the linearity
- * corrective gain in x1000
- * if value is 1000 then no modification is applied.
- * @return  VL53L0X_ERROR_NONE                  Success
- * @return  "Other error code"                 See ::VL53L0X_Error
- */
-VL53L0X_API VL53L0X_Error VL53L0X_GetLinearityCorrectiveGain(VL53L0X_DEV Dev,
-	uint16_t *pLinearityCorrectiveGain);
-
-/**
- * Set Group parameter Hold state
- *
- * @par Function Description
- * Set or remove device internal group parameter hold
- *
- * @note This function is not Implemented
- *
- * @param   Dev      Device Handle
- * @param   GroupParamHold   Group parameter Hold state to be set (on/off)
- * @return  VL53L0X_ERROR_NOT_IMPLEMENTED        Not implemented
- */
-VL53L0X_API VL53L0X_Error VL53L0X_SetGroupParamHold(VL53L0X_DEV Dev,
-	uint8_t GroupParamHold);
-
-/**
- * @brief Get the maximal distance for actual setup
- * @par Function Description
- * Device must be initialized through @a VL53L0X_SetParameters() prior calling
- * this function.
- *
- * Any range value more than the value returned is to be considered as
- * "no target detected" or
- * "no target in detectable range"\n
- * @warning The maximal distance depends on the setup
- *
- * @note This function is not Implemented
- *
- * @param   Dev      Device Handle
- * @param   pUpperLimitMilliMeter   The maximal range limit for actual setup
- * (in millimeter)
- * @return  VL53L0X_ERROR_NOT_IMPLEMENTED        Not implemented
- */
-VL53L0X_API VL53L0X_Error VL53L0X_GetUpperLimitMilliMeter(VL53L0X_DEV Dev,
-	uint16_t *pUpperLimitMilliMeter);
-
-
-/**
- * @brief Get the Total Signal Rate
- * @par Function Description
- * This function will return the Total Signal Rate after a good ranging is done.
- *
- * @note This function access to Device
- *
- * @param   Dev      Device Handle
- * @param   pTotalSignalRate   Total Signal Rate value in Mega count per second
- * @return  VL53L0X_ERROR_NONE     Success
- * @return  "Other error code"    See ::VL53L0X_Error
- */
-VL53L0X_Error VL53L0X_GetTotalSignalRate(VL53L0X_DEV Dev,
-	FixPoint1616_t *pTotalSignalRate);
-
-/** @} VL53L0X_general_group */
-
-/** @defgroup VL53L0X_init_group VL53L0X Init Functions
- *  @brief    VL53L0X Init Functions
- *  @{
- */
-
-/**
- * @brief Set new device address
- *
- * After completion the device will answer to the new address programmed.
- * This function should be called when several devices are used in parallel
- * before start programming the sensor.
- * When a single device us used, there is no need to call this function.
- *
- * @note This function Access to the device
- *
- * @param   Dev                   Device Handle
- * @param   DeviceAddress         The new Device address
- * @return  VL53L0X_ERROR_NONE     Success
- * @return  "Other error code"    See ::VL53L0X_Error
- */
-VL53L0X_API VL53L0X_Error VL53L0X_SetDeviceAddress(VL53L0X_DEV Dev,
-	uint8_t DeviceAddress);
-
-/**
- *
- * @brief One time device initialization
- *
- * To be called once and only once after device is brought out of reset
- * (Chip enable) and booted see @a VL53L0X_WaitDeviceBooted()
- *
- * @par Function Description
- * When not used after a fresh device "power up" or reset, it may return
- * @a #VL53L0X_ERROR_CALIBRATION_WARNING meaning wrong calibration data
- * may have been fetched from device that can result in ranging offset error\n
- * If application cannot execute device reset or need to run VL53L0X_DataInit
- * multiple time then it  must ensure proper offset calibration saving and
- * restore on its own by using @a VL53L0X_GetOffsetCalibrationData() on first
- * power up and then @a VL53L0X_SetOffsetCalibrationData() in all subsequent init
- * This function will change the VL53L0X_State from VL53L0X_STATE_POWERDOWN to
- * VL53L0X_STATE_WAIT_STATICINIT.
- *
- * @note This function Access to the device
- *
- * @param   Dev                   Device Handle
- * @return  VL53L0X_ERROR_NONE     Success
- * @return  "Other error code"    See ::VL53L0X_Error
- */
-VL53L0X_API VL53L0X_Error VL53L0X_DataInit(VL53L0X_DEV Dev);
-
-/**
- * @brief Set the tuning settings pointer
- *
- * This function is used to specify the Tuning settings buffer to be used
- * for a given device. The buffer contains all the necessary data to permit
- * the API to write tuning settings.
- * This function permit to force the usage of either external or internal
- * tuning settings.
- *
- * @note This function Access to the device
- *
- * @param   Dev                             Device Handle
- * @param   pTuningSettingBuffer            Pointer to tuning settings buffer.
- * @param   UseInternalTuningSettings       Use internal tuning settings value.
- * @return  VL53L0X_ERROR_NONE     Success
- * @return  "Other error code"    See ::VL53L0X_Error
- */
-VL53L0X_API VL53L0X_Error VL53L0X_SetTuningSettingBuffer(VL53L0X_DEV Dev,
-	uint8_t *pTuningSettingBuffer, uint8_t UseInternalTuningSettings);
-
-/**
- * @brief Get the tuning settings pointer and the internal external switch
- * value.
- *
- * This function is used to get the Tuning settings buffer pointer and the
- * value.
- * of the switch to select either external or internal tuning settings.
- *
- * @note This function Access to the device
- *
- * @param   Dev                        Device Handle
- * @param   ppTuningSettingBuffer      Pointer to tuning settings buffer.
- * @param   pUseInternalTuningSettings Pointer to store Use internal tuning
- *                                     settings value.
- * @return  VL53L0X_ERROR_NONE          Success
- * @return  "Other error code"         See ::VL53L0X_Error
- */
-VL53L0X_API VL53L0X_Error VL53L0X_GetTuningSettingBuffer(VL53L0X_DEV Dev,
-	uint8_t **ppTuningSettingBuffer, uint8_t *pUseInternalTuningSettings);
-
-/**
- * @brief Do basic device init (and eventually patch loading)
- * This function will change the VL53L0X_State from
- * VL53L0X_STATE_WAIT_STATICINIT to VL53L0X_STATE_IDLE.
- * In this stage all default setting will be applied.
- *
- * @note This function Access to the device
- *
- * @param   Dev                   Device Handle
- * @return  VL53L0X_ERROR_NONE     Success
- * @return  "Other error code"    See ::VL53L0X_Error
- */
-VL53L0X_API VL53L0X_Error VL53L0X_StaticInit(VL53L0X_DEV Dev);
-
-/**
- * @brief Wait for device booted after chip enable (hardware standby)
- * This function can be run only when VL53L0X_State is VL53L0X_STATE_POWERDOWN.
- *
- * @note This function is not Implemented
- *
- * @param   Dev      Device Handle
- * @return  VL53L0X_ERROR_NOT_IMPLEMENTED Not implemented
- *
- */
-VL53L0X_API VL53L0X_Error VL53L0X_WaitDeviceBooted(VL53L0X_DEV Dev);
-
-/**
- * @brief Do an hard reset or soft reset (depending on implementation) of the
- * device \nAfter call of this function, device must be in same state as right
- * after a power-up sequence.This function will change the VL53L0X_State to
- * VL53L0X_STATE_POWERDOWN.
- *
- * @note This function Access to the device
- *
- * @param   Dev                   Device Handle
- * @return  VL53L0X_ERROR_NONE     Success
- * @return  "Other error code"    See ::VL53L0X_Error
- */
-VL53L0X_API VL53L0X_Error VL53L0X_ResetDevice(VL53L0X_DEV Dev);
-
-/** @} VL53L0X_init_group */
-
-/** @defgroup VL53L0X_parameters_group VL53L0X Parameters Functions
- *  @brief    Functions used to prepare and setup the device
- *  @{
- */
-
-/**
- * @brief  Prepare device for operation
- * @par Function Description
- * Update device with provided parameters
- * @li Then start ranging operation.
- *
- * @note This function Access to the device
- *
- * @param   Dev                   Device Handle
- * @param   pDeviceParameters     Pointer to store current device parameters.
- * @return  VL53L0X_ERROR_NONE     Success
- * @return  "Other error code"    See ::VL53L0X_Error
- */
-VL53L0X_API VL53L0X_Error VL53L0X_SetDeviceParameters(VL53L0X_DEV Dev,
-	const VL53L0X_DeviceParameters_t *pDeviceParameters);
-
-/**
- * @brief  Retrieve current device parameters
- * @par Function Description
- * Get actual parameters of the device
- * @li Then start ranging operation.
- *
- * @note This function Access to the device
- *
- * @param   Dev                   Device Handle
- * @param   pDeviceParameters     Pointer to store current device parameters.
- * @return  VL53L0X_ERROR_NONE     Success
- * @return  "Other error code"    See ::VL53L0X_Error
- */
-VL53L0X_API VL53L0X_Error VL53L0X_GetDeviceParameters(VL53L0X_DEV Dev,
-	VL53L0X_DeviceParameters_t *pDeviceParameters);
-
-/**
- * @brief  Set a new device mode
- * @par Function Description
- * Set device to a new mode (ranging, histogram ...)
- *
- * @note This function doesn't Access to the device
- *
- * @param   Dev                   Device Handle
- * @param   DeviceMode            New device mode to apply
- *                                Valid values are:
- *                                VL53L0X_DEVICEMODE_SINGLE_RANGING
- *                                VL53L0X_DEVICEMODE_CONTINUOUS_RANGING
- *                                VL53L0X_DEVICEMODE_CONTINUOUS_TIMED_RANGING
- *                                VL53L0X_DEVICEMODE_SINGLE_HISTOGRAM
- *                                VL53L0X_HISTOGRAMMODE_REFERENCE_ONLY
- *                                VL53L0X_HISTOGRAMMODE_RETURN_ONLY
- *                                VL53L0X_HISTOGRAMMODE_BOTH
- *
- *
- * @return  VL53L0X_ERROR_NONE               Success
- * @return  VL53L0X_ERROR_MODE_NOT_SUPPORTED This error occurs when DeviceMode is
- *                                          not in the supported list
- */
-VL53L0X_API VL53L0X_Error VL53L0X_SetDeviceMode(VL53L0X_DEV Dev,
-	VL53L0X_DeviceModes DeviceMode);
-
-/**
- * @brief  Get current new device mode
- * @par Function Description
- * Get actual mode of the device(ranging, histogram ...)
- *
- * @note This function doesn't Access to the device
- *
- * @param   Dev                   Device Handle
- * @param   pDeviceMode           Pointer to current apply mode value
- *                                Valid values are:
- *                                VL53L0X_DEVICEMODE_SINGLE_RANGING
- *                                VL53L0X_DEVICEMODE_CONTINUOUS_RANGING
- *                                VL53L0X_DEVICEMODE_CONTINUOUS_TIMED_RANGING
- *                                VL53L0X_DEVICEMODE_SINGLE_HISTOGRAM
- *                                VL53L0X_HISTOGRAMMODE_REFERENCE_ONLY
- *                                VL53L0X_HISTOGRAMMODE_RETURN_ONLY
- *                                VL53L0X_HISTOGRAMMODE_BOTH
- *
- * @return  VL53L0X_ERROR_NONE                   Success
- * @return  VL53L0X_ERROR_MODE_NOT_SUPPORTED     This error occurs when
- * DeviceMode is not in the supported list
- */
-VL53L0X_API VL53L0X_Error VL53L0X_GetDeviceMode(VL53L0X_DEV Dev,
-	VL53L0X_DeviceModes *pDeviceMode);
-
-/**
- * @brief  Sets the resolution of range measurements.
- * @par Function Description
- * Set resolution of range measurements to either 0.25mm if
- * fraction enabled or 1mm if not enabled.
- *
- * @note This function Accesses the device
- *
- * @param   Dev               Device Handle
- * @param   Enable            Enable high resolution
- *
- * @return  VL53L0X_ERROR_NONE               Success
- * @return  "Other error code"              See ::VL53L0X_Error
- */
-VL53L0X_API VL53L0X_Error VL53L0X_SetRangeFractionEnable(VL53L0X_DEV Dev,
-	uint8_t Enable);
-
-/**
- * @brief  Gets the fraction enable parameter indicating the resolution of
- * range measurements.
- *
- * @par Function Description
- * Gets the fraction enable state, which translates to the resolution of
- * range measurements as follows :Enabled:=0.25mm resolution,
- * Not Enabled:=1mm resolution.
- *
- * @note This function Accesses the device
- *
- * @param   Dev               Device Handle
- * @param   pEnable           Output Parameter reporting the fraction enable state.
- *
- * @return  VL53L0X_ERROR_NONE                   Success
- * @return  "Other error code"                  See ::VL53L0X_Error
- */
-VL53L0X_API VL53L0X_Error VL53L0X_GetFractionEnable(VL53L0X_DEV Dev,
-	uint8_t *pEnable);
-
-/**
- * @brief  Set a new Histogram mode
- * @par Function Description
- * Set device to a new Histogram mode
- *
- * @note This function doesn't Access to the device
- *
- * @param   Dev                   Device Handle
- * @param   HistogramMode         New device mode to apply
- *                                Valid values are:
- *                                VL53L0X_HISTOGRAMMODE_DISABLED
- *                                VL53L0X_DEVICEMODE_SINGLE_HISTOGRAM
- *                                VL53L0X_HISTOGRAMMODE_REFERENCE_ONLY
- *                                VL53L0X_HISTOGRAMMODE_RETURN_ONLY
- *                                VL53L0X_HISTOGRAMMODE_BOTH
- *
- * @return  VL53L0X_ERROR_NONE                   Success
- * @return  VL53L0X_ERROR_MODE_NOT_SUPPORTED     This error occurs when
- * HistogramMode is not in the supported list
- * @return  "Other error code"    See ::VL53L0X_Error
- */
-VL53L0X_API VL53L0X_Error VL53L0X_SetHistogramMode(VL53L0X_DEV Dev,
-	VL53L0X_HistogramModes HistogramMode);
-
-/**
- * @brief  Get current new device mode
- * @par Function Description
- * Get current Histogram mode of a Device
- *
- * @note This function doesn't Access to the device
- *
- * @param   Dev                   Device Handle
- * @param   pHistogramMode        Pointer to current Histogram Mode value
- *                                Valid values are:
- *                                VL53L0X_HISTOGRAMMODE_DISABLED
- *                                VL53L0X_DEVICEMODE_SINGLE_HISTOGRAM
- *                                VL53L0X_HISTOGRAMMODE_REFERENCE_ONLY
- *                                VL53L0X_HISTOGRAMMODE_RETURN_ONLY
- *                                VL53L0X_HISTOGRAMMODE_BOTH
- * @return  VL53L0X_ERROR_NONE     Success
- * @return  "Other error code"    See ::VL53L0X_Error
- */
-VL53L0X_API VL53L0X_Error VL53L0X_GetHistogramMode(VL53L0X_DEV Dev,
-	VL53L0X_HistogramModes *pHistogramMode);
-
-/**
- * @brief Set Ranging Timing Budget in microseconds
- *
- * @par Function Description
- * Defines the maximum time allowed by the user to the device to run a
- * full ranging sequence for the current mode (ranging, histogram, ASL ...)
- *
- * @note This function Access to the device
- *
- * @param   Dev                                Device Handle
- * @param MeasurementTimingBudgetMicroSeconds  Max measurement time in
- * microseconds.
- *                                   Valid values are:
- *                                   >= 17000 microsecs when wraparound enabled
- *                                   >= 12000 microsecs when wraparound disabled
- * @return  VL53L0X_ERROR_NONE             Success
- * @return  VL53L0X_ERROR_INVALID_PARAMS   This error is returned if
- MeasurementTimingBudgetMicroSeconds out of range
- * @return  "Other error code"            See ::VL53L0X_Error
- */
-VL53L0X_API VL53L0X_Error VL53L0X_SetMeasurementTimingBudgetMicroSeconds(
-	VL53L0X_DEV Dev, uint32_t MeasurementTimingBudgetMicroSeconds);
-
-/**
- * @brief Get Ranging Timing Budget in microseconds
- *
- * @par Function Description
- * Returns the programmed the maximum time allowed by the user to the
- * device to run a full ranging sequence for the current mode
- * (ranging, histogram, ASL ...)
- *
- * @note This function Access to the device
- *
- * @param   Dev                                    Device Handle
- * @param   pMeasurementTimingBudgetMicroSeconds   Max measurement time in
- * microseconds.
- *                                   Valid values are:
- *                                   >= 17000 microsecs when wraparound enabled
- *                                   >= 12000 microsecs when wraparound disabled
- * @return  VL53L0X_ERROR_NONE                      Success
- * @return  "Other error code"                     See ::VL53L0X_Error
- */
-VL53L0X_API VL53L0X_Error VL53L0X_GetMeasurementTimingBudgetMicroSeconds(
-	VL53L0X_DEV Dev, uint32_t *pMeasurementTimingBudgetMicroSeconds);
-
-/**
- * @brief Gets the VCSEL pulse period.
- *
- * @par Function Description
- * This function retrieves the VCSEL pulse period for the given period type.
- *
- * @note This function Accesses the device
- *
- * @param   Dev                      Device Handle
- * @param   VcselPeriodType          VCSEL period identifier (pre-range|final).
- * @param   pVCSELPulsePeriod        Pointer to VCSEL period value.
- * @return  VL53L0X_ERROR_NONE        Success
- * @return  VL53L0X_ERROR_INVALID_PARAMS  Error VcselPeriodType parameter not
- *                                       supported.
- * @return  "Other error code"           See ::VL53L0X_Error
- */
-VL53L0X_API VL53L0X_Error VL53L0X_GetVcselPulsePeriod(VL53L0X_DEV Dev,
-	VL53L0X_VcselPeriod VcselPeriodType, uint8_t *pVCSELPulsePeriod);
-
-/**
- * @brief Sets the VCSEL pulse period.
- *
- * @par Function Description
- * This function retrieves the VCSEL pulse period for the given period type.
- *
- * @note This function Accesses the device
- *
- * @param   Dev                       Device Handle
- * @param   VcselPeriodType	      VCSEL period identifier (pre-range|final).
- * @param   VCSELPulsePeriod          VCSEL period value
- * @return  VL53L0X_ERROR_NONE            Success
- * @return  VL53L0X_ERROR_INVALID_PARAMS  Error VcselPeriodType parameter not
- *                                       supported.
- * @return  "Other error code"           See ::VL53L0X_Error
- */
-VL53L0X_API VL53L0X_Error VL53L0X_SetVcselPulsePeriod(VL53L0X_DEV Dev,
-	VL53L0X_VcselPeriod VcselPeriodType, uint8_t VCSELPulsePeriod);
-
-/**
- * @brief Sets the (on/off) state of a requested sequence step.
- *
- * @par Function Description
- * This function enables/disables a requested sequence step.
- *
- * @note This function Accesses the device
- *
- * @param   Dev                          Device Handle
- * @param   SequenceStepId	         Sequence step identifier.
- * @param   SequenceStepEnabled          Demanded state {0=Off,1=On}
- *                                       is enabled.
- * @return  VL53L0X_ERROR_NONE            Success
- * @return  VL53L0X_ERROR_INVALID_PARAMS  Error SequenceStepId parameter not
- *                                       supported.
- * @return  "Other error code"           See ::VL53L0X_Error
- */
-VL53L0X_API VL53L0X_Error VL53L0X_SetSequenceStepEnable(VL53L0X_DEV Dev,
-	VL53L0X_SequenceStepId SequenceStepId, uint8_t SequenceStepEnabled);
-
-/**
- * @brief Gets the (on/off) state of a requested sequence step.
- *
- * @par Function Description
- * This function retrieves the state of a requested sequence step, i.e. on/off.
- *
- * @note This function Accesses the device
- *
- * @param   Dev                    Device Handle
- * @param   SequenceStepId         Sequence step identifier.
- * @param   pSequenceStepEnabled   Out parameter reporting if the sequence step
- *                                 is enabled {0=Off,1=On}.
- * @return  VL53L0X_ERROR_NONE            Success
- * @return  VL53L0X_ERROR_INVALID_PARAMS  Error SequenceStepId parameter not
- *                                       supported.
- * @return  "Other error code"           See ::VL53L0X_Error
- */
-VL53L0X_API VL53L0X_Error VL53L0X_GetSequenceStepEnable(VL53L0X_DEV Dev,
-	VL53L0X_SequenceStepId SequenceStepId, uint8_t *pSequenceStepEnabled);
-
-/**
- * @brief Gets the (on/off) state of all sequence steps.
- *
- * @par Function Description
- * This function retrieves the state of all sequence step in the scheduler.
- *
- * @note This function Accesses the device
- *
- * @param   Dev                          Device Handle
- * @param   pSchedulerSequenceSteps      Pointer to struct containing result.
- * @return  VL53L0X_ERROR_NONE            Success
- * @return  "Other error code"           See ::VL53L0X_Error
- */
-VL53L0X_API VL53L0X_Error VL53L0X_GetSequenceStepEnables(VL53L0X_DEV Dev,
-	VL53L0X_SchedulerSequenceSteps_t *pSchedulerSequenceSteps);
-
-/**
- * @brief Sets the timeout of a requested sequence step.
- *
- * @par Function Description
- * This function sets the timeout of a requested sequence step.
- *
- * @note This function Accesses the device
- *
- * @param   Dev                          Device Handle
- * @param   SequenceStepId               Sequence step identifier.
- * @param   TimeOutMilliSecs             Demanded timeout
- * @return  VL53L0X_ERROR_NONE            Success
- * @return  VL53L0X_ERROR_INVALID_PARAMS  Error SequenceStepId parameter not
- *                                       supported.
- * @return  "Other error code"           See ::VL53L0X_Error
- */
-VL53L0X_API VL53L0X_Error VL53L0X_SetSequenceStepTimeout(VL53L0X_DEV Dev,
-	VL53L0X_SequenceStepId SequenceStepId, FixPoint1616_t TimeOutMilliSecs);
-
-/**
- * @brief Gets the timeout of a requested sequence step.
- *
- * @par Function Description
- * This function retrieves the timeout of a requested sequence step.
- *
- * @note This function Accesses the device
- *
- * @param   Dev                          Device Handle
- * @param   SequenceStepId               Sequence step identifier.
- * @param   pTimeOutMilliSecs            Timeout value.
- * @return  VL53L0X_ERROR_NONE            Success
- * @return  VL53L0X_ERROR_INVALID_PARAMS  Error SequenceStepId parameter not
- *                                       supported.
- * @return  "Other error code"           See ::VL53L0X_Error
- */
-VL53L0X_API VL53L0X_Error VL53L0X_GetSequenceStepTimeout(VL53L0X_DEV Dev,
-	VL53L0X_SequenceStepId SequenceStepId,
-	FixPoint1616_t *pTimeOutMilliSecs);
-
-/**
- * @brief Gets number of sequence steps managed by the API.
- *
- * @par Function Description
- * This function retrieves the number of sequence steps currently managed
- * by the API
- *
- * @note This function Accesses the device
- *
- * @param   Dev                          Device Handle
- * @param   pNumberOfSequenceSteps       Out parameter reporting the number of
- *                                       sequence steps.
- * @return  VL53L0X_ERROR_NONE            Success
- * @return  "Other error code"           See ::VL53L0X_Error
- */
-VL53L0X_API VL53L0X_Error VL53L0X_GetNumberOfSequenceSteps(VL53L0X_DEV Dev,
-	uint8_t *pNumberOfSequenceSteps);
-
-/**
- * @brief Gets the name of a given sequence step.
- *
- * @par Function Description
- * This function retrieves the name of sequence steps corresponding to
- * SequenceStepId.
- *
- * @note This function doesn't Accesses the device
- *
- * @param   SequenceStepId               Sequence step identifier.
- * @param   pSequenceStepsString         Pointer to Info string
- *
- * @return  VL53L0X_ERROR_NONE            Success
- * @return  "Other error code"           See ::VL53L0X_Error
- */
-VL53L0X_API VL53L0X_Error VL53L0X_GetSequenceStepsInfo(
-	VL53L0X_SequenceStepId SequenceStepId, char *pSequenceStepsString);
-
-/**
- * Program continuous mode Inter-Measurement period in milliseconds
- *
- * @par Function Description
- * When trying to set too short time return  INVALID_PARAMS minimal value
- *
- * @note This function Access to the device
- *
- * @param   Dev                                  Device Handle
- * @param   InterMeasurementPeriodMilliSeconds   Inter-Measurement Period in ms.
- * @return  VL53L0X_ERROR_NONE                    Success
- * @return  "Other error code"                   See ::VL53L0X_Error
- */
-VL53L0X_API VL53L0X_Error VL53L0X_SetInterMeasurementPeriodMilliSeconds(
-	VL53L0X_DEV Dev, uint32_t InterMeasurementPeriodMilliSeconds);
-
-/**
- * Get continuous mode Inter-Measurement period in milliseconds
- *
- * @par Function Description
- * When trying to set too short time return  INVALID_PARAMS minimal value
- *
- * @note This function Access to the device
- *
- * @param   Dev                                  Device Handle
- * @param   pInterMeasurementPeriodMilliSeconds  Pointer to programmed
- *  Inter-Measurement Period in milliseconds.
- * @return  VL53L0X_ERROR_NONE                    Success
- * @return  "Other error code"                   See ::VL53L0X_Error
- */
-VL53L0X_API VL53L0X_Error VL53L0X_GetInterMeasurementPeriodMilliSeconds(
-	VL53L0X_DEV Dev, uint32_t *pInterMeasurementPeriodMilliSeconds);
-
-/**
- * @brief Enable/Disable Cross talk compensation feature
- *
- * @note This function is not Implemented.
- * Enable/Disable Cross Talk by set to zero the Cross Talk value
- * by using @a VL53L0X_SetXTalkCompensationRateMegaCps().
- *
- * @param   Dev                       Device Handle
- * @param   XTalkCompensationEnable   Cross talk compensation
- *  to be set 0=disabled else = enabled
- * @return  VL53L0X_ERROR_NOT_IMPLEMENTED   Not implemented
- */
-VL53L0X_API VL53L0X_Error VL53L0X_SetXTalkCompensationEnable(VL53L0X_DEV Dev,
-	uint8_t XTalkCompensationEnable);
-
-/**
- * @brief Get Cross talk compensation rate
- *
- * @note This function is not Implemented.
- * Enable/Disable Cross Talk by set to zero the Cross Talk value by
- * using @a VL53L0X_SetXTalkCompensationRateMegaCps().
- *
- * @param   Dev                        Device Handle
- * @param   pXTalkCompensationEnable   Pointer to the Cross talk compensation
- *  state 0=disabled or 1 = enabled
- * @return  VL53L0X_ERROR_NOT_IMPLEMENTED   Not implemented
- */
-VL53L0X_API VL53L0X_Error VL53L0X_GetXTalkCompensationEnable(VL53L0X_DEV Dev,
-	uint8_t *pXTalkCompensationEnable);
-
-/**
- * @brief Set Cross talk compensation rate
- *
- * @par Function Description
- * Set Cross talk compensation rate.
- *
- * @note This function Access to the device
- *
- * @param   Dev                            Device Handle
- * @param   XTalkCompensationRateMegaCps   Compensation rate in
- *  Mega counts per second (16.16 fix point) see datasheet for details
- * @return  VL53L0X_ERROR_NONE              Success
- * @return  "Other error code"             See ::VL53L0X_Error
- */
-VL53L0X_API VL53L0X_Error VL53L0X_SetXTalkCompensationRateMegaCps(VL53L0X_DEV Dev,
-	FixPoint1616_t XTalkCompensationRateMegaCps);
-
-/**
- * @brief Get Cross talk compensation rate
- *
- * @par Function Description
- * Get Cross talk compensation rate.
- *
- * @note This function Access to the device
- *
- * @param   Dev                            Device Handle
- * @param   pXTalkCompensationRateMegaCps  Pointer to Compensation rate
- in Mega counts per second (16.16 fix point) see datasheet for details
- * @return  VL53L0X_ERROR_NONE              Success
- * @return  "Other error code"             See ::VL53L0X_Error
- */
-VL53L0X_API VL53L0X_Error VL53L0X_GetXTalkCompensationRateMegaCps(VL53L0X_DEV Dev,
-	FixPoint1616_t *pXTalkCompensationRateMegaCps);
-
-/**
- * @brief Set Reference Calibration Parameters
- *
- * @par Function Description
- * Set Reference Calibration Parameters.
- *
- * @note This function Access to the device
- *
- * @param   Dev                            Device Handle
- * @param   VhvSettings                    Parameter for VHV
- * @param   PhaseCal                       Parameter for PhaseCal
- * @return  VL53L0X_ERROR_NONE              Success
- * @return  "Other error code"             See ::VL53L0X_Error
- */
-VL53L0X_API VL53L0X_Error VL53L0X_SetRefCalibration(VL53L0X_DEV Dev,
-	uint8_t VhvSettings, uint8_t PhaseCal);
-
-/**
- * @brief Get Reference Calibration Parameters
- *
- * @par Function Description
- * Get Reference Calibration Parameters.
- *
- * @note This function Access to the device
- *
- * @param   Dev                            Device Handle
- * @param   pVhvSettings                   Pointer to VHV parameter
- * @param   pPhaseCal                      Pointer to PhaseCal Parameter
- * @return  VL53L0X_ERROR_NONE              Success
- * @return  "Other error code"             See ::VL53L0X_Error
- */
-VL53L0X_API VL53L0X_Error VL53L0X_GetRefCalibration(VL53L0X_DEV Dev,
-	uint8_t *pVhvSettings, uint8_t *pPhaseCal);
-
-/**
- * @brief  Get the number of the check limit managed by a given Device
- *
- * @par Function Description
- * This function give the number of the check limit managed by the Device
- *
- * @note This function doesn't Access to the device
- *
- * @param   pNumberOfLimitCheck           Pointer to the number of check limit.
- * @return  VL53L0X_ERROR_NONE             Success
- * @return  "Other error code"            See ::VL53L0X_Error
- */
-VL53L0X_API VL53L0X_Error VL53L0X_GetNumberOfLimitCheck(
-	uint16_t *pNumberOfLimitCheck);
-
-/**
- * @brief  Return a description string for a given limit check number
- *
- * @par Function Description
- * This function returns a description string for a given limit check number.
- * The limit check is identified with the LimitCheckId.
- *
- * @note This function doesn't Access to the device
- *
- * @param   Dev                           Device Handle
- * @param   LimitCheckId                  Limit Check ID
- (0<= LimitCheckId < VL53L0X_GetNumberOfLimitCheck() ).
- * @param   pLimitCheckString             Pointer to the
- description string of the given check limit.
- * @return  VL53L0X_ERROR_NONE             Success
- * @return  VL53L0X_ERROR_INVALID_PARAMS   This error is
- returned when LimitCheckId value is out of range.
- * @return  "Other error code"            See ::VL53L0X_Error
- */
-VL53L0X_API VL53L0X_Error VL53L0X_GetLimitCheckInfo(VL53L0X_DEV Dev,
-	uint16_t LimitCheckId, char *pLimitCheckString);
-
-/**
- * @brief  Return a the Status of the specified check limit
- *
- * @par Function Description
- * This function returns the Status of the specified check limit.
- * The value indicate if the check is fail or not.
- * The limit check is identified with the LimitCheckId.
- *
- * @note This function doesn't Access to the device
- *
- * @param   Dev                           Device Handle
- * @param   LimitCheckId                  Limit Check ID
- (0<= LimitCheckId < VL53L0X_GetNumberOfLimitCheck() ).
- * @param   pLimitCheckStatus             Pointer to the
- Limit Check Status of the given check limit.
- * LimitCheckStatus :
- * 0 the check is not fail
- * 1 the check if fail or not enabled
- *
- * @return  VL53L0X_ERROR_NONE             Success
- * @return  VL53L0X_ERROR_INVALID_PARAMS   This error is
- returned when LimitCheckId value is out of range.
- * @return  "Other error code"            See ::VL53L0X_Error
- */
-VL53L0X_API VL53L0X_Error VL53L0X_GetLimitCheckStatus(VL53L0X_DEV Dev,
-	uint16_t LimitCheckId, uint8_t *pLimitCheckStatus);
-
-/**
- * @brief  Enable/Disable a specific limit check
- *
- * @par Function Description
- * This function Enable/Disable a specific limit check.
- * The limit check is identified with the LimitCheckId.
- *
- * @note This function doesn't Access to the device
- *
- * @param   Dev                           Device Handle
- * @param   LimitCheckId                  Limit Check ID
- *  (0<= LimitCheckId < VL53L0X_GetNumberOfLimitCheck() ).
- * @param   LimitCheckEnable              if 1 the check limit
- *  corresponding to LimitCheckId is Enabled
- *                                        if 0 the check limit
- *  corresponding to LimitCheckId is disabled
- * @return  VL53L0X_ERROR_NONE             Success
- * @return  VL53L0X_ERROR_INVALID_PARAMS   This error is returned
- *  when LimitCheckId value is out of range.
- * @return  "Other error code"            See ::VL53L0X_Error
- */
-VL53L0X_API VL53L0X_Error VL53L0X_SetLimitCheckEnable(VL53L0X_DEV Dev,
-	uint16_t LimitCheckId, uint8_t LimitCheckEnable);
-
-/**
- * @brief  Get specific limit check enable state
- *
- * @par Function Description
- * This function get the enable state of a specific limit check.
- * The limit check is identified with the LimitCheckId.
- *
- * @note This function Access to the device
- *
- * @param   Dev                           Device Handle
- * @param   LimitCheckId                  Limit Check ID
- *  (0<= LimitCheckId < VL53L0X_GetNumberOfLimitCheck() ).
- * @param   pLimitCheckEnable             Pointer to the check limit enable
- * value.
- *  if 1 the check limit
- *        corresponding to LimitCheckId is Enabled
- *  if 0 the check limit
- *        corresponding to LimitCheckId is disabled
- * @return  VL53L0X_ERROR_NONE             Success
- * @return  VL53L0X_ERROR_INVALID_PARAMS   This error is returned
- *  when LimitCheckId value is out of range.
- * @return  "Other error code"            See ::VL53L0X_Error
- */
-VL53L0X_API VL53L0X_Error VL53L0X_GetLimitCheckEnable(VL53L0X_DEV Dev,
-	uint16_t LimitCheckId, uint8_t *pLimitCheckEnable);
-
-/**
- * @brief  Set a specific limit check value
- *
- * @par Function Description
- * This function set a specific limit check value.
- * The limit check is identified with the LimitCheckId.
- *
- * @note This function Access to the device
- *
- * @param   Dev                           Device Handle
- * @param   LimitCheckId                  Limit Check ID
- *  (0<= LimitCheckId < VL53L0X_GetNumberOfLimitCheck() ).
- * @param   LimitCheckValue               Limit check Value for a given
- * LimitCheckId
- * @return  VL53L0X_ERROR_NONE             Success
- * @return  VL53L0X_ERROR_INVALID_PARAMS   This error is returned when either
- *  LimitCheckId or LimitCheckValue value is out of range.
- * @return  "Other error code"            See ::VL53L0X_Error
- */
-VL53L0X_API VL53L0X_Error VL53L0X_SetLimitCheckValue(VL53L0X_DEV Dev,
-	uint16_t LimitCheckId, FixPoint1616_t LimitCheckValue);
-
-/**
- * @brief  Get a specific limit check value
- *
- * @par Function Description
- * This function get a specific limit check value from device then it updates
- * internal values and check enables.
- * The limit check is identified with the LimitCheckId.
- *
- * @note This function Access to the device
- *
- * @param   Dev                           Device Handle
- * @param   LimitCheckId                  Limit Check ID
- *  (0<= LimitCheckId < VL53L0X_GetNumberOfLimitCheck() ).
- * @param   pLimitCheckValue              Pointer to Limit
- *  check Value for a given LimitCheckId.
- * @return  VL53L0X_ERROR_NONE             Success
- * @return  VL53L0X_ERROR_INVALID_PARAMS   This error is returned
- *  when LimitCheckId value is out of range.
- * @return  "Other error code"            See ::VL53L0X_Error
- */
-VL53L0X_API VL53L0X_Error VL53L0X_GetLimitCheckValue(VL53L0X_DEV Dev,
-	uint16_t LimitCheckId, FixPoint1616_t *pLimitCheckValue);
-
-/**
- * @brief  Get the current value of the signal used for the limit check
- *
- * @par Function Description
- * This function get a the current value of the signal used for the limit check.
- * To obtain the latest value you should run a ranging before.
- * The value reported is linked to the limit check identified with the
- * LimitCheckId.
- *
- * @note This function Access to the device
- *
- * @param   Dev                           Device Handle
- * @param   LimitCheckId                  Limit Check ID
- *  (0<= LimitCheckId < VL53L0X_GetNumberOfLimitCheck() ).
- * @param   pLimitCheckCurrent            Pointer to current Value for a
- * given LimitCheckId.
- * @return  VL53L0X_ERROR_NONE             Success
- * @return  VL53L0X_ERROR_INVALID_PARAMS   This error is returned when
- * LimitCheckId value is out of range.
- * @return  "Other error code"            See ::VL53L0X_Error
- */
-VL53L0X_API VL53L0X_Error VL53L0X_GetLimitCheckCurrent(VL53L0X_DEV Dev,
-	uint16_t LimitCheckId, FixPoint1616_t *pLimitCheckCurrent);
-
-/**
- * @brief  Enable (or disable) Wrap around Check
- *
- * @note This function Access to the device
- *
- * @param   Dev                    Device Handle
- * @param   WrapAroundCheckEnable  Wrap around Check to be set
- *                                 0=disabled, other = enabled
- * @return  VL53L0X_ERROR_NONE      Success
- * @return  "Other error code"     See ::VL53L0X_Error
- */
-VL53L0X_API VL53L0X_Error VL53L0X_SetWrapAroundCheckEnable(VL53L0X_DEV Dev,
-		uint8_t WrapAroundCheckEnable);
-
-/**
- * @brief  Get setup of Wrap around Check
- *
- * @par Function Description
- * This function get the wrapAround check enable parameters
- *
- * @note This function Access to the device
- *
- * @param   Dev                     Device Handle
- * @param   pWrapAroundCheckEnable  Pointer to the Wrap around Check state
- *                                  0=disabled or 1 = enabled
- * @return  VL53L0X_ERROR_NONE       Success
- * @return  "Other error code"      See ::VL53L0X_Error
- */
-VL53L0X_API VL53L0X_Error VL53L0X_GetWrapAroundCheckEnable(VL53L0X_DEV Dev,
-		uint8_t *pWrapAroundCheckEnable);
-
-/**
- * @brief   Set Dmax Calibration Parameters for a given device
- * When one of the parameter is zero, this function will get parameter
- * from NVM.
- * @note This function doesn't Access to the device
- *
- * @param   Dev                    Device Handle
- * @param   RangeMilliMeter        Calibration Distance
- * @param   SignalRateRtnMegaCps   Signal rate return read at CalDistance
- * @return  VL53L0X_ERROR_NONE      Success
- * @return  "Other error code"     See ::VL53L0X_Error
- */
-VL53L0X_API VL53L0X_Error VL53L0X_SetDmaxCalParameters(VL53L0X_DEV Dev,
-		uint16_t RangeMilliMeter, FixPoint1616_t SignalRateRtnMegaCps);
-
-/**
- * @brief  Get Dmax Calibration Parameters for a given device
- *
- *
- * @note This function Access to the device
- *
- * @param   Dev                     Device Handle
- * @param   pRangeMilliMeter        Pointer to Calibration Distance
- * @param   pSignalRateRtnMegaCps   Pointer to Signal rate return
- * @return  VL53L0X_ERROR_NONE       Success
- * @return  "Other error code"      See ::VL53L0X_Error
- */
-VL53L0X_API VL53L0X_Error VL53L0X_GetDmaxCalParameters(VL53L0X_DEV Dev,
-	uint16_t *pRangeMilliMeter, FixPoint1616_t *pSignalRateRtnMegaCps);
-
-/** @} VL53L0X_parameters_group */
-
-/** @defgroup VL53L0X_measurement_group VL53L0X Measurement Functions
- *  @brief    Functions used for the measurements
- *  @{
- */
-
-/**
- * @brief Single shot measurement.
- *
- * @par Function Description
- * Perform simple measurement sequence (Start measure, Wait measure to end,
- * and returns when measurement is done).
- * Once function returns, user can get valid data by calling
- * VL53L0X_GetRangingMeasurement or VL53L0X_GetHistogramMeasurement
- * depending on defined measurement mode
- * User should Clear the interrupt in case this are enabled by using the
- * function VL53L0X_ClearInterruptMask().
- *
- * @warning This function is a blocking function
- *
- * @note This function Access to the device
- *
- * @param   Dev                  Device Handle
- * @return  VL53L0X_ERROR_NONE    Success
- * @return  "Other error code"   See ::VL53L0X_Error
- */
-VL53L0X_API VL53L0X_Error VL53L0X_PerformSingleMeasurement(VL53L0X_DEV Dev);
-
-/**
- * @brief Perform Reference Calibration
- *
- * @details Perform a reference calibration of the Device.
- * This function should be run from time to time before doing
- * a ranging measurement.
- * This function will launch a special ranging measurement, so
- * if interrupt are enable an interrupt will be done.
- * This function will clear the interrupt generated automatically.
- *
- * @warning This function is a blocking function
- *
- * @note This function Access to the device
- *
- * @param   Dev                  Device Handle
- * @param   pVhvSettings         Pointer to vhv settings parameter.
- * @param   pPhaseCal            Pointer to PhaseCal parameter.
- * @return  VL53L0X_ERROR_NONE    Success
- * @return  "Other error code"   See ::VL53L0X_Error
- */
-VL53L0X_API VL53L0X_Error VL53L0X_PerformRefCalibration(VL53L0X_DEV Dev,
-	uint8_t *pVhvSettings, uint8_t *pPhaseCal);
-
-/**
- * @brief Perform XTalk Measurement
- *
- * @details Measures the current cross talk from glass in front
- * of the sensor.
- * This functions performs a histogram measurement and uses the results
- * to measure the crosstalk. For the function to be successful, there
- * must be no target in front of the sensor.
- *
- * @warning This function is a blocking function
- *
- * @warning This function is not supported when the final range
- * vcsel clock period is set below 10 PCLKS.
- *
- * @note This function Access to the device
- *
- * @param   Dev                  Device Handle
- * @param   TimeoutMs            Histogram measurement duration.
- * @param   pXtalkPerSpad        Output parameter containing the crosstalk
- * measurement result, in MCPS/Spad. Format fixpoint 16:16.
- * @param   pAmbientTooHigh      Output parameter which indicate that
- * pXtalkPerSpad is not good if the Ambient is too high.
- * @return  VL53L0X_ERROR_NONE    Success
- * @return  VL53L0X_ERROR_INVALID_PARAMS vcsel clock period not supported
- * for this operation. Must not be less than 10PCLKS.
- * @return  "Other error code"   See ::VL53L0X_Error
- */
-VL53L0X_API VL53L0X_Error VL53L0X_PerformXTalkMeasurement(VL53L0X_DEV Dev,
-	uint32_t TimeoutMs, FixPoint1616_t *pXtalkPerSpad,
-	uint8_t *pAmbientTooHigh);
-
-/**
- * @brief Perform XTalk Calibration
- *
- * @details Perform a XTalk calibration of the Device.
- * This function will launch a ranging measurement, if interrupts
- * are enabled an interrupt will be done.
- * This function will clear the interrupt generated automatically.
- * This function will program a new value for the XTalk compensation
- * and it will enable the cross talk before exit.
- * This function will disable the VL53L0X_CHECKENABLE_RANGE_IGNORE_THRESHOLD.
- *
- * @warning This function is a blocking function
- *
- * @note This function Access to the device
- *
- * @note This function change the device mode to
- * VL53L0X_DEVICEMODE_SINGLE_RANGING
- *
- * @param   Dev                  Device Handle
- * @param   XTalkCalDistance     XTalkCalDistance value used for the XTalk
- * computation.
- * @param   pXTalkCompensationRateMegaCps  Pointer to new
- * XTalkCompensation value.
- * @return  VL53L0X_ERROR_NONE    Success
- * @return  "Other error code"   See ::VL53L0X_Error
- */
-VL53L0X_API VL53L0X_Error VL53L0X_PerformXTalkCalibration(VL53L0X_DEV Dev,
-	FixPoint1616_t XTalkCalDistance,
-	FixPoint1616_t *pXTalkCompensationRateMegaCps);
-
-/**
- * @brief Perform Offset Calibration
- *
- * @details Perform a Offset calibration of the Device.
- * This function will launch a ranging measurement, if interrupts are
- * enabled an interrupt will be done.
- * This function will clear the interrupt generated automatically.
- * This function will program a new value for the Offset calibration value
- * This function will disable the VL53L0X_CHECKENABLE_RANGE_IGNORE_THRESHOLD.
- *
- * @warning This function is a blocking function
- *
- * @note This function Access to the device
- *
- * @note This function does not change the device mode.
- *
- * @param   Dev                  Device Handle
- * @param   CalDistanceMilliMeter     Calibration distance value used for the
- * offset compensation.
- * @param   pOffsetMicroMeter  Pointer to new Offset value computed by the
- * function.
- *
- * @return  VL53L0X_ERROR_NONE    Success
- * @return  "Other error code"   See ::VL53L0X_Error
- */
-VL53L0X_API VL53L0X_Error VL53L0X_PerformOffsetCalibration(VL53L0X_DEV Dev,
-	FixPoint1616_t CalDistanceMilliMeter, int32_t *pOffsetMicroMeter);
-
-/**
- * @brief Start device measurement
- *
- * @details Started measurement will depend on device parameters set through
- * @a VL53L0X_SetParameters()
- * This is a non-blocking function.
- * This function will change the VL53L0X_State from VL53L0X_STATE_IDLE to
- * VL53L0X_STATE_RUNNING.
- *
- * @note This function Access to the device
- *
-
- * @param   Dev                  Device Handle
- * @return  VL53L0X_ERROR_NONE                  Success
- * @return  VL53L0X_ERROR_MODE_NOT_SUPPORTED    This error occurs when
- * DeviceMode programmed with @a VL53L0X_SetDeviceMode is not in the supported
- * list:
- *                                   Supported mode are:
- *                                   VL53L0X_DEVICEMODE_SINGLE_RANGING,
- *                                   VL53L0X_DEVICEMODE_CONTINUOUS_RANGING,
- *                                   VL53L0X_DEVICEMODE_CONTINUOUS_TIMED_RANGING
- * @return  VL53L0X_ERROR_TIME_OUT    Time out on start measurement
- * @return  "Other error code"   See ::VL53L0X_Error
- */
-VL53L0X_API VL53L0X_Error VL53L0X_StartMeasurement(VL53L0X_DEV Dev);
-
-/**
- * @brief Stop device measurement
- *
- * @details Will set the device in standby mode at end of current measurement\n
- *          Not necessary in single mode as device shall return automatically
- *          in standby mode at end of measurement.
- *          This function will change the VL53L0X_State from VL53L0X_STATE_RUNNING
- *          to VL53L0X_STATE_IDLE.
- *
- * @note This function Access to the device
- *
- * @param   Dev                  Device Handle
- * @return  VL53L0X_ERROR_NONE    Success
- * @return  "Other error code"   See ::VL53L0X_Error
- */
-VL53L0X_API VL53L0X_Error VL53L0X_StopMeasurement(VL53L0X_DEV Dev);
-
-/**
- * @brief Return Measurement Data Ready
- *
- * @par Function Description
- * This function indicate that a measurement data is ready.
- * This function check if interrupt mode is used then check is done accordingly.
- * If perform function clear the interrupt, this function will not work,
- * like in case of @a VL53L0X_PerformSingleRangingMeasurement().
- * The previous function is blocking function, VL53L0X_GetMeasurementDataReady
- * is used for non-blocking capture.
- *
- * @note This function Access to the device
- *
- * @param   Dev                    Device Handle
- * @param   pMeasurementDataReady  Pointer to Measurement Data Ready.
- *  0=data not ready, 1 = data ready
- * @return  VL53L0X_ERROR_NONE      Success
- * @return  "Other error code"     See ::VL53L0X_Error
- */
-VL53L0X_API VL53L0X_Error VL53L0X_GetMeasurementDataReady(VL53L0X_DEV Dev,
-	uint8_t *pMeasurementDataReady);
-
-/**
- * @brief Wait for device ready for a new measurement command.
- * Blocking function.
- *
- * @note This function is not Implemented
- *
- * @param   Dev      Device Handle
- * @param   MaxLoop    Max Number of polling loop (timeout).
- * @return  VL53L0X_ERROR_NOT_IMPLEMENTED   Not implemented
- */
-VL53L0X_API VL53L0X_Error VL53L0X_WaitDeviceReadyForNewMeasurement(VL53L0X_DEV Dev,
-	uint32_t MaxLoop);
-
-/**
- * @brief Retrieve the Reference Signal after a measurements
- *
- * @par Function Description
- * Get Reference Signal from last successful Ranging measurement
- * This function return a valid value after that you call the
- * @a VL53L0X_GetRangingMeasurementData().
- *
- * @note This function Access to the device
- *
- * @param   Dev                      Device Handle
- * @param   pMeasurementRefSignal    Pointer to the Ref Signal to fill up.
- * @return  VL53L0X_ERROR_NONE        Success
- * @return  "Other error code"       See ::VL53L0X_Error
- */
-VL53L0X_API VL53L0X_Error VL53L0X_GetMeasurementRefSignal(VL53L0X_DEV Dev,
-	FixPoint1616_t *pMeasurementRefSignal);
-
-/**
- * @brief Retrieve the measurements from device for a given setup
- *
- * @par Function Description
- * Get data from last successful Ranging measurement
- * @warning USER should take care about  @a VL53L0X_GetNumberOfROIZones()
- * before get data.
- * PAL will fill a NumberOfROIZones times the corresponding data
- * structure used in the measurement function.
- *
- * @note This function Access to the device
- *
- * @param   Dev                      Device Handle
- * @param   pRangingMeasurementData  Pointer to the data structure to fill up.
- * @return  VL53L0X_ERROR_NONE        Success
- * @return  "Other error code"       See ::VL53L0X_Error
- */
-VL53L0X_API VL53L0X_Error VL53L0X_GetRangingMeasurementData(VL53L0X_DEV Dev,
-	VL53L0X_RangingMeasurementData_t *pRangingMeasurementData);
-
-/**
- * @brief Retrieve the measurements from device for a given setup
- *
- * @par Function Description
- * Get data from last successful Histogram measurement
- * @warning USER should take care about  @a VL53L0X_GetNumberOfROIZones()
- * before get data.
- * PAL will fill a NumberOfROIZones times the corresponding data structure
- * used in the measurement function.
- *
- * @note This function is not Implemented
- *
- * @param   Dev                         Device Handle
- * @param   pHistogramMeasurementData   Pointer to the histogram data structure.
- * @return  VL53L0X_ERROR_NOT_IMPLEMENTED   Not implemented
- */
-VL53L0X_API VL53L0X_Error VL53L0X_GetHistogramMeasurementData(VL53L0X_DEV Dev,
-	VL53L0X_HistogramMeasurementData_t *pHistogramMeasurementData);
-
-/**
- * @brief Performs a single ranging measurement and retrieve the ranging
- * measurement data
- *
- * @par Function Description
- * This function will change the device mode to VL53L0X_DEVICEMODE_SINGLE_RANGING
- * with @a VL53L0X_SetDeviceMode(),
- * It performs measurement with @a VL53L0X_PerformSingleMeasurement()
- * It get data from last successful Ranging measurement with
- * @a VL53L0X_GetRangingMeasurementData.
- * Finally it clear the interrupt with @a VL53L0X_ClearInterruptMask().
- *
- * @note This function Access to the device
- *
- * @note This function change the device mode to
- * VL53L0X_DEVICEMODE_SINGLE_RANGING
- *
- * @param   Dev                       Device Handle
- * @param   pRangingMeasurementData   Pointer to the data structure to fill up.
- * @return  VL53L0X_ERROR_NONE         Success
- * @return  "Other error code"        See ::VL53L0X_Error
- */
-VL53L0X_API VL53L0X_Error VL53L0X_PerformSingleRangingMeasurement(VL53L0X_DEV Dev,
-	VL53L0X_RangingMeasurementData_t *pRangingMeasurementData);
-
-/**
- * @brief Performs a single histogram measurement and retrieve the histogram
- * measurement data
- *   Is equivalent to VL53L0X_PerformSingleMeasurement +
- *   VL53L0X_GetHistogramMeasurementData
- *
- * @par Function Description
- * Get data from last successful Ranging measurement.
- * This function will clear the interrupt in case of these are enabled.
- *
- * @note This function is not Implemented
- *
- * @param   Dev                        Device Handle
- * @param   pHistogramMeasurementData  Pointer to the data structure to fill up.
- * @return  VL53L0X_ERROR_NOT_IMPLEMENTED   Not implemented
- */
-VL53L0X_API VL53L0X_Error VL53L0X_PerformSingleHistogramMeasurement(VL53L0X_DEV Dev,
-	VL53L0X_HistogramMeasurementData_t *pHistogramMeasurementData);
-
-/**
- * @brief Set the number of ROI Zones to be used for a specific Device
- *
- * @par Function Description
- * Set the number of ROI Zones to be used for a specific Device.
- * The programmed value should be less than the max number of ROI Zones given
- * with @a VL53L0X_GetMaxNumberOfROIZones().
- * This version of API manage only one zone.
- *
- * @param   Dev                           Device Handle
- * @param   NumberOfROIZones              Number of ROI Zones to be used for a
- *  specific Device.
- * @return  VL53L0X_ERROR_NONE             Success
- * @return  VL53L0X_ERROR_INVALID_PARAMS   This error is returned if
- * NumberOfROIZones != 1
- */
-VL53L0X_API VL53L0X_Error VL53L0X_SetNumberOfROIZones(VL53L0X_DEV Dev,
-	uint8_t NumberOfROIZones);
-
-/**
- * @brief Get the number of ROI Zones managed by the Device
- *
- * @par Function Description
- * Get number of ROI Zones managed by the Device
- * USER should take care about  @a VL53L0X_GetNumberOfROIZones()
- * before get data after a perform measurement.
- * PAL will fill a NumberOfROIZones times the corresponding data
- * structure used in the measurement function.
- *
- * @note This function doesn't Access to the device
- *
- * @param   Dev                   Device Handle
- * @param   pNumberOfROIZones     Pointer to the Number of ROI Zones value.
- * @return  VL53L0X_ERROR_NONE     Success
- */
-VL53L0X_API VL53L0X_Error VL53L0X_GetNumberOfROIZones(VL53L0X_DEV Dev,
-	uint8_t *pNumberOfROIZones);
-
-/**
- * @brief Get the Maximum number of ROI Zones managed by the Device
- *
- * @par Function Description
- * Get Maximum number of ROI Zones managed by the Device.
- *
- * @note This function doesn't Access to the device
- *
- * @param   Dev                    Device Handle
- * @param   pMaxNumberOfROIZones   Pointer to the Maximum Number
- *  of ROI Zones value.
- * @return  VL53L0X_ERROR_NONE      Success
- */
-VL53L0X_API VL53L0X_Error VL53L0X_GetMaxNumberOfROIZones(VL53L0X_DEV Dev,
-	uint8_t *pMaxNumberOfROIZones);
-
-/** @} VL53L0X_measurement_group */
-
-/** @defgroup VL53L0X_interrupt_group VL53L0X Interrupt Functions
- *  @brief    Functions used for interrupt managements
- *  @{
- */
-
-/**
- * @brief Set the configuration of GPIO pin for a given device
- *
- * @note This function Access to the device
- *
- * @param   Dev                   Device Handle
- * @param   Pin                   ID of the GPIO Pin
- * @param   Functionality         Select Pin functionality.
- *  Refer to ::VL53L0X_GpioFunctionality
- * @param   DeviceMode            Device Mode associated to the Gpio.
- * @param   Polarity              Set interrupt polarity. Active high
- *   or active low see ::VL53L0X_InterruptPolarity
- * @return  VL53L0X_ERROR_NONE                            Success
- * @return  VL53L0X_ERROR_GPIO_NOT_EXISTING               Only Pin=0 is accepted.
- * @return  VL53L0X_ERROR_GPIO_FUNCTIONALITY_NOT_SUPPORTED    This error occurs
- * when Functionality programmed is not in the supported list:
- *                             Supported value are:
- *                             VL53L0X_GPIOFUNCTIONALITY_OFF,
- *                             VL53L0X_GPIOFUNCTIONALITY_THRESHOLD_CROSSED_LOW,
- *                             VL53L0X_GPIOFUNCTIONALITY_THRESHOLD_CROSSED_HIGH,
- VL53L0X_GPIOFUNCTIONALITY_THRESHOLD_CROSSED_OUT,
- *                               VL53L0X_GPIOFUNCTIONALITY_NEW_MEASURE_READY
- * @return  "Other error code"    See ::VL53L0X_Error
- */
-VL53L0X_API VL53L0X_Error VL53L0X_SetGpioConfig(VL53L0X_DEV Dev, uint8_t Pin,
-	VL53L0X_DeviceModes DeviceMode, VL53L0X_GpioFunctionality Functionality,
-	VL53L0X_InterruptPolarity Polarity);
-
-/**
- * @brief Get current configuration for GPIO pin for a given device
- *
- * @note This function Access to the device
- *
- * @param   Dev                   Device Handle
- * @param   Pin                   ID of the GPIO Pin
- * @param   pDeviceMode           Pointer to Device Mode associated to the Gpio.
- * @param   pFunctionality        Pointer to Pin functionality.
- *  Refer to ::VL53L0X_GpioFunctionality
- * @param   pPolarity             Pointer to interrupt polarity.
- *  Active high or active low see ::VL53L0X_InterruptPolarity
- * @return  VL53L0X_ERROR_NONE                            Success
- * @return  VL53L0X_ERROR_GPIO_NOT_EXISTING               Only Pin=0 is accepted.
- * @return  VL53L0X_ERROR_GPIO_FUNCTIONALITY_NOT_SUPPORTED   This error occurs
- * when Functionality programmed is not in the supported list:
- *                      Supported value are:
- *                      VL53L0X_GPIOFUNCTIONALITY_OFF,
- *                      VL53L0X_GPIOFUNCTIONALITY_THRESHOLD_CROSSED_LOW,
- *                      VL53L0X_GPIOFUNCTIONALITY_THRESHOLD_CROSSED_HIGH,
- *                      VL53L0X_GPIOFUNCTIONALITY_THRESHOLD_CROSSED_OUT,
- *                      VL53L0X_GPIOFUNCTIONALITY_NEW_MEASURE_READY
- * @return  "Other error code"    See ::VL53L0X_Error
- */
-VL53L0X_API VL53L0X_Error VL53L0X_GetGpioConfig(VL53L0X_DEV Dev, uint8_t Pin,
-	VL53L0X_DeviceModes *pDeviceMode,
-	VL53L0X_GpioFunctionality *pFunctionality,
-	VL53L0X_InterruptPolarity *pPolarity);
-
-/**
- * @brief Set low and high Interrupt thresholds for a given mode
- * (ranging, ALS, ...) for a given device
- *
- * @par Function Description
- * Set low and high Interrupt thresholds for a given mode (ranging, ALS, ...)
- * for a given device
- *
- * @note This function Access to the device
- *
- * @note DeviceMode is ignored for the current device
- *
- * @param   Dev              Device Handle
- * @param   DeviceMode       Device Mode for which change thresholds
- * @param   ThresholdLow     Low threshold (mm, lux ..., depending on the mode)
- * @param   ThresholdHigh    High threshold (mm, lux ..., depending on the mode)
- * @return  VL53L0X_ERROR_NONE    Success
- * @return  "Other error code"   See ::VL53L0X_Error
- */
-VL53L0X_API VL53L0X_Error VL53L0X_SetInterruptThresholds(VL53L0X_DEV Dev,
-	VL53L0X_DeviceModes DeviceMode, FixPoint1616_t ThresholdLow,
-	FixPoint1616_t ThresholdHigh);
-
-/**
- * @brief  Get high and low Interrupt thresholds for a given mode
- *  (ranging, ALS, ...) for a given device
- *
- * @par Function Description
- * Get high and low Interrupt thresholds for a given mode (ranging, ALS, ...)
- * for a given device
- *
- * @note This function Access to the device
- *
- * @note DeviceMode is ignored for the current device
- *
- * @param   Dev              Device Handle
- * @param   DeviceMode       Device Mode from which read thresholds
- * @param   pThresholdLow    Low threshold (mm, lux ..., depending on the mode)
- * @param   pThresholdHigh   High threshold (mm, lux ..., depending on the mode)
- * @return  VL53L0X_ERROR_NONE   Success
- * @return  "Other error code"  See ::VL53L0X_Error
- */
-VL53L0X_API VL53L0X_Error VL53L0X_GetInterruptThresholds(VL53L0X_DEV Dev,
-	VL53L0X_DeviceModes DeviceMode, FixPoint1616_t *pThresholdLow,
-	FixPoint1616_t *pThresholdHigh);
-
-/**
- * @brief Return device stop completion status
- *
- * @par Function Description
- * Returns stop completiob status.
- * User shall call this function after a stop command
- *
- * @note This function Access to the device
- *
- * @param   Dev                    Device Handle
- * @param   pStopStatus            Pointer to status variable to update
- * @return  VL53L0X_ERROR_NONE      Success
- * @return  "Other error code"     See ::VL53L0X_Error
- */
-VL53L0X_API VL53L0X_Error VL53L0X_GetStopCompletedStatus(VL53L0X_DEV Dev,
-	uint32_t *pStopStatus);
-
-
-/**
- * @brief Clear given system interrupt condition
- *
- * @par Function Description
- * Clear given interrupt(s).
- *
- * @note This function Access to the device
- *
- * @param   Dev                  Device Handle
- * @param   InterruptMask        Mask of interrupts to clear
- * @return  VL53L0X_ERROR_NONE    Success
- * @return  VL53L0X_ERROR_INTERRUPT_NOT_CLEARED    Cannot clear interrupts
- *
- * @return  "Other error code"   See ::VL53L0X_Error
- */
-VL53L0X_API VL53L0X_Error VL53L0X_ClearInterruptMask(VL53L0X_DEV Dev,
-	uint32_t InterruptMask);
-
-/**
- * @brief Return device interrupt status
- *
- * @par Function Description
- * Returns currently raised interrupts by the device.
- * User shall be able to activate/deactivate interrupts through
- * @a VL53L0X_SetGpioConfig()
- *
- * @note This function Access to the device
- *
- * @param   Dev                    Device Handle
- * @param   pInterruptMaskStatus   Pointer to status variable to update
- * @return  VL53L0X_ERROR_NONE      Success
- * @return  "Other error code"     See ::VL53L0X_Error
- */
-VL53L0X_API VL53L0X_Error VL53L0X_GetInterruptMaskStatus(VL53L0X_DEV Dev,
-	uint32_t *pInterruptMaskStatus);
-
-/**
- * @brief Configure ranging interrupt reported to system
- *
- * @note This function is not Implemented
- *
- * @param   Dev                  Device Handle
- * @param   InterruptMask         Mask of interrupt to Enable/disable
- *  (0:interrupt disabled or 1: interrupt enabled)
- * @return  VL53L0X_ERROR_NOT_IMPLEMENTED   Not implemented
- */
-VL53L0X_API VL53L0X_Error VL53L0X_EnableInterruptMask(VL53L0X_DEV Dev,
-	uint32_t InterruptMask);
-
-/** @} VL53L0X_interrupt_group */
-
-/** @defgroup VL53L0X_SPADfunctions_group VL53L0X SPAD Functions
- *  @brief    Functions used for SPAD managements
- *  @{
- */
-
-/**
- * @brief  Set the SPAD Ambient Damper Threshold value
- *
- * @par Function Description
- * This function set the SPAD Ambient Damper Threshold value
- *
- * @note This function Access to the device
- *
- * @param   Dev                           Device Handle
- * @param   SpadAmbientDamperThreshold    SPAD Ambient Damper Threshold value
- * @return  VL53L0X_ERROR_NONE             Success
- * @return  "Other error code"            See ::VL53L0X_Error
- */
-VL53L0X_API VL53L0X_Error VL53L0X_SetSpadAmbientDamperThreshold(VL53L0X_DEV Dev,
-	uint16_t SpadAmbientDamperThreshold);
-
-/**
- * @brief  Get the current SPAD Ambient Damper Threshold value
- *
- * @par Function Description
- * This function get the SPAD Ambient Damper Threshold value
- *
- * @note This function Access to the device
- *
- * @param   Dev                           Device Handle
- * @param   pSpadAmbientDamperThreshold   Pointer to programmed
- *                                        SPAD Ambient Damper Threshold value
- * @return  VL53L0X_ERROR_NONE             Success
- * @return  "Other error code"            See ::VL53L0X_Error
- */
-VL53L0X_API VL53L0X_Error VL53L0X_GetSpadAmbientDamperThreshold(VL53L0X_DEV Dev,
-	uint16_t *pSpadAmbientDamperThreshold);
-
-/**
- * @brief  Set the SPAD Ambient Damper Factor value
- *
- * @par Function Description
- * This function set the SPAD Ambient Damper Factor value
- *
- * @note This function Access to the device
- *
- * @param   Dev                           Device Handle
- * @param   SpadAmbientDamperFactor       SPAD Ambient Damper Factor value
- * @return  VL53L0X_ERROR_NONE             Success
- * @return  "Other error code"            See ::VL53L0X_Error
- */
-VL53L0X_API VL53L0X_Error VL53L0X_SetSpadAmbientDamperFactor(VL53L0X_DEV Dev,
-	uint16_t SpadAmbientDamperFactor);
-
-/**
- * @brief  Get the current SPAD Ambient Damper Factor value
- *
- * @par Function Description
- * This function get the SPAD Ambient Damper Factor value
- *
- * @note This function Access to the device
- *
- * @param   Dev                           Device Handle
- * @param   pSpadAmbientDamperFactor      Pointer to programmed SPAD Ambient
- * Damper Factor value
- * @return  VL53L0X_ERROR_NONE             Success
- * @return  "Other error code"            See ::VL53L0X_Error
- */
-VL53L0X_API VL53L0X_Error VL53L0X_GetSpadAmbientDamperFactor(VL53L0X_DEV Dev,
-	uint16_t *pSpadAmbientDamperFactor);
-
-/**
- * @brief Performs Reference Spad Management
- *
- * @par Function Description
- * The reference SPAD initialization procedure determines the minimum amount
- * of reference spads to be enables to achieve a target reference signal rate
- * and should be performed once during initialization.
- *
- * @note This function Access to the device
- *
- * @note This function change the device mode to
- * VL53L0X_DEVICEMODE_SINGLE_RANGING
- *
- * @param   Dev                          Device Handle
- * @param   refSpadCount                 Reports ref Spad Count
- * @param   isApertureSpads              Reports if spads are of type
- *                                       aperture or non-aperture.
- *                                       1:=aperture, 0:=Non-Aperture
- * @return  VL53L0X_ERROR_NONE            Success
- * @return  VL53L0X_ERROR_REF_SPAD_INIT   Error in the Ref Spad procedure.
- * @return  "Other error code"           See ::VL53L0X_Error
- */
-VL53L0X_API VL53L0X_Error VL53L0X_PerformRefSpadManagement(VL53L0X_DEV Dev,
-	uint32_t *refSpadCount, uint8_t *isApertureSpads);
-
-/**
- * @brief Applies Reference SPAD configuration
- *
- * @par Function Description
- * This function applies a given number of reference spads, identified as
- * either Aperture or Non-Aperture.
- * The requested spad count and type are stored within the device specific
- * parameters data for access by the host.
- *
- * @note This function Access to the device
- *
- * @param   Dev                          Device Handle
- * @param   refSpadCount                 Number of ref spads.
- * @param   isApertureSpads              Defines if spads are of type
- *                                       aperture or non-aperture.
- *                                       1:=aperture, 0:=Non-Aperture
- * @return  VL53L0X_ERROR_NONE            Success
- * @return  VL53L0X_ERROR_REF_SPAD_INIT   Error in the in the reference
- *                                       spad configuration.
- * @return  "Other error code"           See ::VL53L0X_Error
- */
-VL53L0X_API VL53L0X_Error VL53L0X_SetReferenceSpads(VL53L0X_DEV Dev,
-	uint32_t refSpadCount, uint8_t isApertureSpads);
-
-/**
- * @brief Retrieves SPAD configuration
- *
- * @par Function Description
- * This function retrieves the current number of applied reference spads
- * and also their type : Aperture or Non-Aperture.
- *
- * @note This function Access to the device
- *
- * @param   Dev                          Device Handle
- * @param   refSpadCount                 Number ref Spad Count
- * @param   isApertureSpads              Reports if spads are of type
- *                                       aperture or non-aperture.
- *                                       1:=aperture, 0:=Non-Aperture
- * @return  VL53L0X_ERROR_NONE            Success
- * @return  VL53L0X_ERROR_REF_SPAD_INIT   Error in the in the reference
- *                                       spad configuration.
- * @return  "Other error code"           See ::VL53L0X_Error
- */
-VL53L0X_API VL53L0X_Error VL53L0X_GetReferenceSpads(VL53L0X_DEV Dev,
-	uint32_t *refSpadCount, uint8_t *isApertureSpads);
-
-/** @} VL53L0X_SPADfunctions_group */
-
-/** @} VL53L0X_cut11_group */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _VL53L0X_API_H_ */
+/*******************************************************************************
+ Copyright � 2016, STMicroelectronics International N.V.
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ * 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.
+ * 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, FITNESS FOR A PARTICULAR PURPOSE, AND
+ NON-INFRINGEMENT OF INTELLECTUAL PROPERTY RIGHTS ARE DISCLAIMED.
+ IN NO EVENT SHALL STMICROELECTRONICS INTERNATIONAL N.V. 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 _VL53L0X_API_H_
+#define _VL53L0X_API_H_
+
+#include "vl53l0x_api_strings.h"
+#include "vl53l0x_def.h"
+#include "vl53l0x_platform.h"
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+#ifdef _MSC_VER
+#   ifdef VL53L0X_API_EXPORTS
+#       define VL53L0X_API  __declspec(dllexport)
+#   else
+#       define VL53L0X_API
+#   endif
+#else
+#   define VL53L0X_API
+#endif
+
+/** @defgroup VL53L0X_cut11_group VL53L0X cut1.1 Function Definition
+ *  @brief    VL53L0X cut1.1 Function Definition
+ *  @{
+ */
+
+/** @defgroup VL53L0X_general_group VL53L0X General Functions
+ *  @brief    General functions and definitions
+ *  @{
+ */
+
+/**
+ * @brief Return the VL53L0X PAL Implementation Version
+ *
+ * @note This function doesn't access to the device
+ *
+ * @param   pVersion              Pointer to current PAL Implementation Version
+ * @return  VL53L0X_ERROR_NONE     Success
+ * @return  "Other error code"    See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_GetVersion(VL53L0X_Version_t *pVersion);
+
+/**
+ * @brief Return the PAL Specification Version used for the current
+ * implementation.
+ *
+ * @note This function doesn't access to the device
+ *
+ * @param   pPalSpecVersion       Pointer to current PAL Specification Version
+ * @return  VL53L0X_ERROR_NONE        Success
+ * @return  "Other error code"    See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_GetPalSpecVersion(
+	VL53L0X_Version_t *pPalSpecVersion);
+
+/**
+ * @brief Reads the Product Revision for a for given Device
+ * This function can be used to distinguish cut1.0 from cut1.1.
+ *
+ * @note This function Access to the device
+ *
+ * @param   Dev                 Device Handle
+ * @param   pProductRevisionMajor  Pointer to Product Revision Major
+ * for a given Device
+ * @param   pProductRevisionMinor  Pointer to Product Revision Minor
+ * for a given Device
+ * @return  VL53L0X_ERROR_NONE      Success
+ * @return  "Other error code"  See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_GetProductRevision(VL53L0X_DEV Dev,
+	uint8_t *pProductRevisionMajor, uint8_t *pProductRevisionMinor);
+
+/**
+ * @brief Reads the Device information for given Device
+ *
+ * @note This function Access to the device
+ *
+ * @param   Dev                 Device Handle
+ * @param   pVL53L0X_DeviceInfo  Pointer to current device info for a given
+ *  Device
+ * @return  VL53L0X_ERROR_NONE   Success
+ * @return  "Other error code"  See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_GetDeviceInfo(VL53L0X_DEV Dev,
+	VL53L0X_DeviceInfo_t *pVL53L0X_DeviceInfo);
+
+/**
+ * @brief Read current status of the error register for the selected device
+ *
+ * @note This function Access to the device
+ *
+ * @param   Dev                   Device Handle
+ * @param   pDeviceErrorStatus    Pointer to current error code of the device
+ * @return  VL53L0X_ERROR_NONE     Success
+ * @return  "Other error code"    See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_GetDeviceErrorStatus(VL53L0X_DEV Dev,
+	VL53L0X_DeviceError *pDeviceErrorStatus);
+
+/**
+ * @brief Human readable Range Status string for a given RangeStatus
+ *
+ * @note This function doesn't access to the device
+ *
+ * @param   RangeStatus         The RangeStatus code as stored on
+ * @a VL53L0X_RangingMeasurementData_t
+ * @param   pRangeStatusString  The returned RangeStatus string.
+ * @return  VL53L0X_ERROR_NONE   Success
+ * @return  "Other error code"  See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_GetRangeStatusString(uint8_t RangeStatus,
+	char *pRangeStatusString);
+
+/**
+ * @brief Human readable error string for a given Error Code
+ *
+ * @note This function doesn't access to the device
+ *
+ * @param   ErrorCode           The error code as stored on ::VL53L0X_DeviceError
+ * @param   pDeviceErrorString  The error string corresponding to the ErrorCode
+ * @return  VL53L0X_ERROR_NONE   Success
+ * @return  "Other error code"  See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_GetDeviceErrorString(
+	VL53L0X_DeviceError ErrorCode, char *pDeviceErrorString);
+
+/**
+ * @brief Human readable error string for current PAL error status
+ *
+ * @note This function doesn't access to the device
+ *
+ * @param   PalErrorCode       The error code as stored on @a VL53L0X_Error
+ * @param   pPalErrorString    The error string corresponding to the
+ * PalErrorCode
+ * @return  VL53L0X_ERROR_NONE  Success
+ * @return  "Other error code" See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_GetPalErrorString(VL53L0X_Error PalErrorCode,
+	char *pPalErrorString);
+
+/**
+ * @brief Human readable PAL State string
+ *
+ * @note This function doesn't access to the device
+ *
+ * @param   PalStateCode          The State code as stored on @a VL53L0X_State
+ * @param   pPalStateString       The State string corresponding to the
+ * PalStateCode
+ * @return  VL53L0X_ERROR_NONE     Success
+ * @return  "Other error code"    See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_GetPalStateString(VL53L0X_State PalStateCode,
+	char *pPalStateString);
+
+/**
+ * @brief Reads the internal state of the PAL for a given Device
+ *
+ * @note This function doesn't access to the device
+ *
+ * @param   Dev                   Device Handle
+ * @param   pPalState             Pointer to current state of the PAL for a
+ * given Device
+ * @return  VL53L0X_ERROR_NONE     Success
+ * @return  "Other error code"    See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_GetPalState(VL53L0X_DEV Dev,
+	VL53L0X_State *pPalState);
+
+/**
+ * @brief Set the power mode for a given Device
+ * The power mode can be Standby or Idle. Different level of both Standby and
+ * Idle can exists.
+ * This function should not be used when device is in Ranging state.
+ *
+ * @note This function Access to the device
+ *
+ * @param   Dev                   Device Handle
+ * @param   PowerMode             The value of the power mode to set.
+ * see ::VL53L0X_PowerModes
+ *                                Valid values are:
+ *                                VL53L0X_POWERMODE_STANDBY_LEVEL1,
+ *                                VL53L0X_POWERMODE_IDLE_LEVEL1
+ * @return  VL53L0X_ERROR_NONE                  Success
+ * @return  VL53L0X_ERROR_MODE_NOT_SUPPORTED    This error occurs when PowerMode
+ * is not in the supported list
+ * @return  "Other error code"    See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_SetPowerMode(VL53L0X_DEV Dev,
+	VL53L0X_PowerModes PowerMode);
+
+/**
+ * @brief Get the power mode for a given Device
+ *
+ * @note This function Access to the device
+ *
+ * @param   Dev                   Device Handle
+ * @param   pPowerMode            Pointer to the current value of the power
+ * mode. see ::VL53L0X_PowerModes
+ *                                Valid values are:
+ *                                VL53L0X_POWERMODE_STANDBY_LEVEL1,
+ *                                VL53L0X_POWERMODE_IDLE_LEVEL1
+ * @return  VL53L0X_ERROR_NONE     Success
+ * @return  "Other error code"    See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_GetPowerMode(VL53L0X_DEV Dev,
+	VL53L0X_PowerModes *pPowerMode);
+
+/**
+ * Set or over-hide part to part calibration offset
+ * \sa VL53L0X_DataInit()   VL53L0X_GetOffsetCalibrationDataMicroMeter()
+ *
+ * @note This function Access to the device
+ *
+ * @param   Dev                                Device Handle
+ * @param   OffsetCalibrationDataMicroMeter    Offset (microns)
+ * @return  VL53L0X_ERROR_NONE                  Success
+ * @return  "Other error code"                 See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_SetOffsetCalibrationDataMicroMeter(
+	VL53L0X_DEV Dev, int32_t OffsetCalibrationDataMicroMeter);
+
+/**
+ * @brief Get part to part calibration offset
+ *
+ * @par Function Description
+ * Should only be used after a successful call to @a VL53L0X_DataInit to backup
+ * device NVM value
+ *
+ * @note This function Access to the device
+ *
+ * @param   Dev                                Device Handle
+ * @param   pOffsetCalibrationDataMicroMeter   Return part to part
+ * calibration offset from device (microns)
+ * @return  VL53L0X_ERROR_NONE                  Success
+ * @return  "Other error code"                 See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_GetOffsetCalibrationDataMicroMeter(
+	VL53L0X_DEV Dev, int32_t *pOffsetCalibrationDataMicroMeter);
+
+/**
+ * Set the linearity corrective gain
+ *
+ * @note This function Access to the device
+ *
+ * @param   Dev                                Device Handle
+ * @param   LinearityCorrectiveGain            Linearity corrective
+ * gain in x1000
+ * if value is 1000 then no modification is applied.
+ * @return  VL53L0X_ERROR_NONE                  Success
+ * @return  "Other error code"                 See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_SetLinearityCorrectiveGain(VL53L0X_DEV Dev,
+	int16_t LinearityCorrectiveGain);
+
+/**
+ * @brief Get the linearity corrective gain
+ *
+ * @par Function Description
+ * Should only be used after a successful call to @a VL53L0X_DataInit to backup
+ * device NVM value
+ *
+ * @note This function Access to the device
+ *
+ * @param   Dev                                Device Handle
+ * @param   pLinearityCorrectiveGain           Pointer to the linearity
+ * corrective gain in x1000
+ * if value is 1000 then no modification is applied.
+ * @return  VL53L0X_ERROR_NONE                  Success
+ * @return  "Other error code"                 See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_GetLinearityCorrectiveGain(VL53L0X_DEV Dev,
+	uint16_t *pLinearityCorrectiveGain);
+
+/**
+ * Set Group parameter Hold state
+ *
+ * @par Function Description
+ * Set or remove device internal group parameter hold
+ *
+ * @note This function is not Implemented
+ *
+ * @param   Dev      Device Handle
+ * @param   GroupParamHold   Group parameter Hold state to be set (on/off)
+ * @return  VL53L0X_ERROR_NOT_IMPLEMENTED        Not implemented
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_SetGroupParamHold(VL53L0X_DEV Dev,
+	uint8_t GroupParamHold);
+
+/**
+ * @brief Get the maximal distance for actual setup
+ * @par Function Description
+ * Device must be initialized through @a VL53L0X_SetParameters() prior calling
+ * this function.
+ *
+ * Any range value more than the value returned is to be considered as
+ * "no target detected" or
+ * "no target in detectable range"\n
+ * @warning The maximal distance depends on the setup
+ *
+ * @note This function is not Implemented
+ *
+ * @param   Dev      Device Handle
+ * @param   pUpperLimitMilliMeter   The maximal range limit for actual setup
+ * (in millimeter)
+ * @return  VL53L0X_ERROR_NOT_IMPLEMENTED        Not implemented
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_GetUpperLimitMilliMeter(VL53L0X_DEV Dev,
+	uint16_t *pUpperLimitMilliMeter);
+
+
+/**
+ * @brief Get the Total Signal Rate
+ * @par Function Description
+ * This function will return the Total Signal Rate after a good ranging is done.
+ *
+ * @note This function access to Device
+ *
+ * @param   Dev      Device Handle
+ * @param   pTotalSignalRate   Total Signal Rate value in Mega count per second
+ * @return  VL53L0X_ERROR_NONE     Success
+ * @return  "Other error code"    See ::VL53L0X_Error
+ */
+VL53L0X_Error VL53L0X_GetTotalSignalRate(VL53L0X_DEV Dev,
+	FixPoint1616_t *pTotalSignalRate);
+
+/** @} VL53L0X_general_group */
+
+/** @defgroup VL53L0X_init_group VL53L0X Init Functions
+ *  @brief    VL53L0X Init Functions
+ *  @{
+ */
+
+/**
+ * @brief Set new device address
+ *
+ * After completion the device will answer to the new address programmed.
+ * This function should be called when several devices are used in parallel
+ * before start programming the sensor.
+ * When a single device us used, there is no need to call this function.
+ *
+ * @note This function Access to the device
+ *
+ * @param   Dev                   Device Handle
+ * @param   DeviceAddress         The new Device address
+ * @return  VL53L0X_ERROR_NONE     Success
+ * @return  "Other error code"    See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_SetDeviceAddress(VL53L0X_DEV Dev,
+	uint8_t DeviceAddress);
+
+/**
+ *
+ * @brief One time device initialization
+ *
+ * To be called once and only once after device is brought out of reset
+ * (Chip enable) and booted see @a VL53L0X_WaitDeviceBooted()
+ *
+ * @par Function Description
+ * When not used after a fresh device "power up" or reset, it may return
+ * @a #VL53L0X_ERROR_CALIBRATION_WARNING meaning wrong calibration data
+ * may have been fetched from device that can result in ranging offset error\n
+ * If application cannot execute device reset or need to run VL53L0X_DataInit
+ * multiple time then it  must ensure proper offset calibration saving and
+ * restore on its own by using @a VL53L0X_GetOffsetCalibrationData() on first
+ * power up and then @a VL53L0X_SetOffsetCalibrationData() in all subsequent init
+ * This function will change the VL53L0X_State from VL53L0X_STATE_POWERDOWN to
+ * VL53L0X_STATE_WAIT_STATICINIT.
+ *
+ * @note This function Access to the device
+ *
+ * @param   Dev                   Device Handle
+ * @return  VL53L0X_ERROR_NONE     Success
+ * @return  "Other error code"    See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_DataInit(VL53L0X_DEV Dev);
+
+/**
+ * @brief Set the tuning settings pointer
+ *
+ * This function is used to specify the Tuning settings buffer to be used
+ * for a given device. The buffer contains all the necessary data to permit
+ * the API to write tuning settings.
+ * This function permit to force the usage of either external or internal
+ * tuning settings.
+ *
+ * @note This function Access to the device
+ *
+ * @param   Dev                             Device Handle
+ * @param   pTuningSettingBuffer            Pointer to tuning settings buffer.
+ * @param   UseInternalTuningSettings       Use internal tuning settings value.
+ * @return  VL53L0X_ERROR_NONE     Success
+ * @return  "Other error code"    See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_SetTuningSettingBuffer(VL53L0X_DEV Dev,
+	uint8_t *pTuningSettingBuffer, uint8_t UseInternalTuningSettings);
+
+/**
+ * @brief Get the tuning settings pointer and the internal external switch
+ * value.
+ *
+ * This function is used to get the Tuning settings buffer pointer and the
+ * value.
+ * of the switch to select either external or internal tuning settings.
+ *
+ * @note This function Access to the device
+ *
+ * @param   Dev                        Device Handle
+ * @param   ppTuningSettingBuffer      Pointer to tuning settings buffer.
+ * @param   pUseInternalTuningSettings Pointer to store Use internal tuning
+ *                                     settings value.
+ * @return  VL53L0X_ERROR_NONE          Success
+ * @return  "Other error code"         See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_GetTuningSettingBuffer(VL53L0X_DEV Dev,
+	uint8_t **ppTuningSettingBuffer, uint8_t *pUseInternalTuningSettings);
+
+/**
+ * @brief Do basic device init (and eventually patch loading)
+ * This function will change the VL53L0X_State from
+ * VL53L0X_STATE_WAIT_STATICINIT to VL53L0X_STATE_IDLE.
+ * In this stage all default setting will be applied.
+ *
+ * @note This function Access to the device
+ *
+ * @param   Dev                   Device Handle
+ * @return  VL53L0X_ERROR_NONE     Success
+ * @return  "Other error code"    See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_StaticInit(VL53L0X_DEV Dev);
+
+/**
+ * @brief Wait for device booted after chip enable (hardware standby)
+ * This function can be run only when VL53L0X_State is VL53L0X_STATE_POWERDOWN.
+ *
+ * @note This function is not Implemented
+ *
+ * @param   Dev      Device Handle
+ * @return  VL53L0X_ERROR_NOT_IMPLEMENTED Not implemented
+ *
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_WaitDeviceBooted(VL53L0X_DEV Dev);
+
+/**
+ * @brief Do an hard reset or soft reset (depending on implementation) of the
+ * device \nAfter call of this function, device must be in same state as right
+ * after a power-up sequence.This function will change the VL53L0X_State to
+ * VL53L0X_STATE_POWERDOWN.
+ *
+ * @note This function Access to the device
+ *
+ * @param   Dev                   Device Handle
+ * @return  VL53L0X_ERROR_NONE     Success
+ * @return  "Other error code"    See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_ResetDevice(VL53L0X_DEV Dev);
+
+/** @} VL53L0X_init_group */
+
+/** @defgroup VL53L0X_parameters_group VL53L0X Parameters Functions
+ *  @brief    Functions used to prepare and setup the device
+ *  @{
+ */
+
+/**
+ * @brief  Prepare device for operation
+ * @par Function Description
+ * Update device with provided parameters
+ * @li Then start ranging operation.
+ *
+ * @note This function Access to the device
+ *
+ * @param   Dev                   Device Handle
+ * @param   pDeviceParameters     Pointer to store current device parameters.
+ * @return  VL53L0X_ERROR_NONE     Success
+ * @return  "Other error code"    See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_SetDeviceParameters(VL53L0X_DEV Dev,
+	const VL53L0X_DeviceParameters_t *pDeviceParameters);
+
+/**
+ * @brief  Retrieve current device parameters
+ * @par Function Description
+ * Get actual parameters of the device
+ * @li Then start ranging operation.
+ *
+ * @note This function Access to the device
+ *
+ * @param   Dev                   Device Handle
+ * @param   pDeviceParameters     Pointer to store current device parameters.
+ * @return  VL53L0X_ERROR_NONE     Success
+ * @return  "Other error code"    See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_GetDeviceParameters(VL53L0X_DEV Dev,
+	VL53L0X_DeviceParameters_t *pDeviceParameters);
+
+/**
+ * @brief  Set a new device mode
+ * @par Function Description
+ * Set device to a new mode (ranging, histogram ...)
+ *
+ * @note This function doesn't Access to the device
+ *
+ * @param   Dev                   Device Handle
+ * @param   DeviceMode            New device mode to apply
+ *                                Valid values are:
+ *                                VL53L0X_DEVICEMODE_SINGLE_RANGING
+ *                                VL53L0X_DEVICEMODE_CONTINUOUS_RANGING
+ *                                VL53L0X_DEVICEMODE_CONTINUOUS_TIMED_RANGING
+ *                                VL53L0X_DEVICEMODE_SINGLE_HISTOGRAM
+ *                                VL53L0X_HISTOGRAMMODE_REFERENCE_ONLY
+ *                                VL53L0X_HISTOGRAMMODE_RETURN_ONLY
+ *                                VL53L0X_HISTOGRAMMODE_BOTH
+ *
+ *
+ * @return  VL53L0X_ERROR_NONE               Success
+ * @return  VL53L0X_ERROR_MODE_NOT_SUPPORTED This error occurs when DeviceMode is
+ *                                          not in the supported list
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_SetDeviceMode(VL53L0X_DEV Dev,
+	VL53L0X_DeviceModes DeviceMode);
+
+/**
+ * @brief  Get current new device mode
+ * @par Function Description
+ * Get actual mode of the device(ranging, histogram ...)
+ *
+ * @note This function doesn't Access to the device
+ *
+ * @param   Dev                   Device Handle
+ * @param   pDeviceMode           Pointer to current apply mode value
+ *                                Valid values are:
+ *                                VL53L0X_DEVICEMODE_SINGLE_RANGING
+ *                                VL53L0X_DEVICEMODE_CONTINUOUS_RANGING
+ *                                VL53L0X_DEVICEMODE_CONTINUOUS_TIMED_RANGING
+ *                                VL53L0X_DEVICEMODE_SINGLE_HISTOGRAM
+ *                                VL53L0X_HISTOGRAMMODE_REFERENCE_ONLY
+ *                                VL53L0X_HISTOGRAMMODE_RETURN_ONLY
+ *                                VL53L0X_HISTOGRAMMODE_BOTH
+ *
+ * @return  VL53L0X_ERROR_NONE                   Success
+ * @return  VL53L0X_ERROR_MODE_NOT_SUPPORTED     This error occurs when
+ * DeviceMode is not in the supported list
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_GetDeviceMode(VL53L0X_DEV Dev,
+	VL53L0X_DeviceModes *pDeviceMode);
+
+/**
+ * @brief  Sets the resolution of range measurements.
+ * @par Function Description
+ * Set resolution of range measurements to either 0.25mm if
+ * fraction enabled or 1mm if not enabled.
+ *
+ * @note This function Accesses the device
+ *
+ * @param   Dev               Device Handle
+ * @param   Enable            Enable high resolution
+ *
+ * @return  VL53L0X_ERROR_NONE               Success
+ * @return  "Other error code"              See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_SetRangeFractionEnable(VL53L0X_DEV Dev,
+	uint8_t Enable);
+
+/**
+ * @brief  Gets the fraction enable parameter indicating the resolution of
+ * range measurements.
+ *
+ * @par Function Description
+ * Gets the fraction enable state, which translates to the resolution of
+ * range measurements as follows :Enabled:=0.25mm resolution,
+ * Not Enabled:=1mm resolution.
+ *
+ * @note This function Accesses the device
+ *
+ * @param   Dev               Device Handle
+ * @param   pEnable           Output Parameter reporting the fraction enable state.
+ *
+ * @return  VL53L0X_ERROR_NONE                   Success
+ * @return  "Other error code"                  See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_GetFractionEnable(VL53L0X_DEV Dev,
+	uint8_t *pEnable);
+
+/**
+ * @brief  Set a new Histogram mode
+ * @par Function Description
+ * Set device to a new Histogram mode
+ *
+ * @note This function doesn't Access to the device
+ *
+ * @param   Dev                   Device Handle
+ * @param   HistogramMode         New device mode to apply
+ *                                Valid values are:
+ *                                VL53L0X_HISTOGRAMMODE_DISABLED
+ *                                VL53L0X_DEVICEMODE_SINGLE_HISTOGRAM
+ *                                VL53L0X_HISTOGRAMMODE_REFERENCE_ONLY
+ *                                VL53L0X_HISTOGRAMMODE_RETURN_ONLY
+ *                                VL53L0X_HISTOGRAMMODE_BOTH
+ *
+ * @return  VL53L0X_ERROR_NONE                   Success
+ * @return  VL53L0X_ERROR_MODE_NOT_SUPPORTED     This error occurs when
+ * HistogramMode is not in the supported list
+ * @return  "Other error code"    See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_SetHistogramMode(VL53L0X_DEV Dev,
+	VL53L0X_HistogramModes HistogramMode);
+
+/**
+ * @brief  Get current new device mode
+ * @par Function Description
+ * Get current Histogram mode of a Device
+ *
+ * @note This function doesn't Access to the device
+ *
+ * @param   Dev                   Device Handle
+ * @param   pHistogramMode        Pointer to current Histogram Mode value
+ *                                Valid values are:
+ *                                VL53L0X_HISTOGRAMMODE_DISABLED
+ *                                VL53L0X_DEVICEMODE_SINGLE_HISTOGRAM
+ *                                VL53L0X_HISTOGRAMMODE_REFERENCE_ONLY
+ *                                VL53L0X_HISTOGRAMMODE_RETURN_ONLY
+ *                                VL53L0X_HISTOGRAMMODE_BOTH
+ * @return  VL53L0X_ERROR_NONE     Success
+ * @return  "Other error code"    See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_GetHistogramMode(VL53L0X_DEV Dev,
+	VL53L0X_HistogramModes *pHistogramMode);
+
+/**
+ * @brief Set Ranging Timing Budget in microseconds
+ *
+ * @par Function Description
+ * Defines the maximum time allowed by the user to the device to run a
+ * full ranging sequence for the current mode (ranging, histogram, ASL ...)
+ *
+ * @note This function Access to the device
+ *
+ * @param   Dev                                Device Handle
+ * @param MeasurementTimingBudgetMicroSeconds  Max measurement time in
+ * microseconds.
+ *                                   Valid values are:
+ *                                   >= 17000 microsecs when wraparound enabled
+ *                                   >= 12000 microsecs when wraparound disabled
+ * @return  VL53L0X_ERROR_NONE             Success
+ * @return  VL53L0X_ERROR_INVALID_PARAMS   This error is returned if
+ MeasurementTimingBudgetMicroSeconds out of range
+ * @return  "Other error code"            See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_SetMeasurementTimingBudgetMicroSeconds(
+	VL53L0X_DEV Dev, uint32_t MeasurementTimingBudgetMicroSeconds);
+
+/**
+ * @brief Get Ranging Timing Budget in microseconds
+ *
+ * @par Function Description
+ * Returns the programmed the maximum time allowed by the user to the
+ * device to run a full ranging sequence for the current mode
+ * (ranging, histogram, ASL ...)
+ *
+ * @note This function Access to the device
+ *
+ * @param   Dev                                    Device Handle
+ * @param   pMeasurementTimingBudgetMicroSeconds   Max measurement time in
+ * microseconds.
+ *                                   Valid values are:
+ *                                   >= 17000 microsecs when wraparound enabled
+ *                                   >= 12000 microsecs when wraparound disabled
+ * @return  VL53L0X_ERROR_NONE                      Success
+ * @return  "Other error code"                     See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_GetMeasurementTimingBudgetMicroSeconds(
+	VL53L0X_DEV Dev, uint32_t *pMeasurementTimingBudgetMicroSeconds);
+
+/**
+ * @brief Gets the VCSEL pulse period.
+ *
+ * @par Function Description
+ * This function retrieves the VCSEL pulse period for the given period type.
+ *
+ * @note This function Accesses the device
+ *
+ * @param   Dev                      Device Handle
+ * @param   VcselPeriodType          VCSEL period identifier (pre-range|final).
+ * @param   pVCSELPulsePeriod        Pointer to VCSEL period value.
+ * @return  VL53L0X_ERROR_NONE        Success
+ * @return  VL53L0X_ERROR_INVALID_PARAMS  Error VcselPeriodType parameter not
+ *                                       supported.
+ * @return  "Other error code"           See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_GetVcselPulsePeriod(VL53L0X_DEV Dev,
+	VL53L0X_VcselPeriod VcselPeriodType, uint8_t *pVCSELPulsePeriod);
+
+/**
+ * @brief Sets the VCSEL pulse period.
+ *
+ * @par Function Description
+ * This function retrieves the VCSEL pulse period for the given period type.
+ *
+ * @note This function Accesses the device
+ *
+ * @param   Dev                       Device Handle
+ * @param   VcselPeriodType	      VCSEL period identifier (pre-range|final).
+ * @param   VCSELPulsePeriod          VCSEL period value
+ * @return  VL53L0X_ERROR_NONE            Success
+ * @return  VL53L0X_ERROR_INVALID_PARAMS  Error VcselPeriodType parameter not
+ *                                       supported.
+ * @return  "Other error code"           See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_SetVcselPulsePeriod(VL53L0X_DEV Dev,
+	VL53L0X_VcselPeriod VcselPeriodType, uint8_t VCSELPulsePeriod);
+
+/**
+ * @brief Sets the (on/off) state of a requested sequence step.
+ *
+ * @par Function Description
+ * This function enables/disables a requested sequence step.
+ *
+ * @note This function Accesses the device
+ *
+ * @param   Dev                          Device Handle
+ * @param   SequenceStepId	         Sequence step identifier.
+ * @param   SequenceStepEnabled          Demanded state {0=Off,1=On}
+ *                                       is enabled.
+ * @return  VL53L0X_ERROR_NONE            Success
+ * @return  VL53L0X_ERROR_INVALID_PARAMS  Error SequenceStepId parameter not
+ *                                       supported.
+ * @return  "Other error code"           See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_SetSequenceStepEnable(VL53L0X_DEV Dev,
+	VL53L0X_SequenceStepId SequenceStepId, uint8_t SequenceStepEnabled);
+
+/**
+ * @brief Gets the (on/off) state of a requested sequence step.
+ *
+ * @par Function Description
+ * This function retrieves the state of a requested sequence step, i.e. on/off.
+ *
+ * @note This function Accesses the device
+ *
+ * @param   Dev                    Device Handle
+ * @param   SequenceStepId         Sequence step identifier.
+ * @param   pSequenceStepEnabled   Out parameter reporting if the sequence step
+ *                                 is enabled {0=Off,1=On}.
+ * @return  VL53L0X_ERROR_NONE            Success
+ * @return  VL53L0X_ERROR_INVALID_PARAMS  Error SequenceStepId parameter not
+ *                                       supported.
+ * @return  "Other error code"           See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_GetSequenceStepEnable(VL53L0X_DEV Dev,
+	VL53L0X_SequenceStepId SequenceStepId, uint8_t *pSequenceStepEnabled);
+
+/**
+ * @brief Gets the (on/off) state of all sequence steps.
+ *
+ * @par Function Description
+ * This function retrieves the state of all sequence step in the scheduler.
+ *
+ * @note This function Accesses the device
+ *
+ * @param   Dev                          Device Handle
+ * @param   pSchedulerSequenceSteps      Pointer to struct containing result.
+ * @return  VL53L0X_ERROR_NONE            Success
+ * @return  "Other error code"           See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_GetSequenceStepEnables(VL53L0X_DEV Dev,
+	VL53L0X_SchedulerSequenceSteps_t *pSchedulerSequenceSteps);
+
+/**
+ * @brief Sets the timeout of a requested sequence step.
+ *
+ * @par Function Description
+ * This function sets the timeout of a requested sequence step.
+ *
+ * @note This function Accesses the device
+ *
+ * @param   Dev                          Device Handle
+ * @param   SequenceStepId               Sequence step identifier.
+ * @param   TimeOutMilliSecs             Demanded timeout
+ * @return  VL53L0X_ERROR_NONE            Success
+ * @return  VL53L0X_ERROR_INVALID_PARAMS  Error SequenceStepId parameter not
+ *                                       supported.
+ * @return  "Other error code"           See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_SetSequenceStepTimeout(VL53L0X_DEV Dev,
+	VL53L0X_SequenceStepId SequenceStepId, FixPoint1616_t TimeOutMilliSecs);
+
+/**
+ * @brief Gets the timeout of a requested sequence step.
+ *
+ * @par Function Description
+ * This function retrieves the timeout of a requested sequence step.
+ *
+ * @note This function Accesses the device
+ *
+ * @param   Dev                          Device Handle
+ * @param   SequenceStepId               Sequence step identifier.
+ * @param   pTimeOutMilliSecs            Timeout value.
+ * @return  VL53L0X_ERROR_NONE            Success
+ * @return  VL53L0X_ERROR_INVALID_PARAMS  Error SequenceStepId parameter not
+ *                                       supported.
+ * @return  "Other error code"           See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_GetSequenceStepTimeout(VL53L0X_DEV Dev,
+	VL53L0X_SequenceStepId SequenceStepId,
+	FixPoint1616_t *pTimeOutMilliSecs);
+
+/**
+ * @brief Gets number of sequence steps managed by the API.
+ *
+ * @par Function Description
+ * This function retrieves the number of sequence steps currently managed
+ * by the API
+ *
+ * @note This function Accesses the device
+ *
+ * @param   Dev                          Device Handle
+ * @param   pNumberOfSequenceSteps       Out parameter reporting the number of
+ *                                       sequence steps.
+ * @return  VL53L0X_ERROR_NONE            Success
+ * @return  "Other error code"           See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_GetNumberOfSequenceSteps(VL53L0X_DEV Dev,
+	uint8_t *pNumberOfSequenceSteps);
+
+/**
+ * @brief Gets the name of a given sequence step.
+ *
+ * @par Function Description
+ * This function retrieves the name of sequence steps corresponding to
+ * SequenceStepId.
+ *
+ * @note This function doesn't Accesses the device
+ *
+ * @param   SequenceStepId               Sequence step identifier.
+ * @param   pSequenceStepsString         Pointer to Info string
+ *
+ * @return  VL53L0X_ERROR_NONE            Success
+ * @return  "Other error code"           See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_GetSequenceStepsInfo(
+	VL53L0X_SequenceStepId SequenceStepId, char *pSequenceStepsString);
+
+/**
+ * Program continuous mode Inter-Measurement period in milliseconds
+ *
+ * @par Function Description
+ * When trying to set too short time return  INVALID_PARAMS minimal value
+ *
+ * @note This function Access to the device
+ *
+ * @param   Dev                                  Device Handle
+ * @param   InterMeasurementPeriodMilliSeconds   Inter-Measurement Period in ms.
+ * @return  VL53L0X_ERROR_NONE                    Success
+ * @return  "Other error code"                   See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_SetInterMeasurementPeriodMilliSeconds(
+	VL53L0X_DEV Dev, uint32_t InterMeasurementPeriodMilliSeconds);
+
+/**
+ * Get continuous mode Inter-Measurement period in milliseconds
+ *
+ * @par Function Description
+ * When trying to set too short time return  INVALID_PARAMS minimal value
+ *
+ * @note This function Access to the device
+ *
+ * @param   Dev                                  Device Handle
+ * @param   pInterMeasurementPeriodMilliSeconds  Pointer to programmed
+ *  Inter-Measurement Period in milliseconds.
+ * @return  VL53L0X_ERROR_NONE                    Success
+ * @return  "Other error code"                   See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_GetInterMeasurementPeriodMilliSeconds(
+	VL53L0X_DEV Dev, uint32_t *pInterMeasurementPeriodMilliSeconds);
+
+/**
+ * @brief Enable/Disable Cross talk compensation feature
+ *
+ * @note This function is not Implemented.
+ * Enable/Disable Cross Talk by set to zero the Cross Talk value
+ * by using @a VL53L0X_SetXTalkCompensationRateMegaCps().
+ *
+ * @param   Dev                       Device Handle
+ * @param   XTalkCompensationEnable   Cross talk compensation
+ *  to be set 0=disabled else = enabled
+ * @return  VL53L0X_ERROR_NOT_IMPLEMENTED   Not implemented
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_SetXTalkCompensationEnable(VL53L0X_DEV Dev,
+	uint8_t XTalkCompensationEnable);
+
+/**
+ * @brief Get Cross talk compensation rate
+ *
+ * @note This function is not Implemented.
+ * Enable/Disable Cross Talk by set to zero the Cross Talk value by
+ * using @a VL53L0X_SetXTalkCompensationRateMegaCps().
+ *
+ * @param   Dev                        Device Handle
+ * @param   pXTalkCompensationEnable   Pointer to the Cross talk compensation
+ *  state 0=disabled or 1 = enabled
+ * @return  VL53L0X_ERROR_NOT_IMPLEMENTED   Not implemented
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_GetXTalkCompensationEnable(VL53L0X_DEV Dev,
+	uint8_t *pXTalkCompensationEnable);
+
+/**
+ * @brief Set Cross talk compensation rate
+ *
+ * @par Function Description
+ * Set Cross talk compensation rate.
+ *
+ * @note This function Access to the device
+ *
+ * @param   Dev                            Device Handle
+ * @param   XTalkCompensationRateMegaCps   Compensation rate in
+ *  Mega counts per second (16.16 fix point) see datasheet for details
+ * @return  VL53L0X_ERROR_NONE              Success
+ * @return  "Other error code"             See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_SetXTalkCompensationRateMegaCps(VL53L0X_DEV Dev,
+	FixPoint1616_t XTalkCompensationRateMegaCps);
+
+/**
+ * @brief Get Cross talk compensation rate
+ *
+ * @par Function Description
+ * Get Cross talk compensation rate.
+ *
+ * @note This function Access to the device
+ *
+ * @param   Dev                            Device Handle
+ * @param   pXTalkCompensationRateMegaCps  Pointer to Compensation rate
+ in Mega counts per second (16.16 fix point) see datasheet for details
+ * @return  VL53L0X_ERROR_NONE              Success
+ * @return  "Other error code"             See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_GetXTalkCompensationRateMegaCps(VL53L0X_DEV Dev,
+	FixPoint1616_t *pXTalkCompensationRateMegaCps);
+
+/**
+ * @brief Set Reference Calibration Parameters
+ *
+ * @par Function Description
+ * Set Reference Calibration Parameters.
+ *
+ * @note This function Access to the device
+ *
+ * @param   Dev                            Device Handle
+ * @param   VhvSettings                    Parameter for VHV
+ * @param   PhaseCal                       Parameter for PhaseCal
+ * @return  VL53L0X_ERROR_NONE              Success
+ * @return  "Other error code"             See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_SetRefCalibration(VL53L0X_DEV Dev,
+	uint8_t VhvSettings, uint8_t PhaseCal);
+
+/**
+ * @brief Get Reference Calibration Parameters
+ *
+ * @par Function Description
+ * Get Reference Calibration Parameters.
+ *
+ * @note This function Access to the device
+ *
+ * @param   Dev                            Device Handle
+ * @param   pVhvSettings                   Pointer to VHV parameter
+ * @param   pPhaseCal                      Pointer to PhaseCal Parameter
+ * @return  VL53L0X_ERROR_NONE              Success
+ * @return  "Other error code"             See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_GetRefCalibration(VL53L0X_DEV Dev,
+	uint8_t *pVhvSettings, uint8_t *pPhaseCal);
+
+/**
+ * @brief  Get the number of the check limit managed by a given Device
+ *
+ * @par Function Description
+ * This function give the number of the check limit managed by the Device
+ *
+ * @note This function doesn't Access to the device
+ *
+ * @param   pNumberOfLimitCheck           Pointer to the number of check limit.
+ * @return  VL53L0X_ERROR_NONE             Success
+ * @return  "Other error code"            See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_GetNumberOfLimitCheck(
+	uint16_t *pNumberOfLimitCheck);
+
+/**
+ * @brief  Return a description string for a given limit check number
+ *
+ * @par Function Description
+ * This function returns a description string for a given limit check number.
+ * The limit check is identified with the LimitCheckId.
+ *
+ * @note This function doesn't Access to the device
+ *
+ * @param   Dev                           Device Handle
+ * @param   LimitCheckId                  Limit Check ID
+ (0<= LimitCheckId < VL53L0X_GetNumberOfLimitCheck() ).
+ * @param   pLimitCheckString             Pointer to the
+ description string of the given check limit.
+ * @return  VL53L0X_ERROR_NONE             Success
+ * @return  VL53L0X_ERROR_INVALID_PARAMS   This error is
+ returned when LimitCheckId value is out of range.
+ * @return  "Other error code"            See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_GetLimitCheckInfo(VL53L0X_DEV Dev,
+	uint16_t LimitCheckId, char *pLimitCheckString);
+
+/**
+ * @brief  Return a the Status of the specified check limit
+ *
+ * @par Function Description
+ * This function returns the Status of the specified check limit.
+ * The value indicate if the check is fail or not.
+ * The limit check is identified with the LimitCheckId.
+ *
+ * @note This function doesn't Access to the device
+ *
+ * @param   Dev                           Device Handle
+ * @param   LimitCheckId                  Limit Check ID
+ (0<= LimitCheckId < VL53L0X_GetNumberOfLimitCheck() ).
+ * @param   pLimitCheckStatus             Pointer to the
+ Limit Check Status of the given check limit.
+ * LimitCheckStatus :
+ * 0 the check is not fail
+ * 1 the check if fail or not enabled
+ *
+ * @return  VL53L0X_ERROR_NONE             Success
+ * @return  VL53L0X_ERROR_INVALID_PARAMS   This error is
+ returned when LimitCheckId value is out of range.
+ * @return  "Other error code"            See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_GetLimitCheckStatus(VL53L0X_DEV Dev,
+	uint16_t LimitCheckId, uint8_t *pLimitCheckStatus);
+
+/**
+ * @brief  Enable/Disable a specific limit check
+ *
+ * @par Function Description
+ * This function Enable/Disable a specific limit check.
+ * The limit check is identified with the LimitCheckId.
+ *
+ * @note This function doesn't Access to the device
+ *
+ * @param   Dev                           Device Handle
+ * @param   LimitCheckId                  Limit Check ID
+ *  (0<= LimitCheckId < VL53L0X_GetNumberOfLimitCheck() ).
+ * @param   LimitCheckEnable              if 1 the check limit
+ *  corresponding to LimitCheckId is Enabled
+ *                                        if 0 the check limit
+ *  corresponding to LimitCheckId is disabled
+ * @return  VL53L0X_ERROR_NONE             Success
+ * @return  VL53L0X_ERROR_INVALID_PARAMS   This error is returned
+ *  when LimitCheckId value is out of range.
+ * @return  "Other error code"            See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_SetLimitCheckEnable(VL53L0X_DEV Dev,
+	uint16_t LimitCheckId, uint8_t LimitCheckEnable);
+
+/**
+ * @brief  Get specific limit check enable state
+ *
+ * @par Function Description
+ * This function get the enable state of a specific limit check.
+ * The limit check is identified with the LimitCheckId.
+ *
+ * @note This function Access to the device
+ *
+ * @param   Dev                           Device Handle
+ * @param   LimitCheckId                  Limit Check ID
+ *  (0<= LimitCheckId < VL53L0X_GetNumberOfLimitCheck() ).
+ * @param   pLimitCheckEnable             Pointer to the check limit enable
+ * value.
+ *  if 1 the check limit
+ *        corresponding to LimitCheckId is Enabled
+ *  if 0 the check limit
+ *        corresponding to LimitCheckId is disabled
+ * @return  VL53L0X_ERROR_NONE             Success
+ * @return  VL53L0X_ERROR_INVALID_PARAMS   This error is returned
+ *  when LimitCheckId value is out of range.
+ * @return  "Other error code"            See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_GetLimitCheckEnable(VL53L0X_DEV Dev,
+	uint16_t LimitCheckId, uint8_t *pLimitCheckEnable);
+
+/**
+ * @brief  Set a specific limit check value
+ *
+ * @par Function Description
+ * This function set a specific limit check value.
+ * The limit check is identified with the LimitCheckId.
+ *
+ * @note This function Access to the device
+ *
+ * @param   Dev                           Device Handle
+ * @param   LimitCheckId                  Limit Check ID
+ *  (0<= LimitCheckId < VL53L0X_GetNumberOfLimitCheck() ).
+ * @param   LimitCheckValue               Limit check Value for a given
+ * LimitCheckId
+ * @return  VL53L0X_ERROR_NONE             Success
+ * @return  VL53L0X_ERROR_INVALID_PARAMS   This error is returned when either
+ *  LimitCheckId or LimitCheckValue value is out of range.
+ * @return  "Other error code"            See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_SetLimitCheckValue(VL53L0X_DEV Dev,
+	uint16_t LimitCheckId, FixPoint1616_t LimitCheckValue);
+
+/**
+ * @brief  Get a specific limit check value
+ *
+ * @par Function Description
+ * This function get a specific limit check value from device then it updates
+ * internal values and check enables.
+ * The limit check is identified with the LimitCheckId.
+ *
+ * @note This function Access to the device
+ *
+ * @param   Dev                           Device Handle
+ * @param   LimitCheckId                  Limit Check ID
+ *  (0<= LimitCheckId < VL53L0X_GetNumberOfLimitCheck() ).
+ * @param   pLimitCheckValue              Pointer to Limit
+ *  check Value for a given LimitCheckId.
+ * @return  VL53L0X_ERROR_NONE             Success
+ * @return  VL53L0X_ERROR_INVALID_PARAMS   This error is returned
+ *  when LimitCheckId value is out of range.
+ * @return  "Other error code"            See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_GetLimitCheckValue(VL53L0X_DEV Dev,
+	uint16_t LimitCheckId, FixPoint1616_t *pLimitCheckValue);
+
+/**
+ * @brief  Get the current value of the signal used for the limit check
+ *
+ * @par Function Description
+ * This function get a the current value of the signal used for the limit check.
+ * To obtain the latest value you should run a ranging before.
+ * The value reported is linked to the limit check identified with the
+ * LimitCheckId.
+ *
+ * @note This function Access to the device
+ *
+ * @param   Dev                           Device Handle
+ * @param   LimitCheckId                  Limit Check ID
+ *  (0<= LimitCheckId < VL53L0X_GetNumberOfLimitCheck() ).
+ * @param   pLimitCheckCurrent            Pointer to current Value for a
+ * given LimitCheckId.
+ * @return  VL53L0X_ERROR_NONE             Success
+ * @return  VL53L0X_ERROR_INVALID_PARAMS   This error is returned when
+ * LimitCheckId value is out of range.
+ * @return  "Other error code"            See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_GetLimitCheckCurrent(VL53L0X_DEV Dev,
+	uint16_t LimitCheckId, FixPoint1616_t *pLimitCheckCurrent);
+
+/**
+ * @brief  Enable (or disable) Wrap around Check
+ *
+ * @note This function Access to the device
+ *
+ * @param   Dev                    Device Handle
+ * @param   WrapAroundCheckEnable  Wrap around Check to be set
+ *                                 0=disabled, other = enabled
+ * @return  VL53L0X_ERROR_NONE      Success
+ * @return  "Other error code"     See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_SetWrapAroundCheckEnable(VL53L0X_DEV Dev,
+		uint8_t WrapAroundCheckEnable);
+
+/**
+ * @brief  Get setup of Wrap around Check
+ *
+ * @par Function Description
+ * This function get the wrapAround check enable parameters
+ *
+ * @note This function Access to the device
+ *
+ * @param   Dev                     Device Handle
+ * @param   pWrapAroundCheckEnable  Pointer to the Wrap around Check state
+ *                                  0=disabled or 1 = enabled
+ * @return  VL53L0X_ERROR_NONE       Success
+ * @return  "Other error code"      See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_GetWrapAroundCheckEnable(VL53L0X_DEV Dev,
+		uint8_t *pWrapAroundCheckEnable);
+
+/**
+ * @brief   Set Dmax Calibration Parameters for a given device
+ * When one of the parameter is zero, this function will get parameter
+ * from NVM.
+ * @note This function doesn't Access to the device
+ *
+ * @param   Dev                    Device Handle
+ * @param   RangeMilliMeter        Calibration Distance
+ * @param   SignalRateRtnMegaCps   Signal rate return read at CalDistance
+ * @return  VL53L0X_ERROR_NONE      Success
+ * @return  "Other error code"     See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_SetDmaxCalParameters(VL53L0X_DEV Dev,
+		uint16_t RangeMilliMeter, FixPoint1616_t SignalRateRtnMegaCps);
+
+/**
+ * @brief  Get Dmax Calibration Parameters for a given device
+ *
+ *
+ * @note This function Access to the device
+ *
+ * @param   Dev                     Device Handle
+ * @param   pRangeMilliMeter        Pointer to Calibration Distance
+ * @param   pSignalRateRtnMegaCps   Pointer to Signal rate return
+ * @return  VL53L0X_ERROR_NONE       Success
+ * @return  "Other error code"      See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_GetDmaxCalParameters(VL53L0X_DEV Dev,
+	uint16_t *pRangeMilliMeter, FixPoint1616_t *pSignalRateRtnMegaCps);
+
+/** @} VL53L0X_parameters_group */
+
+/** @defgroup VL53L0X_measurement_group VL53L0X Measurement Functions
+ *  @brief    Functions used for the measurements
+ *  @{
+ */
+
+/**
+ * @brief Single shot measurement.
+ *
+ * @par Function Description
+ * Perform simple measurement sequence (Start measure, Wait measure to end,
+ * and returns when measurement is done).
+ * Once function returns, user can get valid data by calling
+ * VL53L0X_GetRangingMeasurement or VL53L0X_GetHistogramMeasurement
+ * depending on defined measurement mode
+ * User should Clear the interrupt in case this are enabled by using the
+ * function VL53L0X_ClearInterruptMask().
+ *
+ * @warning This function is a blocking function
+ *
+ * @note This function Access to the device
+ *
+ * @param   Dev                  Device Handle
+ * @return  VL53L0X_ERROR_NONE    Success
+ * @return  "Other error code"   See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_PerformSingleMeasurement(VL53L0X_DEV Dev);
+
+/**
+ * @brief Perform Reference Calibration
+ *
+ * @details Perform a reference calibration of the Device.
+ * This function should be run from time to time before doing
+ * a ranging measurement.
+ * This function will launch a special ranging measurement, so
+ * if interrupt are enable an interrupt will be done.
+ * This function will clear the interrupt generated automatically.
+ *
+ * @warning This function is a blocking function
+ *
+ * @note This function Access to the device
+ *
+ * @param   Dev                  Device Handle
+ * @param   pVhvSettings         Pointer to vhv settings parameter.
+ * @param   pPhaseCal            Pointer to PhaseCal parameter.
+ * @return  VL53L0X_ERROR_NONE    Success
+ * @return  "Other error code"   See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_PerformRefCalibration(VL53L0X_DEV Dev,
+	uint8_t *pVhvSettings, uint8_t *pPhaseCal);
+
+/**
+ * @brief Perform XTalk Measurement
+ *
+ * @details Measures the current cross talk from glass in front
+ * of the sensor.
+ * This functions performs a histogram measurement and uses the results
+ * to measure the crosstalk. For the function to be successful, there
+ * must be no target in front of the sensor.
+ *
+ * @warning This function is a blocking function
+ *
+ * @warning This function is not supported when the final range
+ * vcsel clock period is set below 10 PCLKS.
+ *
+ * @note This function Access to the device
+ *
+ * @param   Dev                  Device Handle
+ * @param   TimeoutMs            Histogram measurement duration.
+ * @param   pXtalkPerSpad        Output parameter containing the crosstalk
+ * measurement result, in MCPS/Spad. Format fixpoint 16:16.
+ * @param   pAmbientTooHigh      Output parameter which indicate that
+ * pXtalkPerSpad is not good if the Ambient is too high.
+ * @return  VL53L0X_ERROR_NONE    Success
+ * @return  VL53L0X_ERROR_INVALID_PARAMS vcsel clock period not supported
+ * for this operation. Must not be less than 10PCLKS.
+ * @return  "Other error code"   See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_PerformXTalkMeasurement(VL53L0X_DEV Dev,
+	uint32_t TimeoutMs, FixPoint1616_t *pXtalkPerSpad,
+	uint8_t *pAmbientTooHigh);
+
+/**
+ * @brief Perform XTalk Calibration
+ *
+ * @details Perform a XTalk calibration of the Device.
+ * This function will launch a ranging measurement, if interrupts
+ * are enabled an interrupt will be done.
+ * This function will clear the interrupt generated automatically.
+ * This function will program a new value for the XTalk compensation
+ * and it will enable the cross talk before exit.
+ * This function will disable the VL53L0X_CHECKENABLE_RANGE_IGNORE_THRESHOLD.
+ *
+ * @warning This function is a blocking function
+ *
+ * @note This function Access to the device
+ *
+ * @note This function change the device mode to
+ * VL53L0X_DEVICEMODE_SINGLE_RANGING
+ *
+ * @param   Dev                  Device Handle
+ * @param   XTalkCalDistance     XTalkCalDistance value used for the XTalk
+ * computation.
+ * @param   pXTalkCompensationRateMegaCps  Pointer to new
+ * XTalkCompensation value.
+ * @return  VL53L0X_ERROR_NONE    Success
+ * @return  "Other error code"   See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_PerformXTalkCalibration(VL53L0X_DEV Dev,
+	FixPoint1616_t XTalkCalDistance,
+	FixPoint1616_t *pXTalkCompensationRateMegaCps);
+
+/**
+ * @brief Perform Offset Calibration
+ *
+ * @details Perform a Offset calibration of the Device.
+ * This function will launch a ranging measurement, if interrupts are
+ * enabled an interrupt will be done.
+ * This function will clear the interrupt generated automatically.
+ * This function will program a new value for the Offset calibration value
+ * This function will disable the VL53L0X_CHECKENABLE_RANGE_IGNORE_THRESHOLD.
+ *
+ * @warning This function is a blocking function
+ *
+ * @note This function Access to the device
+ *
+ * @note This function does not change the device mode.
+ *
+ * @param   Dev                  Device Handle
+ * @param   CalDistanceMilliMeter     Calibration distance value used for the
+ * offset compensation.
+ * @param   pOffsetMicroMeter  Pointer to new Offset value computed by the
+ * function.
+ *
+ * @return  VL53L0X_ERROR_NONE    Success
+ * @return  "Other error code"   See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_PerformOffsetCalibration(VL53L0X_DEV Dev,
+	FixPoint1616_t CalDistanceMilliMeter, int32_t *pOffsetMicroMeter);
+
+/**
+ * @brief Start device measurement
+ *
+ * @details Started measurement will depend on device parameters set through
+ * @a VL53L0X_SetParameters()
+ * This is a non-blocking function.
+ * This function will change the VL53L0X_State from VL53L0X_STATE_IDLE to
+ * VL53L0X_STATE_RUNNING.
+ *
+ * @note This function Access to the device
+ *
+
+ * @param   Dev                  Device Handle
+ * @return  VL53L0X_ERROR_NONE                  Success
+ * @return  VL53L0X_ERROR_MODE_NOT_SUPPORTED    This error occurs when
+ * DeviceMode programmed with @a VL53L0X_SetDeviceMode is not in the supported
+ * list:
+ *                                   Supported mode are:
+ *                                   VL53L0X_DEVICEMODE_SINGLE_RANGING,
+ *                                   VL53L0X_DEVICEMODE_CONTINUOUS_RANGING,
+ *                                   VL53L0X_DEVICEMODE_CONTINUOUS_TIMED_RANGING
+ * @return  VL53L0X_ERROR_TIME_OUT    Time out on start measurement
+ * @return  "Other error code"   See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_StartMeasurement(VL53L0X_DEV Dev);
+
+/**
+ * @brief Stop device measurement
+ *
+ * @details Will set the device in standby mode at end of current measurement\n
+ *          Not necessary in single mode as device shall return automatically
+ *          in standby mode at end of measurement.
+ *          This function will change the VL53L0X_State from VL53L0X_STATE_RUNNING
+ *          to VL53L0X_STATE_IDLE.
+ *
+ * @note This function Access to the device
+ *
+ * @param   Dev                  Device Handle
+ * @return  VL53L0X_ERROR_NONE    Success
+ * @return  "Other error code"   See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_StopMeasurement(VL53L0X_DEV Dev);
+
+/**
+ * @brief Return Measurement Data Ready
+ *
+ * @par Function Description
+ * This function indicate that a measurement data is ready.
+ * This function check if interrupt mode is used then check is done accordingly.
+ * If perform function clear the interrupt, this function will not work,
+ * like in case of @a VL53L0X_PerformSingleRangingMeasurement().
+ * The previous function is blocking function, VL53L0X_GetMeasurementDataReady
+ * is used for non-blocking capture.
+ *
+ * @note This function Access to the device
+ *
+ * @param   Dev                    Device Handle
+ * @param   pMeasurementDataReady  Pointer to Measurement Data Ready.
+ *  0=data not ready, 1 = data ready
+ * @return  VL53L0X_ERROR_NONE      Success
+ * @return  "Other error code"     See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_GetMeasurementDataReady(VL53L0X_DEV Dev,
+	uint8_t *pMeasurementDataReady);
+
+/**
+ * @brief Wait for device ready for a new measurement command.
+ * Blocking function.
+ *
+ * @note This function is not Implemented
+ *
+ * @param   Dev      Device Handle
+ * @param   MaxLoop    Max Number of polling loop (timeout).
+ * @return  VL53L0X_ERROR_NOT_IMPLEMENTED   Not implemented
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_WaitDeviceReadyForNewMeasurement(VL53L0X_DEV Dev,
+	uint32_t MaxLoop);
+
+/**
+ * @brief Retrieve the Reference Signal after a measurements
+ *
+ * @par Function Description
+ * Get Reference Signal from last successful Ranging measurement
+ * This function return a valid value after that you call the
+ * @a VL53L0X_GetRangingMeasurementData().
+ *
+ * @note This function Access to the device
+ *
+ * @param   Dev                      Device Handle
+ * @param   pMeasurementRefSignal    Pointer to the Ref Signal to fill up.
+ * @return  VL53L0X_ERROR_NONE        Success
+ * @return  "Other error code"       See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_GetMeasurementRefSignal(VL53L0X_DEV Dev,
+	FixPoint1616_t *pMeasurementRefSignal);
+
+/**
+ * @brief Retrieve the measurements from device for a given setup
+ *
+ * @par Function Description
+ * Get data from last successful Ranging measurement
+ * @warning USER should take care about  @a VL53L0X_GetNumberOfROIZones()
+ * before get data.
+ * PAL will fill a NumberOfROIZones times the corresponding data
+ * structure used in the measurement function.
+ *
+ * @note This function Access to the device
+ *
+ * @param   Dev                      Device Handle
+ * @param   pRangingMeasurementData  Pointer to the data structure to fill up.
+ * @return  VL53L0X_ERROR_NONE        Success
+ * @return  "Other error code"       See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_GetRangingMeasurementData(VL53L0X_DEV Dev,
+	VL53L0X_RangingMeasurementData_t *pRangingMeasurementData);
+
+/**
+ * @brief Retrieve the measurements from device for a given setup
+ *
+ * @par Function Description
+ * Get data from last successful Histogram measurement
+ * @warning USER should take care about  @a VL53L0X_GetNumberOfROIZones()
+ * before get data.
+ * PAL will fill a NumberOfROIZones times the corresponding data structure
+ * used in the measurement function.
+ *
+ * @note This function is not Implemented
+ *
+ * @param   Dev                         Device Handle
+ * @param   pHistogramMeasurementData   Pointer to the histogram data structure.
+ * @return  VL53L0X_ERROR_NOT_IMPLEMENTED   Not implemented
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_GetHistogramMeasurementData(VL53L0X_DEV Dev,
+	VL53L0X_HistogramMeasurementData_t *pHistogramMeasurementData);
+
+/**
+ * @brief Performs a single ranging measurement and retrieve the ranging
+ * measurement data
+ *
+ * @par Function Description
+ * This function will change the device mode to VL53L0X_DEVICEMODE_SINGLE_RANGING
+ * with @a VL53L0X_SetDeviceMode(),
+ * It performs measurement with @a VL53L0X_PerformSingleMeasurement()
+ * It get data from last successful Ranging measurement with
+ * @a VL53L0X_GetRangingMeasurementData.
+ * Finally it clear the interrupt with @a VL53L0X_ClearInterruptMask().
+ *
+ * @note This function Access to the device
+ *
+ * @note This function change the device mode to
+ * VL53L0X_DEVICEMODE_SINGLE_RANGING
+ *
+ * @param   Dev                       Device Handle
+ * @param   pRangingMeasurementData   Pointer to the data structure to fill up.
+ * @return  VL53L0X_ERROR_NONE         Success
+ * @return  "Other error code"        See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_PerformSingleRangingMeasurement(VL53L0X_DEV Dev,
+	VL53L0X_RangingMeasurementData_t *pRangingMeasurementData);
+
+/**
+ * @brief Performs a single histogram measurement and retrieve the histogram
+ * measurement data
+ *   Is equivalent to VL53L0X_PerformSingleMeasurement +
+ *   VL53L0X_GetHistogramMeasurementData
+ *
+ * @par Function Description
+ * Get data from last successful Ranging measurement.
+ * This function will clear the interrupt in case of these are enabled.
+ *
+ * @note This function is not Implemented
+ *
+ * @param   Dev                        Device Handle
+ * @param   pHistogramMeasurementData  Pointer to the data structure to fill up.
+ * @return  VL53L0X_ERROR_NOT_IMPLEMENTED   Not implemented
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_PerformSingleHistogramMeasurement(VL53L0X_DEV Dev,
+	VL53L0X_HistogramMeasurementData_t *pHistogramMeasurementData);
+
+/**
+ * @brief Set the number of ROI Zones to be used for a specific Device
+ *
+ * @par Function Description
+ * Set the number of ROI Zones to be used for a specific Device.
+ * The programmed value should be less than the max number of ROI Zones given
+ * with @a VL53L0X_GetMaxNumberOfROIZones().
+ * This version of API manage only one zone.
+ *
+ * @param   Dev                           Device Handle
+ * @param   NumberOfROIZones              Number of ROI Zones to be used for a
+ *  specific Device.
+ * @return  VL53L0X_ERROR_NONE             Success
+ * @return  VL53L0X_ERROR_INVALID_PARAMS   This error is returned if
+ * NumberOfROIZones != 1
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_SetNumberOfROIZones(VL53L0X_DEV Dev,
+	uint8_t NumberOfROIZones);
+
+/**
+ * @brief Get the number of ROI Zones managed by the Device
+ *
+ * @par Function Description
+ * Get number of ROI Zones managed by the Device
+ * USER should take care about  @a VL53L0X_GetNumberOfROIZones()
+ * before get data after a perform measurement.
+ * PAL will fill a NumberOfROIZones times the corresponding data
+ * structure used in the measurement function.
+ *
+ * @note This function doesn't Access to the device
+ *
+ * @param   Dev                   Device Handle
+ * @param   pNumberOfROIZones     Pointer to the Number of ROI Zones value.
+ * @return  VL53L0X_ERROR_NONE     Success
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_GetNumberOfROIZones(VL53L0X_DEV Dev,
+	uint8_t *pNumberOfROIZones);
+
+/**
+ * @brief Get the Maximum number of ROI Zones managed by the Device
+ *
+ * @par Function Description
+ * Get Maximum number of ROI Zones managed by the Device.
+ *
+ * @note This function doesn't Access to the device
+ *
+ * @param   Dev                    Device Handle
+ * @param   pMaxNumberOfROIZones   Pointer to the Maximum Number
+ *  of ROI Zones value.
+ * @return  VL53L0X_ERROR_NONE      Success
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_GetMaxNumberOfROIZones(VL53L0X_DEV Dev,
+	uint8_t *pMaxNumberOfROIZones);
+
+/** @} VL53L0X_measurement_group */
+
+/** @defgroup VL53L0X_interrupt_group VL53L0X Interrupt Functions
+ *  @brief    Functions used for interrupt managements
+ *  @{
+ */
+
+/**
+ * @brief Set the configuration of GPIO pin for a given device
+ *
+ * @note This function Access to the device
+ *
+ * @param   Dev                   Device Handle
+ * @param   Pin                   ID of the GPIO Pin
+ * @param   Functionality         Select Pin functionality.
+ *  Refer to ::VL53L0X_GpioFunctionality
+ * @param   DeviceMode            Device Mode associated to the Gpio.
+ * @param   Polarity              Set interrupt polarity. Active high
+ *   or active low see ::VL53L0X_InterruptPolarity
+ * @return  VL53L0X_ERROR_NONE                            Success
+ * @return  VL53L0X_ERROR_GPIO_NOT_EXISTING               Only Pin=0 is accepted.
+ * @return  VL53L0X_ERROR_GPIO_FUNCTIONALITY_NOT_SUPPORTED    This error occurs
+ * when Functionality programmed is not in the supported list:
+ *                             Supported value are:
+ *                             VL53L0X_GPIOFUNCTIONALITY_OFF,
+ *                             VL53L0X_GPIOFUNCTIONALITY_THRESHOLD_CROSSED_LOW,
+ *                             VL53L0X_GPIOFUNCTIONALITY_THRESHOLD_CROSSED_HIGH,
+ VL53L0X_GPIOFUNCTIONALITY_THRESHOLD_CROSSED_OUT,
+ *                               VL53L0X_GPIOFUNCTIONALITY_NEW_MEASURE_READY
+ * @return  "Other error code"    See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_SetGpioConfig(VL53L0X_DEV Dev, uint8_t Pin,
+	VL53L0X_DeviceModes DeviceMode, VL53L0X_GpioFunctionality Functionality,
+	VL53L0X_InterruptPolarity Polarity);
+
+/**
+ * @brief Get current configuration for GPIO pin for a given device
+ *
+ * @note This function Access to the device
+ *
+ * @param   Dev                   Device Handle
+ * @param   Pin                   ID of the GPIO Pin
+ * @param   pDeviceMode           Pointer to Device Mode associated to the Gpio.
+ * @param   pFunctionality        Pointer to Pin functionality.
+ *  Refer to ::VL53L0X_GpioFunctionality
+ * @param   pPolarity             Pointer to interrupt polarity.
+ *  Active high or active low see ::VL53L0X_InterruptPolarity
+ * @return  VL53L0X_ERROR_NONE                            Success
+ * @return  VL53L0X_ERROR_GPIO_NOT_EXISTING               Only Pin=0 is accepted.
+ * @return  VL53L0X_ERROR_GPIO_FUNCTIONALITY_NOT_SUPPORTED   This error occurs
+ * when Functionality programmed is not in the supported list:
+ *                      Supported value are:
+ *                      VL53L0X_GPIOFUNCTIONALITY_OFF,
+ *                      VL53L0X_GPIOFUNCTIONALITY_THRESHOLD_CROSSED_LOW,
+ *                      VL53L0X_GPIOFUNCTIONALITY_THRESHOLD_CROSSED_HIGH,
+ *                      VL53L0X_GPIOFUNCTIONALITY_THRESHOLD_CROSSED_OUT,
+ *                      VL53L0X_GPIOFUNCTIONALITY_NEW_MEASURE_READY
+ * @return  "Other error code"    See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_GetGpioConfig(VL53L0X_DEV Dev, uint8_t Pin,
+	VL53L0X_DeviceModes *pDeviceMode,
+	VL53L0X_GpioFunctionality *pFunctionality,
+	VL53L0X_InterruptPolarity *pPolarity);
+
+/**
+ * @brief Set low and high Interrupt thresholds for a given mode
+ * (ranging, ALS, ...) for a given device
+ *
+ * @par Function Description
+ * Set low and high Interrupt thresholds for a given mode (ranging, ALS, ...)
+ * for a given device
+ *
+ * @note This function Access to the device
+ *
+ * @note DeviceMode is ignored for the current device
+ *
+ * @param   Dev              Device Handle
+ * @param   DeviceMode       Device Mode for which change thresholds
+ * @param   ThresholdLow     Low threshold (mm, lux ..., depending on the mode)
+ * @param   ThresholdHigh    High threshold (mm, lux ..., depending on the mode)
+ * @return  VL53L0X_ERROR_NONE    Success
+ * @return  "Other error code"   See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_SetInterruptThresholds(VL53L0X_DEV Dev,
+	VL53L0X_DeviceModes DeviceMode, FixPoint1616_t ThresholdLow,
+	FixPoint1616_t ThresholdHigh);
+
+/**
+ * @brief  Get high and low Interrupt thresholds for a given mode
+ *  (ranging, ALS, ...) for a given device
+ *
+ * @par Function Description
+ * Get high and low Interrupt thresholds for a given mode (ranging, ALS, ...)
+ * for a given device
+ *
+ * @note This function Access to the device
+ *
+ * @note DeviceMode is ignored for the current device
+ *
+ * @param   Dev              Device Handle
+ * @param   DeviceMode       Device Mode from which read thresholds
+ * @param   pThresholdLow    Low threshold (mm, lux ..., depending on the mode)
+ * @param   pThresholdHigh   High threshold (mm, lux ..., depending on the mode)
+ * @return  VL53L0X_ERROR_NONE   Success
+ * @return  "Other error code"  See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_GetInterruptThresholds(VL53L0X_DEV Dev,
+	VL53L0X_DeviceModes DeviceMode, FixPoint1616_t *pThresholdLow,
+	FixPoint1616_t *pThresholdHigh);
+
+/**
+ * @brief Return device stop completion status
+ *
+ * @par Function Description
+ * Returns stop completiob status.
+ * User shall call this function after a stop command
+ *
+ * @note This function Access to the device
+ *
+ * @param   Dev                    Device Handle
+ * @param   pStopStatus            Pointer to status variable to update
+ * @return  VL53L0X_ERROR_NONE      Success
+ * @return  "Other error code"     See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_GetStopCompletedStatus(VL53L0X_DEV Dev,
+	uint32_t *pStopStatus);
+
+
+/**
+ * @brief Clear given system interrupt condition
+ *
+ * @par Function Description
+ * Clear given interrupt(s).
+ *
+ * @note This function Access to the device
+ *
+ * @param   Dev                  Device Handle
+ * @param   InterruptMask        Mask of interrupts to clear
+ * @return  VL53L0X_ERROR_NONE    Success
+ * @return  VL53L0X_ERROR_INTERRUPT_NOT_CLEARED    Cannot clear interrupts
+ *
+ * @return  "Other error code"   See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_ClearInterruptMask(VL53L0X_DEV Dev,
+	uint32_t InterruptMask);
+
+/**
+ * @brief Return device interrupt status
+ *
+ * @par Function Description
+ * Returns currently raised interrupts by the device.
+ * User shall be able to activate/deactivate interrupts through
+ * @a VL53L0X_SetGpioConfig()
+ *
+ * @note This function Access to the device
+ *
+ * @param   Dev                    Device Handle
+ * @param   pInterruptMaskStatus   Pointer to status variable to update
+ * @return  VL53L0X_ERROR_NONE      Success
+ * @return  "Other error code"     See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_GetInterruptMaskStatus(VL53L0X_DEV Dev,
+	uint32_t *pInterruptMaskStatus);
+
+/**
+ * @brief Configure ranging interrupt reported to system
+ *
+ * @note This function is not Implemented
+ *
+ * @param   Dev                  Device Handle
+ * @param   InterruptMask         Mask of interrupt to Enable/disable
+ *  (0:interrupt disabled or 1: interrupt enabled)
+ * @return  VL53L0X_ERROR_NOT_IMPLEMENTED   Not implemented
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_EnableInterruptMask(VL53L0X_DEV Dev,
+	uint32_t InterruptMask);
+
+/** @} VL53L0X_interrupt_group */
+
+/** @defgroup VL53L0X_SPADfunctions_group VL53L0X SPAD Functions
+ *  @brief    Functions used for SPAD managements
+ *  @{
+ */
+
+/**
+ * @brief  Set the SPAD Ambient Damper Threshold value
+ *
+ * @par Function Description
+ * This function set the SPAD Ambient Damper Threshold value
+ *
+ * @note This function Access to the device
+ *
+ * @param   Dev                           Device Handle
+ * @param   SpadAmbientDamperThreshold    SPAD Ambient Damper Threshold value
+ * @return  VL53L0X_ERROR_NONE             Success
+ * @return  "Other error code"            See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_SetSpadAmbientDamperThreshold(VL53L0X_DEV Dev,
+	uint16_t SpadAmbientDamperThreshold);
+
+/**
+ * @brief  Get the current SPAD Ambient Damper Threshold value
+ *
+ * @par Function Description
+ * This function get the SPAD Ambient Damper Threshold value
+ *
+ * @note This function Access to the device
+ *
+ * @param   Dev                           Device Handle
+ * @param   pSpadAmbientDamperThreshold   Pointer to programmed
+ *                                        SPAD Ambient Damper Threshold value
+ * @return  VL53L0X_ERROR_NONE             Success
+ * @return  "Other error code"            See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_GetSpadAmbientDamperThreshold(VL53L0X_DEV Dev,
+	uint16_t *pSpadAmbientDamperThreshold);
+
+/**
+ * @brief  Set the SPAD Ambient Damper Factor value
+ *
+ * @par Function Description
+ * This function set the SPAD Ambient Damper Factor value
+ *
+ * @note This function Access to the device
+ *
+ * @param   Dev                           Device Handle
+ * @param   SpadAmbientDamperFactor       SPAD Ambient Damper Factor value
+ * @return  VL53L0X_ERROR_NONE             Success
+ * @return  "Other error code"            See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_SetSpadAmbientDamperFactor(VL53L0X_DEV Dev,
+	uint16_t SpadAmbientDamperFactor);
+
+/**
+ * @brief  Get the current SPAD Ambient Damper Factor value
+ *
+ * @par Function Description
+ * This function get the SPAD Ambient Damper Factor value
+ *
+ * @note This function Access to the device
+ *
+ * @param   Dev                           Device Handle
+ * @param   pSpadAmbientDamperFactor      Pointer to programmed SPAD Ambient
+ * Damper Factor value
+ * @return  VL53L0X_ERROR_NONE             Success
+ * @return  "Other error code"            See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_GetSpadAmbientDamperFactor(VL53L0X_DEV Dev,
+	uint16_t *pSpadAmbientDamperFactor);
+
+/**
+ * @brief Performs Reference Spad Management
+ *
+ * @par Function Description
+ * The reference SPAD initialization procedure determines the minimum amount
+ * of reference spads to be enables to achieve a target reference signal rate
+ * and should be performed once during initialization.
+ *
+ * @note This function Access to the device
+ *
+ * @note This function change the device mode to
+ * VL53L0X_DEVICEMODE_SINGLE_RANGING
+ *
+ * @param   Dev                          Device Handle
+ * @param   refSpadCount                 Reports ref Spad Count
+ * @param   isApertureSpads              Reports if spads are of type
+ *                                       aperture or non-aperture.
+ *                                       1:=aperture, 0:=Non-Aperture
+ * @return  VL53L0X_ERROR_NONE            Success
+ * @return  VL53L0X_ERROR_REF_SPAD_INIT   Error in the Ref Spad procedure.
+ * @return  "Other error code"           See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_PerformRefSpadManagement(VL53L0X_DEV Dev,
+	uint32_t *refSpadCount, uint8_t *isApertureSpads);
+
+/**
+ * @brief Applies Reference SPAD configuration
+ *
+ * @par Function Description
+ * This function applies a given number of reference spads, identified as
+ * either Aperture or Non-Aperture.
+ * The requested spad count and type are stored within the device specific
+ * parameters data for access by the host.
+ *
+ * @note This function Access to the device
+ *
+ * @param   Dev                          Device Handle
+ * @param   refSpadCount                 Number of ref spads.
+ * @param   isApertureSpads              Defines if spads are of type
+ *                                       aperture or non-aperture.
+ *                                       1:=aperture, 0:=Non-Aperture
+ * @return  VL53L0X_ERROR_NONE            Success
+ * @return  VL53L0X_ERROR_REF_SPAD_INIT   Error in the in the reference
+ *                                       spad configuration.
+ * @return  "Other error code"           See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_SetReferenceSpads(VL53L0X_DEV Dev,
+	uint32_t refSpadCount, uint8_t isApertureSpads);
+
+/**
+ * @brief Retrieves SPAD configuration
+ *
+ * @par Function Description
+ * This function retrieves the current number of applied reference spads
+ * and also their type : Aperture or Non-Aperture.
+ *
+ * @note This function Access to the device
+ *
+ * @param   Dev                          Device Handle
+ * @param   refSpadCount                 Number ref Spad Count
+ * @param   isApertureSpads              Reports if spads are of type
+ *                                       aperture or non-aperture.
+ *                                       1:=aperture, 0:=Non-Aperture
+ * @return  VL53L0X_ERROR_NONE            Success
+ * @return  VL53L0X_ERROR_REF_SPAD_INIT   Error in the in the reference
+ *                                       spad configuration.
+ * @return  "Other error code"           See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_GetReferenceSpads(VL53L0X_DEV Dev,
+	uint32_t *refSpadCount, uint8_t *isApertureSpads);
+
+/** @} VL53L0X_SPADfunctions_group */
+
+/** @} VL53L0X_cut11_group */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _VL53L0X_API_H_ */
diff --git a/STS/TOF/vl53l0x/vl53l0x_api_calibration.c b/STS/TOF/vl53l0x/vl53l0x_api_calibration.c
index 2995897..70a77a9 100644
--- a/STS/TOF/vl53l0x/vl53l0x_api_calibration.c
+++ b/STS/TOF/vl53l0x/vl53l0x_api_calibration.c
@@ -1,1276 +1,1276 @@
-/*******************************************************************************
- Copyright � 2016, STMicroelectronics International N.V.
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
- * 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.
- * 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, FITNESS FOR A PARTICULAR PURPOSE, AND
- NON-INFRINGEMENT OF INTELLECTUAL PROPERTY RIGHTS ARE DISCLAIMED.
- IN NO EVENT SHALL STMICROELECTRONICS INTERNATIONAL N.V. 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 "vl53l0x_api.h"
-#include "vl53l0x_api_core.h"
-#include "vl53l0x_api_calibration.h"
-
-#ifndef __KERNEL__
-#include <stdlib.h>
-#endif
-
-#define LOG_FUNCTION_START(fmt, ...) \
-	_LOG_FUNCTION_START(TRACE_MODULE_API, fmt, ##__VA_ARGS__)
-#define LOG_FUNCTION_END(status, ...) \
-	_LOG_FUNCTION_END(TRACE_MODULE_API, status, ##__VA_ARGS__)
-#define LOG_FUNCTION_END_FMT(status, fmt, ...) \
-	_LOG_FUNCTION_END_FMT(TRACE_MODULE_API, status, fmt, ##__VA_ARGS__)
-
-#define REF_ARRAY_SPAD_0  0
-#define REF_ARRAY_SPAD_5  5
-#define REF_ARRAY_SPAD_10 10
-
-uint32_t refArrayQuadrants[4] = {REF_ARRAY_SPAD_10, REF_ARRAY_SPAD_5,
-		REF_ARRAY_SPAD_0, REF_ARRAY_SPAD_5 };
-
-VL53L0X_Error VL53L0X_perform_xtalk_calibration(VL53L0X_DEV Dev,
-			FixPoint1616_t XTalkCalDistance,
-			FixPoint1616_t *pXTalkCompensationRateMegaCps)
-{
-	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
-	uint16_t sum_ranging = 0;
-	uint16_t sum_spads = 0;
-	FixPoint1616_t sum_signalRate = 0;
-	FixPoint1616_t total_count = 0;
-	uint8_t xtalk_meas = 0;
-	VL53L0X_RangingMeasurementData_t RangingMeasurementData;
-	FixPoint1616_t xTalkStoredMeanSignalRate;
-	FixPoint1616_t xTalkStoredMeanRange;
-	FixPoint1616_t xTalkStoredMeanRtnSpads;
-	uint32_t signalXTalkTotalPerSpad;
-	uint32_t xTalkStoredMeanRtnSpadsAsInt;
-	uint32_t xTalkCalDistanceAsInt;
-	FixPoint1616_t XTalkCompensationRateMegaCps;
-
-	if (XTalkCalDistance <= 0)
-		Status = VL53L0X_ERROR_INVALID_PARAMS;
-
-	/* Disable the XTalk compensation */
-	if (Status == VL53L0X_ERROR_NONE)
-		Status = VL53L0X_SetXTalkCompensationEnable(Dev, 0);
-
-	/* Disable the RIT */
-	if (Status == VL53L0X_ERROR_NONE) {
-		Status = VL53L0X_SetLimitCheckEnable(Dev,
-				VL53L0X_CHECKENABLE_RANGE_IGNORE_THRESHOLD, 0);
-	}
-
-	/* Perform 50 measurements and compute the averages */
-	if (Status == VL53L0X_ERROR_NONE) {
-		sum_ranging = 0;
-		sum_spads = 0;
-		sum_signalRate = 0;
-		total_count = 0;
-		for (xtalk_meas = 0; xtalk_meas < 50; xtalk_meas++) {
-			Status = VL53L0X_PerformSingleRangingMeasurement(Dev,
-				&RangingMeasurementData);
-
-			if (Status != VL53L0X_ERROR_NONE)
-				break;
-
-			/* The range is valid when RangeStatus = 0 */
-			if (RangingMeasurementData.RangeStatus == 0) {
-				sum_ranging = sum_ranging +
-					RangingMeasurementData.RangeMilliMeter;
-				sum_signalRate = sum_signalRate +
-				RangingMeasurementData.SignalRateRtnMegaCps;
-				sum_spads = sum_spads +
-				RangingMeasurementData.EffectiveSpadRtnCount
-					/ 256;
-				total_count = total_count + 1;
-			}
-		}
-
-		/* no valid values found */
-		if (total_count == 0)
-			Status = VL53L0X_ERROR_RANGE_ERROR;
-
-	}
-
-
-	if (Status == VL53L0X_ERROR_NONE) {
-		/* FixPoint1616_t / uint16_t = FixPoint1616_t */
-		xTalkStoredMeanSignalRate = sum_signalRate / total_count;
-		xTalkStoredMeanRange = (FixPoint1616_t)((uint32_t)(
-			sum_ranging << 16) / total_count);
-		xTalkStoredMeanRtnSpads = (FixPoint1616_t)((uint32_t)(
-			sum_spads << 16) / total_count);
-
-		/* Round Mean Spads to Whole Number.
-		 * Typically the calculated mean SPAD count is a whole number
-		 * or very close to a whole
-		 * number, therefore any truncation will not result in a
-		 * significant loss in accuracy.
-		 * Also, for a grey target at a typical distance of around
-		 * 400mm, around 220 SPADs will
-		 * be enabled, therefore, any truncation will result in a loss
-		 * of accuracy of less than
-		 * 0.5%.
-		 */
-		xTalkStoredMeanRtnSpadsAsInt = (xTalkStoredMeanRtnSpads +
-			0x8000) >> 16;
-
-		/* Round Cal Distance to Whole Number.
-		 * Note that the cal distance is in mm, therefore no resolution
-		 * is lost.*/
-		 xTalkCalDistanceAsInt = (XTalkCalDistance + 0x8000) >> 16;
-
-		if (xTalkStoredMeanRtnSpadsAsInt == 0 ||
-		   xTalkCalDistanceAsInt == 0 ||
-		   xTalkStoredMeanRange >= XTalkCalDistance) {
-			XTalkCompensationRateMegaCps = 0;
-		} else {
-			/* Round Cal Distance to Whole Number.
-			   Note that the cal distance is in mm, therefore no
-			   resolution is lost.*/
-			xTalkCalDistanceAsInt = (XTalkCalDistance +
-				0x8000) >> 16;
-
-			/* Apply division by mean spad count early in the
-			 * calculation to keep the numbers small.
-			 * This ensures we can maintain a 32bit calculation.
-			 * Fixed1616 / int := Fixed1616 */
-			signalXTalkTotalPerSpad = (xTalkStoredMeanSignalRate) /
-				xTalkStoredMeanRtnSpadsAsInt;
-
-			/* Complete the calculation for total Signal XTalk per
-			 * SPAD
-			 * Fixed1616 * (Fixed1616 - Fixed1616/int) :=
-			 * (2^16 * Fixed1616)
-			 */
-			signalXTalkTotalPerSpad *= ((1 << 16) -
-				(xTalkStoredMeanRange / xTalkCalDistanceAsInt));
-
-			/* Round from 2^16 * Fixed1616, to Fixed1616. */
-			XTalkCompensationRateMegaCps = (signalXTalkTotalPerSpad
-				+ 0x8000) >> 16;
-		}
-
-		*pXTalkCompensationRateMegaCps = XTalkCompensationRateMegaCps;
-
-		/* Enable the XTalk compensation */
-		if (Status == VL53L0X_ERROR_NONE)
-			Status = VL53L0X_SetXTalkCompensationEnable(Dev, 1);
-
-		/* Enable the XTalk compensation */
-		if (Status == VL53L0X_ERROR_NONE)
-			Status = VL53L0X_SetXTalkCompensationRateMegaCps(Dev,
-					XTalkCompensationRateMegaCps);
-
-	}
-
-	return Status;
-}
-
-VL53L0X_Error VL53L0X_perform_offset_calibration(VL53L0X_DEV Dev,
-			FixPoint1616_t CalDistanceMilliMeter,
-			int32_t *pOffsetMicroMeter)
-{
-	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
-	uint16_t sum_ranging = 0;
-	FixPoint1616_t total_count = 0;
-	VL53L0X_RangingMeasurementData_t RangingMeasurementData;
-	FixPoint1616_t StoredMeanRange;
-	uint32_t StoredMeanRangeAsInt;
-	uint32_t CalDistanceAsInt_mm;
-	uint8_t SequenceStepEnabled;
-	int meas = 0;
-
-	if (CalDistanceMilliMeter <= 0)
-		Status = VL53L0X_ERROR_INVALID_PARAMS;
-
-	if (Status == VL53L0X_ERROR_NONE)
-		Status = VL53L0X_SetOffsetCalibrationDataMicroMeter(Dev, 0);
-
-
-	/* Get the value of the TCC */
-	if (Status == VL53L0X_ERROR_NONE)
-		Status = VL53L0X_GetSequenceStepEnable(Dev,
-				VL53L0X_SEQUENCESTEP_TCC, &SequenceStepEnabled);
-
-
-	/* Disable the TCC */
-	if (Status == VL53L0X_ERROR_NONE)
-		Status = VL53L0X_SetSequenceStepEnable(Dev,
-				VL53L0X_SEQUENCESTEP_TCC, 0);
-
-
-	/* Disable the RIT */
-	if (Status == VL53L0X_ERROR_NONE)
-		Status = VL53L0X_SetLimitCheckEnable(Dev,
-				VL53L0X_CHECKENABLE_RANGE_IGNORE_THRESHOLD, 0);
-
-	/* Perform 50 measurements and compute the averages */
-	if (Status == VL53L0X_ERROR_NONE) {
-		sum_ranging = 0;
-		total_count = 0;
-		for (meas = 0; meas < 50; meas++) {
-			Status = VL53L0X_PerformSingleRangingMeasurement(Dev,
-					&RangingMeasurementData);
-
-			if (Status != VL53L0X_ERROR_NONE)
-				break;
-
-			/* The range is valid when RangeStatus = 0 */
-			if (RangingMeasurementData.RangeStatus == 0) {
-				sum_ranging = sum_ranging +
-					RangingMeasurementData.RangeMilliMeter;
-				total_count = total_count + 1;
-			}
-		}
-
-		/* no valid values found */
-		if (total_count == 0)
-			Status = VL53L0X_ERROR_RANGE_ERROR;
-	}
-
-
-	if (Status == VL53L0X_ERROR_NONE) {
-		/* FixPoint1616_t / uint16_t = FixPoint1616_t */
-		StoredMeanRange = (FixPoint1616_t)((uint32_t)(sum_ranging << 16)
-			/ total_count);
-
-		StoredMeanRangeAsInt = (StoredMeanRange + 0x8000) >> 16;
-
-		/* Round Cal Distance to Whole Number.
-		 * Note that the cal distance is in mm, therefore no resolution
-		 * is lost.*/
-		 CalDistanceAsInt_mm = (CalDistanceMilliMeter + 0x8000) >> 16;
-
-		 *pOffsetMicroMeter = (CalDistanceAsInt_mm -
-				 StoredMeanRangeAsInt) * 1000;
-
-		/* Apply the calculated offset */
-		if (Status == VL53L0X_ERROR_NONE) {
-			VL53L0X_SETPARAMETERFIELD(Dev, RangeOffsetMicroMeters,
-					*pOffsetMicroMeter);
-			Status = VL53L0X_SetOffsetCalibrationDataMicroMeter(Dev,
-					*pOffsetMicroMeter);
-		}
-
-	}
-
-	/* Restore the TCC */
-	if (Status == VL53L0X_ERROR_NONE) {
-		if (SequenceStepEnabled != 0)
-			Status = VL53L0X_SetSequenceStepEnable(Dev,
-					VL53L0X_SEQUENCESTEP_TCC, 1);
-	}
-
-	return Status;
-}
-
-
-VL53L0X_Error VL53L0X_set_offset_calibration_data_micro_meter(VL53L0X_DEV Dev,
-		int32_t OffsetCalibrationDataMicroMeter)
-{
-	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
-	int32_t cMaxOffsetMicroMeter = 511000;
-	int32_t cMinOffsetMicroMeter = -512000;
-	int16_t cOffsetRange = 4096;
-	uint32_t encodedOffsetVal;
-
-	LOG_FUNCTION_START("");
-
-	if (OffsetCalibrationDataMicroMeter > cMaxOffsetMicroMeter)
-		OffsetCalibrationDataMicroMeter = cMaxOffsetMicroMeter;
-	else if (OffsetCalibrationDataMicroMeter < cMinOffsetMicroMeter)
-		OffsetCalibrationDataMicroMeter = cMinOffsetMicroMeter;
-
-	/* The offset register is 10.2 format and units are mm
-	 * therefore conversion is applied by a division of
-	 * 250.
-	 */
-	if (OffsetCalibrationDataMicroMeter >= 0) {
-		encodedOffsetVal =
-			OffsetCalibrationDataMicroMeter/250;
-	} else {
-		encodedOffsetVal =
-			cOffsetRange +
-			OffsetCalibrationDataMicroMeter/250;
-	}
-
-	Status = VL53L0X_WrWord(Dev,
-		VL53L0X_REG_ALGO_PART_TO_PART_RANGE_OFFSET_MM,
-		encodedOffsetVal);
-
-	LOG_FUNCTION_END(Status);
-	return Status;
-}
-
-VL53L0X_Error VL53L0X_get_offset_calibration_data_micro_meter(VL53L0X_DEV Dev,
-		int32_t *pOffsetCalibrationDataMicroMeter)
-{
-	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
-	uint16_t RangeOffsetRegister;
-	int16_t cMaxOffset = 2047;
-	int16_t cOffsetRange = 4096;
-
-	/* Note that offset has 10.2 format */
-
-	Status = VL53L0X_RdWord(Dev,
-				VL53L0X_REG_ALGO_PART_TO_PART_RANGE_OFFSET_MM,
-				&RangeOffsetRegister);
-
-	if (Status == VL53L0X_ERROR_NONE) {
-		RangeOffsetRegister = (RangeOffsetRegister & 0x0fff);
-
-		/* Apply 12 bit 2's compliment conversion */
-		if (RangeOffsetRegister > cMaxOffset)
-			*pOffsetCalibrationDataMicroMeter =
-				(int16_t)(RangeOffsetRegister - cOffsetRange)
-					* 250;
-		else
-			*pOffsetCalibrationDataMicroMeter =
-				(int16_t)RangeOffsetRegister * 250;
-
-	}
-
-	return Status;
-}
-
-
-VL53L0X_Error VL53L0X_apply_offset_adjustment(VL53L0X_DEV Dev)
-{
-	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
-	int32_t CorrectedOffsetMicroMeters;
-	int32_t CurrentOffsetMicroMeters;
-
-	/* if we run on this function we can read all the NVM info
-	 * used by the API */
-	Status = VL53L0X_get_info_from_device(Dev, 7);
-
-	/* Read back current device offset */
-	if (Status == VL53L0X_ERROR_NONE) {
-		Status = VL53L0X_GetOffsetCalibrationDataMicroMeter(Dev,
-					&CurrentOffsetMicroMeters);
-	}
-
-	/* Apply Offset Adjustment derived from 400mm measurements */
-	if (Status == VL53L0X_ERROR_NONE) {
-
-		/* Store initial device offset */
-		PALDevDataSet(Dev, Part2PartOffsetNVMMicroMeter,
-			CurrentOffsetMicroMeters);
-
-		CorrectedOffsetMicroMeters = CurrentOffsetMicroMeters +
-			(int32_t)PALDevDataGet(Dev,
-				Part2PartOffsetAdjustmentNVMMicroMeter);
-
-		Status = VL53L0X_SetOffsetCalibrationDataMicroMeter(Dev,
-					CorrectedOffsetMicroMeters);
-
-		/* store current, adjusted offset */
-		if (Status == VL53L0X_ERROR_NONE) {
-			VL53L0X_SETPARAMETERFIELD(Dev, RangeOffsetMicroMeters,
-					CorrectedOffsetMicroMeters);
-		}
-	}
-
-	return Status;
-}
-
-void get_next_good_spad(uint8_t goodSpadArray[], uint32_t size,
-			uint32_t curr, int32_t *next)
-{
-	uint32_t startIndex;
-	uint32_t fineOffset;
-	uint32_t cSpadsPerByte = 8;
-	uint32_t coarseIndex;
-	uint32_t fineIndex;
-	uint8_t dataByte;
-	uint8_t success = 0;
-
-	/*
-	 * Starting with the current good spad, loop through the array to find
-	 * the next. i.e. the next bit set in the sequence.
-	 *
-	 * The coarse index is the byte index of the array and the fine index is
-	 * the index of the bit within each byte.
-	 */
-
-	*next = -1;
-
-	startIndex = curr / cSpadsPerByte;
-	fineOffset = curr % cSpadsPerByte;
-
-	for (coarseIndex = startIndex; ((coarseIndex < size) && !success);
-				coarseIndex++) {
-		fineIndex = 0;
-		dataByte = goodSpadArray[coarseIndex];
-
-		if (coarseIndex == startIndex) {
-			/* locate the bit position of the provided current
-			 * spad bit before iterating */
-			dataByte >>= fineOffset;
-			fineIndex = fineOffset;
-		}
-
-		while (fineIndex < cSpadsPerByte) {
-			if ((dataByte & 0x1) == 1) {
-				success = 1;
-				*next = coarseIndex * cSpadsPerByte + fineIndex;
-				break;
-			}
-			dataByte >>= 1;
-			fineIndex++;
-		}
-	}
-}
-
-
-uint8_t is_aperture(uint32_t spadIndex)
-{
-	/*
-	 * This function reports if a given spad index is an aperture SPAD by
-	 * deriving the quadrant.
-	 */
-	uint32_t quadrant;
-	uint8_t isAperture = 1;
-	quadrant = spadIndex >> 6;
-	if (refArrayQuadrants[quadrant] == REF_ARRAY_SPAD_0)
-		isAperture = 0;
-
-	return isAperture;
-}
-
-
-VL53L0X_Error enable_spad_bit(uint8_t spadArray[], uint32_t size,
-	uint32_t spadIndex)
-{
-	VL53L0X_Error status = VL53L0X_ERROR_NONE;
-	uint32_t cSpadsPerByte = 8;
-	uint32_t coarseIndex;
-	uint32_t fineIndex;
-
-	coarseIndex = spadIndex / cSpadsPerByte;
-	fineIndex = spadIndex % cSpadsPerByte;
-	if (coarseIndex >= size)
-		status = VL53L0X_ERROR_REF_SPAD_INIT;
-	else
-		spadArray[coarseIndex] |= (1 << fineIndex);
-
-	return status;
-}
-
-VL53L0X_Error count_enabled_spads(uint8_t spadArray[],
-		uint32_t byteCount, uint32_t maxSpads,
-		uint32_t *pTotalSpadsEnabled, uint8_t *pIsAperture)
-{
-	VL53L0X_Error status = VL53L0X_ERROR_NONE;
-	uint32_t cSpadsPerByte = 8;
-	uint32_t lastByte;
-	uint32_t lastBit;
-	uint32_t byteIndex = 0;
-	uint32_t bitIndex = 0;
-	uint8_t tempByte;
-	uint8_t spadTypeIdentified = 0;
-
-	/* The entire array will not be used for spads, therefore the last
-	 * byte and last bit is determined from the max spads value.
-	 */
-
-	lastByte = maxSpads / cSpadsPerByte;
-	lastBit = maxSpads % cSpadsPerByte;
-
-	/* Check that the max spads value does not exceed the array bounds. */
-	if (lastByte >= byteCount)
-		status = VL53L0X_ERROR_REF_SPAD_INIT;
-
-	*pTotalSpadsEnabled = 0;
-
-	/* Count the bits enabled in the whole bytes */
-	for (byteIndex = 0; byteIndex <= (lastByte - 1); byteIndex++) {
-		tempByte = spadArray[byteIndex];
-
-		for (bitIndex = 0; bitIndex <= cSpadsPerByte; bitIndex++) {
-			if ((tempByte & 0x01) == 1) {
-				(*pTotalSpadsEnabled)++;
-
-				if (!spadTypeIdentified) {
-					*pIsAperture = 1;
-					if ((byteIndex < 2) && (bitIndex < 4))
-							*pIsAperture = 0;
-					spadTypeIdentified = 1;
-				}
-			}
-			tempByte >>= 1;
-		}
-	}
-
-	/* Count the number of bits enabled in the last byte accounting
-	 * for the fact that not all bits in the byte may be used.
-	 */
-	tempByte = spadArray[lastByte];
-
-	for (bitIndex = 0; bitIndex <= lastBit; bitIndex++) {
-		if ((tempByte & 0x01) == 1)
-			(*pTotalSpadsEnabled)++;
-	}
-
-	return status;
-}
-
-VL53L0X_Error set_ref_spad_map(VL53L0X_DEV Dev, uint8_t *refSpadArray)
-{
-	VL53L0X_Error status = VL53L0X_WriteMulti(Dev,
-				VL53L0X_REG_GLOBAL_CONFIG_SPAD_ENABLES_REF_0,
-				refSpadArray, 6);
-	return status;
-}
-
-VL53L0X_Error get_ref_spad_map(VL53L0X_DEV Dev, uint8_t *refSpadArray)
-{
-	VL53L0X_Error status = VL53L0X_ReadMulti(Dev,
-				VL53L0X_REG_GLOBAL_CONFIG_SPAD_ENABLES_REF_0,
-				refSpadArray,
-				6);
-	return status;
-}
-
-VL53L0X_Error enable_ref_spads(VL53L0X_DEV Dev,
-				uint8_t apertureSpads,
-				uint8_t goodSpadArray[],
-				uint8_t spadArray[],
-				uint32_t size,
-				uint32_t start,
-				uint32_t offset,
-				uint32_t spadCount,
-				uint32_t *lastSpad)
-{
-	VL53L0X_Error status = VL53L0X_ERROR_NONE;
-	uint32_t index;
-	uint32_t i;
-	int32_t nextGoodSpad = offset;
-	uint32_t currentSpad;
-	uint8_t checkSpadArray[6];
-
-	/*
-	 * This function takes in a spad array which may or may not have SPADS
-	 * already enabled and appends from a given offset a requested number
-	 * of new SPAD enables. The 'good spad map' is applied to
-	 * determine the next SPADs to enable.
-	 *
-	 * This function applies to only aperture or only non-aperture spads.
-	 * Checks are performed to ensure this.
-	 */
-
-	currentSpad = offset;
-	for (index = 0; index < spadCount; index++) {
-		get_next_good_spad(goodSpadArray, size, currentSpad,
-			&nextGoodSpad);
-
-		if (nextGoodSpad == -1) {
-			status = VL53L0X_ERROR_REF_SPAD_INIT;
-			break;
-		}
-
-		/* Confirm that the next good SPAD is non-aperture */
-		if (is_aperture(start + nextGoodSpad) != apertureSpads) {
-			/* if we can't get the required number of good aperture
-			 * spads from the current quadrant then this is an error
-			 */
-			status = VL53L0X_ERROR_REF_SPAD_INIT;
-			break;
-		}
-		currentSpad = (uint32_t)nextGoodSpad;
-		enable_spad_bit(spadArray, size, currentSpad);
-		currentSpad++;
-	}
-	*lastSpad = currentSpad;
-
-	if (status == VL53L0X_ERROR_NONE)
-		status = set_ref_spad_map(Dev, spadArray);
-
-
-	if (status == VL53L0X_ERROR_NONE) {
-		status = get_ref_spad_map(Dev, checkSpadArray);
-
-		i = 0;
-
-		/* Compare spad maps. If not equal report error. */
-		while (i < size) {
-			if (spadArray[i] != checkSpadArray[i]) {
-				status = VL53L0X_ERROR_REF_SPAD_INIT;
-				break;
-			}
-			i++;
-		}
-	}
-	return status;
-}
-
-
-VL53L0X_Error perform_ref_signal_measurement(VL53L0X_DEV Dev,
-		uint16_t *refSignalRate)
-{
-	VL53L0X_Error status = VL53L0X_ERROR_NONE;
-	VL53L0X_RangingMeasurementData_t rangingMeasurementData;
-
-	uint8_t SequenceConfig = 0;
-
-	/* store the value of the sequence config,
-	 * this will be reset before the end of the function
-	 */
-
-	SequenceConfig = PALDevDataGet(Dev, SequenceConfig);
-
-	/*
-	 * This function performs a reference signal rate measurement.
-	 */
-	if (status == VL53L0X_ERROR_NONE)
-		status = VL53L0X_WrByte(Dev,
-			VL53L0X_REG_SYSTEM_SEQUENCE_CONFIG, 0xC0);
-
-	if (status == VL53L0X_ERROR_NONE)
-		status = VL53L0X_PerformSingleRangingMeasurement(Dev,
-				&rangingMeasurementData);
-
-	if (status == VL53L0X_ERROR_NONE)
-		status = VL53L0X_WrByte(Dev, 0xFF, 0x01);
-
-	if (status == VL53L0X_ERROR_NONE)
-		status = VL53L0X_RdWord(Dev,
-			VL53L0X_REG_RESULT_PEAK_SIGNAL_RATE_REF,
-			refSignalRate);
-
-	if (status == VL53L0X_ERROR_NONE)
-		status = VL53L0X_WrByte(Dev, 0xFF, 0x00);
-
-	if (status == VL53L0X_ERROR_NONE) {
-		/* restore the previous Sequence Config */
-		status = VL53L0X_WrByte(Dev, VL53L0X_REG_SYSTEM_SEQUENCE_CONFIG,
-				SequenceConfig);
-		if (status == VL53L0X_ERROR_NONE)
-			PALDevDataSet(Dev, SequenceConfig, SequenceConfig);
-	}
-
-	return status;
-}
-
-VL53L0X_Error VL53L0X_perform_ref_spad_management(VL53L0X_DEV Dev,
-				uint32_t *refSpadCount,
-				uint8_t *isApertureSpads)
-{
-	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
-	uint8_t lastSpadArray[6];
-	uint8_t startSelect = 0xB4;
-	uint32_t minimumSpadCount = 3;
-	uint32_t maxSpadCount = 44;
-	uint32_t currentSpadIndex = 0;
-	uint32_t lastSpadIndex = 0;
-	int32_t nextGoodSpad = 0;
-	uint16_t targetRefRate = 0x0A00; /* 20 MCPS in 9:7 format */
-	uint16_t peakSignalRateRef;
-	uint32_t needAptSpads = 0;
-	uint32_t index = 0;
-	uint32_t spadArraySize = 6;
-	uint32_t signalRateDiff = 0;
-	uint32_t lastSignalRateDiff = 0;
-	uint8_t complete = 0;
-	uint8_t VhvSettings = 0;
-	uint8_t PhaseCal = 0;
-	uint32_t refSpadCount_int = 0;
-	uint8_t	 isApertureSpads_int = 0;
-
-	/*
-	 * The reference SPAD initialization procedure determines the minimum
-	 * amount of reference spads to be enables to achieve a target reference
-	 * signal rate and should be performed once during initialization.
-	 *
-	 * Either aperture or non-aperture spads are applied but never both.
-	 * Firstly non-aperture spads are set, begining with 5 spads, and
-	 * increased one spad at a time until the closest measurement to the
-	 * target rate is achieved.
-	 *
-	 * If the target rate is exceeded when 5 non-aperture spads are enabled,
-	 * initialization is performed instead with aperture spads.
-	 *
-	 * When setting spads, a 'Good Spad Map' is applied.
-	 *
-	 * This procedure operates within a SPAD window of interest of a maximum
-	 * 44 spads.
-	 * The start point is currently fixed to 180, which lies towards the end
-	 * of the non-aperture quadrant and runs in to the adjacent aperture
-	 * quadrant.
-	 */
-
-
-	targetRefRate = PALDevDataGet(Dev, targetRefRate);
-
-	/*
-	 * Initialize Spad arrays.
-	 * Currently the good spad map is initialised to 'All good'.
-	 * This is a short term implementation. The good spad map will be
-	 * provided as an input.
-	 * Note that there are 6 bytes. Only the first 44 bits will be used to
-	 * represent spads.
-	 */
-	for (index = 0; index < spadArraySize; index++)
-		Dev->Data.SpadData.RefSpadEnables[index] = 0;
-
-
-	Status = VL53L0X_WrByte(Dev, 0xFF, 0x01);
-
-	if (Status == VL53L0X_ERROR_NONE)
-		Status = VL53L0X_WrByte(Dev,
-			VL53L0X_REG_DYNAMIC_SPAD_REF_EN_START_OFFSET, 0x00);
-
-	if (Status == VL53L0X_ERROR_NONE)
-		Status = VL53L0X_WrByte(Dev,
-			VL53L0X_REG_DYNAMIC_SPAD_NUM_REQUESTED_REF_SPAD, 0x2C);
-
-	if (Status == VL53L0X_ERROR_NONE)
-		Status = VL53L0X_WrByte(Dev, 0xFF, 0x00);
-
-	if (Status == VL53L0X_ERROR_NONE)
-		Status = VL53L0X_WrByte(Dev,
-			VL53L0X_REG_GLOBAL_CONFIG_REF_EN_START_SELECT,
-			startSelect);
-
-
-	if (Status == VL53L0X_ERROR_NONE)
-		Status = VL53L0X_WrByte(Dev,
-				VL53L0X_REG_POWER_MANAGEMENT_GO1_POWER_FORCE, 0);
-
-	/* Perform ref calibration */
-	if (Status == VL53L0X_ERROR_NONE)
-		Status = VL53L0X_perform_ref_calibration(Dev, &VhvSettings,
-			&PhaseCal, 0);
-
-	if (Status == VL53L0X_ERROR_NONE) {
-		/* Enable Minimum NON-APERTURE Spads */
-		currentSpadIndex = 0;
-		lastSpadIndex = currentSpadIndex;
-		needAptSpads = 0;
-		Status = enable_ref_spads(Dev,
-					needAptSpads,
-					Dev->Data.SpadData.RefGoodSpadMap,
-					Dev->Data.SpadData.RefSpadEnables,
-					spadArraySize,
-					startSelect,
-					currentSpadIndex,
-					minimumSpadCount,
-					&lastSpadIndex);
-	}
-
-	if (Status == VL53L0X_ERROR_NONE) {
-		currentSpadIndex = lastSpadIndex;
-
-		Status = perform_ref_signal_measurement(Dev,
-			&peakSignalRateRef);
-		if ((Status == VL53L0X_ERROR_NONE) &&
-			(peakSignalRateRef > targetRefRate)) {
-			/* Signal rate measurement too high,
-			 * switch to APERTURE SPADs */
-
-			for (index = 0; index < spadArraySize; index++)
-				Dev->Data.SpadData.RefSpadEnables[index] = 0;
-
-
-			/* Increment to the first APERTURE spad */
-			while ((is_aperture(startSelect + currentSpadIndex)
-				== 0) && (currentSpadIndex < maxSpadCount)) {
-				currentSpadIndex++;
-			}
-
-			needAptSpads = 1;
-
-			Status = enable_ref_spads(Dev,
-					needAptSpads,
-					Dev->Data.SpadData.RefGoodSpadMap,
-					Dev->Data.SpadData.RefSpadEnables,
-					spadArraySize,
-					startSelect,
-					currentSpadIndex,
-					minimumSpadCount,
-					&lastSpadIndex);
-
-			if (Status == VL53L0X_ERROR_NONE) {
-				currentSpadIndex = lastSpadIndex;
-				Status = perform_ref_signal_measurement(Dev,
-						&peakSignalRateRef);
-
-				if ((Status == VL53L0X_ERROR_NONE) &&
-					(peakSignalRateRef > targetRefRate)) {
-					/* Signal rate still too high after
-					 * setting the minimum number of
-					 * APERTURE spads. Can do no more
-					 * therefore set the min number of
-					 * aperture spads as the result.
-					 */
-					isApertureSpads_int = 1;
-					refSpadCount_int = minimumSpadCount;
-				}
-			}
-		} else {
-			needAptSpads = 0;
-		}
-	}
-
-	if ((Status == VL53L0X_ERROR_NONE) &&
-		(peakSignalRateRef < targetRefRate)) {
-		/* At this point, the minimum number of either aperture
-		 * or non-aperture spads have been set. Proceed to add
-		 * spads and perform measurements until the target
-		 * reference is reached.
-		 */
-		isApertureSpads_int = needAptSpads;
-		refSpadCount_int	= minimumSpadCount;
-
-		memcpy(lastSpadArray, Dev->Data.SpadData.RefSpadEnables,
-				spadArraySize);
-		lastSignalRateDiff = abs(peakSignalRateRef -
-			targetRefRate);
-		complete = 0;
-
-		while (!complete) {
-			get_next_good_spad(
-				Dev->Data.SpadData.RefGoodSpadMap,
-				spadArraySize, currentSpadIndex,
-				&nextGoodSpad);
-
-			if (nextGoodSpad == -1) {
-				Status = VL53L0X_ERROR_REF_SPAD_INIT;
-				break;
-			}
-
-			/* Cannot combine Aperture and Non-Aperture spads, so
-			 * ensure the current spad is of the correct type.
-			 */
-			if (is_aperture((uint32_t)startSelect + nextGoodSpad) !=
-					needAptSpads) {
-				/* At this point we have enabled the maximum
-				 * number of Aperture spads.
-				 */
-				complete = 1;
-				break;
-			}
-
-			(refSpadCount_int)++;
-
-			currentSpadIndex = nextGoodSpad;
-			Status = enable_spad_bit(
-					Dev->Data.SpadData.RefSpadEnables,
-					spadArraySize, currentSpadIndex);
-
-			if (Status == VL53L0X_ERROR_NONE) {
-				currentSpadIndex++;
-				/* Proceed to apply the additional spad and
-				 * perform measurement. */
-				Status = set_ref_spad_map(Dev,
-					Dev->Data.SpadData.RefSpadEnables);
-			}
-
-			if (Status != VL53L0X_ERROR_NONE)
-				break;
-
-			Status = perform_ref_signal_measurement(Dev,
-					&peakSignalRateRef);
-
-			if (Status != VL53L0X_ERROR_NONE)
-				break;
-
-			signalRateDiff = abs(peakSignalRateRef - targetRefRate);
-
-			if (peakSignalRateRef > targetRefRate) {
-				/* Select the spad map that provides the
-				 * measurement closest to the target rate,
-				 * either above or below it.
-				 */
-				if (signalRateDiff > lastSignalRateDiff) {
-					/* Previous spad map produced a closer
-					 * measurement, so choose this. */
-					Status = set_ref_spad_map(Dev,
-							lastSpadArray);
-					memcpy(
-					Dev->Data.SpadData.RefSpadEnables,
-					lastSpadArray, spadArraySize);
-
-					(refSpadCount_int)--;
-				}
-				complete = 1;
-			} else {
-				/* Continue to add spads */
-				lastSignalRateDiff = signalRateDiff;
-				memcpy(lastSpadArray,
-					Dev->Data.SpadData.RefSpadEnables,
-					spadArraySize);
-			}
-
-		} /* while */
-	}
-
-	if (Status == VL53L0X_ERROR_NONE) {
-		*refSpadCount = refSpadCount_int;
-		*isApertureSpads = isApertureSpads_int;
-
-		VL53L0X_SETDEVICESPECIFICPARAMETER(Dev, RefSpadsInitialised, 1);
-		VL53L0X_SETDEVICESPECIFICPARAMETER(Dev,
-			ReferenceSpadCount, (uint8_t)(*refSpadCount));
-		VL53L0X_SETDEVICESPECIFICPARAMETER(Dev,
-			ReferenceSpadType, *isApertureSpads);
-	}
-
-	return Status;
-}
-
-VL53L0X_Error VL53L0X_set_reference_spads(VL53L0X_DEV Dev,
-				 uint32_t count, uint8_t isApertureSpads)
-{
-	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
-	uint32_t currentSpadIndex = 0;
-	uint8_t startSelect = 0xB4;
-	uint32_t spadArraySize = 6;
-	uint32_t maxSpadCount = 44;
-	uint32_t lastSpadIndex;
-	uint32_t index;
-
-	/*
-	 * This function applies a requested number of reference spads, either
-	 * aperture or
-	 * non-aperture, as requested.
-	 * The good spad map will be applied.
-	 */
-
-	Status = VL53L0X_WrByte(Dev, 0xFF, 0x01);
-
-	if (Status == VL53L0X_ERROR_NONE)
-		Status = VL53L0X_WrByte(Dev,
-			VL53L0X_REG_DYNAMIC_SPAD_REF_EN_START_OFFSET, 0x00);
-
-	if (Status == VL53L0X_ERROR_NONE)
-		Status = VL53L0X_WrByte(Dev,
-			VL53L0X_REG_DYNAMIC_SPAD_NUM_REQUESTED_REF_SPAD, 0x2C);
-
-	if (Status == VL53L0X_ERROR_NONE)
-		Status = VL53L0X_WrByte(Dev, 0xFF, 0x00);
-
-	if (Status == VL53L0X_ERROR_NONE)
-		Status = VL53L0X_WrByte(Dev,
-			VL53L0X_REG_GLOBAL_CONFIG_REF_EN_START_SELECT,
-			startSelect);
-
-	for (index = 0; index < spadArraySize; index++)
-		Dev->Data.SpadData.RefSpadEnables[index] = 0;
-
-	if (isApertureSpads) {
-		/* Increment to the first APERTURE spad */
-		while ((is_aperture(startSelect + currentSpadIndex) == 0) &&
-			  (currentSpadIndex < maxSpadCount)) {
-			currentSpadIndex++;
-		}
-	}
-	Status = enable_ref_spads(Dev,
-				isApertureSpads,
-				Dev->Data.SpadData.RefGoodSpadMap,
-				Dev->Data.SpadData.RefSpadEnables,
-				spadArraySize,
-				startSelect,
-				currentSpadIndex,
-				count,
-				&lastSpadIndex);
-
-	if (Status == VL53L0X_ERROR_NONE) {
-		VL53L0X_SETDEVICESPECIFICPARAMETER(Dev, RefSpadsInitialised, 1);
-		VL53L0X_SETDEVICESPECIFICPARAMETER(Dev,
-			ReferenceSpadCount, (uint8_t)(count));
-		VL53L0X_SETDEVICESPECIFICPARAMETER(Dev,
-			ReferenceSpadType, isApertureSpads);
-	}
-
-	return Status;
-}
-
-VL53L0X_Error VL53L0X_get_reference_spads(VL53L0X_DEV Dev,
-			uint32_t *pSpadCount, uint8_t *pIsApertureSpads)
-{
-	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
-	uint8_t refSpadsInitialised;
-	uint8_t refSpadArray[6];
-	uint32_t cMaxSpadCount = 44;
-	uint32_t cSpadArraySize = 6;
-	uint32_t spadsEnabled;
-	uint8_t isApertureSpads = 0;
-
-	refSpadsInitialised = VL53L0X_GETDEVICESPECIFICPARAMETER(Dev,
-					RefSpadsInitialised);
-
-	if (refSpadsInitialised == 1) {
-
-		*pSpadCount = (uint32_t)VL53L0X_GETDEVICESPECIFICPARAMETER(Dev,
-			ReferenceSpadCount);
-		*pIsApertureSpads = VL53L0X_GETDEVICESPECIFICPARAMETER(Dev,
-			ReferenceSpadType);
-	} else {
-
-		/* obtain spad info from device.*/
-		Status = get_ref_spad_map(Dev, refSpadArray);
-
-		if (Status == VL53L0X_ERROR_NONE) {
-			/* count enabled spads within spad map array and
-			 * determine if Aperture or Non-Aperture.
-			 */
-			Status = count_enabled_spads(refSpadArray,
-							cSpadArraySize,
-							cMaxSpadCount,
-							&spadsEnabled,
-							&isApertureSpads);
-
-			if (Status == VL53L0X_ERROR_NONE) {
-
-				*pSpadCount = spadsEnabled;
-				*pIsApertureSpads = isApertureSpads;
-
-				VL53L0X_SETDEVICESPECIFICPARAMETER(Dev,
-					RefSpadsInitialised, 1);
-				VL53L0X_SETDEVICESPECIFICPARAMETER(Dev,
-					ReferenceSpadCount,
-					(uint8_t)spadsEnabled);
-				VL53L0X_SETDEVICESPECIFICPARAMETER(Dev,
-					ReferenceSpadType, isApertureSpads);
-			}
-		}
-	}
-
-	return Status;
-}
-
-
-VL53L0X_Error VL53L0X_perform_single_ref_calibration(VL53L0X_DEV Dev,
-		uint8_t vhv_init_byte)
-{
-	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
-
-	if (Status == VL53L0X_ERROR_NONE)
-		Status = VL53L0X_WrByte(Dev, VL53L0X_REG_SYSRANGE_START,
-				VL53L0X_REG_SYSRANGE_MODE_START_STOP |
-				vhv_init_byte);
-
-	if (Status == VL53L0X_ERROR_NONE)
-		Status = VL53L0X_measurement_poll_for_completion(Dev);
-
-	if (Status == VL53L0X_ERROR_NONE)
-		Status = VL53L0X_ClearInterruptMask(Dev, 0);
-
-	if (Status == VL53L0X_ERROR_NONE)
-		Status = VL53L0X_WrByte(Dev, VL53L0X_REG_SYSRANGE_START, 0x00);
-
-	return Status;
-}
-
-
-VL53L0X_Error VL53L0X_ref_calibration_io(VL53L0X_DEV Dev, uint8_t read_not_write,
-	uint8_t VhvSettings, uint8_t PhaseCal,
-	uint8_t *pVhvSettings, uint8_t *pPhaseCal,
-	const uint8_t vhv_enable, const uint8_t phase_enable)
-{
-	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
-	uint8_t PhaseCalint = 0;
-
-	/* Read VHV from device */
-	Status |= VL53L0X_WrByte(Dev, 0xFF, 0x01);
-	Status |= VL53L0X_WrByte(Dev, 0x00, 0x00);
-	Status |= VL53L0X_WrByte(Dev, 0xFF, 0x00);
-
-	if (read_not_write) {
-		if (vhv_enable)
-			Status |= VL53L0X_RdByte(Dev, 0xCB, pVhvSettings);
-		if (phase_enable)
-			Status |= VL53L0X_RdByte(Dev, 0xEE, &PhaseCalint);
-	} else {
-		if (vhv_enable)
-			Status |= VL53L0X_WrByte(Dev, 0xCB, VhvSettings);
-		if (phase_enable)
-			Status |= VL53L0X_UpdateByte(Dev, 0xEE, 0x80, PhaseCal);
-	}
-
-	Status |= VL53L0X_WrByte(Dev, 0xFF, 0x01);
-	Status |= VL53L0X_WrByte(Dev, 0x00, 0x01);
-	Status |= VL53L0X_WrByte(Dev, 0xFF, 0x00);
-
-	*pPhaseCal = (uint8_t)(PhaseCalint&0xEF);
-
-	return Status;
-}
-
-
-VL53L0X_Error VL53L0X_perform_vhv_calibration(VL53L0X_DEV Dev,
-	uint8_t *pVhvSettings, const uint8_t get_data_enable,
-	const uint8_t restore_config)
-{
-	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
-	uint8_t SequenceConfig = 0;
-	uint8_t VhvSettings = 0;
-	uint8_t PhaseCal = 0;
-	uint8_t PhaseCalInt = 0;
-
-	/* store the value of the sequence config,
-	 * this will be reset before the end of the function
-	 */
-
-	if (restore_config)
-		SequenceConfig = PALDevDataGet(Dev, SequenceConfig);
-
-	/* Run VHV */
-	Status = VL53L0X_WrByte(Dev, VL53L0X_REG_SYSTEM_SEQUENCE_CONFIG, 0x01);
-
-	if (Status == VL53L0X_ERROR_NONE)
-		Status = VL53L0X_perform_single_ref_calibration(Dev, 0x40);
-
-	/* Read VHV from device */
-	if ((Status == VL53L0X_ERROR_NONE) && (get_data_enable == 1)) {
-		Status = VL53L0X_ref_calibration_io(Dev, 1,
-			VhvSettings, PhaseCal, /* Not used here */
-			pVhvSettings, &PhaseCalInt,
-			1, 0);
-	} else
-		*pVhvSettings = 0;
-
-
-	if ((Status == VL53L0X_ERROR_NONE) && restore_config) {
-		/* restore the previous Sequence Config */
-		Status = VL53L0X_WrByte(Dev, VL53L0X_REG_SYSTEM_SEQUENCE_CONFIG,
-				SequenceConfig);
-		if (Status == VL53L0X_ERROR_NONE)
-			PALDevDataSet(Dev, SequenceConfig, SequenceConfig);
-
-	}
-
-	return Status;
-}
-
-VL53L0X_Error VL53L0X_perform_phase_calibration(VL53L0X_DEV Dev,
-	uint8_t *pPhaseCal, const uint8_t get_data_enable,
-	const uint8_t restore_config)
-{
-	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
-	uint8_t SequenceConfig = 0;
-	uint8_t VhvSettings = 0;
-	uint8_t PhaseCal = 0;
-	uint8_t VhvSettingsint;
-
-	/* store the value of the sequence config,
-	 * this will be reset before the end of the function
-	 */
-
-	if (restore_config)
-		SequenceConfig = PALDevDataGet(Dev, SequenceConfig);
-
-	/* Run PhaseCal */
-	Status = VL53L0X_WrByte(Dev, VL53L0X_REG_SYSTEM_SEQUENCE_CONFIG, 0x02);
-
-	if (Status == VL53L0X_ERROR_NONE)
-		Status = VL53L0X_perform_single_ref_calibration(Dev, 0x0);
-
-	/* Read PhaseCal from device */
-	if ((Status == VL53L0X_ERROR_NONE) && (get_data_enable == 1)) {
-		Status = VL53L0X_ref_calibration_io(Dev, 1,
-			VhvSettings, PhaseCal, /* Not used here */
-			&VhvSettingsint, pPhaseCal,
-			0, 1);
-	} else
-		*pPhaseCal = 0;
-
-
-	if ((Status == VL53L0X_ERROR_NONE) && restore_config) {
-		/* restore the previous Sequence Config */
-		Status = VL53L0X_WrByte(Dev, VL53L0X_REG_SYSTEM_SEQUENCE_CONFIG,
-				SequenceConfig);
-		if (Status == VL53L0X_ERROR_NONE)
-			PALDevDataSet(Dev, SequenceConfig, SequenceConfig);
-
-	}
-
-	return Status;
-}
-
-VL53L0X_Error VL53L0X_perform_ref_calibration(VL53L0X_DEV Dev,
-	uint8_t *pVhvSettings, uint8_t *pPhaseCal, uint8_t get_data_enable)
-{
-	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
-	uint8_t SequenceConfig = 0;
-
-	/* store the value of the sequence config,
-	 * this will be reset before the end of the function
-	 */
-
-	SequenceConfig = PALDevDataGet(Dev, SequenceConfig);
-
-	/* In the following function we don't save the config to optimize
-	 * writes on device. Config is saved and restored only once. */
-	Status = VL53L0X_perform_vhv_calibration(
-			Dev, pVhvSettings, get_data_enable, 0);
-
-
-	if (Status == VL53L0X_ERROR_NONE)
-		Status = VL53L0X_perform_phase_calibration(
-			Dev, pPhaseCal, get_data_enable, 0);
-
-
-	if (Status == VL53L0X_ERROR_NONE) {
-		/* restore the previous Sequence Config */
-		Status = VL53L0X_WrByte(Dev, VL53L0X_REG_SYSTEM_SEQUENCE_CONFIG,
-				SequenceConfig);
-		if (Status == VL53L0X_ERROR_NONE)
-			PALDevDataSet(Dev, SequenceConfig, SequenceConfig);
-
-	}
-
-	return Status;
-}
-
-VL53L0X_Error VL53L0X_set_ref_calibration(VL53L0X_DEV Dev,
-		uint8_t VhvSettings, uint8_t PhaseCal)
-{
-	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
-	uint8_t pVhvSettings;
-	uint8_t pPhaseCal;
-
-	Status = VL53L0X_ref_calibration_io(Dev, 0,
-		VhvSettings, PhaseCal,
-		&pVhvSettings, &pPhaseCal,
-		1, 1);
-
-	return Status;
-}
-
-VL53L0X_Error VL53L0X_get_ref_calibration(VL53L0X_DEV Dev,
-		uint8_t *pVhvSettings, uint8_t *pPhaseCal)
-{
-	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
-	uint8_t VhvSettings = 0;
-	uint8_t PhaseCal = 0;
-
-	Status = VL53L0X_ref_calibration_io(Dev, 1,
-		VhvSettings, PhaseCal,
-		pVhvSettings, pPhaseCal,
-		1, 1);
-
-	return Status;
-}
+/*******************************************************************************
+ Copyright � 2016, STMicroelectronics International N.V.
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ * 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.
+ * 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, FITNESS FOR A PARTICULAR PURPOSE, AND
+ NON-INFRINGEMENT OF INTELLECTUAL PROPERTY RIGHTS ARE DISCLAIMED.
+ IN NO EVENT SHALL STMICROELECTRONICS INTERNATIONAL N.V. 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 "vl53l0x_api.h"
+#include "vl53l0x_api_core.h"
+#include "vl53l0x_api_calibration.h"
+
+#ifndef __KERNEL__
+#include <stdlib.h>
+#endif
+
+#define LOG_FUNCTION_START(fmt, ...) \
+	_LOG_FUNCTION_START(TRACE_MODULE_API, fmt, ##__VA_ARGS__)
+#define LOG_FUNCTION_END(status, ...) \
+	_LOG_FUNCTION_END(TRACE_MODULE_API, status, ##__VA_ARGS__)
+#define LOG_FUNCTION_END_FMT(status, fmt, ...) \
+	_LOG_FUNCTION_END_FMT(TRACE_MODULE_API, status, fmt, ##__VA_ARGS__)
+
+#define REF_ARRAY_SPAD_0  0
+#define REF_ARRAY_SPAD_5  5
+#define REF_ARRAY_SPAD_10 10
+
+uint32_t refArrayQuadrants[4] = {REF_ARRAY_SPAD_10, REF_ARRAY_SPAD_5,
+		REF_ARRAY_SPAD_0, REF_ARRAY_SPAD_5 };
+
+VL53L0X_Error VL53L0X_perform_xtalk_calibration(VL53L0X_DEV Dev,
+			FixPoint1616_t XTalkCalDistance,
+			FixPoint1616_t *pXTalkCompensationRateMegaCps)
+{
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+	uint16_t sum_ranging = 0;
+	uint16_t sum_spads = 0;
+	FixPoint1616_t sum_signalRate = 0;
+	FixPoint1616_t total_count = 0;
+	uint8_t xtalk_meas = 0;
+	VL53L0X_RangingMeasurementData_t RangingMeasurementData;
+	FixPoint1616_t xTalkStoredMeanSignalRate;
+	FixPoint1616_t xTalkStoredMeanRange;
+	FixPoint1616_t xTalkStoredMeanRtnSpads;
+	uint32_t signalXTalkTotalPerSpad;
+	uint32_t xTalkStoredMeanRtnSpadsAsInt;
+	uint32_t xTalkCalDistanceAsInt;
+	FixPoint1616_t XTalkCompensationRateMegaCps;
+
+	if (XTalkCalDistance <= 0)
+		Status = VL53L0X_ERROR_INVALID_PARAMS;
+
+	/* Disable the XTalk compensation */
+	if (Status == VL53L0X_ERROR_NONE)
+		Status = VL53L0X_SetXTalkCompensationEnable(Dev, 0);
+
+	/* Disable the RIT */
+	if (Status == VL53L0X_ERROR_NONE) {
+		Status = VL53L0X_SetLimitCheckEnable(Dev,
+				VL53L0X_CHECKENABLE_RANGE_IGNORE_THRESHOLD, 0);
+	}
+
+	/* Perform 50 measurements and compute the averages */
+	if (Status == VL53L0X_ERROR_NONE) {
+		sum_ranging = 0;
+		sum_spads = 0;
+		sum_signalRate = 0;
+		total_count = 0;
+		for (xtalk_meas = 0; xtalk_meas < 50; xtalk_meas++) {
+			Status = VL53L0X_PerformSingleRangingMeasurement(Dev,
+				&RangingMeasurementData);
+
+			if (Status != VL53L0X_ERROR_NONE)
+				break;
+
+			/* The range is valid when RangeStatus = 0 */
+			if (RangingMeasurementData.RangeStatus == 0) {
+				sum_ranging = sum_ranging +
+					RangingMeasurementData.RangeMilliMeter;
+				sum_signalRate = sum_signalRate +
+				RangingMeasurementData.SignalRateRtnMegaCps;
+				sum_spads = sum_spads +
+				RangingMeasurementData.EffectiveSpadRtnCount
+					/ 256;
+				total_count = total_count + 1;
+			}
+		}
+
+		/* no valid values found */
+		if (total_count == 0)
+			Status = VL53L0X_ERROR_RANGE_ERROR;
+
+	}
+
+
+	if (Status == VL53L0X_ERROR_NONE) {
+		/* FixPoint1616_t / uint16_t = FixPoint1616_t */
+		xTalkStoredMeanSignalRate = sum_signalRate / total_count;
+		xTalkStoredMeanRange = (FixPoint1616_t)((uint32_t)(
+			sum_ranging << 16) / total_count);
+		xTalkStoredMeanRtnSpads = (FixPoint1616_t)((uint32_t)(
+			sum_spads << 16) / total_count);
+
+		/* Round Mean Spads to Whole Number.
+		 * Typically the calculated mean SPAD count is a whole number
+		 * or very close to a whole
+		 * number, therefore any truncation will not result in a
+		 * significant loss in accuracy.
+		 * Also, for a grey target at a typical distance of around
+		 * 400mm, around 220 SPADs will
+		 * be enabled, therefore, any truncation will result in a loss
+		 * of accuracy of less than
+		 * 0.5%.
+		 */
+		xTalkStoredMeanRtnSpadsAsInt = (xTalkStoredMeanRtnSpads +
+			0x8000) >> 16;
+
+		/* Round Cal Distance to Whole Number.
+		 * Note that the cal distance is in mm, therefore no resolution
+		 * is lost.*/
+		 xTalkCalDistanceAsInt = (XTalkCalDistance + 0x8000) >> 16;
+
+		if (xTalkStoredMeanRtnSpadsAsInt == 0 ||
+		   xTalkCalDistanceAsInt == 0 ||
+		   xTalkStoredMeanRange >= XTalkCalDistance) {
+			XTalkCompensationRateMegaCps = 0;
+		} else {
+			/* Round Cal Distance to Whole Number.
+			   Note that the cal distance is in mm, therefore no
+			   resolution is lost.*/
+			xTalkCalDistanceAsInt = (XTalkCalDistance +
+				0x8000) >> 16;
+
+			/* Apply division by mean spad count early in the
+			 * calculation to keep the numbers small.
+			 * This ensures we can maintain a 32bit calculation.
+			 * Fixed1616 / int := Fixed1616 */
+			signalXTalkTotalPerSpad = (xTalkStoredMeanSignalRate) /
+				xTalkStoredMeanRtnSpadsAsInt;
+
+			/* Complete the calculation for total Signal XTalk per
+			 * SPAD
+			 * Fixed1616 * (Fixed1616 - Fixed1616/int) :=
+			 * (2^16 * Fixed1616)
+			 */
+			signalXTalkTotalPerSpad *= ((1 << 16) -
+				(xTalkStoredMeanRange / xTalkCalDistanceAsInt));
+
+			/* Round from 2^16 * Fixed1616, to Fixed1616. */
+			XTalkCompensationRateMegaCps = (signalXTalkTotalPerSpad
+				+ 0x8000) >> 16;
+		}
+
+		*pXTalkCompensationRateMegaCps = XTalkCompensationRateMegaCps;
+
+		/* Enable the XTalk compensation */
+		if (Status == VL53L0X_ERROR_NONE)
+			Status = VL53L0X_SetXTalkCompensationEnable(Dev, 1);
+
+		/* Enable the XTalk compensation */
+		if (Status == VL53L0X_ERROR_NONE)
+			Status = VL53L0X_SetXTalkCompensationRateMegaCps(Dev,
+					XTalkCompensationRateMegaCps);
+
+	}
+
+	return Status;
+}
+
+VL53L0X_Error VL53L0X_perform_offset_calibration(VL53L0X_DEV Dev,
+			FixPoint1616_t CalDistanceMilliMeter,
+			int32_t *pOffsetMicroMeter)
+{
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+	uint16_t sum_ranging = 0;
+	FixPoint1616_t total_count = 0;
+	VL53L0X_RangingMeasurementData_t RangingMeasurementData;
+	FixPoint1616_t StoredMeanRange;
+	uint32_t StoredMeanRangeAsInt;
+	uint32_t CalDistanceAsInt_mm;
+	uint8_t SequenceStepEnabled;
+	int meas = 0;
+
+	if (CalDistanceMilliMeter <= 0)
+		Status = VL53L0X_ERROR_INVALID_PARAMS;
+
+	if (Status == VL53L0X_ERROR_NONE)
+		Status = VL53L0X_SetOffsetCalibrationDataMicroMeter(Dev, 0);
+
+
+	/* Get the value of the TCC */
+	if (Status == VL53L0X_ERROR_NONE)
+		Status = VL53L0X_GetSequenceStepEnable(Dev,
+				VL53L0X_SEQUENCESTEP_TCC, &SequenceStepEnabled);
+
+
+	/* Disable the TCC */
+	if (Status == VL53L0X_ERROR_NONE)
+		Status = VL53L0X_SetSequenceStepEnable(Dev,
+				VL53L0X_SEQUENCESTEP_TCC, 0);
+
+
+	/* Disable the RIT */
+	if (Status == VL53L0X_ERROR_NONE)
+		Status = VL53L0X_SetLimitCheckEnable(Dev,
+				VL53L0X_CHECKENABLE_RANGE_IGNORE_THRESHOLD, 0);
+
+	/* Perform 50 measurements and compute the averages */
+	if (Status == VL53L0X_ERROR_NONE) {
+		sum_ranging = 0;
+		total_count = 0;
+		for (meas = 0; meas < 50; meas++) {
+			Status = VL53L0X_PerformSingleRangingMeasurement(Dev,
+					&RangingMeasurementData);
+
+			if (Status != VL53L0X_ERROR_NONE)
+				break;
+
+			/* The range is valid when RangeStatus = 0 */
+			if (RangingMeasurementData.RangeStatus == 0) {
+				sum_ranging = sum_ranging +
+					RangingMeasurementData.RangeMilliMeter;
+				total_count = total_count + 1;
+			}
+		}
+
+		/* no valid values found */
+		if (total_count == 0)
+			Status = VL53L0X_ERROR_RANGE_ERROR;
+	}
+
+
+	if (Status == VL53L0X_ERROR_NONE) {
+		/* FixPoint1616_t / uint16_t = FixPoint1616_t */
+		StoredMeanRange = (FixPoint1616_t)((uint32_t)(sum_ranging << 16)
+			/ total_count);
+
+		StoredMeanRangeAsInt = (StoredMeanRange + 0x8000) >> 16;
+
+		/* Round Cal Distance to Whole Number.
+		 * Note that the cal distance is in mm, therefore no resolution
+		 * is lost.*/
+		 CalDistanceAsInt_mm = (CalDistanceMilliMeter + 0x8000) >> 16;
+
+		 *pOffsetMicroMeter = (CalDistanceAsInt_mm -
+				 StoredMeanRangeAsInt) * 1000;
+
+		/* Apply the calculated offset */
+		if (Status == VL53L0X_ERROR_NONE) {
+			VL53L0X_SETPARAMETERFIELD(Dev, RangeOffsetMicroMeters,
+					*pOffsetMicroMeter);
+			Status = VL53L0X_SetOffsetCalibrationDataMicroMeter(Dev,
+					*pOffsetMicroMeter);
+		}
+
+	}
+
+	/* Restore the TCC */
+	if (Status == VL53L0X_ERROR_NONE) {
+		if (SequenceStepEnabled != 0)
+			Status = VL53L0X_SetSequenceStepEnable(Dev,
+					VL53L0X_SEQUENCESTEP_TCC, 1);
+	}
+
+	return Status;
+}
+
+
+VL53L0X_Error VL53L0X_set_offset_calibration_data_micro_meter(VL53L0X_DEV Dev,
+		int32_t OffsetCalibrationDataMicroMeter)
+{
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+	int32_t cMaxOffsetMicroMeter = 511000;
+	int32_t cMinOffsetMicroMeter = -512000;
+	int16_t cOffsetRange = 4096;
+	uint32_t encodedOffsetVal;
+
+	LOG_FUNCTION_START("");
+
+	if (OffsetCalibrationDataMicroMeter > cMaxOffsetMicroMeter)
+		OffsetCalibrationDataMicroMeter = cMaxOffsetMicroMeter;
+	else if (OffsetCalibrationDataMicroMeter < cMinOffsetMicroMeter)
+		OffsetCalibrationDataMicroMeter = cMinOffsetMicroMeter;
+
+	/* The offset register is 10.2 format and units are mm
+	 * therefore conversion is applied by a division of
+	 * 250.
+	 */
+	if (OffsetCalibrationDataMicroMeter >= 0) {
+		encodedOffsetVal =
+			OffsetCalibrationDataMicroMeter/250;
+	} else {
+		encodedOffsetVal =
+			cOffsetRange +
+			OffsetCalibrationDataMicroMeter/250;
+	}
+
+	Status = VL53L0X_WrWord(Dev,
+		VL53L0X_REG_ALGO_PART_TO_PART_RANGE_OFFSET_MM,
+		encodedOffsetVal);
+
+	LOG_FUNCTION_END(Status);
+	return Status;
+}
+
+VL53L0X_Error VL53L0X_get_offset_calibration_data_micro_meter(VL53L0X_DEV Dev,
+		int32_t *pOffsetCalibrationDataMicroMeter)
+{
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+	uint16_t RangeOffsetRegister;
+	int16_t cMaxOffset = 2047;
+	int16_t cOffsetRange = 4096;
+
+	/* Note that offset has 10.2 format */
+
+	Status = VL53L0X_RdWord(Dev,
+				VL53L0X_REG_ALGO_PART_TO_PART_RANGE_OFFSET_MM,
+				&RangeOffsetRegister);
+
+	if (Status == VL53L0X_ERROR_NONE) {
+		RangeOffsetRegister = (RangeOffsetRegister & 0x0fff);
+
+		/* Apply 12 bit 2's compliment conversion */
+		if (RangeOffsetRegister > cMaxOffset)
+			*pOffsetCalibrationDataMicroMeter =
+				(int16_t)(RangeOffsetRegister - cOffsetRange)
+					* 250;
+		else
+			*pOffsetCalibrationDataMicroMeter =
+				(int16_t)RangeOffsetRegister * 250;
+
+	}
+
+	return Status;
+}
+
+
+VL53L0X_Error VL53L0X_apply_offset_adjustment(VL53L0X_DEV Dev)
+{
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+	int32_t CorrectedOffsetMicroMeters;
+	int32_t CurrentOffsetMicroMeters;
+
+	/* if we run on this function we can read all the NVM info
+	 * used by the API */
+	Status = VL53L0X_get_info_from_device(Dev, 7);
+
+	/* Read back current device offset */
+	if (Status == VL53L0X_ERROR_NONE) {
+		Status = VL53L0X_GetOffsetCalibrationDataMicroMeter(Dev,
+					&CurrentOffsetMicroMeters);
+	}
+
+	/* Apply Offset Adjustment derived from 400mm measurements */
+	if (Status == VL53L0X_ERROR_NONE) {
+
+		/* Store initial device offset */
+		PALDevDataSet(Dev, Part2PartOffsetNVMMicroMeter,
+			CurrentOffsetMicroMeters);
+
+		CorrectedOffsetMicroMeters = CurrentOffsetMicroMeters +
+			(int32_t)PALDevDataGet(Dev,
+				Part2PartOffsetAdjustmentNVMMicroMeter);
+
+		Status = VL53L0X_SetOffsetCalibrationDataMicroMeter(Dev,
+					CorrectedOffsetMicroMeters);
+
+		/* store current, adjusted offset */
+		if (Status == VL53L0X_ERROR_NONE) {
+			VL53L0X_SETPARAMETERFIELD(Dev, RangeOffsetMicroMeters,
+					CorrectedOffsetMicroMeters);
+		}
+	}
+
+	return Status;
+}
+
+void get_next_good_spad(uint8_t goodSpadArray[], uint32_t size,
+			uint32_t curr, int32_t *next)
+{
+	uint32_t startIndex;
+	uint32_t fineOffset;
+	uint32_t cSpadsPerByte = 8;
+	uint32_t coarseIndex;
+	uint32_t fineIndex;
+	uint8_t dataByte;
+	uint8_t success = 0;
+
+	/*
+	 * Starting with the current good spad, loop through the array to find
+	 * the next. i.e. the next bit set in the sequence.
+	 *
+	 * The coarse index is the byte index of the array and the fine index is
+	 * the index of the bit within each byte.
+	 */
+
+	*next = -1;
+
+	startIndex = curr / cSpadsPerByte;
+	fineOffset = curr % cSpadsPerByte;
+
+	for (coarseIndex = startIndex; ((coarseIndex < size) && !success);
+				coarseIndex++) {
+		fineIndex = 0;
+		dataByte = goodSpadArray[coarseIndex];
+
+		if (coarseIndex == startIndex) {
+			/* locate the bit position of the provided current
+			 * spad bit before iterating */
+			dataByte >>= fineOffset;
+			fineIndex = fineOffset;
+		}
+
+		while (fineIndex < cSpadsPerByte) {
+			if ((dataByte & 0x1) == 1) {
+				success = 1;
+				*next = coarseIndex * cSpadsPerByte + fineIndex;
+				break;
+			}
+			dataByte >>= 1;
+			fineIndex++;
+		}
+	}
+}
+
+
+uint8_t is_aperture(uint32_t spadIndex)
+{
+	/*
+	 * This function reports if a given spad index is an aperture SPAD by
+	 * deriving the quadrant.
+	 */
+	uint32_t quadrant;
+	uint8_t isAperture = 1;
+	quadrant = spadIndex >> 6;
+	if (refArrayQuadrants[quadrant] == REF_ARRAY_SPAD_0)
+		isAperture = 0;
+
+	return isAperture;
+}
+
+
+VL53L0X_Error enable_spad_bit(uint8_t spadArray[], uint32_t size,
+	uint32_t spadIndex)
+{
+	VL53L0X_Error status = VL53L0X_ERROR_NONE;
+	uint32_t cSpadsPerByte = 8;
+	uint32_t coarseIndex;
+	uint32_t fineIndex;
+
+	coarseIndex = spadIndex / cSpadsPerByte;
+	fineIndex = spadIndex % cSpadsPerByte;
+	if (coarseIndex >= size)
+		status = VL53L0X_ERROR_REF_SPAD_INIT;
+	else
+		spadArray[coarseIndex] |= (1 << fineIndex);
+
+	return status;
+}
+
+VL53L0X_Error count_enabled_spads(uint8_t spadArray[],
+		uint32_t byteCount, uint32_t maxSpads,
+		uint32_t *pTotalSpadsEnabled, uint8_t *pIsAperture)
+{
+	VL53L0X_Error status = VL53L0X_ERROR_NONE;
+	uint32_t cSpadsPerByte = 8;
+	uint32_t lastByte;
+	uint32_t lastBit;
+	uint32_t byteIndex = 0;
+	uint32_t bitIndex = 0;
+	uint8_t tempByte;
+	uint8_t spadTypeIdentified = 0;
+
+	/* The entire array will not be used for spads, therefore the last
+	 * byte and last bit is determined from the max spads value.
+	 */
+
+	lastByte = maxSpads / cSpadsPerByte;
+	lastBit = maxSpads % cSpadsPerByte;
+
+	/* Check that the max spads value does not exceed the array bounds. */
+	if (lastByte >= byteCount)
+		status = VL53L0X_ERROR_REF_SPAD_INIT;
+
+	*pTotalSpadsEnabled = 0;
+
+	/* Count the bits enabled in the whole bytes */
+	for (byteIndex = 0; byteIndex <= (lastByte - 1); byteIndex++) {
+		tempByte = spadArray[byteIndex];
+
+		for (bitIndex = 0; bitIndex <= cSpadsPerByte; bitIndex++) {
+			if ((tempByte & 0x01) == 1) {
+				(*pTotalSpadsEnabled)++;
+
+				if (!spadTypeIdentified) {
+					*pIsAperture = 1;
+					if ((byteIndex < 2) && (bitIndex < 4))
+							*pIsAperture = 0;
+					spadTypeIdentified = 1;
+				}
+			}
+			tempByte >>= 1;
+		}
+	}
+
+	/* Count the number of bits enabled in the last byte accounting
+	 * for the fact that not all bits in the byte may be used.
+	 */
+	tempByte = spadArray[lastByte];
+
+	for (bitIndex = 0; bitIndex <= lastBit; bitIndex++) {
+		if ((tempByte & 0x01) == 1)
+			(*pTotalSpadsEnabled)++;
+	}
+
+	return status;
+}
+
+VL53L0X_Error set_ref_spad_map(VL53L0X_DEV Dev, uint8_t *refSpadArray)
+{
+	VL53L0X_Error status = VL53L0X_WriteMulti(Dev,
+				VL53L0X_REG_GLOBAL_CONFIG_SPAD_ENABLES_REF_0,
+				refSpadArray, 6);
+	return status;
+}
+
+VL53L0X_Error get_ref_spad_map(VL53L0X_DEV Dev, uint8_t *refSpadArray)
+{
+	VL53L0X_Error status = VL53L0X_ReadMulti(Dev,
+				VL53L0X_REG_GLOBAL_CONFIG_SPAD_ENABLES_REF_0,
+				refSpadArray,
+				6);
+	return status;
+}
+
+VL53L0X_Error enable_ref_spads(VL53L0X_DEV Dev,
+				uint8_t apertureSpads,
+				uint8_t goodSpadArray[],
+				uint8_t spadArray[],
+				uint32_t size,
+				uint32_t start,
+				uint32_t offset,
+				uint32_t spadCount,
+				uint32_t *lastSpad)
+{
+	VL53L0X_Error status = VL53L0X_ERROR_NONE;
+	uint32_t index;
+	uint32_t i;
+	int32_t nextGoodSpad = offset;
+	uint32_t currentSpad;
+	uint8_t checkSpadArray[6];
+
+	/*
+	 * This function takes in a spad array which may or may not have SPADS
+	 * already enabled and appends from a given offset a requested number
+	 * of new SPAD enables. The 'good spad map' is applied to
+	 * determine the next SPADs to enable.
+	 *
+	 * This function applies to only aperture or only non-aperture spads.
+	 * Checks are performed to ensure this.
+	 */
+
+	currentSpad = offset;
+	for (index = 0; index < spadCount; index++) {
+		get_next_good_spad(goodSpadArray, size, currentSpad,
+			&nextGoodSpad);
+
+		if (nextGoodSpad == -1) {
+			status = VL53L0X_ERROR_REF_SPAD_INIT;
+			break;
+		}
+
+		/* Confirm that the next good SPAD is non-aperture */
+		if (is_aperture(start + nextGoodSpad) != apertureSpads) {
+			/* if we can't get the required number of good aperture
+			 * spads from the current quadrant then this is an error
+			 */
+			status = VL53L0X_ERROR_REF_SPAD_INIT;
+			break;
+		}
+		currentSpad = (uint32_t)nextGoodSpad;
+		enable_spad_bit(spadArray, size, currentSpad);
+		currentSpad++;
+	}
+	*lastSpad = currentSpad;
+
+	if (status == VL53L0X_ERROR_NONE)
+		status = set_ref_spad_map(Dev, spadArray);
+
+
+	if (status == VL53L0X_ERROR_NONE) {
+		status = get_ref_spad_map(Dev, checkSpadArray);
+
+		i = 0;
+
+		/* Compare spad maps. If not equal report error. */
+		while (i < size) {
+			if (spadArray[i] != checkSpadArray[i]) {
+				status = VL53L0X_ERROR_REF_SPAD_INIT;
+				break;
+			}
+			i++;
+		}
+	}
+	return status;
+}
+
+
+VL53L0X_Error perform_ref_signal_measurement(VL53L0X_DEV Dev,
+		uint16_t *refSignalRate)
+{
+	VL53L0X_Error status = VL53L0X_ERROR_NONE;
+	VL53L0X_RangingMeasurementData_t rangingMeasurementData;
+
+	uint8_t SequenceConfig = 0;
+
+	/* store the value of the sequence config,
+	 * this will be reset before the end of the function
+	 */
+
+	SequenceConfig = PALDevDataGet(Dev, SequenceConfig);
+
+	/*
+	 * This function performs a reference signal rate measurement.
+	 */
+	if (status == VL53L0X_ERROR_NONE)
+		status = VL53L0X_WrByte(Dev,
+			VL53L0X_REG_SYSTEM_SEQUENCE_CONFIG, 0xC0);
+
+	if (status == VL53L0X_ERROR_NONE)
+		status = VL53L0X_PerformSingleRangingMeasurement(Dev,
+				&rangingMeasurementData);
+
+	if (status == VL53L0X_ERROR_NONE)
+		status = VL53L0X_WrByte(Dev, 0xFF, 0x01);
+
+	if (status == VL53L0X_ERROR_NONE)
+		status = VL53L0X_RdWord(Dev,
+			VL53L0X_REG_RESULT_PEAK_SIGNAL_RATE_REF,
+			refSignalRate);
+
+	if (status == VL53L0X_ERROR_NONE)
+		status = VL53L0X_WrByte(Dev, 0xFF, 0x00);
+
+	if (status == VL53L0X_ERROR_NONE) {
+		/* restore the previous Sequence Config */
+		status = VL53L0X_WrByte(Dev, VL53L0X_REG_SYSTEM_SEQUENCE_CONFIG,
+				SequenceConfig);
+		if (status == VL53L0X_ERROR_NONE)
+			PALDevDataSet(Dev, SequenceConfig, SequenceConfig);
+	}
+
+	return status;
+}
+
+VL53L0X_Error VL53L0X_perform_ref_spad_management(VL53L0X_DEV Dev,
+				uint32_t *refSpadCount,
+				uint8_t *isApertureSpads)
+{
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+	uint8_t lastSpadArray[6];
+	uint8_t startSelect = 0xB4;
+	uint32_t minimumSpadCount = 3;
+	uint32_t maxSpadCount = 44;
+	uint32_t currentSpadIndex = 0;
+	uint32_t lastSpadIndex = 0;
+	int32_t nextGoodSpad = 0;
+	uint16_t targetRefRate = 0x0A00; /* 20 MCPS in 9:7 format */
+	uint16_t peakSignalRateRef;
+	uint32_t needAptSpads = 0;
+	uint32_t index = 0;
+	uint32_t spadArraySize = 6;
+	uint32_t signalRateDiff = 0;
+	uint32_t lastSignalRateDiff = 0;
+	uint8_t complete = 0;
+	uint8_t VhvSettings = 0;
+	uint8_t PhaseCal = 0;
+	uint32_t refSpadCount_int = 0;
+	uint8_t	 isApertureSpads_int = 0;
+
+	/*
+	 * The reference SPAD initialization procedure determines the minimum
+	 * amount of reference spads to be enables to achieve a target reference
+	 * signal rate and should be performed once during initialization.
+	 *
+	 * Either aperture or non-aperture spads are applied but never both.
+	 * Firstly non-aperture spads are set, begining with 5 spads, and
+	 * increased one spad at a time until the closest measurement to the
+	 * target rate is achieved.
+	 *
+	 * If the target rate is exceeded when 5 non-aperture spads are enabled,
+	 * initialization is performed instead with aperture spads.
+	 *
+	 * When setting spads, a 'Good Spad Map' is applied.
+	 *
+	 * This procedure operates within a SPAD window of interest of a maximum
+	 * 44 spads.
+	 * The start point is currently fixed to 180, which lies towards the end
+	 * of the non-aperture quadrant and runs in to the adjacent aperture
+	 * quadrant.
+	 */
+
+
+	targetRefRate = PALDevDataGet(Dev, targetRefRate);
+
+	/*
+	 * Initialize Spad arrays.
+	 * Currently the good spad map is initialised to 'All good'.
+	 * This is a short term implementation. The good spad map will be
+	 * provided as an input.
+	 * Note that there are 6 bytes. Only the first 44 bits will be used to
+	 * represent spads.
+	 */
+	for (index = 0; index < spadArraySize; index++)
+		Dev->Data.SpadData.RefSpadEnables[index] = 0;
+
+
+	Status = VL53L0X_WrByte(Dev, 0xFF, 0x01);
+
+	if (Status == VL53L0X_ERROR_NONE)
+		Status = VL53L0X_WrByte(Dev,
+			VL53L0X_REG_DYNAMIC_SPAD_REF_EN_START_OFFSET, 0x00);
+
+	if (Status == VL53L0X_ERROR_NONE)
+		Status = VL53L0X_WrByte(Dev,
+			VL53L0X_REG_DYNAMIC_SPAD_NUM_REQUESTED_REF_SPAD, 0x2C);
+
+	if (Status == VL53L0X_ERROR_NONE)
+		Status = VL53L0X_WrByte(Dev, 0xFF, 0x00);
+
+	if (Status == VL53L0X_ERROR_NONE)
+		Status = VL53L0X_WrByte(Dev,
+			VL53L0X_REG_GLOBAL_CONFIG_REF_EN_START_SELECT,
+			startSelect);
+
+
+	if (Status == VL53L0X_ERROR_NONE)
+		Status = VL53L0X_WrByte(Dev,
+				VL53L0X_REG_POWER_MANAGEMENT_GO1_POWER_FORCE, 0);
+
+	/* Perform ref calibration */
+	if (Status == VL53L0X_ERROR_NONE)
+		Status = VL53L0X_perform_ref_calibration(Dev, &VhvSettings,
+			&PhaseCal, 0);
+
+	if (Status == VL53L0X_ERROR_NONE) {
+		/* Enable Minimum NON-APERTURE Spads */
+		currentSpadIndex = 0;
+		lastSpadIndex = currentSpadIndex;
+		needAptSpads = 0;
+		Status = enable_ref_spads(Dev,
+					needAptSpads,
+					Dev->Data.SpadData.RefGoodSpadMap,
+					Dev->Data.SpadData.RefSpadEnables,
+					spadArraySize,
+					startSelect,
+					currentSpadIndex,
+					minimumSpadCount,
+					&lastSpadIndex);
+	}
+
+	if (Status == VL53L0X_ERROR_NONE) {
+		currentSpadIndex = lastSpadIndex;
+
+		Status = perform_ref_signal_measurement(Dev,
+			&peakSignalRateRef);
+		if ((Status == VL53L0X_ERROR_NONE) &&
+			(peakSignalRateRef > targetRefRate)) {
+			/* Signal rate measurement too high,
+			 * switch to APERTURE SPADs */
+
+			for (index = 0; index < spadArraySize; index++)
+				Dev->Data.SpadData.RefSpadEnables[index] = 0;
+
+
+			/* Increment to the first APERTURE spad */
+			while ((is_aperture(startSelect + currentSpadIndex)
+				== 0) && (currentSpadIndex < maxSpadCount)) {
+				currentSpadIndex++;
+			}
+
+			needAptSpads = 1;
+
+			Status = enable_ref_spads(Dev,
+					needAptSpads,
+					Dev->Data.SpadData.RefGoodSpadMap,
+					Dev->Data.SpadData.RefSpadEnables,
+					spadArraySize,
+					startSelect,
+					currentSpadIndex,
+					minimumSpadCount,
+					&lastSpadIndex);
+
+			if (Status == VL53L0X_ERROR_NONE) {
+				currentSpadIndex = lastSpadIndex;
+				Status = perform_ref_signal_measurement(Dev,
+						&peakSignalRateRef);
+
+				if ((Status == VL53L0X_ERROR_NONE) &&
+					(peakSignalRateRef > targetRefRate)) {
+					/* Signal rate still too high after
+					 * setting the minimum number of
+					 * APERTURE spads. Can do no more
+					 * therefore set the min number of
+					 * aperture spads as the result.
+					 */
+					isApertureSpads_int = 1;
+					refSpadCount_int = minimumSpadCount;
+				}
+			}
+		} else {
+			needAptSpads = 0;
+		}
+	}
+
+	if ((Status == VL53L0X_ERROR_NONE) &&
+		(peakSignalRateRef < targetRefRate)) {
+		/* At this point, the minimum number of either aperture
+		 * or non-aperture spads have been set. Proceed to add
+		 * spads and perform measurements until the target
+		 * reference is reached.
+		 */
+		isApertureSpads_int = needAptSpads;
+		refSpadCount_int	= minimumSpadCount;
+
+		memcpy(lastSpadArray, Dev->Data.SpadData.RefSpadEnables,
+				spadArraySize);
+		lastSignalRateDiff = abs(peakSignalRateRef -
+			targetRefRate);
+		complete = 0;
+
+		while (!complete) {
+			get_next_good_spad(
+				Dev->Data.SpadData.RefGoodSpadMap,
+				spadArraySize, currentSpadIndex,
+				&nextGoodSpad);
+
+			if (nextGoodSpad == -1) {
+				Status = VL53L0X_ERROR_REF_SPAD_INIT;
+				break;
+			}
+
+			/* Cannot combine Aperture and Non-Aperture spads, so
+			 * ensure the current spad is of the correct type.
+			 */
+			if (is_aperture((uint32_t)startSelect + nextGoodSpad) !=
+					needAptSpads) {
+				/* At this point we have enabled the maximum
+				 * number of Aperture spads.
+				 */
+				complete = 1;
+				break;
+			}
+
+			(refSpadCount_int)++;
+
+			currentSpadIndex = nextGoodSpad;
+			Status = enable_spad_bit(
+					Dev->Data.SpadData.RefSpadEnables,
+					spadArraySize, currentSpadIndex);
+
+			if (Status == VL53L0X_ERROR_NONE) {
+				currentSpadIndex++;
+				/* Proceed to apply the additional spad and
+				 * perform measurement. */
+				Status = set_ref_spad_map(Dev,
+					Dev->Data.SpadData.RefSpadEnables);
+			}
+
+			if (Status != VL53L0X_ERROR_NONE)
+				break;
+
+			Status = perform_ref_signal_measurement(Dev,
+					&peakSignalRateRef);
+
+			if (Status != VL53L0X_ERROR_NONE)
+				break;
+
+			signalRateDiff = abs(peakSignalRateRef - targetRefRate);
+
+			if (peakSignalRateRef > targetRefRate) {
+				/* Select the spad map that provides the
+				 * measurement closest to the target rate,
+				 * either above or below it.
+				 */
+				if (signalRateDiff > lastSignalRateDiff) {
+					/* Previous spad map produced a closer
+					 * measurement, so choose this. */
+					Status = set_ref_spad_map(Dev,
+							lastSpadArray);
+					memcpy(
+					Dev->Data.SpadData.RefSpadEnables,
+					lastSpadArray, spadArraySize);
+
+					(refSpadCount_int)--;
+				}
+				complete = 1;
+			} else {
+				/* Continue to add spads */
+				lastSignalRateDiff = signalRateDiff;
+				memcpy(lastSpadArray,
+					Dev->Data.SpadData.RefSpadEnables,
+					spadArraySize);
+			}
+
+		} /* while */
+	}
+
+	if (Status == VL53L0X_ERROR_NONE) {
+		*refSpadCount = refSpadCount_int;
+		*isApertureSpads = isApertureSpads_int;
+
+		VL53L0X_SETDEVICESPECIFICPARAMETER(Dev, RefSpadsInitialised, 1);
+		VL53L0X_SETDEVICESPECIFICPARAMETER(Dev,
+			ReferenceSpadCount, (uint8_t)(*refSpadCount));
+		VL53L0X_SETDEVICESPECIFICPARAMETER(Dev,
+			ReferenceSpadType, *isApertureSpads);
+	}
+
+	return Status;
+}
+
+VL53L0X_Error VL53L0X_set_reference_spads(VL53L0X_DEV Dev,
+				 uint32_t count, uint8_t isApertureSpads)
+{
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+	uint32_t currentSpadIndex = 0;
+	uint8_t startSelect = 0xB4;
+	uint32_t spadArraySize = 6;
+	uint32_t maxSpadCount = 44;
+	uint32_t lastSpadIndex;
+	uint32_t index;
+
+	/*
+	 * This function applies a requested number of reference spads, either
+	 * aperture or
+	 * non-aperture, as requested.
+	 * The good spad map will be applied.
+	 */
+
+	Status = VL53L0X_WrByte(Dev, 0xFF, 0x01);
+
+	if (Status == VL53L0X_ERROR_NONE)
+		Status = VL53L0X_WrByte(Dev,
+			VL53L0X_REG_DYNAMIC_SPAD_REF_EN_START_OFFSET, 0x00);
+
+	if (Status == VL53L0X_ERROR_NONE)
+		Status = VL53L0X_WrByte(Dev,
+			VL53L0X_REG_DYNAMIC_SPAD_NUM_REQUESTED_REF_SPAD, 0x2C);
+
+	if (Status == VL53L0X_ERROR_NONE)
+		Status = VL53L0X_WrByte(Dev, 0xFF, 0x00);
+
+	if (Status == VL53L0X_ERROR_NONE)
+		Status = VL53L0X_WrByte(Dev,
+			VL53L0X_REG_GLOBAL_CONFIG_REF_EN_START_SELECT,
+			startSelect);
+
+	for (index = 0; index < spadArraySize; index++)
+		Dev->Data.SpadData.RefSpadEnables[index] = 0;
+
+	if (isApertureSpads) {
+		/* Increment to the first APERTURE spad */
+		while ((is_aperture(startSelect + currentSpadIndex) == 0) &&
+			  (currentSpadIndex < maxSpadCount)) {
+			currentSpadIndex++;
+		}
+	}
+	Status = enable_ref_spads(Dev,
+				isApertureSpads,
+				Dev->Data.SpadData.RefGoodSpadMap,
+				Dev->Data.SpadData.RefSpadEnables,
+				spadArraySize,
+				startSelect,
+				currentSpadIndex,
+				count,
+				&lastSpadIndex);
+
+	if (Status == VL53L0X_ERROR_NONE) {
+		VL53L0X_SETDEVICESPECIFICPARAMETER(Dev, RefSpadsInitialised, 1);
+		VL53L0X_SETDEVICESPECIFICPARAMETER(Dev,
+			ReferenceSpadCount, (uint8_t)(count));
+		VL53L0X_SETDEVICESPECIFICPARAMETER(Dev,
+			ReferenceSpadType, isApertureSpads);
+	}
+
+	return Status;
+}
+
+VL53L0X_Error VL53L0X_get_reference_spads(VL53L0X_DEV Dev,
+			uint32_t *pSpadCount, uint8_t *pIsApertureSpads)
+{
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+	uint8_t refSpadsInitialised;
+	uint8_t refSpadArray[6];
+	uint32_t cMaxSpadCount = 44;
+	uint32_t cSpadArraySize = 6;
+	uint32_t spadsEnabled;
+	uint8_t isApertureSpads = 0;
+
+	refSpadsInitialised = VL53L0X_GETDEVICESPECIFICPARAMETER(Dev,
+					RefSpadsInitialised);
+
+	if (refSpadsInitialised == 1) {
+
+		*pSpadCount = (uint32_t)VL53L0X_GETDEVICESPECIFICPARAMETER(Dev,
+			ReferenceSpadCount);
+		*pIsApertureSpads = VL53L0X_GETDEVICESPECIFICPARAMETER(Dev,
+			ReferenceSpadType);
+	} else {
+
+		/* obtain spad info from device.*/
+		Status = get_ref_spad_map(Dev, refSpadArray);
+
+		if (Status == VL53L0X_ERROR_NONE) {
+			/* count enabled spads within spad map array and
+			 * determine if Aperture or Non-Aperture.
+			 */
+			Status = count_enabled_spads(refSpadArray,
+							cSpadArraySize,
+							cMaxSpadCount,
+							&spadsEnabled,
+							&isApertureSpads);
+
+			if (Status == VL53L0X_ERROR_NONE) {
+
+				*pSpadCount = spadsEnabled;
+				*pIsApertureSpads = isApertureSpads;
+
+				VL53L0X_SETDEVICESPECIFICPARAMETER(Dev,
+					RefSpadsInitialised, 1);
+				VL53L0X_SETDEVICESPECIFICPARAMETER(Dev,
+					ReferenceSpadCount,
+					(uint8_t)spadsEnabled);
+				VL53L0X_SETDEVICESPECIFICPARAMETER(Dev,
+					ReferenceSpadType, isApertureSpads);
+			}
+		}
+	}
+
+	return Status;
+}
+
+
+VL53L0X_Error VL53L0X_perform_single_ref_calibration(VL53L0X_DEV Dev,
+		uint8_t vhv_init_byte)
+{
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+
+	if (Status == VL53L0X_ERROR_NONE)
+		Status = VL53L0X_WrByte(Dev, VL53L0X_REG_SYSRANGE_START,
+				VL53L0X_REG_SYSRANGE_MODE_START_STOP |
+				vhv_init_byte);
+
+	if (Status == VL53L0X_ERROR_NONE)
+		Status = VL53L0X_measurement_poll_for_completion(Dev);
+
+	if (Status == VL53L0X_ERROR_NONE)
+		Status = VL53L0X_ClearInterruptMask(Dev, 0);
+
+	if (Status == VL53L0X_ERROR_NONE)
+		Status = VL53L0X_WrByte(Dev, VL53L0X_REG_SYSRANGE_START, 0x00);
+
+	return Status;
+}
+
+
+VL53L0X_Error VL53L0X_ref_calibration_io(VL53L0X_DEV Dev, uint8_t read_not_write,
+	uint8_t VhvSettings, uint8_t PhaseCal,
+	uint8_t *pVhvSettings, uint8_t *pPhaseCal,
+	const uint8_t vhv_enable, const uint8_t phase_enable)
+{
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+	uint8_t PhaseCalint = 0;
+
+	/* Read VHV from device */
+	Status |= VL53L0X_WrByte(Dev, 0xFF, 0x01);
+	Status |= VL53L0X_WrByte(Dev, 0x00, 0x00);
+	Status |= VL53L0X_WrByte(Dev, 0xFF, 0x00);
+
+	if (read_not_write) {
+		if (vhv_enable)
+			Status |= VL53L0X_RdByte(Dev, 0xCB, pVhvSettings);
+		if (phase_enable)
+			Status |= VL53L0X_RdByte(Dev, 0xEE, &PhaseCalint);
+	} else {
+		if (vhv_enable)
+			Status |= VL53L0X_WrByte(Dev, 0xCB, VhvSettings);
+		if (phase_enable)
+			Status |= VL53L0X_UpdateByte(Dev, 0xEE, 0x80, PhaseCal);
+	}
+
+	Status |= VL53L0X_WrByte(Dev, 0xFF, 0x01);
+	Status |= VL53L0X_WrByte(Dev, 0x00, 0x01);
+	Status |= VL53L0X_WrByte(Dev, 0xFF, 0x00);
+
+	*pPhaseCal = (uint8_t)(PhaseCalint&0xEF);
+
+	return Status;
+}
+
+
+VL53L0X_Error VL53L0X_perform_vhv_calibration(VL53L0X_DEV Dev,
+	uint8_t *pVhvSettings, const uint8_t get_data_enable,
+	const uint8_t restore_config)
+{
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+	uint8_t SequenceConfig = 0;
+	uint8_t VhvSettings = 0;
+	uint8_t PhaseCal = 0;
+	uint8_t PhaseCalInt = 0;
+
+	/* store the value of the sequence config,
+	 * this will be reset before the end of the function
+	 */
+
+	if (restore_config)
+		SequenceConfig = PALDevDataGet(Dev, SequenceConfig);
+
+	/* Run VHV */
+	Status = VL53L0X_WrByte(Dev, VL53L0X_REG_SYSTEM_SEQUENCE_CONFIG, 0x01);
+
+	if (Status == VL53L0X_ERROR_NONE)
+		Status = VL53L0X_perform_single_ref_calibration(Dev, 0x40);
+
+	/* Read VHV from device */
+	if ((Status == VL53L0X_ERROR_NONE) && (get_data_enable == 1)) {
+		Status = VL53L0X_ref_calibration_io(Dev, 1,
+			VhvSettings, PhaseCal, /* Not used here */
+			pVhvSettings, &PhaseCalInt,
+			1, 0);
+	} else
+		*pVhvSettings = 0;
+
+
+	if ((Status == VL53L0X_ERROR_NONE) && restore_config) {
+		/* restore the previous Sequence Config */
+		Status = VL53L0X_WrByte(Dev, VL53L0X_REG_SYSTEM_SEQUENCE_CONFIG,
+				SequenceConfig);
+		if (Status == VL53L0X_ERROR_NONE)
+			PALDevDataSet(Dev, SequenceConfig, SequenceConfig);
+
+	}
+
+	return Status;
+}
+
+VL53L0X_Error VL53L0X_perform_phase_calibration(VL53L0X_DEV Dev,
+	uint8_t *pPhaseCal, const uint8_t get_data_enable,
+	const uint8_t restore_config)
+{
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+	uint8_t SequenceConfig = 0;
+	uint8_t VhvSettings = 0;
+	uint8_t PhaseCal = 0;
+	uint8_t VhvSettingsint;
+
+	/* store the value of the sequence config,
+	 * this will be reset before the end of the function
+	 */
+
+	if (restore_config)
+		SequenceConfig = PALDevDataGet(Dev, SequenceConfig);
+
+	/* Run PhaseCal */
+	Status = VL53L0X_WrByte(Dev, VL53L0X_REG_SYSTEM_SEQUENCE_CONFIG, 0x02);
+
+	if (Status == VL53L0X_ERROR_NONE)
+		Status = VL53L0X_perform_single_ref_calibration(Dev, 0x0);
+
+	/* Read PhaseCal from device */
+	if ((Status == VL53L0X_ERROR_NONE) && (get_data_enable == 1)) {
+		Status = VL53L0X_ref_calibration_io(Dev, 1,
+			VhvSettings, PhaseCal, /* Not used here */
+			&VhvSettingsint, pPhaseCal,
+			0, 1);
+	} else
+		*pPhaseCal = 0;
+
+
+	if ((Status == VL53L0X_ERROR_NONE) && restore_config) {
+		/* restore the previous Sequence Config */
+		Status = VL53L0X_WrByte(Dev, VL53L0X_REG_SYSTEM_SEQUENCE_CONFIG,
+				SequenceConfig);
+		if (Status == VL53L0X_ERROR_NONE)
+			PALDevDataSet(Dev, SequenceConfig, SequenceConfig);
+
+	}
+
+	return Status;
+}
+
+VL53L0X_Error VL53L0X_perform_ref_calibration(VL53L0X_DEV Dev,
+	uint8_t *pVhvSettings, uint8_t *pPhaseCal, uint8_t get_data_enable)
+{
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+	uint8_t SequenceConfig = 0;
+
+	/* store the value of the sequence config,
+	 * this will be reset before the end of the function
+	 */
+
+	SequenceConfig = PALDevDataGet(Dev, SequenceConfig);
+
+	/* In the following function we don't save the config to optimize
+	 * writes on device. Config is saved and restored only once. */
+	Status = VL53L0X_perform_vhv_calibration(
+			Dev, pVhvSettings, get_data_enable, 0);
+
+
+	if (Status == VL53L0X_ERROR_NONE)
+		Status = VL53L0X_perform_phase_calibration(
+			Dev, pPhaseCal, get_data_enable, 0);
+
+
+	if (Status == VL53L0X_ERROR_NONE) {
+		/* restore the previous Sequence Config */
+		Status = VL53L0X_WrByte(Dev, VL53L0X_REG_SYSTEM_SEQUENCE_CONFIG,
+				SequenceConfig);
+		if (Status == VL53L0X_ERROR_NONE)
+			PALDevDataSet(Dev, SequenceConfig, SequenceConfig);
+
+	}
+
+	return Status;
+}
+
+VL53L0X_Error VL53L0X_set_ref_calibration(VL53L0X_DEV Dev,
+		uint8_t VhvSettings, uint8_t PhaseCal)
+{
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+	uint8_t pVhvSettings;
+	uint8_t pPhaseCal;
+
+	Status = VL53L0X_ref_calibration_io(Dev, 0,
+		VhvSettings, PhaseCal,
+		&pVhvSettings, &pPhaseCal,
+		1, 1);
+
+	return Status;
+}
+
+VL53L0X_Error VL53L0X_get_ref_calibration(VL53L0X_DEV Dev,
+		uint8_t *pVhvSettings, uint8_t *pPhaseCal)
+{
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+	uint8_t VhvSettings = 0;
+	uint8_t PhaseCal = 0;
+
+	Status = VL53L0X_ref_calibration_io(Dev, 1,
+		VhvSettings, PhaseCal,
+		pVhvSettings, pPhaseCal,
+		1, 1);
+
+	return Status;
+}
diff --git a/STS/TOF/vl53l0x/vl53l0x_api_calibration.h b/STS/TOF/vl53l0x/vl53l0x_api_calibration.h
index 9f9739a..ae7b8cb 100644
--- a/STS/TOF/vl53l0x/vl53l0x_api_calibration.h
+++ b/STS/TOF/vl53l0x/vl53l0x_api_calibration.h
@@ -1,85 +1,85 @@
-/*******************************************************************************
-Copyright � 2016, STMicroelectronics International N.V.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-	* Redistributions of source code must retain the above copyright
-	  notice, this list of conditions and the following disclaimer.
-	* 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.
-	* 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, FITNESS FOR A PARTICULAR PURPOSE, AND
-NON-INFRINGEMENT OF INTELLECTUAL PROPERTY RIGHTS ARE DISCLAIMED.
-IN NO EVENT SHALL STMICROELECTRONICS INTERNATIONAL N.V. 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 _VL53L0X_API_CALIBRATION_H_
-#define _VL53L0X_API_CALIBRATION_H_
-
-#include "vl53l0x_def.h"
-#include "vl53l0x_platform.h"
-
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-VL53L0X_Error VL53L0X_perform_xtalk_calibration(VL53L0X_DEV Dev,
-		FixPoint1616_t XTalkCalDistance,
-		FixPoint1616_t *pXTalkCompensationRateMegaCps);
-
-VL53L0X_Error VL53L0X_perform_offset_calibration(VL53L0X_DEV Dev,
-		FixPoint1616_t CalDistanceMilliMeter,
-		int32_t *pOffsetMicroMeter);
-
-VL53L0X_Error VL53L0X_set_offset_calibration_data_micro_meter(VL53L0X_DEV Dev,
-		int32_t OffsetCalibrationDataMicroMeter);
-
-VL53L0X_Error VL53L0X_get_offset_calibration_data_micro_meter(VL53L0X_DEV Dev,
-		int32_t *pOffsetCalibrationDataMicroMeter);
-
-VL53L0X_Error VL53L0X_apply_offset_adjustment(VL53L0X_DEV Dev);
-
-VL53L0X_Error VL53L0X_perform_ref_spad_management(VL53L0X_DEV Dev,
-		uint32_t *refSpadCount, uint8_t *isApertureSpads);
-
-VL53L0X_Error VL53L0X_set_reference_spads(VL53L0X_DEV Dev,
-		uint32_t count, uint8_t isApertureSpads);
-
-VL53L0X_Error VL53L0X_get_reference_spads(VL53L0X_DEV Dev,
-		uint32_t *pSpadCount, uint8_t *pIsApertureSpads);
-
-VL53L0X_Error VL53L0X_perform_phase_calibration(VL53L0X_DEV Dev,
-	uint8_t *pPhaseCal, const uint8_t get_data_enable,
-	const uint8_t restore_config);
-
-VL53L0X_Error VL53L0X_perform_ref_calibration(VL53L0X_DEV Dev,
-	uint8_t *pVhvSettings, uint8_t *pPhaseCal, uint8_t get_data_enable);
-
-VL53L0X_Error VL53L0X_set_ref_calibration(VL53L0X_DEV Dev,
-		uint8_t VhvSettings, uint8_t PhaseCal);
-
-VL53L0X_Error VL53L0X_get_ref_calibration(VL53L0X_DEV Dev,
-		uint8_t *pVhvSettings, uint8_t *pPhaseCal);
-
-
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _VL53L0X_API_CALIBRATION_H_ */
+/*******************************************************************************
+Copyright � 2016, STMicroelectronics International N.V.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+	* Redistributions of source code must retain the above copyright
+	  notice, this list of conditions and the following disclaimer.
+	* 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.
+	* 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, FITNESS FOR A PARTICULAR PURPOSE, AND
+NON-INFRINGEMENT OF INTELLECTUAL PROPERTY RIGHTS ARE DISCLAIMED.
+IN NO EVENT SHALL STMICROELECTRONICS INTERNATIONAL N.V. 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 _VL53L0X_API_CALIBRATION_H_
+#define _VL53L0X_API_CALIBRATION_H_
+
+#include "vl53l0x_def.h"
+#include "vl53l0x_platform.h"
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+VL53L0X_Error VL53L0X_perform_xtalk_calibration(VL53L0X_DEV Dev,
+		FixPoint1616_t XTalkCalDistance,
+		FixPoint1616_t *pXTalkCompensationRateMegaCps);
+
+VL53L0X_Error VL53L0X_perform_offset_calibration(VL53L0X_DEV Dev,
+		FixPoint1616_t CalDistanceMilliMeter,
+		int32_t *pOffsetMicroMeter);
+
+VL53L0X_Error VL53L0X_set_offset_calibration_data_micro_meter(VL53L0X_DEV Dev,
+		int32_t OffsetCalibrationDataMicroMeter);
+
+VL53L0X_Error VL53L0X_get_offset_calibration_data_micro_meter(VL53L0X_DEV Dev,
+		int32_t *pOffsetCalibrationDataMicroMeter);
+
+VL53L0X_Error VL53L0X_apply_offset_adjustment(VL53L0X_DEV Dev);
+
+VL53L0X_Error VL53L0X_perform_ref_spad_management(VL53L0X_DEV Dev,
+		uint32_t *refSpadCount, uint8_t *isApertureSpads);
+
+VL53L0X_Error VL53L0X_set_reference_spads(VL53L0X_DEV Dev,
+		uint32_t count, uint8_t isApertureSpads);
+
+VL53L0X_Error VL53L0X_get_reference_spads(VL53L0X_DEV Dev,
+		uint32_t *pSpadCount, uint8_t *pIsApertureSpads);
+
+VL53L0X_Error VL53L0X_perform_phase_calibration(VL53L0X_DEV Dev,
+	uint8_t *pPhaseCal, const uint8_t get_data_enable,
+	const uint8_t restore_config);
+
+VL53L0X_Error VL53L0X_perform_ref_calibration(VL53L0X_DEV Dev,
+	uint8_t *pVhvSettings, uint8_t *pPhaseCal, uint8_t get_data_enable);
+
+VL53L0X_Error VL53L0X_set_ref_calibration(VL53L0X_DEV Dev,
+		uint8_t VhvSettings, uint8_t PhaseCal);
+
+VL53L0X_Error VL53L0X_get_ref_calibration(VL53L0X_DEV Dev,
+		uint8_t *pVhvSettings, uint8_t *pPhaseCal);
+
+
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _VL53L0X_API_CALIBRATION_H_ */
diff --git a/STS/TOF/vl53l0x/vl53l0x_api_core.c b/STS/TOF/vl53l0x/vl53l0x_api_core.c
index 8f0632a..4ea35af 100644
--- a/STS/TOF/vl53l0x/vl53l0x_api_core.c
+++ b/STS/TOF/vl53l0x/vl53l0x_api_core.c
@@ -1,2239 +1,2239 @@
-/*******************************************************************************
- Copyright � 2016, STMicroelectronics International N.V.
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
- * 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.
- * 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, FITNESS FOR A PARTICULAR PURPOSE, AND
- NON-INFRINGEMENT OF INTELLECTUAL PROPERTY RIGHTS ARE DISCLAIMED.
- IN NO EVENT SHALL STMICROELECTRONICS INTERNATIONAL N.V. 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 "vl53l0x_api.h"
-#include "vl53l0x_api_core.h"
-#include "vl53l0x_api_calibration.h"
-
-
-#ifndef __KERNEL__
-#include <stdlib.h>
-#endif
-#define LOG_FUNCTION_START(fmt, ...) \
-	_LOG_FUNCTION_START(TRACE_MODULE_API, fmt, ##__VA_ARGS__)
-#define LOG_FUNCTION_END(status, ...) \
-	_LOG_FUNCTION_END(TRACE_MODULE_API, status, ##__VA_ARGS__)
-#define LOG_FUNCTION_END_FMT(status, fmt, ...) \
-	_LOG_FUNCTION_END_FMT(TRACE_MODULE_API, status, fmt, ##__VA_ARGS__)
-
-VL53L0X_Error VL53L0X_reverse_bytes(uint8_t *data, uint32_t size)
-{
-	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
-	uint8_t tempData;
-	uint32_t mirrorIndex;
-	uint32_t middle = size/2;
-	uint32_t index;
-
-	for (index = 0; index < middle; index++) {
-		mirrorIndex		 = size - index - 1;
-		tempData		 = data[index];
-		data[index]		 = data[mirrorIndex];
-		data[mirrorIndex] = tempData;
-	}
-	return Status;
-}
-
-VL53L0X_Error VL53L0X_measurement_poll_for_completion(VL53L0X_DEV Dev)
-{
-	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
-	uint8_t NewDataReady = 0;
-	uint32_t LoopNb;
-
-	LOG_FUNCTION_START("");
-
-	LoopNb = 0;
-
-	do {
-		Status = VL53L0X_GetMeasurementDataReady(Dev, &NewDataReady);
-		if (Status != 0)
-			break; /* the error is set */
-
-		if (NewDataReady == 1)
-			break; /* done note that status == 0 */
-
-		LoopNb++;
-		if (LoopNb >= VL53L0X_DEFAULT_MAX_LOOP) {
-			Status = VL53L0X_ERROR_TIME_OUT;
-			break;
-		}
-
-		VL53L0X_PollingDelay(Dev);
-	} while (1);
-
-	LOG_FUNCTION_END(Status);
-
-	return Status;
-}
-
-
-uint8_t VL53L0X_decode_vcsel_period(uint8_t vcsel_period_reg)
-{
-	/*!
-	 * Converts the encoded VCSEL period register value into the real
-	 * period in PLL clocks
-	 */
-
-	uint8_t vcsel_period_pclks = 0;
-
-	vcsel_period_pclks = (vcsel_period_reg + 1) << 1;
-
-	return vcsel_period_pclks;
-}
-
-uint8_t VL53L0X_encode_vcsel_period(uint8_t vcsel_period_pclks)
-{
-	/*!
-	 * Converts the encoded VCSEL period register value into the real period
-	 * in PLL clocks
-	 */
-
-	uint8_t vcsel_period_reg = 0;
-
-	vcsel_period_reg = (vcsel_period_pclks >> 1) - 1;
-
-	return vcsel_period_reg;
-}
-
-
-uint32_t VL53L0X_isqrt(uint32_t num)
-{
-	/*
-	 * Implements an integer square root
-	 *
-	 * From: http://en.wikipedia.org/wiki/Methods_of_computing_square_roots
-	 */
-
-	uint32_t  res = 0;
-	uint32_t  bit = 1 << 30;
-	/* The second-to-top bit is set:
-	 *	1 << 14 for 16-bits, 1 << 30 for 32 bits */
-
-	 /* "bit" starts at the highest power of four <= the argument. */
-	while (bit > num)
-		bit >>= 2;
-
-
-	while (bit != 0) {
-		if (num >= res + bit) {
-			num -= res + bit;
-			res = (res >> 1) + bit;
-		} else
-			res >>= 1;
-
-		bit >>= 2;
-	}
-
-	return res;
-}
-
-
-uint32_t VL53L0X_quadrature_sum(uint32_t a, uint32_t b)
-{
-	/*
-	 * Implements a quadrature sum
-	 *
-	 * rea = sqrt(a^2 + b^2)
-	 *
-	 * Trap overflow case max input value is 65535 (16-bit value)
-	 * as internal calc are 32-bit wide
-	 *
-	 * If overflow then seta output to maximum
-	 */
-	uint32_t  res = 0;
-
-	if (a > 65535 || b > 65535)
-		res = 65535;
-	else
-		res = VL53L0X_isqrt(a * a + b * b);
-
-	return res;
-}
-
-
-VL53L0X_Error VL53L0X_device_read_strobe(VL53L0X_DEV Dev)
-{
-	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
-	uint8_t strobe;
-	uint32_t LoopNb;
-	LOG_FUNCTION_START("");
-
-	Status |= VL53L0X_WrByte(Dev, 0x83, 0x00);
-
-	/* polling
-	 * use timeout to avoid deadlock*/
-	if (Status == VL53L0X_ERROR_NONE) {
-		LoopNb = 0;
-		do {
-			Status = VL53L0X_RdByte(Dev, 0x83, &strobe);
-			if ((strobe != 0x00) || Status != VL53L0X_ERROR_NONE)
-					break;
-
-			LoopNb = LoopNb + 1;
-		} while (LoopNb < VL53L0X_DEFAULT_MAX_LOOP);
-
-		if (LoopNb >= VL53L0X_DEFAULT_MAX_LOOP)
-			Status = VL53L0X_ERROR_TIME_OUT;
-
-	}
-
-	Status |= VL53L0X_WrByte(Dev, 0x83, 0x01);
-
-	LOG_FUNCTION_END(Status);
-	return Status;
-
-}
-
-VL53L0X_Error VL53L0X_get_info_from_device(VL53L0X_DEV Dev, uint8_t option)
-{
-
-	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
-	uint8_t byte;
-	uint32_t TmpDWord;
-	uint8_t ModuleId;
-	uint8_t Revision;
-	uint8_t ReferenceSpadCount = 0;
-	uint8_t ReferenceSpadType = 0;
-	uint32_t PartUIDUpper = 0;
-	uint32_t PartUIDLower = 0;
-	uint32_t OffsetFixed1104_mm = 0;
-	int16_t OffsetMicroMeters = 0;
-	uint32_t DistMeasTgtFixed1104_mm = 400 << 4;
-	uint32_t DistMeasFixed1104_400_mm = 0;
-	uint32_t SignalRateMeasFixed1104_400_mm = 0;
-	char ProductId[19];
-	char *ProductId_tmp;
-	uint8_t ReadDataFromDeviceDone;
-	FixPoint1616_t SignalRateMeasFixed400mmFix = 0;
-	uint8_t NvmRefGoodSpadMap[VL53L0X_REF_SPAD_BUFFER_SIZE];
-	int i;
-
-
-	LOG_FUNCTION_START("");
-
-	ReadDataFromDeviceDone = VL53L0X_GETDEVICESPECIFICPARAMETER(Dev,
-			ReadDataFromDeviceDone);
-
-	/* This access is done only once after that a GetDeviceInfo or
-	 * datainit is done*/
-	if (ReadDataFromDeviceDone != 7) {
-
-		Status |= VL53L0X_WrByte(Dev, 0x80, 0x01);
-		Status |= VL53L0X_WrByte(Dev, 0xFF, 0x01);
-		Status |= VL53L0X_WrByte(Dev, 0x00, 0x00);
-
-		Status |= VL53L0X_WrByte(Dev, 0xFF, 0x06);
-		Status |= VL53L0X_RdByte(Dev, 0x83, &byte);
-		Status |= VL53L0X_WrByte(Dev, 0x83, byte|4);
-		Status |= VL53L0X_WrByte(Dev, 0xFF, 0x07);
-		Status |= VL53L0X_WrByte(Dev, 0x81, 0x01);
-
-		Status |= VL53L0X_PollingDelay(Dev);
-
-		Status |= VL53L0X_WrByte(Dev, 0x80, 0x01);
-
-		if (((option & 1) == 1) &&
-			((ReadDataFromDeviceDone & 1) == 0)) {
-			Status |= VL53L0X_WrByte(Dev, 0x94, 0x6b);
-			Status |= VL53L0X_device_read_strobe(Dev);
-			Status |= VL53L0X_RdDWord(Dev, 0x90, &TmpDWord);
-
-			ReferenceSpadCount = (uint8_t)((TmpDWord >> 8) & 0x07f);
-			ReferenceSpadType  = (uint8_t)((TmpDWord >> 15) & 0x01);
-
-			Status |= VL53L0X_WrByte(Dev, 0x94, 0x24);
-			Status |= VL53L0X_device_read_strobe(Dev);
-			Status |= VL53L0X_RdDWord(Dev, 0x90, &TmpDWord);
-
-
-			NvmRefGoodSpadMap[0] = (uint8_t)((TmpDWord >> 24)
-				& 0xff);
-			NvmRefGoodSpadMap[1] = (uint8_t)((TmpDWord >> 16)
-				& 0xff);
-			NvmRefGoodSpadMap[2] = (uint8_t)((TmpDWord >> 8)
-				& 0xff);
-			NvmRefGoodSpadMap[3] = (uint8_t)(TmpDWord & 0xff);
-
-			Status |= VL53L0X_WrByte(Dev, 0x94, 0x25);
-			Status |= VL53L0X_device_read_strobe(Dev);
-			Status |= VL53L0X_RdDWord(Dev, 0x90, &TmpDWord);
-
-			NvmRefGoodSpadMap[4] = (uint8_t)((TmpDWord >> 24)
-				& 0xff);
-			NvmRefGoodSpadMap[5] = (uint8_t)((TmpDWord >> 16)
-				& 0xff);
-		}
-
-		if (((option & 2) == 2) &&
-			((ReadDataFromDeviceDone & 2) == 0)) {
-
-			Status |= VL53L0X_WrByte(Dev, 0x94, 0x02);
-			Status |= VL53L0X_device_read_strobe(Dev);
-			Status |= VL53L0X_RdByte(Dev, 0x90, &ModuleId);
-
-			Status |= VL53L0X_WrByte(Dev, 0x94, 0x7B);
-			Status |= VL53L0X_device_read_strobe(Dev);
-			Status |= VL53L0X_RdByte(Dev, 0x90, &Revision);
-
-			Status |= VL53L0X_WrByte(Dev, 0x94, 0x77);
-			Status |= VL53L0X_device_read_strobe(Dev);
-			Status |= VL53L0X_RdDWord(Dev, 0x90, &TmpDWord);
-
-			ProductId[0] = (char)((TmpDWord >> 25) & 0x07f);
-			ProductId[1] = (char)((TmpDWord >> 18) & 0x07f);
-			ProductId[2] = (char)((TmpDWord >> 11) & 0x07f);
-			ProductId[3] = (char)((TmpDWord >> 4) & 0x07f);
-
-			byte = (uint8_t)((TmpDWord & 0x00f) << 3);
-
-			Status |= VL53L0X_WrByte(Dev, 0x94, 0x78);
-			Status |= VL53L0X_device_read_strobe(Dev);
-			Status |= VL53L0X_RdDWord(Dev, 0x90, &TmpDWord);
-
-			ProductId[4] = (char)(byte +
-					((TmpDWord >> 29) & 0x07f));
-			ProductId[5] = (char)((TmpDWord >> 22) & 0x07f);
-			ProductId[6] = (char)((TmpDWord >> 15) & 0x07f);
-			ProductId[7] = (char)((TmpDWord >> 8) & 0x07f);
-			ProductId[8] = (char)((TmpDWord >> 1) & 0x07f);
-
-			byte = (uint8_t)((TmpDWord & 0x001) << 6);
-
-			Status |= VL53L0X_WrByte(Dev, 0x94, 0x79);
-
-			Status |= VL53L0X_device_read_strobe(Dev);
-
-			Status |= VL53L0X_RdDWord(Dev, 0x90, &TmpDWord);
-
-			ProductId[9] = (char)(byte +
-					((TmpDWord >> 26) & 0x07f));
-			ProductId[10] = (char)((TmpDWord >> 19) & 0x07f);
-			ProductId[11] = (char)((TmpDWord >> 12) & 0x07f);
-			ProductId[12] = (char)((TmpDWord >> 5) & 0x07f);
-
-			byte = (uint8_t)((TmpDWord & 0x01f) << 2);
-
-			Status |= VL53L0X_WrByte(Dev, 0x94, 0x7A);
-
-			Status |= VL53L0X_device_read_strobe(Dev);
-
-			Status |= VL53L0X_RdDWord(Dev, 0x90, &TmpDWord);
-
-			ProductId[13] = (char)(byte +
-					((TmpDWord >> 30) & 0x07f));
-			ProductId[14] = (char)((TmpDWord >> 23) & 0x07f);
-			ProductId[15] = (char)((TmpDWord >> 16) & 0x07f);
-			ProductId[16] = (char)((TmpDWord >> 9) & 0x07f);
-			ProductId[17] = (char)((TmpDWord >> 2) & 0x07f);
-			ProductId[18] = '\0';
-
-		}
-
-		if (((option & 4) == 4) &&
-			((ReadDataFromDeviceDone & 4) == 0)) {
-
-			Status |= VL53L0X_WrByte(Dev, 0x94, 0x7B);
-			Status |= VL53L0X_device_read_strobe(Dev);
-			Status |= VL53L0X_RdDWord(Dev, 0x90, &PartUIDUpper);
-
-			Status |= VL53L0X_WrByte(Dev, 0x94, 0x7C);
-			Status |= VL53L0X_device_read_strobe(Dev);
-			Status |= VL53L0X_RdDWord(Dev, 0x90, &PartUIDLower);
-
-			Status |= VL53L0X_WrByte(Dev, 0x94, 0x73);
-			Status |= VL53L0X_device_read_strobe(Dev);
-			Status |= VL53L0X_RdDWord(Dev, 0x90, &TmpDWord);
-
-			SignalRateMeasFixed1104_400_mm = (TmpDWord &
-				0x0000000ff) << 8;
-
-			Status |= VL53L0X_WrByte(Dev, 0x94, 0x74);
-			Status |= VL53L0X_device_read_strobe(Dev);
-			Status |= VL53L0X_RdDWord(Dev, 0x90, &TmpDWord);
-
-			SignalRateMeasFixed1104_400_mm |= ((TmpDWord &
-				0xff000000) >> 24);
-
-			Status |= VL53L0X_WrByte(Dev, 0x94, 0x75);
-			Status |= VL53L0X_device_read_strobe(Dev);
-			Status |= VL53L0X_RdDWord(Dev, 0x90, &TmpDWord);
-
-			DistMeasFixed1104_400_mm = (TmpDWord & 0x0000000ff)
-							<< 8;
-
-			Status |= VL53L0X_WrByte(Dev, 0x94, 0x76);
-			Status |= VL53L0X_device_read_strobe(Dev);
-			Status |= VL53L0X_RdDWord(Dev, 0x90, &TmpDWord);
-
-			DistMeasFixed1104_400_mm |= ((TmpDWord & 0xff000000)
-							>> 24);
-		}
-
-		Status |= VL53L0X_WrByte(Dev, 0x81, 0x00);
-		Status |= VL53L0X_WrByte(Dev, 0xFF, 0x06);
-		Status |= VL53L0X_RdByte(Dev, 0x83, &byte);
-		Status |= VL53L0X_WrByte(Dev, 0x83, byte&0xfb);
-		Status |= VL53L0X_WrByte(Dev, 0xFF, 0x01);
-		Status |= VL53L0X_WrByte(Dev, 0x00, 0x01);
-
-		Status |= VL53L0X_WrByte(Dev, 0xFF, 0x00);
-		Status |= VL53L0X_WrByte(Dev, 0x80, 0x00);
-	}
-
-	if ((Status == VL53L0X_ERROR_NONE) &&
-		(ReadDataFromDeviceDone != 7)) {
-		/* Assign to variable if status is ok */
-		if (((option & 1) == 1) &&
-			((ReadDataFromDeviceDone & 1) == 0)) {
-			VL53L0X_SETDEVICESPECIFICPARAMETER(Dev,
-				ReferenceSpadCount, ReferenceSpadCount);
-
-			VL53L0X_SETDEVICESPECIFICPARAMETER(Dev,
-				ReferenceSpadType, ReferenceSpadType);
-
-			for (i = 0; i < VL53L0X_REF_SPAD_BUFFER_SIZE; i++) {
-				Dev->Data.SpadData.RefGoodSpadMap[i] =
-					NvmRefGoodSpadMap[i];
-			}
-		}
-
-		if (((option & 2) == 2) &&
-			((ReadDataFromDeviceDone & 2) == 0)) {
-			VL53L0X_SETDEVICESPECIFICPARAMETER(Dev,
-					ModuleId, ModuleId);
-
-			VL53L0X_SETDEVICESPECIFICPARAMETER(Dev,
-					Revision, Revision);
-
-			ProductId_tmp = VL53L0X_GETDEVICESPECIFICPARAMETER(Dev,
-					ProductId);
-			VL53L0X_COPYSTRING(ProductId_tmp, ProductId);
-
-		}
-
-		if (((option & 4) == 4) &&
-			((ReadDataFromDeviceDone & 4) == 0)) {
-			VL53L0X_SETDEVICESPECIFICPARAMETER(Dev,
-						PartUIDUpper, PartUIDUpper);
-
-			VL53L0X_SETDEVICESPECIFICPARAMETER(Dev,
-						PartUIDLower, PartUIDLower);
-
-			SignalRateMeasFixed400mmFix =
-				VL53L0X_FIXPOINT97TOFIXPOINT1616(
-					SignalRateMeasFixed1104_400_mm);
-
-			VL53L0X_SETDEVICESPECIFICPARAMETER(Dev,
-				SignalRateMeasFixed400mm,
-				SignalRateMeasFixed400mmFix);
-
-			OffsetMicroMeters = 0;
-			if (DistMeasFixed1104_400_mm != 0) {
-					OffsetFixed1104_mm =
-						DistMeasFixed1104_400_mm -
-						DistMeasTgtFixed1104_mm;
-					OffsetMicroMeters = (OffsetFixed1104_mm
-						* 1000) >> 4;
-					OffsetMicroMeters *= -1;
-			}
-
-			PALDevDataSet(Dev,
-				Part2PartOffsetAdjustmentNVMMicroMeter,
-				OffsetMicroMeters);
-		}
-		byte = (uint8_t)(ReadDataFromDeviceDone|option);
-		VL53L0X_SETDEVICESPECIFICPARAMETER(Dev, ReadDataFromDeviceDone,
-				byte);
-	}
-
-	LOG_FUNCTION_END(Status);
-	return Status;
-}
-
-
-uint32_t VL53L0X_calc_macro_period_ps(VL53L0X_DEV Dev, uint8_t vcsel_period_pclks)
-{
-	uint64_t PLL_period_ps;
-	uint32_t macro_period_vclks;
-	uint32_t macro_period_ps;
-
-	LOG_FUNCTION_START("");
-
-	/* The above calculation will produce rounding errors,
-	   therefore set fixed value
-	*/
-	PLL_period_ps = 1655;
-
-	macro_period_vclks = 2304;
-	macro_period_ps = (uint32_t)(macro_period_vclks
-			* vcsel_period_pclks * PLL_period_ps);
-
-	LOG_FUNCTION_END("");
-	return macro_period_ps;
-}
-
-uint16_t VL53L0X_encode_timeout(uint32_t timeout_macro_clks)
-{
-	/*!
-	 * Encode timeout in macro periods in (LSByte * 2^MSByte) + 1 format
-	 */
-
-	uint16_t encoded_timeout = 0;
-	uint32_t ls_byte = 0;
-	uint16_t ms_byte = 0;
-
-	if (timeout_macro_clks > 0) {
-		ls_byte = timeout_macro_clks - 1;
-
-		while ((ls_byte & 0xFFFFFF00) > 0) {
-			ls_byte = ls_byte >> 1;
-			ms_byte++;
-		}
-
-		encoded_timeout = (ms_byte << 8)
-				+ (uint16_t) (ls_byte & 0x000000FF);
-	}
-
-	return encoded_timeout;
-
-}
-
-uint32_t VL53L0X_decode_timeout(uint16_t encoded_timeout)
-{
-	/*!
-	 * Decode 16-bit timeout register value - format (LSByte * 2^MSByte) + 1
-	 */
-
-	uint32_t timeout_macro_clks = 0;
-
-	timeout_macro_clks = ((uint32_t) (encoded_timeout & 0x00FF)
-			<< (uint32_t) ((encoded_timeout & 0xFF00) >> 8)) + 1;
-
-	return timeout_macro_clks;
-}
-
-
-/* To convert ms into register value */
-uint32_t VL53L0X_calc_timeout_mclks(VL53L0X_DEV Dev,
-		uint32_t timeout_period_us,
-		uint8_t vcsel_period_pclks)
-{
-	uint32_t macro_period_ps;
-	uint32_t macro_period_ns;
-	uint32_t timeout_period_mclks = 0;
-
-	macro_period_ps = VL53L0X_calc_macro_period_ps(Dev, vcsel_period_pclks);
-	macro_period_ns = (macro_period_ps + 500) / 1000;
-
-	timeout_period_mclks =
-		(uint32_t) (((timeout_period_us * 1000)
-		+ (macro_period_ns / 2)) / macro_period_ns);
-
-    return timeout_period_mclks;
-}
-
-/* To convert register value into us */
-uint32_t VL53L0X_calc_timeout_us(VL53L0X_DEV Dev,
-		uint16_t timeout_period_mclks,
-		uint8_t vcsel_period_pclks)
-{
-	uint32_t macro_period_ps;
-	uint32_t macro_period_ns;
-	uint32_t actual_timeout_period_us = 0;
-
-	macro_period_ps = VL53L0X_calc_macro_period_ps(Dev, vcsel_period_pclks);
-	macro_period_ns = (macro_period_ps + 500) / 1000;
-
-	actual_timeout_period_us =
-		((timeout_period_mclks * macro_period_ns) + 500) / 1000;
-
-	return actual_timeout_period_us;
-}
-
-
-VL53L0X_Error get_sequence_step_timeout(VL53L0X_DEV Dev,
-				VL53L0X_SequenceStepId SequenceStepId,
-				uint32_t *pTimeOutMicroSecs)
-{
-	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
-	uint8_t CurrentVCSELPulsePeriodPClk;
-	uint8_t EncodedTimeOutByte = 0;
-	uint32_t TimeoutMicroSeconds = 0;
-	uint16_t PreRangeEncodedTimeOut = 0;
-	uint16_t MsrcTimeOutMClks;
-	uint16_t PreRangeTimeOutMClks;
-	uint16_t FinalRangeTimeOutMClks = 0;
-	uint16_t FinalRangeEncodedTimeOut;
-	VL53L0X_SchedulerSequenceSteps_t SchedulerSequenceSteps;
-
-	if ((SequenceStepId == VL53L0X_SEQUENCESTEP_TCC)	 ||
-		(SequenceStepId == VL53L0X_SEQUENCESTEP_DSS)	 ||
-		(SequenceStepId == VL53L0X_SEQUENCESTEP_MSRC)) {
-
-		Status = VL53L0X_GetVcselPulsePeriod(Dev,
-					VL53L0X_VCSEL_PERIOD_PRE_RANGE,
-					&CurrentVCSELPulsePeriodPClk);
-		if (Status == VL53L0X_ERROR_NONE) {
-			Status = VL53L0X_RdByte(Dev,
-					VL53L0X_REG_MSRC_CONFIG_TIMEOUT_MACROP,
-					&EncodedTimeOutByte);
-		}
-		MsrcTimeOutMClks = VL53L0X_decode_timeout(EncodedTimeOutByte);
-
-		TimeoutMicroSeconds = VL53L0X_calc_timeout_us(Dev,
-						MsrcTimeOutMClks,
-						CurrentVCSELPulsePeriodPClk);
-	} else if (SequenceStepId == VL53L0X_SEQUENCESTEP_PRE_RANGE) {
-		/* Retrieve PRE-RANGE VCSEL Period */
-		Status = VL53L0X_GetVcselPulsePeriod(Dev,
-						VL53L0X_VCSEL_PERIOD_PRE_RANGE,
-						&CurrentVCSELPulsePeriodPClk);
-
-		/* Retrieve PRE-RANGE Timeout in Macro periods (MCLKS) */
-		if (Status == VL53L0X_ERROR_NONE) {
-
-			/* Retrieve PRE-RANGE VCSEL Period */
-			Status = VL53L0X_GetVcselPulsePeriod(Dev,
-					VL53L0X_VCSEL_PERIOD_PRE_RANGE,
-					&CurrentVCSELPulsePeriodPClk);
-
-			if (Status == VL53L0X_ERROR_NONE) {
-				Status = VL53L0X_RdWord(Dev,
-				VL53L0X_REG_PRE_RANGE_CONFIG_TIMEOUT_MACROP_HI,
-				&PreRangeEncodedTimeOut);
-			}
-
-			PreRangeTimeOutMClks = VL53L0X_decode_timeout(
-					PreRangeEncodedTimeOut);
-
-			TimeoutMicroSeconds = VL53L0X_calc_timeout_us(Dev,
-					PreRangeTimeOutMClks,
-					CurrentVCSELPulsePeriodPClk);
-		}
-	} else if (SequenceStepId == VL53L0X_SEQUENCESTEP_FINAL_RANGE) {
-
-		VL53L0X_GetSequenceStepEnables(Dev, &SchedulerSequenceSteps);
-		PreRangeTimeOutMClks = 0;
-
-		if (SchedulerSequenceSteps.PreRangeOn) {
-			/* Retrieve PRE-RANGE VCSEL Period */
-			Status = VL53L0X_GetVcselPulsePeriod(Dev,
-				VL53L0X_VCSEL_PERIOD_PRE_RANGE,
-				&CurrentVCSELPulsePeriodPClk);
-
-			/* Retrieve PRE-RANGE Timeout in Macro periods
-			 * (MCLKS) */
-			if (Status == VL53L0X_ERROR_NONE) {
-				Status = VL53L0X_RdWord(Dev,
-				VL53L0X_REG_PRE_RANGE_CONFIG_TIMEOUT_MACROP_HI,
-				&PreRangeEncodedTimeOut);
-				PreRangeTimeOutMClks = VL53L0X_decode_timeout(
-						PreRangeEncodedTimeOut);
-			}
-		}
-
-		if (Status == VL53L0X_ERROR_NONE) {
-			/* Retrieve FINAL-RANGE VCSEL Period */
-			Status = VL53L0X_GetVcselPulsePeriod(Dev,
-					VL53L0X_VCSEL_PERIOD_FINAL_RANGE,
-					&CurrentVCSELPulsePeriodPClk);
-		}
-
-		/* Retrieve FINAL-RANGE Timeout in Macro periods (MCLKS) */
-		if (Status == VL53L0X_ERROR_NONE) {
-			Status = VL53L0X_RdWord(Dev,
-				VL53L0X_REG_FINAL_RANGE_CONFIG_TIMEOUT_MACROP_HI,
-				&FinalRangeEncodedTimeOut);
-			FinalRangeTimeOutMClks = VL53L0X_decode_timeout(
-					FinalRangeEncodedTimeOut);
-		}
-
-		FinalRangeTimeOutMClks -= PreRangeTimeOutMClks;
-		TimeoutMicroSeconds = VL53L0X_calc_timeout_us(Dev,
-						FinalRangeTimeOutMClks,
-						CurrentVCSELPulsePeriodPClk);
-	}
-
-	*pTimeOutMicroSecs = TimeoutMicroSeconds;
-
-	return Status;
-}
-
-
-VL53L0X_Error set_sequence_step_timeout(VL53L0X_DEV Dev,
-					VL53L0X_SequenceStepId SequenceStepId,
-					uint32_t TimeOutMicroSecs)
-{
-	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
-	uint8_t CurrentVCSELPulsePeriodPClk;
-	uint8_t MsrcEncodedTimeOut;
-	uint16_t PreRangeEncodedTimeOut;
-	uint16_t PreRangeTimeOutMClks;
-	uint16_t MsrcRangeTimeOutMClks;
-	uint32_t FinalRangeTimeOutMClks;
-	uint16_t FinalRangeEncodedTimeOut;
-	VL53L0X_SchedulerSequenceSteps_t SchedulerSequenceSteps;
-
-	if ((SequenceStepId == VL53L0X_SEQUENCESTEP_TCC)	 ||
-		(SequenceStepId == VL53L0X_SEQUENCESTEP_DSS)	 ||
-		(SequenceStepId == VL53L0X_SEQUENCESTEP_MSRC)) {
-
-		Status = VL53L0X_GetVcselPulsePeriod(Dev,
-					VL53L0X_VCSEL_PERIOD_PRE_RANGE,
-					&CurrentVCSELPulsePeriodPClk);
-
-		if (Status == VL53L0X_ERROR_NONE) {
-			MsrcRangeTimeOutMClks = VL53L0X_calc_timeout_mclks(Dev,
-					TimeOutMicroSecs,
-					(uint8_t)CurrentVCSELPulsePeriodPClk);
-
-			if (MsrcRangeTimeOutMClks > 256)
-				MsrcEncodedTimeOut = 255;
-			else
-				MsrcEncodedTimeOut =
-					(uint8_t)MsrcRangeTimeOutMClks - 1;
-
-			VL53L0X_SETDEVICESPECIFICPARAMETER(Dev,
-				LastEncodedTimeout,
-				MsrcEncodedTimeOut);
-		}
-
-		if (Status == VL53L0X_ERROR_NONE) {
-			Status = VL53L0X_WrByte(Dev,
-				VL53L0X_REG_MSRC_CONFIG_TIMEOUT_MACROP,
-				MsrcEncodedTimeOut);
-		}
-	} else {
-
-		if (SequenceStepId == VL53L0X_SEQUENCESTEP_PRE_RANGE) {
-
-			if (Status == VL53L0X_ERROR_NONE) {
-				Status = VL53L0X_GetVcselPulsePeriod(Dev,
-						VL53L0X_VCSEL_PERIOD_PRE_RANGE,
-						&CurrentVCSELPulsePeriodPClk);
-				PreRangeTimeOutMClks =
-					VL53L0X_calc_timeout_mclks(Dev,
-					TimeOutMicroSecs,
-					(uint8_t)CurrentVCSELPulsePeriodPClk);
-				PreRangeEncodedTimeOut = VL53L0X_encode_timeout(
-					PreRangeTimeOutMClks);
-
-				VL53L0X_SETDEVICESPECIFICPARAMETER(Dev,
-					LastEncodedTimeout,
-					PreRangeEncodedTimeOut);
-			}
-
-			if (Status == VL53L0X_ERROR_NONE) {
-				Status = VL53L0X_WrWord(Dev,
-				VL53L0X_REG_PRE_RANGE_CONFIG_TIMEOUT_MACROP_HI,
-				PreRangeEncodedTimeOut);
-			}
-
-			if (Status == VL53L0X_ERROR_NONE) {
-				VL53L0X_SETDEVICESPECIFICPARAMETER(
-					Dev,
-					PreRangeTimeoutMicroSecs,
-					TimeOutMicroSecs);
-			}
-		} else if (SequenceStepId == VL53L0X_SEQUENCESTEP_FINAL_RANGE) {
-
-			/* For the final range timeout, the pre-range timeout
-			 * must be added. To do this both final and pre-range
-			 * timeouts must be expressed in macro periods MClks
-			 * because they have different vcsel periods.
-			 */
-
-			VL53L0X_GetSequenceStepEnables(Dev,
-					&SchedulerSequenceSteps);
-			PreRangeTimeOutMClks = 0;
-			if (SchedulerSequenceSteps.PreRangeOn) {
-
-				/* Retrieve PRE-RANGE VCSEL Period */
-				Status = VL53L0X_GetVcselPulsePeriod(Dev,
-					VL53L0X_VCSEL_PERIOD_PRE_RANGE,
-					&CurrentVCSELPulsePeriodPClk);
-
-				/* Retrieve PRE-RANGE Timeout in Macro periods
-				 * (MCLKS) */
-				if (Status == VL53L0X_ERROR_NONE) {
-					Status = VL53L0X_RdWord(Dev, 0x51,
-						&PreRangeEncodedTimeOut);
-					PreRangeTimeOutMClks =
-						VL53L0X_decode_timeout(
-							PreRangeEncodedTimeOut);
-				}
-			}
-
-			/* Calculate FINAL RANGE Timeout in Macro Periods
-			 * (MCLKS) and add PRE-RANGE value
-			 */
-			if (Status == VL53L0X_ERROR_NONE) {
-
-				Status = VL53L0X_GetVcselPulsePeriod(Dev,
-						VL53L0X_VCSEL_PERIOD_FINAL_RANGE,
-						&CurrentVCSELPulsePeriodPClk);
-			}
-			if (Status == VL53L0X_ERROR_NONE) {
-
-				FinalRangeTimeOutMClks =
-					VL53L0X_calc_timeout_mclks(Dev,
-					TimeOutMicroSecs,
-					(uint8_t) CurrentVCSELPulsePeriodPClk);
-
-				FinalRangeTimeOutMClks += PreRangeTimeOutMClks;
-
-				FinalRangeEncodedTimeOut =
-				VL53L0X_encode_timeout(FinalRangeTimeOutMClks);
-
-				if (Status == VL53L0X_ERROR_NONE) {
-					Status = VL53L0X_WrWord(Dev, 0x71,
-					FinalRangeEncodedTimeOut);
-				}
-
-				if (Status == VL53L0X_ERROR_NONE) {
-					VL53L0X_SETDEVICESPECIFICPARAMETER(
-						Dev,
-						FinalRangeTimeoutMicroSecs,
-						TimeOutMicroSecs);
-				}
-			}
-		} else
-			Status = VL53L0X_ERROR_INVALID_PARAMS;
-
-	}
-	return Status;
-}
-
-VL53L0X_Error VL53L0X_set_vcsel_pulse_period(VL53L0X_DEV Dev,
-	VL53L0X_VcselPeriod VcselPeriodType, uint8_t VCSELPulsePeriodPCLK)
-{
-	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
-	uint8_t vcsel_period_reg;
-	uint8_t MinPreVcselPeriodPCLK = 12;
-	uint8_t MaxPreVcselPeriodPCLK = 18;
-	uint8_t MinFinalVcselPeriodPCLK = 8;
-	uint8_t MaxFinalVcselPeriodPCLK = 14;
-	uint32_t MeasurementTimingBudgetMicroSeconds;
-	uint32_t FinalRangeTimeoutMicroSeconds;
-	uint32_t PreRangeTimeoutMicroSeconds;
-	uint32_t MsrcTimeoutMicroSeconds;
-	uint8_t PhaseCalInt = 0;
-
-	/* Check if valid clock period requested */
-
-	if ((VCSELPulsePeriodPCLK % 2) != 0) {
-		/* Value must be an even number */
-		Status = VL53L0X_ERROR_INVALID_PARAMS;
-	} else if (VcselPeriodType == VL53L0X_VCSEL_PERIOD_PRE_RANGE &&
-		(VCSELPulsePeriodPCLK < MinPreVcselPeriodPCLK ||
-		VCSELPulsePeriodPCLK > MaxPreVcselPeriodPCLK)) {
-		Status = VL53L0X_ERROR_INVALID_PARAMS;
-	} else if (VcselPeriodType == VL53L0X_VCSEL_PERIOD_FINAL_RANGE &&
-		(VCSELPulsePeriodPCLK < MinFinalVcselPeriodPCLK ||
-		 VCSELPulsePeriodPCLK > MaxFinalVcselPeriodPCLK)) {
-
-		Status = VL53L0X_ERROR_INVALID_PARAMS;
-	}
-
-	/* Apply specific settings for the requested clock period */
-
-	if (Status != VL53L0X_ERROR_NONE)
-		return Status;
-
-
-	if (VcselPeriodType == VL53L0X_VCSEL_PERIOD_PRE_RANGE) {
-
-		/* Set phase check limits */
-		if (VCSELPulsePeriodPCLK == 12) {
-
-			Status = VL53L0X_WrByte(Dev,
-				VL53L0X_REG_PRE_RANGE_CONFIG_VALID_PHASE_HIGH,
-				0x18);
-			Status = VL53L0X_WrByte(Dev,
-				VL53L0X_REG_PRE_RANGE_CONFIG_VALID_PHASE_LOW,
-				0x08);
-		} else if (VCSELPulsePeriodPCLK == 14) {
-
-			Status = VL53L0X_WrByte(Dev,
-				VL53L0X_REG_PRE_RANGE_CONFIG_VALID_PHASE_HIGH,
-				0x30);
-			Status = VL53L0X_WrByte(Dev,
-				VL53L0X_REG_PRE_RANGE_CONFIG_VALID_PHASE_LOW,
-				0x08);
-		} else if (VCSELPulsePeriodPCLK == 16) {
-
-			Status = VL53L0X_WrByte(Dev,
-				VL53L0X_REG_PRE_RANGE_CONFIG_VALID_PHASE_HIGH,
-				0x40);
-			Status = VL53L0X_WrByte(Dev,
-				VL53L0X_REG_PRE_RANGE_CONFIG_VALID_PHASE_LOW,
-				0x08);
-		} else if (VCSELPulsePeriodPCLK == 18) {
-
-			Status = VL53L0X_WrByte(Dev,
-				VL53L0X_REG_PRE_RANGE_CONFIG_VALID_PHASE_HIGH,
-				0x50);
-			Status = VL53L0X_WrByte(Dev,
-				VL53L0X_REG_PRE_RANGE_CONFIG_VALID_PHASE_LOW,
-				0x08);
-		}
-	} else if (VcselPeriodType == VL53L0X_VCSEL_PERIOD_FINAL_RANGE) {
-
-		if (VCSELPulsePeriodPCLK == 8) {
-
-			Status = VL53L0X_WrByte(Dev,
-				VL53L0X_REG_FINAL_RANGE_CONFIG_VALID_PHASE_HIGH,
-				0x10);
-			Status = VL53L0X_WrByte(Dev,
-				VL53L0X_REG_FINAL_RANGE_CONFIG_VALID_PHASE_LOW,
-				0x08);
-
-			Status |= VL53L0X_WrByte(Dev,
-				VL53L0X_REG_GLOBAL_CONFIG_VCSEL_WIDTH, 0x02);
-			Status |= VL53L0X_WrByte(Dev,
-				VL53L0X_REG_ALGO_PHASECAL_CONFIG_TIMEOUT, 0x0C);
-
-			Status |= VL53L0X_WrByte(Dev, 0xff, 0x01);
-			Status |= VL53L0X_WrByte(Dev,
-				VL53L0X_REG_ALGO_PHASECAL_LIM,
-				0x30);
-			Status |= VL53L0X_WrByte(Dev, 0xff, 0x00);
-		} else if (VCSELPulsePeriodPCLK == 10) {
-
-			Status = VL53L0X_WrByte(Dev,
-				VL53L0X_REG_FINAL_RANGE_CONFIG_VALID_PHASE_HIGH,
-				0x28);
-			Status = VL53L0X_WrByte(Dev,
-				VL53L0X_REG_FINAL_RANGE_CONFIG_VALID_PHASE_LOW,
-				0x08);
-
-			Status |= VL53L0X_WrByte(Dev,
-				VL53L0X_REG_GLOBAL_CONFIG_VCSEL_WIDTH, 0x03);
-			Status |= VL53L0X_WrByte(Dev,
-				VL53L0X_REG_ALGO_PHASECAL_CONFIG_TIMEOUT, 0x09);
-
-			Status |= VL53L0X_WrByte(Dev, 0xff, 0x01);
-			Status |= VL53L0X_WrByte(Dev,
-				VL53L0X_REG_ALGO_PHASECAL_LIM,
-				0x20);
-			Status |= VL53L0X_WrByte(Dev, 0xff, 0x00);
-		} else if (VCSELPulsePeriodPCLK == 12) {
-
-			Status = VL53L0X_WrByte(Dev,
-				VL53L0X_REG_FINAL_RANGE_CONFIG_VALID_PHASE_HIGH,
-				0x38);
-			Status = VL53L0X_WrByte(Dev,
-				VL53L0X_REG_FINAL_RANGE_CONFIG_VALID_PHASE_LOW,
-				0x08);
-
-			Status |= VL53L0X_WrByte(Dev,
-				VL53L0X_REG_GLOBAL_CONFIG_VCSEL_WIDTH, 0x03);
-			Status |= VL53L0X_WrByte(Dev,
-				VL53L0X_REG_ALGO_PHASECAL_CONFIG_TIMEOUT, 0x08);
-
-			Status |= VL53L0X_WrByte(Dev, 0xff, 0x01);
-			Status |= VL53L0X_WrByte(Dev,
-				VL53L0X_REG_ALGO_PHASECAL_LIM,
-				0x20);
-			Status |= VL53L0X_WrByte(Dev, 0xff, 0x00);
-		} else if (VCSELPulsePeriodPCLK == 14) {
-
-			Status = VL53L0X_WrByte(Dev,
-				VL53L0X_REG_FINAL_RANGE_CONFIG_VALID_PHASE_HIGH,
-				0x048);
-			Status = VL53L0X_WrByte(Dev,
-				VL53L0X_REG_FINAL_RANGE_CONFIG_VALID_PHASE_LOW,
-				0x08);
-
-			Status |= VL53L0X_WrByte(Dev,
-				VL53L0X_REG_GLOBAL_CONFIG_VCSEL_WIDTH, 0x03);
-			Status |= VL53L0X_WrByte(Dev,
-				VL53L0X_REG_ALGO_PHASECAL_CONFIG_TIMEOUT, 0x07);
-
-			Status |= VL53L0X_WrByte(Dev, 0xff, 0x01);
-			Status |= VL53L0X_WrByte(Dev,
-				VL53L0X_REG_ALGO_PHASECAL_LIM,
-				0x20);
-			Status |= VL53L0X_WrByte(Dev, 0xff, 0x00);
-		}
-	}
-
-
-	/* Re-calculate and apply timeouts, in macro periods */
-
-	if (Status == VL53L0X_ERROR_NONE) {
-		vcsel_period_reg = VL53L0X_encode_vcsel_period((uint8_t)
-			VCSELPulsePeriodPCLK);
-
-		/* When the VCSEL period for the pre or final range is changed,
-		* the corresponding timeout must be read from the device using
-		* the current VCSEL period, then the new VCSEL period can be
-		* applied. The timeout then must be written back to the device
-		* using the new VCSEL period.
-		*
-		* For the MSRC timeout, the same applies - this timeout being
-		* dependant on the pre-range vcsel period.
-		*/
-		switch (VcselPeriodType) {
-		case VL53L0X_VCSEL_PERIOD_PRE_RANGE:
-			Status = get_sequence_step_timeout(Dev,
-				VL53L0X_SEQUENCESTEP_PRE_RANGE,
-				&PreRangeTimeoutMicroSeconds);
-
-			if (Status == VL53L0X_ERROR_NONE)
-				Status = get_sequence_step_timeout(Dev,
-					VL53L0X_SEQUENCESTEP_MSRC,
-					&MsrcTimeoutMicroSeconds);
-
-			if (Status == VL53L0X_ERROR_NONE)
-				Status = VL53L0X_WrByte(Dev,
-				VL53L0X_REG_PRE_RANGE_CONFIG_VCSEL_PERIOD,
-					vcsel_period_reg);
-
-
-			if (Status == VL53L0X_ERROR_NONE)
-				Status = set_sequence_step_timeout(Dev,
-					VL53L0X_SEQUENCESTEP_PRE_RANGE,
-					PreRangeTimeoutMicroSeconds);
-
-
-			if (Status == VL53L0X_ERROR_NONE)
-				Status = set_sequence_step_timeout(Dev,
-					VL53L0X_SEQUENCESTEP_MSRC,
-					MsrcTimeoutMicroSeconds);
-
-			VL53L0X_SETDEVICESPECIFICPARAMETER(
-				Dev,
-				PreRangeVcselPulsePeriod,
-				VCSELPulsePeriodPCLK);
-			break;
-		case VL53L0X_VCSEL_PERIOD_FINAL_RANGE:
-			Status = get_sequence_step_timeout(Dev,
-				VL53L0X_SEQUENCESTEP_FINAL_RANGE,
-				&FinalRangeTimeoutMicroSeconds);
-
-			if (Status == VL53L0X_ERROR_NONE)
-				Status = VL53L0X_WrByte(Dev,
-				VL53L0X_REG_FINAL_RANGE_CONFIG_VCSEL_PERIOD,
-					vcsel_period_reg);
-
-
-			if (Status == VL53L0X_ERROR_NONE)
-				Status = set_sequence_step_timeout(Dev,
-					VL53L0X_SEQUENCESTEP_FINAL_RANGE,
-					FinalRangeTimeoutMicroSeconds);
-
-			VL53L0X_SETDEVICESPECIFICPARAMETER(
-				Dev,
-				FinalRangeVcselPulsePeriod,
-				VCSELPulsePeriodPCLK);
-			break;
-		default:
-			Status = VL53L0X_ERROR_INVALID_PARAMS;
-		}
-	}
-
-	/* Finally, the timing budget must be re-applied */
-	if (Status == VL53L0X_ERROR_NONE) {
-		VL53L0X_GETPARAMETERFIELD(Dev,
-			MeasurementTimingBudgetMicroSeconds,
-			MeasurementTimingBudgetMicroSeconds);
-
-		Status = VL53L0X_SetMeasurementTimingBudgetMicroSeconds(Dev,
-				MeasurementTimingBudgetMicroSeconds);
-	}
-
-	/* Perform the phase calibration. This is needed after changing on
-	 * vcsel period.
-	 * get_data_enable = 0, restore_config = 1 */
-	if (Status == VL53L0X_ERROR_NONE)
-		Status = VL53L0X_perform_phase_calibration(
-			Dev, &PhaseCalInt, 0, 1);
-
-	return Status;
-}
-
-VL53L0X_Error VL53L0X_get_vcsel_pulse_period(VL53L0X_DEV Dev,
-	VL53L0X_VcselPeriod VcselPeriodType, uint8_t *pVCSELPulsePeriodPCLK)
-{
-	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
-	uint8_t vcsel_period_reg;
-
-	switch (VcselPeriodType) {
-	case VL53L0X_VCSEL_PERIOD_PRE_RANGE:
-		Status = VL53L0X_RdByte(Dev,
-			VL53L0X_REG_PRE_RANGE_CONFIG_VCSEL_PERIOD,
-			&vcsel_period_reg);
-	break;
-	case VL53L0X_VCSEL_PERIOD_FINAL_RANGE:
-		Status = VL53L0X_RdByte(Dev,
-			VL53L0X_REG_FINAL_RANGE_CONFIG_VCSEL_PERIOD,
-			&vcsel_period_reg);
-	break;
-	default:
-		Status = VL53L0X_ERROR_INVALID_PARAMS;
-	}
-
-	if (Status == VL53L0X_ERROR_NONE)
-		*pVCSELPulsePeriodPCLK =
-			VL53L0X_decode_vcsel_period(vcsel_period_reg);
-
-	return Status;
-}
-
-
-
-VL53L0X_Error VL53L0X_set_measurement_timing_budget_micro_seconds(VL53L0X_DEV Dev,
-		uint32_t MeasurementTimingBudgetMicroSeconds)
-{
-	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
-	uint32_t FinalRangeTimingBudgetMicroSeconds;
-	VL53L0X_SchedulerSequenceSteps_t SchedulerSequenceSteps;
-	uint32_t MsrcDccTccTimeoutMicroSeconds	= 2000;
-	uint32_t StartOverheadMicroSeconds		= 1910;
-	uint32_t EndOverheadMicroSeconds		= 960;
-	uint32_t MsrcOverheadMicroSeconds		= 660;
-	uint32_t TccOverheadMicroSeconds		= 590;
-	uint32_t DssOverheadMicroSeconds		= 690;
-	uint32_t PreRangeOverheadMicroSeconds	= 660;
-	uint32_t FinalRangeOverheadMicroSeconds = 550;
-	uint32_t PreRangeTimeoutMicroSeconds	= 0;
-	uint32_t cMinTimingBudgetMicroSeconds	= 20000;
-	uint32_t SubTimeout = 0;
-
-	LOG_FUNCTION_START("");
-
-	if (MeasurementTimingBudgetMicroSeconds
-			< cMinTimingBudgetMicroSeconds) {
-		Status = VL53L0X_ERROR_INVALID_PARAMS;
-		return Status;
-	}
-
-	FinalRangeTimingBudgetMicroSeconds =
-		MeasurementTimingBudgetMicroSeconds -
-		(StartOverheadMicroSeconds + EndOverheadMicroSeconds);
-
-	Status = VL53L0X_GetSequenceStepEnables(Dev, &SchedulerSequenceSteps);
-
-	if (Status == VL53L0X_ERROR_NONE &&
-		(SchedulerSequenceSteps.TccOn  ||
-		SchedulerSequenceSteps.MsrcOn ||
-		SchedulerSequenceSteps.DssOn)) {
-
-		/* TCC, MSRC and DSS all share the same timeout */
-		Status = get_sequence_step_timeout(Dev,
-					VL53L0X_SEQUENCESTEP_MSRC,
-					&MsrcDccTccTimeoutMicroSeconds);
-
-		/* Subtract the TCC, MSRC and DSS timeouts if they are
-		 * enabled. */
-
-		if (Status != VL53L0X_ERROR_NONE)
-			return Status;
-
-		/* TCC */
-		if (SchedulerSequenceSteps.TccOn) {
-
-			SubTimeout = MsrcDccTccTimeoutMicroSeconds
-				+ TccOverheadMicroSeconds;
-
-			if (SubTimeout <
-				FinalRangeTimingBudgetMicroSeconds) {
-				FinalRangeTimingBudgetMicroSeconds -=
-							SubTimeout;
-			} else {
-				/* Requested timeout too big. */
-				Status = VL53L0X_ERROR_INVALID_PARAMS;
-			}
-		}
-
-		if (Status != VL53L0X_ERROR_NONE) {
-			LOG_FUNCTION_END(Status);
-			return Status;
-		}
-
-		/* DSS */
-		if (SchedulerSequenceSteps.DssOn) {
-
-			SubTimeout = 2 * (MsrcDccTccTimeoutMicroSeconds +
-				DssOverheadMicroSeconds);
-
-			if (SubTimeout < FinalRangeTimingBudgetMicroSeconds) {
-				FinalRangeTimingBudgetMicroSeconds
-							-= SubTimeout;
-			} else {
-				/* Requested timeout too big. */
-				Status = VL53L0X_ERROR_INVALID_PARAMS;
-			}
-		} else if (SchedulerSequenceSteps.MsrcOn) {
-			/* MSRC */
-			SubTimeout = MsrcDccTccTimeoutMicroSeconds +
-						MsrcOverheadMicroSeconds;
-
-			if (SubTimeout < FinalRangeTimingBudgetMicroSeconds) {
-				FinalRangeTimingBudgetMicroSeconds
-							-= SubTimeout;
-			} else {
-				/* Requested timeout too big. */
-				Status = VL53L0X_ERROR_INVALID_PARAMS;
-			}
-		}
-
-	}
-
-	if (Status != VL53L0X_ERROR_NONE) {
-		LOG_FUNCTION_END(Status);
-		return Status;
-	}
-
-	if (SchedulerSequenceSteps.PreRangeOn) {
-
-		/* Subtract the Pre-range timeout if enabled. */
-
-		Status = get_sequence_step_timeout(Dev,
-				VL53L0X_SEQUENCESTEP_PRE_RANGE,
-				&PreRangeTimeoutMicroSeconds);
-
-		SubTimeout = PreRangeTimeoutMicroSeconds +
-				PreRangeOverheadMicroSeconds;
-
-		if (SubTimeout < FinalRangeTimingBudgetMicroSeconds) {
-			FinalRangeTimingBudgetMicroSeconds -= SubTimeout;
-		} else {
-			/* Requested timeout too big. */
-			Status = VL53L0X_ERROR_INVALID_PARAMS;
-		}
-	}
-
-
-	if (Status == VL53L0X_ERROR_NONE &&
-		SchedulerSequenceSteps.FinalRangeOn) {
-
-		FinalRangeTimingBudgetMicroSeconds -=
-				FinalRangeOverheadMicroSeconds;
-
-		/* Final Range Timeout
-		 * Note that the final range timeout is determined by the timing
-		 * budget and the sum of all other timeouts within the sequence.
-		 * If there is no room for the final range timeout, then an error
-		 * will be set. Otherwise the remaining time will be applied to
-		 * the final range.
-		 */
-		Status = set_sequence_step_timeout(Dev,
-			VL53L0X_SEQUENCESTEP_FINAL_RANGE,
-			FinalRangeTimingBudgetMicroSeconds);
-
-		VL53L0X_SETPARAMETERFIELD(Dev,
-			MeasurementTimingBudgetMicroSeconds,
-			MeasurementTimingBudgetMicroSeconds);
-	}
-
-	LOG_FUNCTION_END(Status);
-
-	return Status;
-}
-
-VL53L0X_Error VL53L0X_get_measurement_timing_budget_micro_seconds(VL53L0X_DEV Dev,
-		uint32_t *pMeasurementTimingBudgetMicroSeconds)
-{
-	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
-	VL53L0X_SchedulerSequenceSteps_t SchedulerSequenceSteps;
-	uint32_t FinalRangeTimeoutMicroSeconds;
-	uint32_t MsrcDccTccTimeoutMicroSeconds	= 2000;
-	uint32_t StartOverheadMicroSeconds		= 1910;
-	uint32_t EndOverheadMicroSeconds		= 960;
-	uint32_t MsrcOverheadMicroSeconds		= 660;
-	uint32_t TccOverheadMicroSeconds		= 590;
-	uint32_t DssOverheadMicroSeconds		= 690;
-	uint32_t PreRangeOverheadMicroSeconds	= 660;
-	uint32_t FinalRangeOverheadMicroSeconds = 550;
-	uint32_t PreRangeTimeoutMicroSeconds	= 0;
-
-	LOG_FUNCTION_START("");
-
-	/* Start and end overhead times always present */
-	*pMeasurementTimingBudgetMicroSeconds
-		= StartOverheadMicroSeconds + EndOverheadMicroSeconds;
-
-	Status = VL53L0X_GetSequenceStepEnables(Dev, &SchedulerSequenceSteps);
-
-	if (Status != VL53L0X_ERROR_NONE) {
-		LOG_FUNCTION_END(Status);
-		return Status;
-	}
-
-
-	if (SchedulerSequenceSteps.TccOn  ||
-		SchedulerSequenceSteps.MsrcOn ||
-		SchedulerSequenceSteps.DssOn) {
-
-		Status = get_sequence_step_timeout(Dev,
-				VL53L0X_SEQUENCESTEP_MSRC,
-				&MsrcDccTccTimeoutMicroSeconds);
-
-		if (Status == VL53L0X_ERROR_NONE) {
-			if (SchedulerSequenceSteps.TccOn) {
-				*pMeasurementTimingBudgetMicroSeconds +=
-					MsrcDccTccTimeoutMicroSeconds +
-					TccOverheadMicroSeconds;
-			}
-
-			if (SchedulerSequenceSteps.DssOn) {
-				*pMeasurementTimingBudgetMicroSeconds +=
-				2 * (MsrcDccTccTimeoutMicroSeconds +
-					DssOverheadMicroSeconds);
-			} else if (SchedulerSequenceSteps.MsrcOn) {
-				*pMeasurementTimingBudgetMicroSeconds +=
-					MsrcDccTccTimeoutMicroSeconds +
-					MsrcOverheadMicroSeconds;
-			}
-		}
-	}
-
-	if (Status == VL53L0X_ERROR_NONE) {
-		if (SchedulerSequenceSteps.PreRangeOn) {
-			Status = get_sequence_step_timeout(Dev,
-				VL53L0X_SEQUENCESTEP_PRE_RANGE,
-				&PreRangeTimeoutMicroSeconds);
-			*pMeasurementTimingBudgetMicroSeconds +=
-				PreRangeTimeoutMicroSeconds +
-				PreRangeOverheadMicroSeconds;
-		}
-	}
-
-	if (Status == VL53L0X_ERROR_NONE) {
-		if (SchedulerSequenceSteps.FinalRangeOn) {
-			Status = get_sequence_step_timeout(Dev,
-					VL53L0X_SEQUENCESTEP_FINAL_RANGE,
-					&FinalRangeTimeoutMicroSeconds);
-			*pMeasurementTimingBudgetMicroSeconds +=
-				(FinalRangeTimeoutMicroSeconds +
-				FinalRangeOverheadMicroSeconds);
-		}
-	}
-
-	if (Status == VL53L0X_ERROR_NONE) {
-		VL53L0X_SETPARAMETERFIELD(Dev,
-			MeasurementTimingBudgetMicroSeconds,
-			*pMeasurementTimingBudgetMicroSeconds);
-	}
-
-	LOG_FUNCTION_END(Status);
-	return Status;
-}
-
-
-
-VL53L0X_Error VL53L0X_load_tuning_settings(VL53L0X_DEV Dev,
-		uint8_t *pTuningSettingBuffer)
-{
-	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
-	int i;
-	int Index;
-	uint8_t msb;
-	uint8_t lsb;
-	uint8_t SelectParam;
-	uint8_t NumberOfWrites;
-	uint8_t Address;
-	uint8_t localBuffer[4]; /* max */
-	uint16_t Temp16;
-
-	LOG_FUNCTION_START("");
-
-	Index = 0;
-
-	while ((*(pTuningSettingBuffer + Index) != 0) &&
-			(Status == VL53L0X_ERROR_NONE)) {
-		NumberOfWrites = *(pTuningSettingBuffer + Index);
-		Index++;
-		if (NumberOfWrites == 0xFF) {
-			/* internal parameters */
-			SelectParam = *(pTuningSettingBuffer + Index);
-			Index++;
-			switch (SelectParam) {
-			case 0: /* uint16_t SigmaEstRefArray -> 2 bytes */
-				msb = *(pTuningSettingBuffer + Index);
-				Index++;
-				lsb = *(pTuningSettingBuffer + Index);
-				Index++;
-				Temp16 = VL53L0X_MAKEUINT16(lsb, msb);
-				PALDevDataSet(Dev, SigmaEstRefArray, Temp16);
-				break;
-			case 1: /* uint16_t SigmaEstEffPulseWidth -> 2 bytes */
-				msb = *(pTuningSettingBuffer + Index);
-				Index++;
-				lsb = *(pTuningSettingBuffer + Index);
-				Index++;
-				Temp16 = VL53L0X_MAKEUINT16(lsb, msb);
-				PALDevDataSet(Dev, SigmaEstEffPulseWidth,
-					Temp16);
-				break;
-			case 2: /* uint16_t SigmaEstEffAmbWidth -> 2 bytes */
-				msb = *(pTuningSettingBuffer + Index);
-				Index++;
-				lsb = *(pTuningSettingBuffer + Index);
-				Index++;
-				Temp16 = VL53L0X_MAKEUINT16(lsb, msb);
-				PALDevDataSet(Dev, SigmaEstEffAmbWidth, Temp16);
-				break;
-			case 3: /* uint16_t targetRefRate -> 2 bytes */
-				msb = *(pTuningSettingBuffer + Index);
-				Index++;
-				lsb = *(pTuningSettingBuffer + Index);
-				Index++;
-				Temp16 = VL53L0X_MAKEUINT16(lsb, msb);
-				PALDevDataSet(Dev, targetRefRate, Temp16);
-				break;
-			default: /* invalid parameter */
-				Status = VL53L0X_ERROR_INVALID_PARAMS;
-			}
-
-		} else if (NumberOfWrites <= 4) {
-			Address = *(pTuningSettingBuffer + Index);
-			Index++;
-
-			for (i = 0; i < NumberOfWrites; i++) {
-				localBuffer[i] = *(pTuningSettingBuffer +
-							Index);
-				Index++;
-			}
-
-			Status = VL53L0X_WriteMulti(Dev, Address, localBuffer,
-					NumberOfWrites);
-
-		} else {
-			Status = VL53L0X_ERROR_INVALID_PARAMS;
-		}
-	}
-
-	LOG_FUNCTION_END(Status);
-	return Status;
-}
-
-VL53L0X_Error VL53L0X_get_total_xtalk_rate(VL53L0X_DEV Dev,
-	VL53L0X_RangingMeasurementData_t *pRangingMeasurementData,
-	FixPoint1616_t *ptotal_xtalk_rate_mcps)
-{
-	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
-
-	uint8_t xtalkCompEnable;
-	FixPoint1616_t totalXtalkMegaCps;
-	FixPoint1616_t xtalkPerSpadMegaCps;
-
-	*ptotal_xtalk_rate_mcps = 0;
-
-	Status = VL53L0X_GetXTalkCompensationEnable(Dev, &xtalkCompEnable);
-	if (Status == VL53L0X_ERROR_NONE) {
-
-		if (xtalkCompEnable) {
-
-			VL53L0X_GETPARAMETERFIELD(
-				Dev,
-				XTalkCompensationRateMegaCps,
-				xtalkPerSpadMegaCps);
-
-			/* FixPoint1616 * FixPoint 8:8 = FixPoint0824 */
-			totalXtalkMegaCps =
-				pRangingMeasurementData->EffectiveSpadRtnCount *
-				xtalkPerSpadMegaCps;
-
-			/* FixPoint0824 >> 8 = FixPoint1616 */
-			*ptotal_xtalk_rate_mcps =
-				(totalXtalkMegaCps + 0x80) >> 8;
-		}
-	}
-
-	return Status;
-}
-
-VL53L0X_Error VL53L0X_get_total_signal_rate(VL53L0X_DEV Dev,
-	VL53L0X_RangingMeasurementData_t *pRangingMeasurementData,
-	FixPoint1616_t *ptotal_signal_rate_mcps)
-{
-	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
-	FixPoint1616_t totalXtalkMegaCps;
-
-	LOG_FUNCTION_START("");
-
-	*ptotal_signal_rate_mcps =
-		pRangingMeasurementData->SignalRateRtnMegaCps;
-
-	Status = VL53L0X_get_total_xtalk_rate(
-		Dev, pRangingMeasurementData, &totalXtalkMegaCps);
-
-	if (Status == VL53L0X_ERROR_NONE)
-		*ptotal_signal_rate_mcps += totalXtalkMegaCps;
-
-	return Status;
-}
-
-VL53L0X_Error VL53L0X_calc_dmax(
-	VL53L0X_DEV Dev,
-	FixPoint1616_t totalSignalRate_mcps,
-	FixPoint1616_t totalCorrSignalRate_mcps,
-	FixPoint1616_t pwMult,
-	uint32_t sigmaEstimateP1,
-	FixPoint1616_t sigmaEstimateP2,
-	uint32_t peakVcselDuration_us,
-	uint32_t *pdmax_mm)
-{
-	const uint32_t cSigmaLimit		= 18;
-	const FixPoint1616_t cSignalLimit	= 0x4000; /* 0.25 */
-	const FixPoint1616_t cSigmaEstRef	= 0x00000042; /* 0.001 */
-	const uint32_t cAmbEffWidthSigmaEst_ns = 6;
-	const uint32_t cAmbEffWidthDMax_ns	   = 7;
-	uint32_t dmaxCalRange_mm;
-	FixPoint1616_t dmaxCalSignalRateRtn_mcps;
-	FixPoint1616_t minSignalNeeded;
-	FixPoint1616_t minSignalNeeded_p1;
-	FixPoint1616_t minSignalNeeded_p2;
-	FixPoint1616_t minSignalNeeded_p3;
-	FixPoint1616_t minSignalNeeded_p4;
-	FixPoint1616_t sigmaLimitTmp;
-	FixPoint1616_t sigmaEstSqTmp;
-	FixPoint1616_t signalLimitTmp;
-	FixPoint1616_t SignalAt0mm;
-	FixPoint1616_t dmaxDark;
-	FixPoint1616_t dmaxAmbient;
-	FixPoint1616_t dmaxDarkTmp;
-	FixPoint1616_t sigmaEstP2Tmp;
-	uint32_t signalRateTemp_mcps;
-
-	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
-
-	LOG_FUNCTION_START("");
-
-	dmaxCalRange_mm =
-		PALDevDataGet(Dev, DmaxCalRangeMilliMeter);
-
-	dmaxCalSignalRateRtn_mcps =
-		PALDevDataGet(Dev, DmaxCalSignalRateRtnMegaCps);
-
-	/* uint32 * FixPoint1616 = FixPoint1616 */
-	SignalAt0mm = dmaxCalRange_mm * dmaxCalSignalRateRtn_mcps;
-
-	/* FixPoint1616 >> 8 = FixPoint2408 */
-	SignalAt0mm = (SignalAt0mm + 0x80) >> 8;
-	SignalAt0mm *= dmaxCalRange_mm;
-
-	minSignalNeeded_p1 = 0;
-	if (totalCorrSignalRate_mcps > 0) {
-
-		/* Shift by 10 bits to increase resolution prior to the
-		 * division */
-		signalRateTemp_mcps = totalSignalRate_mcps << 10;
-
-		/* Add rounding value prior to division */
-		minSignalNeeded_p1 = signalRateTemp_mcps +
-			(totalCorrSignalRate_mcps/2);
-
-		/* FixPoint0626/FixPoint1616 = FixPoint2210 */
-		minSignalNeeded_p1 /= totalCorrSignalRate_mcps;
-
-		/* Apply a factored version of the speed of light.
-		 Correction to be applied at the end */
-		minSignalNeeded_p1 *= 3;
-
-		/* FixPoint2210 * FixPoint2210 = FixPoint1220 */
-		minSignalNeeded_p1 *= minSignalNeeded_p1;
-
-		/* FixPoint1220 >> 16 = FixPoint2804 */
-		minSignalNeeded_p1 = (minSignalNeeded_p1 + 0x8000) >> 16;
-	}
-
-	minSignalNeeded_p2 = pwMult * sigmaEstimateP1;
-
-	/* FixPoint1616 >> 16 =	 uint32 */
-	minSignalNeeded_p2 = (minSignalNeeded_p2 + 0x8000) >> 16;
-
-	/* uint32 * uint32	=  uint32 */
-	minSignalNeeded_p2 *= minSignalNeeded_p2;
-
-	/* Check sigmaEstimateP2
-	 * If this value is too high there is not enough signal rate
-	 * to calculate dmax value so set a suitable value to ensure
-	 * a very small dmax.
-	 */
-	sigmaEstP2Tmp = (sigmaEstimateP2 + 0x8000) >> 16;
-	sigmaEstP2Tmp = (sigmaEstP2Tmp + cAmbEffWidthSigmaEst_ns/2)/
-		cAmbEffWidthSigmaEst_ns;
-	sigmaEstP2Tmp *= cAmbEffWidthDMax_ns;
-
-	if (sigmaEstP2Tmp > 0xffff) {
-		minSignalNeeded_p3 = 0xfff00000;
-	} else {
-
-		/* DMAX uses a different ambient width from sigma, so apply
-		 * correction.
-		 * Perform division before multiplication to prevent overflow.
-		 */
-		sigmaEstimateP2 = (sigmaEstimateP2 + cAmbEffWidthSigmaEst_ns/2)/
-			cAmbEffWidthSigmaEst_ns;
-		sigmaEstimateP2 *= cAmbEffWidthDMax_ns;
-
-		/* FixPoint1616 >> 16 = uint32 */
-		minSignalNeeded_p3 = (sigmaEstimateP2 + 0x8000) >> 16;
-
-		minSignalNeeded_p3 *= minSignalNeeded_p3;
-
-	}
-
-	/* FixPoint1814 / uint32 = FixPoint1814 */
-	sigmaLimitTmp = ((cSigmaLimit << 14) + 500) / 1000;
-
-	/* FixPoint1814 * FixPoint1814 = FixPoint3628 := FixPoint0428 */
-	sigmaLimitTmp *= sigmaLimitTmp;
-
-	/* FixPoint1616 * FixPoint1616 = FixPoint3232 */
-	sigmaEstSqTmp = cSigmaEstRef * cSigmaEstRef;
-
-	/* FixPoint3232 >> 4 = FixPoint0428 */
-	sigmaEstSqTmp = (sigmaEstSqTmp + 0x08) >> 4;
-
-	/* FixPoint0428 - FixPoint0428	= FixPoint0428 */
-	sigmaLimitTmp -=  sigmaEstSqTmp;
-
-	/* uint32_t * FixPoint0428 = FixPoint0428 */
-	minSignalNeeded_p4 = 4 * 12 * sigmaLimitTmp;
-
-	/* FixPoint0428 >> 14 = FixPoint1814 */
-	minSignalNeeded_p4 = (minSignalNeeded_p4 + 0x2000) >> 14;
-
-	/* uint32 + uint32 = uint32 */
-	minSignalNeeded = (minSignalNeeded_p2 + minSignalNeeded_p3);
-
-	/* uint32 / uint32 = uint32 */
-	minSignalNeeded += (peakVcselDuration_us/2);
-	minSignalNeeded /= peakVcselDuration_us;
-
-	/* uint32 << 14 = FixPoint1814 */
-	minSignalNeeded <<= 14;
-
-	/* FixPoint1814 / FixPoint1814 = uint32 */
-	minSignalNeeded += (minSignalNeeded_p4/2);
-	minSignalNeeded /= minSignalNeeded_p4;
-
-	/* FixPoint3200 * FixPoint2804 := FixPoint2804*/
-	minSignalNeeded *= minSignalNeeded_p1;
-
-	/* Apply correction by dividing by 1000000.
-	 * This assumes 10E16 on the numerator of the equation
-	 * and 10E-22 on the denominator.
-	 * We do this because 32bit fix point calculation can't
-	 * handle the larger and smaller elements of this equation,
-	 * i.e. speed of light and pulse widths.
-	 */
-	minSignalNeeded = (minSignalNeeded + 500) / 1000;
-	minSignalNeeded <<= 4;
-
-	minSignalNeeded = (minSignalNeeded + 500) / 1000;
-
-	/* FixPoint1616 >> 8 = FixPoint2408 */
-	signalLimitTmp = (cSignalLimit + 0x80) >> 8;
-
-	/* FixPoint2408/FixPoint2408 = uint32 */
-	if (signalLimitTmp != 0)
-		dmaxDarkTmp = (SignalAt0mm + (signalLimitTmp / 2))
-			/ signalLimitTmp;
-	else
-		dmaxDarkTmp = 0;
-
-	dmaxDark = VL53L0X_isqrt(dmaxDarkTmp);
-
-	/* FixPoint2408/FixPoint2408 = uint32 */
-	if (minSignalNeeded != 0)
-		dmaxAmbient = (SignalAt0mm + minSignalNeeded/2)
-			/ minSignalNeeded;
-	else
-		dmaxAmbient = 0;
-
-	dmaxAmbient = VL53L0X_isqrt(dmaxAmbient);
-
-	*pdmax_mm = dmaxDark;
-	if (dmaxDark > dmaxAmbient)
-		*pdmax_mm = dmaxAmbient;
-
-	LOG_FUNCTION_END(Status);
-
-	return Status;
-}
-
-
-VL53L0X_Error VL53L0X_calc_sigma_estimate(VL53L0X_DEV Dev,
-	VL53L0X_RangingMeasurementData_t *pRangingMeasurementData,
-	FixPoint1616_t *pSigmaEstimate,
-	uint32_t *pDmax_mm)
-{
-	/* Expressed in 100ths of a ns, i.e. centi-ns */
-	const uint32_t cPulseEffectiveWidth_centi_ns   = 800;
-	/* Expressed in 100ths of a ns, i.e. centi-ns */
-	const uint32_t cAmbientEffectiveWidth_centi_ns = 600;
-	const FixPoint1616_t cDfltFinalRangeIntegrationTimeMilliSecs	= 0x00190000; /* 25ms */
-	const uint32_t cVcselPulseWidth_ps	= 4700; /* pico secs */
-	const FixPoint1616_t cSigmaEstMax	= 0x028F87AE;
-	const FixPoint1616_t cSigmaEstRtnMax	= 0xF000;
-	const FixPoint1616_t cAmbToSignalRatioMax = 0xF0000000/
-		cAmbientEffectiveWidth_centi_ns;
-	/* Time Of Flight per mm (6.6 pico secs) */
-	const FixPoint1616_t cTOF_per_mm_ps		= 0x0006999A;
-	const uint32_t c16BitRoundingParam		= 0x00008000;
-	const FixPoint1616_t cMaxXTalk_kcps		= 0x00320000;
-	const uint32_t cPllPeriod_ps			= 1655;
-
-	uint32_t vcselTotalEventsRtn;
-	uint32_t finalRangeTimeoutMicroSecs;
-	uint32_t preRangeTimeoutMicroSecs;
-	uint32_t finalRangeIntegrationTimeMilliSecs;
-	FixPoint1616_t sigmaEstimateP1;
-	FixPoint1616_t sigmaEstimateP2;
-	FixPoint1616_t sigmaEstimateP3;
-	FixPoint1616_t deltaT_ps;
-	FixPoint1616_t pwMult;
-	FixPoint1616_t sigmaEstRtn;
-	FixPoint1616_t sigmaEstimate;
-	FixPoint1616_t xTalkCorrection;
-	FixPoint1616_t ambientRate_kcps;
-	FixPoint1616_t peakSignalRate_kcps;
-	FixPoint1616_t xTalkCompRate_mcps;
-	uint32_t xTalkCompRate_kcps;
-	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
-	FixPoint1616_t diff1_mcps;
-	FixPoint1616_t diff2_mcps;
-	FixPoint1616_t sqr1;
-	FixPoint1616_t sqr2;
-	FixPoint1616_t sqrSum;
-	FixPoint1616_t sqrtResult_centi_ns;
-	FixPoint1616_t sqrtResult;
-	FixPoint1616_t totalSignalRate_mcps;
-	FixPoint1616_t correctedSignalRate_mcps;
-	FixPoint1616_t sigmaEstRef;
-	uint32_t vcselWidth;
-	uint32_t finalRangeMacroPCLKS;
-	uint32_t preRangeMacroPCLKS;
-	uint32_t peakVcselDuration_us;
-	uint8_t finalRangeVcselPCLKS;
-	uint8_t preRangeVcselPCLKS;
-	/*! \addtogroup calc_sigma_estimate
-	 * @{
-	 *
-	 * Estimates the range sigma
-	 */
-
-	LOG_FUNCTION_START("");
-
-	VL53L0X_GETPARAMETERFIELD(Dev, XTalkCompensationRateMegaCps,
-			xTalkCompRate_mcps);
-
-	/*
-	 * We work in kcps rather than mcps as this helps keep within the
-	 * confines of the 32 Fix1616 type.
-	 */
-
-	ambientRate_kcps =
-		(pRangingMeasurementData->AmbientRateRtnMegaCps * 1000) >> 16;
-
-	correctedSignalRate_mcps =
-		pRangingMeasurementData->SignalRateRtnMegaCps;
-
-
-	Status = VL53L0X_get_total_signal_rate(
-		Dev, pRangingMeasurementData, &totalSignalRate_mcps);
-	Status = VL53L0X_get_total_xtalk_rate(
-		Dev, pRangingMeasurementData, &xTalkCompRate_mcps);
-
-
-	/* Signal rate measurement provided by device is the
-	 * peak signal rate, not average.
-	 */
-	peakSignalRate_kcps = (totalSignalRate_mcps * 1000);
-	peakSignalRate_kcps = (peakSignalRate_kcps + 0x8000) >> 16;
-
-	xTalkCompRate_kcps = xTalkCompRate_mcps * 1000;
-
-	if (xTalkCompRate_kcps > cMaxXTalk_kcps)
-		xTalkCompRate_kcps = cMaxXTalk_kcps;
-
-	if (Status == VL53L0X_ERROR_NONE) {
-
-		/* Calculate final range macro periods */
-		finalRangeTimeoutMicroSecs = VL53L0X_GETDEVICESPECIFICPARAMETER(
-			Dev, FinalRangeTimeoutMicroSecs);
-
-		finalRangeVcselPCLKS = VL53L0X_GETDEVICESPECIFICPARAMETER(
-			Dev, FinalRangeVcselPulsePeriod);
-
-		finalRangeMacroPCLKS = VL53L0X_calc_timeout_mclks(
-			Dev, finalRangeTimeoutMicroSecs, finalRangeVcselPCLKS);
-
-		/* Calculate pre-range macro periods */
-		preRangeTimeoutMicroSecs = VL53L0X_GETDEVICESPECIFICPARAMETER(
-			Dev, PreRangeTimeoutMicroSecs);
-
-		preRangeVcselPCLKS = VL53L0X_GETDEVICESPECIFICPARAMETER(
-			Dev, PreRangeVcselPulsePeriod);
-
-		preRangeMacroPCLKS = VL53L0X_calc_timeout_mclks(
-			Dev, preRangeTimeoutMicroSecs, preRangeVcselPCLKS);
-
-		vcselWidth = 3;
-		if (finalRangeVcselPCLKS == 8)
-			vcselWidth = 2;
-
-
-		peakVcselDuration_us = vcselWidth * 2048 *
-			(preRangeMacroPCLKS + finalRangeMacroPCLKS);
-		peakVcselDuration_us = (peakVcselDuration_us + 500)/1000;
-		peakVcselDuration_us *= cPllPeriod_ps;
-		peakVcselDuration_us = (peakVcselDuration_us + 500)/1000;
-
-		/* Fix1616 >> 8 = Fix2408 */
-		totalSignalRate_mcps = (totalSignalRate_mcps + 0x80) >> 8;
-
-		/* Fix2408 * uint32 = Fix2408 */
-		vcselTotalEventsRtn = totalSignalRate_mcps *
-			peakVcselDuration_us;
-
-		/* Fix2408 >> 8 = uint32 */
-		vcselTotalEventsRtn = (vcselTotalEventsRtn + 0x80) >> 8;
-
-		/* Fix2408 << 8 = Fix1616 = */
-		totalSignalRate_mcps <<= 8;
-	}
-
-	if (Status != VL53L0X_ERROR_NONE) {
-		LOG_FUNCTION_END(Status);
-		return Status;
-	}
-
-	if (peakSignalRate_kcps == 0) {
-		*pSigmaEstimate = cSigmaEstMax;
-		PALDevDataSet(Dev, SigmaEstimate, cSigmaEstMax);
-		*pDmax_mm = 0;
-	} else {
-		if (vcselTotalEventsRtn < 1)
-			vcselTotalEventsRtn = 1;
-
-		sigmaEstimateP1 = cPulseEffectiveWidth_centi_ns;
-
-		/* ((FixPoint1616 << 16)* uint32)/uint32 = FixPoint1616 */
-		sigmaEstimateP2 = (ambientRate_kcps << 16)/peakSignalRate_kcps;
-		if (sigmaEstimateP2 > cAmbToSignalRatioMax) {
-			/* Clip to prevent overflow. Will ensure safe
-			 * max result. */
-			sigmaEstimateP2 = cAmbToSignalRatioMax;
-		}
-		sigmaEstimateP2 *= cAmbientEffectiveWidth_centi_ns;
-
-		sigmaEstimateP3 = 2 * VL53L0X_isqrt(vcselTotalEventsRtn * 12);
-
-		/* uint32 * FixPoint1616 = FixPoint1616 */
-		deltaT_ps = pRangingMeasurementData->RangeMilliMeter *
-					cTOF_per_mm_ps;
-
-		/*
-		 * vcselRate - xtalkCompRate
-		 * (uint32 << 16) - FixPoint1616 = FixPoint1616.
-		 * Divide result by 1000 to convert to mcps.
-		 * 500 is added to ensure rounding when integer division
-		 * truncates.
-		 */
-		diff1_mcps = (((peakSignalRate_kcps << 16) -
-			2 * xTalkCompRate_kcps) + 500)/1000;
-
-		/* vcselRate + xtalkCompRate */
-		diff2_mcps = ((peakSignalRate_kcps << 16) + 500)/1000;
-
-		/* Shift by 8 bits to increase resolution prior to the
-		 * division */
-		diff1_mcps <<= 8;
-
-		/* FixPoint0824/FixPoint1616 = FixPoint2408 */
-		xTalkCorrection	 = abs(diff1_mcps/diff2_mcps);
-
-		/* FixPoint2408 << 8 = FixPoint1616 */
-		xTalkCorrection <<= 8;
-
-		if(pRangingMeasurementData->RangeStatus != 0){
-			pwMult = 1 << 16;
-		} else {
-			/* FixPoint1616/uint32 = FixPoint1616 */
-			pwMult = deltaT_ps/cVcselPulseWidth_ps; /* smaller than 1.0f */
-
-			/*
-			 * FixPoint1616 * FixPoint1616 = FixPoint3232, however both
-			 * values are small enough such that32 bits will not be
-			 * exceeded.
-			 */
-			pwMult *= ((1 << 16) - xTalkCorrection);
-
-			/* (FixPoint3232 >> 16) = FixPoint1616 */
-			pwMult =  (pwMult + c16BitRoundingParam) >> 16;
-
-			/* FixPoint1616 + FixPoint1616 = FixPoint1616 */
-			pwMult += (1 << 16);
-
-			/*
-			 * At this point the value will be 1.xx, therefore if we square
-			 * the value this will exceed 32 bits. To address this perform
-			 * a single shift to the right before the multiplication.
-			 */
-			pwMult >>= 1;
-			/* FixPoint1715 * FixPoint1715 = FixPoint3430 */
-			pwMult = pwMult * pwMult;
-
-			/* (FixPoint3430 >> 14) = Fix1616 */
-			pwMult >>= 14;
-		}
-
-		/* FixPoint1616 * uint32 = FixPoint1616 */
-		sqr1 = pwMult * sigmaEstimateP1;
-
-		/* (FixPoint1616 >> 16) = FixPoint3200 */
-		sqr1 = (sqr1 + 0x8000) >> 16;
-
-		/* FixPoint3200 * FixPoint3200 = FixPoint6400 */
-		sqr1 *= sqr1;
-
-		sqr2 = sigmaEstimateP2;
-
-		/* (FixPoint1616 >> 16) = FixPoint3200 */
-		sqr2 = (sqr2 + 0x8000) >> 16;
-
-		/* FixPoint3200 * FixPoint3200 = FixPoint6400 */
-		sqr2 *= sqr2;
-
-		/* FixPoint64000 + FixPoint6400 = FixPoint6400 */
-		sqrSum = sqr1 + sqr2;
-
-		/* SQRT(FixPoin6400) = FixPoint3200 */
-		sqrtResult_centi_ns = VL53L0X_isqrt(sqrSum);
-
-		/* (FixPoint3200 << 16) = FixPoint1616 */
-		sqrtResult_centi_ns <<= 16;
-
-		/*
-		 * Note that the Speed Of Light is expressed in um per 1E-10
-		 * seconds (2997) Therefore to get mm/ns we have to divide by
-		 * 10000
-		 */
-		sigmaEstRtn = (((sqrtResult_centi_ns+50)/100) /
-				sigmaEstimateP3);
-		sigmaEstRtn		 *= VL53L0X_SPEED_OF_LIGHT_IN_AIR;
-
-		/* Add 5000 before dividing by 10000 to ensure rounding. */
-		sigmaEstRtn		 += 5000;
-		sigmaEstRtn		 /= 10000;
-
-		if (sigmaEstRtn > cSigmaEstRtnMax) {
-			/* Clip to prevent overflow. Will ensure safe
-			 * max result. */
-			sigmaEstRtn = cSigmaEstRtnMax;
-		}
-		finalRangeIntegrationTimeMilliSecs =
-			(finalRangeTimeoutMicroSecs + preRangeTimeoutMicroSecs + 500)/1000;
-
-		/* sigmaEstRef = 1mm * 25ms/final range integration time (inc pre-range)
-		 * sqrt(FixPoint1616/int) = FixPoint2408)
-		 */
-		sigmaEstRef =
-			VL53L0X_isqrt((cDfltFinalRangeIntegrationTimeMilliSecs +
-				finalRangeIntegrationTimeMilliSecs/2)/
-				finalRangeIntegrationTimeMilliSecs);
-
-		/* FixPoint2408 << 8 = FixPoint1616 */
-		sigmaEstRef <<= 8;
-		sigmaEstRef = (sigmaEstRef + 500)/1000;
-
-		/* FixPoint1616 * FixPoint1616 = FixPoint3232 */
-		sqr1 = sigmaEstRtn * sigmaEstRtn;
-		/* FixPoint1616 * FixPoint1616 = FixPoint3232 */
-		sqr2 = sigmaEstRef * sigmaEstRef;
-
-		/* sqrt(FixPoint3232) = FixPoint1616 */
-		sqrtResult = VL53L0X_isqrt((sqr1 + sqr2));
-		/*
-		 * Note that the Shift by 4 bits increases resolution prior to
-		 * the sqrt, therefore the result must be shifted by 2 bits to
-		 * the right to revert back to the FixPoint1616 format.
-		 */
-
-		sigmaEstimate	 = 1000 * sqrtResult;
-
-		if ((peakSignalRate_kcps < 1) || (vcselTotalEventsRtn < 1) ||
-				(sigmaEstimate > cSigmaEstMax)) {
-				sigmaEstimate = cSigmaEstMax;
-		}
-
-		*pSigmaEstimate = (uint32_t)(sigmaEstimate);
-		PALDevDataSet(Dev, SigmaEstimate, *pSigmaEstimate);
-		Status = VL53L0X_calc_dmax(
-			Dev,
-			totalSignalRate_mcps,
-			correctedSignalRate_mcps,
-			pwMult,
-			sigmaEstimateP1,
-			sigmaEstimateP2,
-			peakVcselDuration_us,
-			pDmax_mm);
-	}
-
-	LOG_FUNCTION_END(Status);
-	return Status;
-}
-
-VL53L0X_Error VL53L0X_get_pal_range_status(VL53L0X_DEV Dev,
-		uint8_t DeviceRangeStatus,
-		FixPoint1616_t SignalRate,
-		uint16_t EffectiveSpadRtnCount,
-		VL53L0X_RangingMeasurementData_t *pRangingMeasurementData,
-		uint8_t *pPalRangeStatus)
-{
-	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
-	uint8_t NoneFlag;
-	uint8_t SigmaLimitflag = 0;
-	uint8_t SignalRefClipflag = 0;
-	uint8_t RangeIgnoreThresholdflag = 0;
-	uint8_t SigmaLimitCheckEnable = 0;
-	uint8_t SignalRateFinalRangeLimitCheckEnable = 0;
-	uint8_t SignalRefClipLimitCheckEnable = 0;
-	uint8_t RangeIgnoreThresholdLimitCheckEnable = 0;
-	FixPoint1616_t SigmaEstimate;
-	FixPoint1616_t SigmaLimitValue;
-	FixPoint1616_t SignalRefClipValue;
-	FixPoint1616_t RangeIgnoreThresholdValue;
-	FixPoint1616_t SignalRatePerSpad;
-	uint8_t DeviceRangeStatusInternal = 0;
-	uint16_t tmpWord = 0;
-	uint8_t Temp8;
-	uint32_t Dmax_mm = 0;
-	FixPoint1616_t LastSignalRefMcps;
-
-	LOG_FUNCTION_START("");
-
-
-	/*
-	 * VL53L0X has a good ranging when the value of the
-	 * DeviceRangeStatus = 11. This function will replace the value 0 with
-	 * the value 11 in the DeviceRangeStatus.
-	 * In addition, the SigmaEstimator is not included in the VL53L0X
-	 * DeviceRangeStatus, this will be added in the PalRangeStatus.
-	 */
-
-	DeviceRangeStatusInternal = ((DeviceRangeStatus & 0x78) >> 3);
-
-	if (DeviceRangeStatusInternal == 0 ||
-		DeviceRangeStatusInternal == 5 ||
-		DeviceRangeStatusInternal == 7 ||
-		DeviceRangeStatusInternal == 12 ||
-		DeviceRangeStatusInternal == 13 ||
-		DeviceRangeStatusInternal == 14 ||
-		DeviceRangeStatusInternal == 15
-			) {
-		NoneFlag = 1;
-	} else {
-		NoneFlag = 0;
-	}
-
-	/*
-	 * Check if Sigma limit is enabled, if yes then do comparison with limit
-	 * value and put the result back into pPalRangeStatus.
-	 */
-	if (Status == VL53L0X_ERROR_NONE)
-		Status =  VL53L0X_GetLimitCheckEnable(Dev,
-			VL53L0X_CHECKENABLE_SIGMA_FINAL_RANGE,
-			&SigmaLimitCheckEnable);
-
-	if ((SigmaLimitCheckEnable != 0) && (Status == VL53L0X_ERROR_NONE)) {
-		/*
-		* compute the Sigma and check with limit
-		*/
-		Status = VL53L0X_calc_sigma_estimate(
-			Dev,
-			pRangingMeasurementData,
-			&SigmaEstimate,
-			&Dmax_mm);
-		if (Status == VL53L0X_ERROR_NONE)
-			pRangingMeasurementData->RangeDMaxMilliMeter = Dmax_mm;
-
-		if (Status == VL53L0X_ERROR_NONE) {
-			Status = VL53L0X_GetLimitCheckValue(Dev,
-				VL53L0X_CHECKENABLE_SIGMA_FINAL_RANGE,
-				&SigmaLimitValue);
-
-			if ((SigmaLimitValue > 0) &&
-				(SigmaEstimate > SigmaLimitValue))
-					/* Limit Fail */
-					SigmaLimitflag = 1;
-		}
-	}
-
-	/*
-	 * Check if Signal ref clip limit is enabled, if yes then do comparison
-	 * with limit value and put the result back into pPalRangeStatus.
-	 */
-	if (Status == VL53L0X_ERROR_NONE)
-		Status =  VL53L0X_GetLimitCheckEnable(Dev,
-				VL53L0X_CHECKENABLE_SIGNAL_REF_CLIP,
-				&SignalRefClipLimitCheckEnable);
-
-	if ((SignalRefClipLimitCheckEnable != 0) &&
-			(Status == VL53L0X_ERROR_NONE)) {
-
-		Status = VL53L0X_GetLimitCheckValue(Dev,
-				VL53L0X_CHECKENABLE_SIGNAL_REF_CLIP,
-				&SignalRefClipValue);
-
-		/* Read LastSignalRefMcps from device */
-		if (Status == VL53L0X_ERROR_NONE)
-			Status = VL53L0X_WrByte(Dev, 0xFF, 0x01);
-
-		if (Status == VL53L0X_ERROR_NONE)
-			Status = VL53L0X_RdWord(Dev,
-				VL53L0X_REG_RESULT_PEAK_SIGNAL_RATE_REF,
-				&tmpWord);
-
-		if (Status == VL53L0X_ERROR_NONE)
-			Status = VL53L0X_WrByte(Dev, 0xFF, 0x00);
-
-		LastSignalRefMcps = VL53L0X_FIXPOINT97TOFIXPOINT1616(tmpWord);
-		PALDevDataSet(Dev, LastSignalRefMcps, LastSignalRefMcps);
-
-		if ((SignalRefClipValue > 0) &&
-				(LastSignalRefMcps > SignalRefClipValue)) {
-			/* Limit Fail */
-			SignalRefClipflag = 1;
-		}
-	}
-
-	/*
-	 * Check if Signal ref clip limit is enabled, if yes then do comparison
-	 * with limit value and put the result back into pPalRangeStatus.
-	 * EffectiveSpadRtnCount has a format 8.8
-	 * If (Return signal rate < (1.5 x Xtalk x number of Spads)) : FAIL
-	 */
-	if (Status == VL53L0X_ERROR_NONE)
-		Status =  VL53L0X_GetLimitCheckEnable(Dev,
-				VL53L0X_CHECKENABLE_RANGE_IGNORE_THRESHOLD,
-				&RangeIgnoreThresholdLimitCheckEnable);
-
-	if ((RangeIgnoreThresholdLimitCheckEnable != 0) &&
-			(Status == VL53L0X_ERROR_NONE)) {
-
-		/* Compute the signal rate per spad */
-		if (EffectiveSpadRtnCount == 0) {
-			SignalRatePerSpad = 0;
-		} else {
-			SignalRatePerSpad = (FixPoint1616_t)((256 * SignalRate)
-				/ EffectiveSpadRtnCount);
-		}
-
-		Status = VL53L0X_GetLimitCheckValue(Dev,
-				VL53L0X_CHECKENABLE_RANGE_IGNORE_THRESHOLD,
-				&RangeIgnoreThresholdValue);
-
-		if ((RangeIgnoreThresholdValue > 0) &&
-			(SignalRatePerSpad < RangeIgnoreThresholdValue)) {
-			/* Limit Fail add 2^6 to range status */
-			RangeIgnoreThresholdflag = 1;
-		}
-	}
-
-	if (Status == VL53L0X_ERROR_NONE) {
-		if (NoneFlag == 1) {
-			*pPalRangeStatus = 255;	 /* NONE */
-		} else if (DeviceRangeStatusInternal == 1 ||
-					DeviceRangeStatusInternal == 2 ||
-					DeviceRangeStatusInternal == 3) {
-			*pPalRangeStatus = 5; /* HW fail */
-		} else if (DeviceRangeStatusInternal == 6 ||
-					DeviceRangeStatusInternal == 9) {
-			*pPalRangeStatus = 4;  /* Phase fail */
-		} else if (DeviceRangeStatusInternal == 8 ||
-					DeviceRangeStatusInternal == 10 ||
-					SignalRefClipflag == 1) {
-			*pPalRangeStatus = 3;  /* Min range */
-		} else if (DeviceRangeStatusInternal == 4 ||
-					RangeIgnoreThresholdflag == 1) {
-			*pPalRangeStatus = 2;  /* Signal Fail */
-		} else if (SigmaLimitflag == 1) {
-			*pPalRangeStatus = 1;  /* Sigma	 Fail */
-		} else {
-			*pPalRangeStatus = 0; /* Range Valid */
-		}
-	}
-
-	/* DMAX only relevant during range error */
-	if (*pPalRangeStatus == 0)
-		pRangingMeasurementData->RangeDMaxMilliMeter = 0;
-
-	/* fill the Limit Check Status */
-
-	Status =  VL53L0X_GetLimitCheckEnable(Dev,
-			VL53L0X_CHECKENABLE_SIGNAL_RATE_FINAL_RANGE,
-			&SignalRateFinalRangeLimitCheckEnable);
-
-	if (Status == VL53L0X_ERROR_NONE) {
-		if ((SigmaLimitCheckEnable == 0) || (SigmaLimitflag == 1))
-			Temp8 = 1;
-		else
-			Temp8 = 0;
-		VL53L0X_SETARRAYPARAMETERFIELD(Dev, LimitChecksStatus,
-				VL53L0X_CHECKENABLE_SIGMA_FINAL_RANGE, Temp8);
-
-		if ((DeviceRangeStatusInternal == 4) ||
-				(SignalRateFinalRangeLimitCheckEnable == 0))
-			Temp8 = 1;
-		else
-			Temp8 = 0;
-		VL53L0X_SETARRAYPARAMETERFIELD(Dev, LimitChecksStatus,
-				VL53L0X_CHECKENABLE_SIGNAL_RATE_FINAL_RANGE,
-				Temp8);
-
-		if ((SignalRefClipLimitCheckEnable == 0) ||
-					(SignalRefClipflag == 1))
-			Temp8 = 1;
-		else
-			Temp8 = 0;
-
-		VL53L0X_SETARRAYPARAMETERFIELD(Dev, LimitChecksStatus,
-				VL53L0X_CHECKENABLE_SIGNAL_REF_CLIP, Temp8);
-
-		if ((RangeIgnoreThresholdLimitCheckEnable == 0) ||
-				(RangeIgnoreThresholdflag == 1))
-			Temp8 = 1;
-		else
-			Temp8 = 0;
-
-		VL53L0X_SETARRAYPARAMETERFIELD(Dev, LimitChecksStatus,
-				VL53L0X_CHECKENABLE_RANGE_IGNORE_THRESHOLD,
-				Temp8);
-	}
-
-	LOG_FUNCTION_END(Status);
-	return Status;
-
-}
+/*******************************************************************************
+ Copyright � 2016, STMicroelectronics International N.V.
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ * 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.
+ * 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, FITNESS FOR A PARTICULAR PURPOSE, AND
+ NON-INFRINGEMENT OF INTELLECTUAL PROPERTY RIGHTS ARE DISCLAIMED.
+ IN NO EVENT SHALL STMICROELECTRONICS INTERNATIONAL N.V. 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 "vl53l0x_api.h"
+#include "vl53l0x_api_core.h"
+#include "vl53l0x_api_calibration.h"
+
+
+#ifndef __KERNEL__
+#include <stdlib.h>
+#endif
+#define LOG_FUNCTION_START(fmt, ...) \
+	_LOG_FUNCTION_START(TRACE_MODULE_API, fmt, ##__VA_ARGS__)
+#define LOG_FUNCTION_END(status, ...) \
+	_LOG_FUNCTION_END(TRACE_MODULE_API, status, ##__VA_ARGS__)
+#define LOG_FUNCTION_END_FMT(status, fmt, ...) \
+	_LOG_FUNCTION_END_FMT(TRACE_MODULE_API, status, fmt, ##__VA_ARGS__)
+
+VL53L0X_Error VL53L0X_reverse_bytes(uint8_t *data, uint32_t size)
+{
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+	uint8_t tempData;
+	uint32_t mirrorIndex;
+	uint32_t middle = size/2;
+	uint32_t index;
+
+	for (index = 0; index < middle; index++) {
+		mirrorIndex		 = size - index - 1;
+		tempData		 = data[index];
+		data[index]		 = data[mirrorIndex];
+		data[mirrorIndex] = tempData;
+	}
+	return Status;
+}
+
+VL53L0X_Error VL53L0X_measurement_poll_for_completion(VL53L0X_DEV Dev)
+{
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+	uint8_t NewDataReady = 0;
+	uint32_t LoopNb;
+
+	LOG_FUNCTION_START("");
+
+	LoopNb = 0;
+
+	do {
+		Status = VL53L0X_GetMeasurementDataReady(Dev, &NewDataReady);
+		if (Status != 0)
+			break; /* the error is set */
+
+		if (NewDataReady == 1)
+			break; /* done note that status == 0 */
+
+		LoopNb++;
+		if (LoopNb >= VL53L0X_DEFAULT_MAX_LOOP) {
+			Status = VL53L0X_ERROR_TIME_OUT;
+			break;
+		}
+
+		VL53L0X_PollingDelay(Dev);
+	} while (1);
+
+	LOG_FUNCTION_END(Status);
+
+	return Status;
+}
+
+
+uint8_t VL53L0X_decode_vcsel_period(uint8_t vcsel_period_reg)
+{
+	/*!
+	 * Converts the encoded VCSEL period register value into the real
+	 * period in PLL clocks
+	 */
+
+	uint8_t vcsel_period_pclks = 0;
+
+	vcsel_period_pclks = (vcsel_period_reg + 1) << 1;
+
+	return vcsel_period_pclks;
+}
+
+uint8_t VL53L0X_encode_vcsel_period(uint8_t vcsel_period_pclks)
+{
+	/*!
+	 * Converts the encoded VCSEL period register value into the real period
+	 * in PLL clocks
+	 */
+
+	uint8_t vcsel_period_reg = 0;
+
+	vcsel_period_reg = (vcsel_period_pclks >> 1) - 1;
+
+	return vcsel_period_reg;
+}
+
+
+uint32_t VL53L0X_isqrt(uint32_t num)
+{
+	/*
+	 * Implements an integer square root
+	 *
+	 * From: http://en.wikipedia.org/wiki/Methods_of_computing_square_roots
+	 */
+
+	uint32_t  res = 0;
+	uint32_t  bit = 1 << 30;
+	/* The second-to-top bit is set:
+	 *	1 << 14 for 16-bits, 1 << 30 for 32 bits */
+
+	 /* "bit" starts at the highest power of four <= the argument. */
+	while (bit > num)
+		bit >>= 2;
+
+
+	while (bit != 0) {
+		if (num >= res + bit) {
+			num -= res + bit;
+			res = (res >> 1) + bit;
+		} else
+			res >>= 1;
+
+		bit >>= 2;
+	}
+
+	return res;
+}
+
+
+uint32_t VL53L0X_quadrature_sum(uint32_t a, uint32_t b)
+{
+	/*
+	 * Implements a quadrature sum
+	 *
+	 * rea = sqrt(a^2 + b^2)
+	 *
+	 * Trap overflow case max input value is 65535 (16-bit value)
+	 * as internal calc are 32-bit wide
+	 *
+	 * If overflow then seta output to maximum
+	 */
+	uint32_t  res = 0;
+
+	if (a > 65535 || b > 65535)
+		res = 65535;
+	else
+		res = VL53L0X_isqrt(a * a + b * b);
+
+	return res;
+}
+
+
+VL53L0X_Error VL53L0X_device_read_strobe(VL53L0X_DEV Dev)
+{
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+	uint8_t strobe;
+	uint32_t LoopNb;
+	LOG_FUNCTION_START("");
+
+	Status |= VL53L0X_WrByte(Dev, 0x83, 0x00);
+
+	/* polling
+	 * use timeout to avoid deadlock*/
+	if (Status == VL53L0X_ERROR_NONE) {
+		LoopNb = 0;
+		do {
+			Status = VL53L0X_RdByte(Dev, 0x83, &strobe);
+			if ((strobe != 0x00) || Status != VL53L0X_ERROR_NONE)
+					break;
+
+			LoopNb = LoopNb + 1;
+		} while (LoopNb < VL53L0X_DEFAULT_MAX_LOOP);
+
+		if (LoopNb >= VL53L0X_DEFAULT_MAX_LOOP)
+			Status = VL53L0X_ERROR_TIME_OUT;
+
+	}
+
+	Status |= VL53L0X_WrByte(Dev, 0x83, 0x01);
+
+	LOG_FUNCTION_END(Status);
+	return Status;
+
+}
+
+VL53L0X_Error VL53L0X_get_info_from_device(VL53L0X_DEV Dev, uint8_t option)
+{
+
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+	uint8_t byte;
+	uint32_t TmpDWord;
+	uint8_t ModuleId;
+	uint8_t Revision;
+	uint8_t ReferenceSpadCount = 0;
+	uint8_t ReferenceSpadType = 0;
+	uint32_t PartUIDUpper = 0;
+	uint32_t PartUIDLower = 0;
+	uint32_t OffsetFixed1104_mm = 0;
+	int16_t OffsetMicroMeters = 0;
+	uint32_t DistMeasTgtFixed1104_mm = 400 << 4;
+	uint32_t DistMeasFixed1104_400_mm = 0;
+	uint32_t SignalRateMeasFixed1104_400_mm = 0;
+	char ProductId[19];
+	char *ProductId_tmp;
+	uint8_t ReadDataFromDeviceDone;
+	FixPoint1616_t SignalRateMeasFixed400mmFix = 0;
+	uint8_t NvmRefGoodSpadMap[VL53L0X_REF_SPAD_BUFFER_SIZE];
+	int i;
+
+
+	LOG_FUNCTION_START("");
+
+	ReadDataFromDeviceDone = VL53L0X_GETDEVICESPECIFICPARAMETER(Dev,
+			ReadDataFromDeviceDone);
+
+	/* This access is done only once after that a GetDeviceInfo or
+	 * datainit is done*/
+	if (ReadDataFromDeviceDone != 7) {
+
+		Status |= VL53L0X_WrByte(Dev, 0x80, 0x01);
+		Status |= VL53L0X_WrByte(Dev, 0xFF, 0x01);
+		Status |= VL53L0X_WrByte(Dev, 0x00, 0x00);
+
+		Status |= VL53L0X_WrByte(Dev, 0xFF, 0x06);
+		Status |= VL53L0X_RdByte(Dev, 0x83, &byte);
+		Status |= VL53L0X_WrByte(Dev, 0x83, byte|4);
+		Status |= VL53L0X_WrByte(Dev, 0xFF, 0x07);
+		Status |= VL53L0X_WrByte(Dev, 0x81, 0x01);
+
+		Status |= VL53L0X_PollingDelay(Dev);
+
+		Status |= VL53L0X_WrByte(Dev, 0x80, 0x01);
+
+		if (((option & 1) == 1) &&
+			((ReadDataFromDeviceDone & 1) == 0)) {
+			Status |= VL53L0X_WrByte(Dev, 0x94, 0x6b);
+			Status |= VL53L0X_device_read_strobe(Dev);
+			Status |= VL53L0X_RdDWord(Dev, 0x90, &TmpDWord);
+
+			ReferenceSpadCount = (uint8_t)((TmpDWord >> 8) & 0x07f);
+			ReferenceSpadType  = (uint8_t)((TmpDWord >> 15) & 0x01);
+
+			Status |= VL53L0X_WrByte(Dev, 0x94, 0x24);
+			Status |= VL53L0X_device_read_strobe(Dev);
+			Status |= VL53L0X_RdDWord(Dev, 0x90, &TmpDWord);
+
+
+			NvmRefGoodSpadMap[0] = (uint8_t)((TmpDWord >> 24)
+				& 0xff);
+			NvmRefGoodSpadMap[1] = (uint8_t)((TmpDWord >> 16)
+				& 0xff);
+			NvmRefGoodSpadMap[2] = (uint8_t)((TmpDWord >> 8)
+				& 0xff);
+			NvmRefGoodSpadMap[3] = (uint8_t)(TmpDWord & 0xff);
+
+			Status |= VL53L0X_WrByte(Dev, 0x94, 0x25);
+			Status |= VL53L0X_device_read_strobe(Dev);
+			Status |= VL53L0X_RdDWord(Dev, 0x90, &TmpDWord);
+
+			NvmRefGoodSpadMap[4] = (uint8_t)((TmpDWord >> 24)
+				& 0xff);
+			NvmRefGoodSpadMap[5] = (uint8_t)((TmpDWord >> 16)
+				& 0xff);
+		}
+
+		if (((option & 2) == 2) &&
+			((ReadDataFromDeviceDone & 2) == 0)) {
+
+			Status |= VL53L0X_WrByte(Dev, 0x94, 0x02);
+			Status |= VL53L0X_device_read_strobe(Dev);
+			Status |= VL53L0X_RdByte(Dev, 0x90, &ModuleId);
+
+			Status |= VL53L0X_WrByte(Dev, 0x94, 0x7B);
+			Status |= VL53L0X_device_read_strobe(Dev);
+			Status |= VL53L0X_RdByte(Dev, 0x90, &Revision);
+
+			Status |= VL53L0X_WrByte(Dev, 0x94, 0x77);
+			Status |= VL53L0X_device_read_strobe(Dev);
+			Status |= VL53L0X_RdDWord(Dev, 0x90, &TmpDWord);
+
+			ProductId[0] = (char)((TmpDWord >> 25) & 0x07f);
+			ProductId[1] = (char)((TmpDWord >> 18) & 0x07f);
+			ProductId[2] = (char)((TmpDWord >> 11) & 0x07f);
+			ProductId[3] = (char)((TmpDWord >> 4) & 0x07f);
+
+			byte = (uint8_t)((TmpDWord & 0x00f) << 3);
+
+			Status |= VL53L0X_WrByte(Dev, 0x94, 0x78);
+			Status |= VL53L0X_device_read_strobe(Dev);
+			Status |= VL53L0X_RdDWord(Dev, 0x90, &TmpDWord);
+
+			ProductId[4] = (char)(byte +
+					((TmpDWord >> 29) & 0x07f));
+			ProductId[5] = (char)((TmpDWord >> 22) & 0x07f);
+			ProductId[6] = (char)((TmpDWord >> 15) & 0x07f);
+			ProductId[7] = (char)((TmpDWord >> 8) & 0x07f);
+			ProductId[8] = (char)((TmpDWord >> 1) & 0x07f);
+
+			byte = (uint8_t)((TmpDWord & 0x001) << 6);
+
+			Status |= VL53L0X_WrByte(Dev, 0x94, 0x79);
+
+			Status |= VL53L0X_device_read_strobe(Dev);
+
+			Status |= VL53L0X_RdDWord(Dev, 0x90, &TmpDWord);
+
+			ProductId[9] = (char)(byte +
+					((TmpDWord >> 26) & 0x07f));
+			ProductId[10] = (char)((TmpDWord >> 19) & 0x07f);
+			ProductId[11] = (char)((TmpDWord >> 12) & 0x07f);
+			ProductId[12] = (char)((TmpDWord >> 5) & 0x07f);
+
+			byte = (uint8_t)((TmpDWord & 0x01f) << 2);
+
+			Status |= VL53L0X_WrByte(Dev, 0x94, 0x7A);
+
+			Status |= VL53L0X_device_read_strobe(Dev);
+
+			Status |= VL53L0X_RdDWord(Dev, 0x90, &TmpDWord);
+
+			ProductId[13] = (char)(byte +
+					((TmpDWord >> 30) & 0x07f));
+			ProductId[14] = (char)((TmpDWord >> 23) & 0x07f);
+			ProductId[15] = (char)((TmpDWord >> 16) & 0x07f);
+			ProductId[16] = (char)((TmpDWord >> 9) & 0x07f);
+			ProductId[17] = (char)((TmpDWord >> 2) & 0x07f);
+			ProductId[18] = '\0';
+
+		}
+
+		if (((option & 4) == 4) &&
+			((ReadDataFromDeviceDone & 4) == 0)) {
+
+			Status |= VL53L0X_WrByte(Dev, 0x94, 0x7B);
+			Status |= VL53L0X_device_read_strobe(Dev);
+			Status |= VL53L0X_RdDWord(Dev, 0x90, &PartUIDUpper);
+
+			Status |= VL53L0X_WrByte(Dev, 0x94, 0x7C);
+			Status |= VL53L0X_device_read_strobe(Dev);
+			Status |= VL53L0X_RdDWord(Dev, 0x90, &PartUIDLower);
+
+			Status |= VL53L0X_WrByte(Dev, 0x94, 0x73);
+			Status |= VL53L0X_device_read_strobe(Dev);
+			Status |= VL53L0X_RdDWord(Dev, 0x90, &TmpDWord);
+
+			SignalRateMeasFixed1104_400_mm = (TmpDWord &
+				0x0000000ff) << 8;
+
+			Status |= VL53L0X_WrByte(Dev, 0x94, 0x74);
+			Status |= VL53L0X_device_read_strobe(Dev);
+			Status |= VL53L0X_RdDWord(Dev, 0x90, &TmpDWord);
+
+			SignalRateMeasFixed1104_400_mm |= ((TmpDWord &
+				0xff000000) >> 24);
+
+			Status |= VL53L0X_WrByte(Dev, 0x94, 0x75);
+			Status |= VL53L0X_device_read_strobe(Dev);
+			Status |= VL53L0X_RdDWord(Dev, 0x90, &TmpDWord);
+
+			DistMeasFixed1104_400_mm = (TmpDWord & 0x0000000ff)
+							<< 8;
+
+			Status |= VL53L0X_WrByte(Dev, 0x94, 0x76);
+			Status |= VL53L0X_device_read_strobe(Dev);
+			Status |= VL53L0X_RdDWord(Dev, 0x90, &TmpDWord);
+
+			DistMeasFixed1104_400_mm |= ((TmpDWord & 0xff000000)
+							>> 24);
+		}
+
+		Status |= VL53L0X_WrByte(Dev, 0x81, 0x00);
+		Status |= VL53L0X_WrByte(Dev, 0xFF, 0x06);
+		Status |= VL53L0X_RdByte(Dev, 0x83, &byte);
+		Status |= VL53L0X_WrByte(Dev, 0x83, byte&0xfb);
+		Status |= VL53L0X_WrByte(Dev, 0xFF, 0x01);
+		Status |= VL53L0X_WrByte(Dev, 0x00, 0x01);
+
+		Status |= VL53L0X_WrByte(Dev, 0xFF, 0x00);
+		Status |= VL53L0X_WrByte(Dev, 0x80, 0x00);
+	}
+
+	if ((Status == VL53L0X_ERROR_NONE) &&
+		(ReadDataFromDeviceDone != 7)) {
+		/* Assign to variable if status is ok */
+		if (((option & 1) == 1) &&
+			((ReadDataFromDeviceDone & 1) == 0)) {
+			VL53L0X_SETDEVICESPECIFICPARAMETER(Dev,
+				ReferenceSpadCount, ReferenceSpadCount);
+
+			VL53L0X_SETDEVICESPECIFICPARAMETER(Dev,
+				ReferenceSpadType, ReferenceSpadType);
+
+			for (i = 0; i < VL53L0X_REF_SPAD_BUFFER_SIZE; i++) {
+				Dev->Data.SpadData.RefGoodSpadMap[i] =
+					NvmRefGoodSpadMap[i];
+			}
+		}
+
+		if (((option & 2) == 2) &&
+			((ReadDataFromDeviceDone & 2) == 0)) {
+			VL53L0X_SETDEVICESPECIFICPARAMETER(Dev,
+					ModuleId, ModuleId);
+
+			VL53L0X_SETDEVICESPECIFICPARAMETER(Dev,
+					Revision, Revision);
+
+			ProductId_tmp = VL53L0X_GETDEVICESPECIFICPARAMETER(Dev,
+					ProductId);
+			VL53L0X_COPYSTRING(ProductId_tmp, ProductId);
+
+		}
+
+		if (((option & 4) == 4) &&
+			((ReadDataFromDeviceDone & 4) == 0)) {
+			VL53L0X_SETDEVICESPECIFICPARAMETER(Dev,
+						PartUIDUpper, PartUIDUpper);
+
+			VL53L0X_SETDEVICESPECIFICPARAMETER(Dev,
+						PartUIDLower, PartUIDLower);
+
+			SignalRateMeasFixed400mmFix =
+				VL53L0X_FIXPOINT97TOFIXPOINT1616(
+					SignalRateMeasFixed1104_400_mm);
+
+			VL53L0X_SETDEVICESPECIFICPARAMETER(Dev,
+				SignalRateMeasFixed400mm,
+				SignalRateMeasFixed400mmFix);
+
+			OffsetMicroMeters = 0;
+			if (DistMeasFixed1104_400_mm != 0) {
+					OffsetFixed1104_mm =
+						DistMeasFixed1104_400_mm -
+						DistMeasTgtFixed1104_mm;
+					OffsetMicroMeters = (OffsetFixed1104_mm
+						* 1000) >> 4;
+					OffsetMicroMeters *= -1;
+			}
+
+			PALDevDataSet(Dev,
+				Part2PartOffsetAdjustmentNVMMicroMeter,
+				OffsetMicroMeters);
+		}
+		byte = (uint8_t)(ReadDataFromDeviceDone|option);
+		VL53L0X_SETDEVICESPECIFICPARAMETER(Dev, ReadDataFromDeviceDone,
+				byte);
+	}
+
+	LOG_FUNCTION_END(Status);
+	return Status;
+}
+
+
+uint32_t VL53L0X_calc_macro_period_ps(VL53L0X_DEV Dev, uint8_t vcsel_period_pclks)
+{
+	uint64_t PLL_period_ps;
+	uint32_t macro_period_vclks;
+	uint32_t macro_period_ps;
+
+	LOG_FUNCTION_START("");
+
+	/* The above calculation will produce rounding errors,
+	   therefore set fixed value
+	*/
+	PLL_period_ps = 1655;
+
+	macro_period_vclks = 2304;
+	macro_period_ps = (uint32_t)(macro_period_vclks
+			* vcsel_period_pclks * PLL_period_ps);
+
+	LOG_FUNCTION_END("");
+	return macro_period_ps;
+}
+
+uint16_t VL53L0X_encode_timeout(uint32_t timeout_macro_clks)
+{
+	/*!
+	 * Encode timeout in macro periods in (LSByte * 2^MSByte) + 1 format
+	 */
+
+	uint16_t encoded_timeout = 0;
+	uint32_t ls_byte = 0;
+	uint16_t ms_byte = 0;
+
+	if (timeout_macro_clks > 0) {
+		ls_byte = timeout_macro_clks - 1;
+
+		while ((ls_byte & 0xFFFFFF00) > 0) {
+			ls_byte = ls_byte >> 1;
+			ms_byte++;
+		}
+
+		encoded_timeout = (ms_byte << 8)
+				+ (uint16_t) (ls_byte & 0x000000FF);
+	}
+
+	return encoded_timeout;
+
+}
+
+uint32_t VL53L0X_decode_timeout(uint16_t encoded_timeout)
+{
+	/*!
+	 * Decode 16-bit timeout register value - format (LSByte * 2^MSByte) + 1
+	 */
+
+	uint32_t timeout_macro_clks = 0;
+
+	timeout_macro_clks = ((uint32_t) (encoded_timeout & 0x00FF)
+			<< (uint32_t) ((encoded_timeout & 0xFF00) >> 8)) + 1;
+
+	return timeout_macro_clks;
+}
+
+
+/* To convert ms into register value */
+uint32_t VL53L0X_calc_timeout_mclks(VL53L0X_DEV Dev,
+		uint32_t timeout_period_us,
+		uint8_t vcsel_period_pclks)
+{
+	uint32_t macro_period_ps;
+	uint32_t macro_period_ns;
+	uint32_t timeout_period_mclks = 0;
+
+	macro_period_ps = VL53L0X_calc_macro_period_ps(Dev, vcsel_period_pclks);
+	macro_period_ns = (macro_period_ps + 500) / 1000;
+
+	timeout_period_mclks =
+		(uint32_t) (((timeout_period_us * 1000)
+		+ (macro_period_ns / 2)) / macro_period_ns);
+
+    return timeout_period_mclks;
+}
+
+/* To convert register value into us */
+uint32_t VL53L0X_calc_timeout_us(VL53L0X_DEV Dev,
+		uint16_t timeout_period_mclks,
+		uint8_t vcsel_period_pclks)
+{
+	uint32_t macro_period_ps;
+	uint32_t macro_period_ns;
+	uint32_t actual_timeout_period_us = 0;
+
+	macro_period_ps = VL53L0X_calc_macro_period_ps(Dev, vcsel_period_pclks);
+	macro_period_ns = (macro_period_ps + 500) / 1000;
+
+	actual_timeout_period_us =
+		((timeout_period_mclks * macro_period_ns) + 500) / 1000;
+
+	return actual_timeout_period_us;
+}
+
+
+VL53L0X_Error get_sequence_step_timeout(VL53L0X_DEV Dev,
+				VL53L0X_SequenceStepId SequenceStepId,
+				uint32_t *pTimeOutMicroSecs)
+{
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+	uint8_t CurrentVCSELPulsePeriodPClk;
+	uint8_t EncodedTimeOutByte = 0;
+	uint32_t TimeoutMicroSeconds = 0;
+	uint16_t PreRangeEncodedTimeOut = 0;
+	uint16_t MsrcTimeOutMClks;
+	uint16_t PreRangeTimeOutMClks;
+	uint16_t FinalRangeTimeOutMClks = 0;
+	uint16_t FinalRangeEncodedTimeOut;
+	VL53L0X_SchedulerSequenceSteps_t SchedulerSequenceSteps;
+
+	if ((SequenceStepId == VL53L0X_SEQUENCESTEP_TCC)	 ||
+		(SequenceStepId == VL53L0X_SEQUENCESTEP_DSS)	 ||
+		(SequenceStepId == VL53L0X_SEQUENCESTEP_MSRC)) {
+
+		Status = VL53L0X_GetVcselPulsePeriod(Dev,
+					VL53L0X_VCSEL_PERIOD_PRE_RANGE,
+					&CurrentVCSELPulsePeriodPClk);
+		if (Status == VL53L0X_ERROR_NONE) {
+			Status = VL53L0X_RdByte(Dev,
+					VL53L0X_REG_MSRC_CONFIG_TIMEOUT_MACROP,
+					&EncodedTimeOutByte);
+		}
+		MsrcTimeOutMClks = VL53L0X_decode_timeout(EncodedTimeOutByte);
+
+		TimeoutMicroSeconds = VL53L0X_calc_timeout_us(Dev,
+						MsrcTimeOutMClks,
+						CurrentVCSELPulsePeriodPClk);
+	} else if (SequenceStepId == VL53L0X_SEQUENCESTEP_PRE_RANGE) {
+		/* Retrieve PRE-RANGE VCSEL Period */
+		Status = VL53L0X_GetVcselPulsePeriod(Dev,
+						VL53L0X_VCSEL_PERIOD_PRE_RANGE,
+						&CurrentVCSELPulsePeriodPClk);
+
+		/* Retrieve PRE-RANGE Timeout in Macro periods (MCLKS) */
+		if (Status == VL53L0X_ERROR_NONE) {
+
+			/* Retrieve PRE-RANGE VCSEL Period */
+			Status = VL53L0X_GetVcselPulsePeriod(Dev,
+					VL53L0X_VCSEL_PERIOD_PRE_RANGE,
+					&CurrentVCSELPulsePeriodPClk);
+
+			if (Status == VL53L0X_ERROR_NONE) {
+				Status = VL53L0X_RdWord(Dev,
+				VL53L0X_REG_PRE_RANGE_CONFIG_TIMEOUT_MACROP_HI,
+				&PreRangeEncodedTimeOut);
+			}
+
+			PreRangeTimeOutMClks = VL53L0X_decode_timeout(
+					PreRangeEncodedTimeOut);
+
+			TimeoutMicroSeconds = VL53L0X_calc_timeout_us(Dev,
+					PreRangeTimeOutMClks,
+					CurrentVCSELPulsePeriodPClk);
+		}
+	} else if (SequenceStepId == VL53L0X_SEQUENCESTEP_FINAL_RANGE) {
+
+		VL53L0X_GetSequenceStepEnables(Dev, &SchedulerSequenceSteps);
+		PreRangeTimeOutMClks = 0;
+
+		if (SchedulerSequenceSteps.PreRangeOn) {
+			/* Retrieve PRE-RANGE VCSEL Period */
+			Status = VL53L0X_GetVcselPulsePeriod(Dev,
+				VL53L0X_VCSEL_PERIOD_PRE_RANGE,
+				&CurrentVCSELPulsePeriodPClk);
+
+			/* Retrieve PRE-RANGE Timeout in Macro periods
+			 * (MCLKS) */
+			if (Status == VL53L0X_ERROR_NONE) {
+				Status = VL53L0X_RdWord(Dev,
+				VL53L0X_REG_PRE_RANGE_CONFIG_TIMEOUT_MACROP_HI,
+				&PreRangeEncodedTimeOut);
+				PreRangeTimeOutMClks = VL53L0X_decode_timeout(
+						PreRangeEncodedTimeOut);
+			}
+		}
+
+		if (Status == VL53L0X_ERROR_NONE) {
+			/* Retrieve FINAL-RANGE VCSEL Period */
+			Status = VL53L0X_GetVcselPulsePeriod(Dev,
+					VL53L0X_VCSEL_PERIOD_FINAL_RANGE,
+					&CurrentVCSELPulsePeriodPClk);
+		}
+
+		/* Retrieve FINAL-RANGE Timeout in Macro periods (MCLKS) */
+		if (Status == VL53L0X_ERROR_NONE) {
+			Status = VL53L0X_RdWord(Dev,
+				VL53L0X_REG_FINAL_RANGE_CONFIG_TIMEOUT_MACROP_HI,
+				&FinalRangeEncodedTimeOut);
+			FinalRangeTimeOutMClks = VL53L0X_decode_timeout(
+					FinalRangeEncodedTimeOut);
+		}
+
+		FinalRangeTimeOutMClks -= PreRangeTimeOutMClks;
+		TimeoutMicroSeconds = VL53L0X_calc_timeout_us(Dev,
+						FinalRangeTimeOutMClks,
+						CurrentVCSELPulsePeriodPClk);
+	}
+
+	*pTimeOutMicroSecs = TimeoutMicroSeconds;
+
+	return Status;
+}
+
+
+VL53L0X_Error set_sequence_step_timeout(VL53L0X_DEV Dev,
+					VL53L0X_SequenceStepId SequenceStepId,
+					uint32_t TimeOutMicroSecs)
+{
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+	uint8_t CurrentVCSELPulsePeriodPClk;
+	uint8_t MsrcEncodedTimeOut;
+	uint16_t PreRangeEncodedTimeOut;
+	uint16_t PreRangeTimeOutMClks;
+	uint16_t MsrcRangeTimeOutMClks;
+	uint32_t FinalRangeTimeOutMClks;
+	uint16_t FinalRangeEncodedTimeOut;
+	VL53L0X_SchedulerSequenceSteps_t SchedulerSequenceSteps;
+
+	if ((SequenceStepId == VL53L0X_SEQUENCESTEP_TCC)	 ||
+		(SequenceStepId == VL53L0X_SEQUENCESTEP_DSS)	 ||
+		(SequenceStepId == VL53L0X_SEQUENCESTEP_MSRC)) {
+
+		Status = VL53L0X_GetVcselPulsePeriod(Dev,
+					VL53L0X_VCSEL_PERIOD_PRE_RANGE,
+					&CurrentVCSELPulsePeriodPClk);
+
+		if (Status == VL53L0X_ERROR_NONE) {
+			MsrcRangeTimeOutMClks = VL53L0X_calc_timeout_mclks(Dev,
+					TimeOutMicroSecs,
+					(uint8_t)CurrentVCSELPulsePeriodPClk);
+
+			if (MsrcRangeTimeOutMClks > 256)
+				MsrcEncodedTimeOut = 255;
+			else
+				MsrcEncodedTimeOut =
+					(uint8_t)MsrcRangeTimeOutMClks - 1;
+
+			VL53L0X_SETDEVICESPECIFICPARAMETER(Dev,
+				LastEncodedTimeout,
+				MsrcEncodedTimeOut);
+		}
+
+		if (Status == VL53L0X_ERROR_NONE) {
+			Status = VL53L0X_WrByte(Dev,
+				VL53L0X_REG_MSRC_CONFIG_TIMEOUT_MACROP,
+				MsrcEncodedTimeOut);
+		}
+	} else {
+
+		if (SequenceStepId == VL53L0X_SEQUENCESTEP_PRE_RANGE) {
+
+			if (Status == VL53L0X_ERROR_NONE) {
+				Status = VL53L0X_GetVcselPulsePeriod(Dev,
+						VL53L0X_VCSEL_PERIOD_PRE_RANGE,
+						&CurrentVCSELPulsePeriodPClk);
+				PreRangeTimeOutMClks =
+					VL53L0X_calc_timeout_mclks(Dev,
+					TimeOutMicroSecs,
+					(uint8_t)CurrentVCSELPulsePeriodPClk);
+				PreRangeEncodedTimeOut = VL53L0X_encode_timeout(
+					PreRangeTimeOutMClks);
+
+				VL53L0X_SETDEVICESPECIFICPARAMETER(Dev,
+					LastEncodedTimeout,
+					PreRangeEncodedTimeOut);
+			}
+
+			if (Status == VL53L0X_ERROR_NONE) {
+				Status = VL53L0X_WrWord(Dev,
+				VL53L0X_REG_PRE_RANGE_CONFIG_TIMEOUT_MACROP_HI,
+				PreRangeEncodedTimeOut);
+			}
+
+			if (Status == VL53L0X_ERROR_NONE) {
+				VL53L0X_SETDEVICESPECIFICPARAMETER(
+					Dev,
+					PreRangeTimeoutMicroSecs,
+					TimeOutMicroSecs);
+			}
+		} else if (SequenceStepId == VL53L0X_SEQUENCESTEP_FINAL_RANGE) {
+
+			/* For the final range timeout, the pre-range timeout
+			 * must be added. To do this both final and pre-range
+			 * timeouts must be expressed in macro periods MClks
+			 * because they have different vcsel periods.
+			 */
+
+			VL53L0X_GetSequenceStepEnables(Dev,
+					&SchedulerSequenceSteps);
+			PreRangeTimeOutMClks = 0;
+			if (SchedulerSequenceSteps.PreRangeOn) {
+
+				/* Retrieve PRE-RANGE VCSEL Period */
+				Status = VL53L0X_GetVcselPulsePeriod(Dev,
+					VL53L0X_VCSEL_PERIOD_PRE_RANGE,
+					&CurrentVCSELPulsePeriodPClk);
+
+				/* Retrieve PRE-RANGE Timeout in Macro periods
+				 * (MCLKS) */
+				if (Status == VL53L0X_ERROR_NONE) {
+					Status = VL53L0X_RdWord(Dev, 0x51,
+						&PreRangeEncodedTimeOut);
+					PreRangeTimeOutMClks =
+						VL53L0X_decode_timeout(
+							PreRangeEncodedTimeOut);
+				}
+			}
+
+			/* Calculate FINAL RANGE Timeout in Macro Periods
+			 * (MCLKS) and add PRE-RANGE value
+			 */
+			if (Status == VL53L0X_ERROR_NONE) {
+
+				Status = VL53L0X_GetVcselPulsePeriod(Dev,
+						VL53L0X_VCSEL_PERIOD_FINAL_RANGE,
+						&CurrentVCSELPulsePeriodPClk);
+			}
+			if (Status == VL53L0X_ERROR_NONE) {
+
+				FinalRangeTimeOutMClks =
+					VL53L0X_calc_timeout_mclks(Dev,
+					TimeOutMicroSecs,
+					(uint8_t) CurrentVCSELPulsePeriodPClk);
+
+				FinalRangeTimeOutMClks += PreRangeTimeOutMClks;
+
+				FinalRangeEncodedTimeOut =
+				VL53L0X_encode_timeout(FinalRangeTimeOutMClks);
+
+				if (Status == VL53L0X_ERROR_NONE) {
+					Status = VL53L0X_WrWord(Dev, 0x71,
+					FinalRangeEncodedTimeOut);
+				}
+
+				if (Status == VL53L0X_ERROR_NONE) {
+					VL53L0X_SETDEVICESPECIFICPARAMETER(
+						Dev,
+						FinalRangeTimeoutMicroSecs,
+						TimeOutMicroSecs);
+				}
+			}
+		} else
+			Status = VL53L0X_ERROR_INVALID_PARAMS;
+
+	}
+	return Status;
+}
+
+VL53L0X_Error VL53L0X_set_vcsel_pulse_period(VL53L0X_DEV Dev,
+	VL53L0X_VcselPeriod VcselPeriodType, uint8_t VCSELPulsePeriodPCLK)
+{
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+	uint8_t vcsel_period_reg;
+	uint8_t MinPreVcselPeriodPCLK = 12;
+	uint8_t MaxPreVcselPeriodPCLK = 18;
+	uint8_t MinFinalVcselPeriodPCLK = 8;
+	uint8_t MaxFinalVcselPeriodPCLK = 14;
+	uint32_t MeasurementTimingBudgetMicroSeconds;
+	uint32_t FinalRangeTimeoutMicroSeconds;
+	uint32_t PreRangeTimeoutMicroSeconds;
+	uint32_t MsrcTimeoutMicroSeconds;
+	uint8_t PhaseCalInt = 0;
+
+	/* Check if valid clock period requested */
+
+	if ((VCSELPulsePeriodPCLK % 2) != 0) {
+		/* Value must be an even number */
+		Status = VL53L0X_ERROR_INVALID_PARAMS;
+	} else if (VcselPeriodType == VL53L0X_VCSEL_PERIOD_PRE_RANGE &&
+		(VCSELPulsePeriodPCLK < MinPreVcselPeriodPCLK ||
+		VCSELPulsePeriodPCLK > MaxPreVcselPeriodPCLK)) {
+		Status = VL53L0X_ERROR_INVALID_PARAMS;
+	} else if (VcselPeriodType == VL53L0X_VCSEL_PERIOD_FINAL_RANGE &&
+		(VCSELPulsePeriodPCLK < MinFinalVcselPeriodPCLK ||
+		 VCSELPulsePeriodPCLK > MaxFinalVcselPeriodPCLK)) {
+
+		Status = VL53L0X_ERROR_INVALID_PARAMS;
+	}
+
+	/* Apply specific settings for the requested clock period */
+
+	if (Status != VL53L0X_ERROR_NONE)
+		return Status;
+
+
+	if (VcselPeriodType == VL53L0X_VCSEL_PERIOD_PRE_RANGE) {
+
+		/* Set phase check limits */
+		if (VCSELPulsePeriodPCLK == 12) {
+
+			Status = VL53L0X_WrByte(Dev,
+				VL53L0X_REG_PRE_RANGE_CONFIG_VALID_PHASE_HIGH,
+				0x18);
+			Status = VL53L0X_WrByte(Dev,
+				VL53L0X_REG_PRE_RANGE_CONFIG_VALID_PHASE_LOW,
+				0x08);
+		} else if (VCSELPulsePeriodPCLK == 14) {
+
+			Status = VL53L0X_WrByte(Dev,
+				VL53L0X_REG_PRE_RANGE_CONFIG_VALID_PHASE_HIGH,
+				0x30);
+			Status = VL53L0X_WrByte(Dev,
+				VL53L0X_REG_PRE_RANGE_CONFIG_VALID_PHASE_LOW,
+				0x08);
+		} else if (VCSELPulsePeriodPCLK == 16) {
+
+			Status = VL53L0X_WrByte(Dev,
+				VL53L0X_REG_PRE_RANGE_CONFIG_VALID_PHASE_HIGH,
+				0x40);
+			Status = VL53L0X_WrByte(Dev,
+				VL53L0X_REG_PRE_RANGE_CONFIG_VALID_PHASE_LOW,
+				0x08);
+		} else if (VCSELPulsePeriodPCLK == 18) {
+
+			Status = VL53L0X_WrByte(Dev,
+				VL53L0X_REG_PRE_RANGE_CONFIG_VALID_PHASE_HIGH,
+				0x50);
+			Status = VL53L0X_WrByte(Dev,
+				VL53L0X_REG_PRE_RANGE_CONFIG_VALID_PHASE_LOW,
+				0x08);
+		}
+	} else if (VcselPeriodType == VL53L0X_VCSEL_PERIOD_FINAL_RANGE) {
+
+		if (VCSELPulsePeriodPCLK == 8) {
+
+			Status = VL53L0X_WrByte(Dev,
+				VL53L0X_REG_FINAL_RANGE_CONFIG_VALID_PHASE_HIGH,
+				0x10);
+			Status = VL53L0X_WrByte(Dev,
+				VL53L0X_REG_FINAL_RANGE_CONFIG_VALID_PHASE_LOW,
+				0x08);
+
+			Status |= VL53L0X_WrByte(Dev,
+				VL53L0X_REG_GLOBAL_CONFIG_VCSEL_WIDTH, 0x02);
+			Status |= VL53L0X_WrByte(Dev,
+				VL53L0X_REG_ALGO_PHASECAL_CONFIG_TIMEOUT, 0x0C);
+
+			Status |= VL53L0X_WrByte(Dev, 0xff, 0x01);
+			Status |= VL53L0X_WrByte(Dev,
+				VL53L0X_REG_ALGO_PHASECAL_LIM,
+				0x30);
+			Status |= VL53L0X_WrByte(Dev, 0xff, 0x00);
+		} else if (VCSELPulsePeriodPCLK == 10) {
+
+			Status = VL53L0X_WrByte(Dev,
+				VL53L0X_REG_FINAL_RANGE_CONFIG_VALID_PHASE_HIGH,
+				0x28);
+			Status = VL53L0X_WrByte(Dev,
+				VL53L0X_REG_FINAL_RANGE_CONFIG_VALID_PHASE_LOW,
+				0x08);
+
+			Status |= VL53L0X_WrByte(Dev,
+				VL53L0X_REG_GLOBAL_CONFIG_VCSEL_WIDTH, 0x03);
+			Status |= VL53L0X_WrByte(Dev,
+				VL53L0X_REG_ALGO_PHASECAL_CONFIG_TIMEOUT, 0x09);
+
+			Status |= VL53L0X_WrByte(Dev, 0xff, 0x01);
+			Status |= VL53L0X_WrByte(Dev,
+				VL53L0X_REG_ALGO_PHASECAL_LIM,
+				0x20);
+			Status |= VL53L0X_WrByte(Dev, 0xff, 0x00);
+		} else if (VCSELPulsePeriodPCLK == 12) {
+
+			Status = VL53L0X_WrByte(Dev,
+				VL53L0X_REG_FINAL_RANGE_CONFIG_VALID_PHASE_HIGH,
+				0x38);
+			Status = VL53L0X_WrByte(Dev,
+				VL53L0X_REG_FINAL_RANGE_CONFIG_VALID_PHASE_LOW,
+				0x08);
+
+			Status |= VL53L0X_WrByte(Dev,
+				VL53L0X_REG_GLOBAL_CONFIG_VCSEL_WIDTH, 0x03);
+			Status |= VL53L0X_WrByte(Dev,
+				VL53L0X_REG_ALGO_PHASECAL_CONFIG_TIMEOUT, 0x08);
+
+			Status |= VL53L0X_WrByte(Dev, 0xff, 0x01);
+			Status |= VL53L0X_WrByte(Dev,
+				VL53L0X_REG_ALGO_PHASECAL_LIM,
+				0x20);
+			Status |= VL53L0X_WrByte(Dev, 0xff, 0x00);
+		} else if (VCSELPulsePeriodPCLK == 14) {
+
+			Status = VL53L0X_WrByte(Dev,
+				VL53L0X_REG_FINAL_RANGE_CONFIG_VALID_PHASE_HIGH,
+				0x048);
+			Status = VL53L0X_WrByte(Dev,
+				VL53L0X_REG_FINAL_RANGE_CONFIG_VALID_PHASE_LOW,
+				0x08);
+
+			Status |= VL53L0X_WrByte(Dev,
+				VL53L0X_REG_GLOBAL_CONFIG_VCSEL_WIDTH, 0x03);
+			Status |= VL53L0X_WrByte(Dev,
+				VL53L0X_REG_ALGO_PHASECAL_CONFIG_TIMEOUT, 0x07);
+
+			Status |= VL53L0X_WrByte(Dev, 0xff, 0x01);
+			Status |= VL53L0X_WrByte(Dev,
+				VL53L0X_REG_ALGO_PHASECAL_LIM,
+				0x20);
+			Status |= VL53L0X_WrByte(Dev, 0xff, 0x00);
+		}
+	}
+
+
+	/* Re-calculate and apply timeouts, in macro periods */
+
+	if (Status == VL53L0X_ERROR_NONE) {
+		vcsel_period_reg = VL53L0X_encode_vcsel_period((uint8_t)
+			VCSELPulsePeriodPCLK);
+
+		/* When the VCSEL period for the pre or final range is changed,
+		* the corresponding timeout must be read from the device using
+		* the current VCSEL period, then the new VCSEL period can be
+		* applied. The timeout then must be written back to the device
+		* using the new VCSEL period.
+		*
+		* For the MSRC timeout, the same applies - this timeout being
+		* dependant on the pre-range vcsel period.
+		*/
+		switch (VcselPeriodType) {
+		case VL53L0X_VCSEL_PERIOD_PRE_RANGE:
+			Status = get_sequence_step_timeout(Dev,
+				VL53L0X_SEQUENCESTEP_PRE_RANGE,
+				&PreRangeTimeoutMicroSeconds);
+
+			if (Status == VL53L0X_ERROR_NONE)
+				Status = get_sequence_step_timeout(Dev,
+					VL53L0X_SEQUENCESTEP_MSRC,
+					&MsrcTimeoutMicroSeconds);
+
+			if (Status == VL53L0X_ERROR_NONE)
+				Status = VL53L0X_WrByte(Dev,
+				VL53L0X_REG_PRE_RANGE_CONFIG_VCSEL_PERIOD,
+					vcsel_period_reg);
+
+
+			if (Status == VL53L0X_ERROR_NONE)
+				Status = set_sequence_step_timeout(Dev,
+					VL53L0X_SEQUENCESTEP_PRE_RANGE,
+					PreRangeTimeoutMicroSeconds);
+
+
+			if (Status == VL53L0X_ERROR_NONE)
+				Status = set_sequence_step_timeout(Dev,
+					VL53L0X_SEQUENCESTEP_MSRC,
+					MsrcTimeoutMicroSeconds);
+
+			VL53L0X_SETDEVICESPECIFICPARAMETER(
+				Dev,
+				PreRangeVcselPulsePeriod,
+				VCSELPulsePeriodPCLK);
+			break;
+		case VL53L0X_VCSEL_PERIOD_FINAL_RANGE:
+			Status = get_sequence_step_timeout(Dev,
+				VL53L0X_SEQUENCESTEP_FINAL_RANGE,
+				&FinalRangeTimeoutMicroSeconds);
+
+			if (Status == VL53L0X_ERROR_NONE)
+				Status = VL53L0X_WrByte(Dev,
+				VL53L0X_REG_FINAL_RANGE_CONFIG_VCSEL_PERIOD,
+					vcsel_period_reg);
+
+
+			if (Status == VL53L0X_ERROR_NONE)
+				Status = set_sequence_step_timeout(Dev,
+					VL53L0X_SEQUENCESTEP_FINAL_RANGE,
+					FinalRangeTimeoutMicroSeconds);
+
+			VL53L0X_SETDEVICESPECIFICPARAMETER(
+				Dev,
+				FinalRangeVcselPulsePeriod,
+				VCSELPulsePeriodPCLK);
+			break;
+		default:
+			Status = VL53L0X_ERROR_INVALID_PARAMS;
+		}
+	}
+
+	/* Finally, the timing budget must be re-applied */
+	if (Status == VL53L0X_ERROR_NONE) {
+		VL53L0X_GETPARAMETERFIELD(Dev,
+			MeasurementTimingBudgetMicroSeconds,
+			MeasurementTimingBudgetMicroSeconds);
+
+		Status = VL53L0X_SetMeasurementTimingBudgetMicroSeconds(Dev,
+				MeasurementTimingBudgetMicroSeconds);
+	}
+
+	/* Perform the phase calibration. This is needed after changing on
+	 * vcsel period.
+	 * get_data_enable = 0, restore_config = 1 */
+	if (Status == VL53L0X_ERROR_NONE)
+		Status = VL53L0X_perform_phase_calibration(
+			Dev, &PhaseCalInt, 0, 1);
+
+	return Status;
+}
+
+VL53L0X_Error VL53L0X_get_vcsel_pulse_period(VL53L0X_DEV Dev,
+	VL53L0X_VcselPeriod VcselPeriodType, uint8_t *pVCSELPulsePeriodPCLK)
+{
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+	uint8_t vcsel_period_reg;
+
+	switch (VcselPeriodType) {
+	case VL53L0X_VCSEL_PERIOD_PRE_RANGE:
+		Status = VL53L0X_RdByte(Dev,
+			VL53L0X_REG_PRE_RANGE_CONFIG_VCSEL_PERIOD,
+			&vcsel_period_reg);
+	break;
+	case VL53L0X_VCSEL_PERIOD_FINAL_RANGE:
+		Status = VL53L0X_RdByte(Dev,
+			VL53L0X_REG_FINAL_RANGE_CONFIG_VCSEL_PERIOD,
+			&vcsel_period_reg);
+	break;
+	default:
+		Status = VL53L0X_ERROR_INVALID_PARAMS;
+	}
+
+	if (Status == VL53L0X_ERROR_NONE)
+		*pVCSELPulsePeriodPCLK =
+			VL53L0X_decode_vcsel_period(vcsel_period_reg);
+
+	return Status;
+}
+
+
+
+VL53L0X_Error VL53L0X_set_measurement_timing_budget_micro_seconds(VL53L0X_DEV Dev,
+		uint32_t MeasurementTimingBudgetMicroSeconds)
+{
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+	uint32_t FinalRangeTimingBudgetMicroSeconds;
+	VL53L0X_SchedulerSequenceSteps_t SchedulerSequenceSteps;
+	uint32_t MsrcDccTccTimeoutMicroSeconds	= 2000;
+	uint32_t StartOverheadMicroSeconds		= 1910;
+	uint32_t EndOverheadMicroSeconds		= 960;
+	uint32_t MsrcOverheadMicroSeconds		= 660;
+	uint32_t TccOverheadMicroSeconds		= 590;
+	uint32_t DssOverheadMicroSeconds		= 690;
+	uint32_t PreRangeOverheadMicroSeconds	= 660;
+	uint32_t FinalRangeOverheadMicroSeconds = 550;
+	uint32_t PreRangeTimeoutMicroSeconds	= 0;
+	uint32_t cMinTimingBudgetMicroSeconds	= 20000;
+	uint32_t SubTimeout = 0;
+
+	LOG_FUNCTION_START("");
+
+	if (MeasurementTimingBudgetMicroSeconds
+			< cMinTimingBudgetMicroSeconds) {
+		Status = VL53L0X_ERROR_INVALID_PARAMS;
+		return Status;
+	}
+
+	FinalRangeTimingBudgetMicroSeconds =
+		MeasurementTimingBudgetMicroSeconds -
+		(StartOverheadMicroSeconds + EndOverheadMicroSeconds);
+
+	Status = VL53L0X_GetSequenceStepEnables(Dev, &SchedulerSequenceSteps);
+
+	if (Status == VL53L0X_ERROR_NONE &&
+		(SchedulerSequenceSteps.TccOn  ||
+		SchedulerSequenceSteps.MsrcOn ||
+		SchedulerSequenceSteps.DssOn)) {
+
+		/* TCC, MSRC and DSS all share the same timeout */
+		Status = get_sequence_step_timeout(Dev,
+					VL53L0X_SEQUENCESTEP_MSRC,
+					&MsrcDccTccTimeoutMicroSeconds);
+
+		/* Subtract the TCC, MSRC and DSS timeouts if they are
+		 * enabled. */
+
+		if (Status != VL53L0X_ERROR_NONE)
+			return Status;
+
+		/* TCC */
+		if (SchedulerSequenceSteps.TccOn) {
+
+			SubTimeout = MsrcDccTccTimeoutMicroSeconds
+				+ TccOverheadMicroSeconds;
+
+			if (SubTimeout <
+				FinalRangeTimingBudgetMicroSeconds) {
+				FinalRangeTimingBudgetMicroSeconds -=
+							SubTimeout;
+			} else {
+				/* Requested timeout too big. */
+				Status = VL53L0X_ERROR_INVALID_PARAMS;
+			}
+		}
+
+		if (Status != VL53L0X_ERROR_NONE) {
+			LOG_FUNCTION_END(Status);
+			return Status;
+		}
+
+		/* DSS */
+		if (SchedulerSequenceSteps.DssOn) {
+
+			SubTimeout = 2 * (MsrcDccTccTimeoutMicroSeconds +
+				DssOverheadMicroSeconds);
+
+			if (SubTimeout < FinalRangeTimingBudgetMicroSeconds) {
+				FinalRangeTimingBudgetMicroSeconds
+							-= SubTimeout;
+			} else {
+				/* Requested timeout too big. */
+				Status = VL53L0X_ERROR_INVALID_PARAMS;
+			}
+		} else if (SchedulerSequenceSteps.MsrcOn) {
+			/* MSRC */
+			SubTimeout = MsrcDccTccTimeoutMicroSeconds +
+						MsrcOverheadMicroSeconds;
+
+			if (SubTimeout < FinalRangeTimingBudgetMicroSeconds) {
+				FinalRangeTimingBudgetMicroSeconds
+							-= SubTimeout;
+			} else {
+				/* Requested timeout too big. */
+				Status = VL53L0X_ERROR_INVALID_PARAMS;
+			}
+		}
+
+	}
+
+	if (Status != VL53L0X_ERROR_NONE) {
+		LOG_FUNCTION_END(Status);
+		return Status;
+	}
+
+	if (SchedulerSequenceSteps.PreRangeOn) {
+
+		/* Subtract the Pre-range timeout if enabled. */
+
+		Status = get_sequence_step_timeout(Dev,
+				VL53L0X_SEQUENCESTEP_PRE_RANGE,
+				&PreRangeTimeoutMicroSeconds);
+
+		SubTimeout = PreRangeTimeoutMicroSeconds +
+				PreRangeOverheadMicroSeconds;
+
+		if (SubTimeout < FinalRangeTimingBudgetMicroSeconds) {
+			FinalRangeTimingBudgetMicroSeconds -= SubTimeout;
+		} else {
+			/* Requested timeout too big. */
+			Status = VL53L0X_ERROR_INVALID_PARAMS;
+		}
+	}
+
+
+	if (Status == VL53L0X_ERROR_NONE &&
+		SchedulerSequenceSteps.FinalRangeOn) {
+
+		FinalRangeTimingBudgetMicroSeconds -=
+				FinalRangeOverheadMicroSeconds;
+
+		/* Final Range Timeout
+		 * Note that the final range timeout is determined by the timing
+		 * budget and the sum of all other timeouts within the sequence.
+		 * If there is no room for the final range timeout, then an error
+		 * will be set. Otherwise the remaining time will be applied to
+		 * the final range.
+		 */
+		Status = set_sequence_step_timeout(Dev,
+			VL53L0X_SEQUENCESTEP_FINAL_RANGE,
+			FinalRangeTimingBudgetMicroSeconds);
+
+		VL53L0X_SETPARAMETERFIELD(Dev,
+			MeasurementTimingBudgetMicroSeconds,
+			MeasurementTimingBudgetMicroSeconds);
+	}
+
+	LOG_FUNCTION_END(Status);
+
+	return Status;
+}
+
+VL53L0X_Error VL53L0X_get_measurement_timing_budget_micro_seconds(VL53L0X_DEV Dev,
+		uint32_t *pMeasurementTimingBudgetMicroSeconds)
+{
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+	VL53L0X_SchedulerSequenceSteps_t SchedulerSequenceSteps;
+	uint32_t FinalRangeTimeoutMicroSeconds;
+	uint32_t MsrcDccTccTimeoutMicroSeconds	= 2000;
+	uint32_t StartOverheadMicroSeconds		= 1910;
+	uint32_t EndOverheadMicroSeconds		= 960;
+	uint32_t MsrcOverheadMicroSeconds		= 660;
+	uint32_t TccOverheadMicroSeconds		= 590;
+	uint32_t DssOverheadMicroSeconds		= 690;
+	uint32_t PreRangeOverheadMicroSeconds	= 660;
+	uint32_t FinalRangeOverheadMicroSeconds = 550;
+	uint32_t PreRangeTimeoutMicroSeconds	= 0;
+
+	LOG_FUNCTION_START("");
+
+	/* Start and end overhead times always present */
+	*pMeasurementTimingBudgetMicroSeconds
+		= StartOverheadMicroSeconds + EndOverheadMicroSeconds;
+
+	Status = VL53L0X_GetSequenceStepEnables(Dev, &SchedulerSequenceSteps);
+
+	if (Status != VL53L0X_ERROR_NONE) {
+		LOG_FUNCTION_END(Status);
+		return Status;
+	}
+
+
+	if (SchedulerSequenceSteps.TccOn  ||
+		SchedulerSequenceSteps.MsrcOn ||
+		SchedulerSequenceSteps.DssOn) {
+
+		Status = get_sequence_step_timeout(Dev,
+				VL53L0X_SEQUENCESTEP_MSRC,
+				&MsrcDccTccTimeoutMicroSeconds);
+
+		if (Status == VL53L0X_ERROR_NONE) {
+			if (SchedulerSequenceSteps.TccOn) {
+				*pMeasurementTimingBudgetMicroSeconds +=
+					MsrcDccTccTimeoutMicroSeconds +
+					TccOverheadMicroSeconds;
+			}
+
+			if (SchedulerSequenceSteps.DssOn) {
+				*pMeasurementTimingBudgetMicroSeconds +=
+				2 * (MsrcDccTccTimeoutMicroSeconds +
+					DssOverheadMicroSeconds);
+			} else if (SchedulerSequenceSteps.MsrcOn) {
+				*pMeasurementTimingBudgetMicroSeconds +=
+					MsrcDccTccTimeoutMicroSeconds +
+					MsrcOverheadMicroSeconds;
+			}
+		}
+	}
+
+	if (Status == VL53L0X_ERROR_NONE) {
+		if (SchedulerSequenceSteps.PreRangeOn) {
+			Status = get_sequence_step_timeout(Dev,
+				VL53L0X_SEQUENCESTEP_PRE_RANGE,
+				&PreRangeTimeoutMicroSeconds);
+			*pMeasurementTimingBudgetMicroSeconds +=
+				PreRangeTimeoutMicroSeconds +
+				PreRangeOverheadMicroSeconds;
+		}
+	}
+
+	if (Status == VL53L0X_ERROR_NONE) {
+		if (SchedulerSequenceSteps.FinalRangeOn) {
+			Status = get_sequence_step_timeout(Dev,
+					VL53L0X_SEQUENCESTEP_FINAL_RANGE,
+					&FinalRangeTimeoutMicroSeconds);
+			*pMeasurementTimingBudgetMicroSeconds +=
+				(FinalRangeTimeoutMicroSeconds +
+				FinalRangeOverheadMicroSeconds);
+		}
+	}
+
+	if (Status == VL53L0X_ERROR_NONE) {
+		VL53L0X_SETPARAMETERFIELD(Dev,
+			MeasurementTimingBudgetMicroSeconds,
+			*pMeasurementTimingBudgetMicroSeconds);
+	}
+
+	LOG_FUNCTION_END(Status);
+	return Status;
+}
+
+
+
+VL53L0X_Error VL53L0X_load_tuning_settings(VL53L0X_DEV Dev,
+		uint8_t *pTuningSettingBuffer)
+{
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+	int i;
+	int Index;
+	uint8_t msb;
+	uint8_t lsb;
+	uint8_t SelectParam;
+	uint8_t NumberOfWrites;
+	uint8_t Address;
+	uint8_t localBuffer[4]; /* max */
+	uint16_t Temp16;
+
+	LOG_FUNCTION_START("");
+
+	Index = 0;
+
+	while ((*(pTuningSettingBuffer + Index) != 0) &&
+			(Status == VL53L0X_ERROR_NONE)) {
+		NumberOfWrites = *(pTuningSettingBuffer + Index);
+		Index++;
+		if (NumberOfWrites == 0xFF) {
+			/* internal parameters */
+			SelectParam = *(pTuningSettingBuffer + Index);
+			Index++;
+			switch (SelectParam) {
+			case 0: /* uint16_t SigmaEstRefArray -> 2 bytes */
+				msb = *(pTuningSettingBuffer + Index);
+				Index++;
+				lsb = *(pTuningSettingBuffer + Index);
+				Index++;
+				Temp16 = VL53L0X_MAKEUINT16(lsb, msb);
+				PALDevDataSet(Dev, SigmaEstRefArray, Temp16);
+				break;
+			case 1: /* uint16_t SigmaEstEffPulseWidth -> 2 bytes */
+				msb = *(pTuningSettingBuffer + Index);
+				Index++;
+				lsb = *(pTuningSettingBuffer + Index);
+				Index++;
+				Temp16 = VL53L0X_MAKEUINT16(lsb, msb);
+				PALDevDataSet(Dev, SigmaEstEffPulseWidth,
+					Temp16);
+				break;
+			case 2: /* uint16_t SigmaEstEffAmbWidth -> 2 bytes */
+				msb = *(pTuningSettingBuffer + Index);
+				Index++;
+				lsb = *(pTuningSettingBuffer + Index);
+				Index++;
+				Temp16 = VL53L0X_MAKEUINT16(lsb, msb);
+				PALDevDataSet(Dev, SigmaEstEffAmbWidth, Temp16);
+				break;
+			case 3: /* uint16_t targetRefRate -> 2 bytes */
+				msb = *(pTuningSettingBuffer + Index);
+				Index++;
+				lsb = *(pTuningSettingBuffer + Index);
+				Index++;
+				Temp16 = VL53L0X_MAKEUINT16(lsb, msb);
+				PALDevDataSet(Dev, targetRefRate, Temp16);
+				break;
+			default: /* invalid parameter */
+				Status = VL53L0X_ERROR_INVALID_PARAMS;
+			}
+
+		} else if (NumberOfWrites <= 4) {
+			Address = *(pTuningSettingBuffer + Index);
+			Index++;
+
+			for (i = 0; i < NumberOfWrites; i++) {
+				localBuffer[i] = *(pTuningSettingBuffer +
+							Index);
+				Index++;
+			}
+
+			Status = VL53L0X_WriteMulti(Dev, Address, localBuffer,
+					NumberOfWrites);
+
+		} else {
+			Status = VL53L0X_ERROR_INVALID_PARAMS;
+		}
+	}
+
+	LOG_FUNCTION_END(Status);
+	return Status;
+}
+
+VL53L0X_Error VL53L0X_get_total_xtalk_rate(VL53L0X_DEV Dev,
+	VL53L0X_RangingMeasurementData_t *pRangingMeasurementData,
+	FixPoint1616_t *ptotal_xtalk_rate_mcps)
+{
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+
+	uint8_t xtalkCompEnable;
+	FixPoint1616_t totalXtalkMegaCps;
+	FixPoint1616_t xtalkPerSpadMegaCps;
+
+	*ptotal_xtalk_rate_mcps = 0;
+
+	Status = VL53L0X_GetXTalkCompensationEnable(Dev, &xtalkCompEnable);
+	if (Status == VL53L0X_ERROR_NONE) {
+
+		if (xtalkCompEnable) {
+
+			VL53L0X_GETPARAMETERFIELD(
+				Dev,
+				XTalkCompensationRateMegaCps,
+				xtalkPerSpadMegaCps);
+
+			/* FixPoint1616 * FixPoint 8:8 = FixPoint0824 */
+			totalXtalkMegaCps =
+				pRangingMeasurementData->EffectiveSpadRtnCount *
+				xtalkPerSpadMegaCps;
+
+			/* FixPoint0824 >> 8 = FixPoint1616 */
+			*ptotal_xtalk_rate_mcps =
+				(totalXtalkMegaCps + 0x80) >> 8;
+		}
+	}
+
+	return Status;
+}
+
+VL53L0X_Error VL53L0X_get_total_signal_rate(VL53L0X_DEV Dev,
+	VL53L0X_RangingMeasurementData_t *pRangingMeasurementData,
+	FixPoint1616_t *ptotal_signal_rate_mcps)
+{
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+	FixPoint1616_t totalXtalkMegaCps;
+
+	LOG_FUNCTION_START("");
+
+	*ptotal_signal_rate_mcps =
+		pRangingMeasurementData->SignalRateRtnMegaCps;
+
+	Status = VL53L0X_get_total_xtalk_rate(
+		Dev, pRangingMeasurementData, &totalXtalkMegaCps);
+
+	if (Status == VL53L0X_ERROR_NONE)
+		*ptotal_signal_rate_mcps += totalXtalkMegaCps;
+
+	return Status;
+}
+
+VL53L0X_Error VL53L0X_calc_dmax(
+	VL53L0X_DEV Dev,
+	FixPoint1616_t totalSignalRate_mcps,
+	FixPoint1616_t totalCorrSignalRate_mcps,
+	FixPoint1616_t pwMult,
+	uint32_t sigmaEstimateP1,
+	FixPoint1616_t sigmaEstimateP2,
+	uint32_t peakVcselDuration_us,
+	uint32_t *pdmax_mm)
+{
+	const uint32_t cSigmaLimit		= 18;
+	const FixPoint1616_t cSignalLimit	= 0x4000; /* 0.25 */
+	const FixPoint1616_t cSigmaEstRef	= 0x00000042; /* 0.001 */
+	const uint32_t cAmbEffWidthSigmaEst_ns = 6;
+	const uint32_t cAmbEffWidthDMax_ns	   = 7;
+	uint32_t dmaxCalRange_mm;
+	FixPoint1616_t dmaxCalSignalRateRtn_mcps;
+	FixPoint1616_t minSignalNeeded;
+	FixPoint1616_t minSignalNeeded_p1;
+	FixPoint1616_t minSignalNeeded_p2;
+	FixPoint1616_t minSignalNeeded_p3;
+	FixPoint1616_t minSignalNeeded_p4;
+	FixPoint1616_t sigmaLimitTmp;
+	FixPoint1616_t sigmaEstSqTmp;
+	FixPoint1616_t signalLimitTmp;
+	FixPoint1616_t SignalAt0mm;
+	FixPoint1616_t dmaxDark;
+	FixPoint1616_t dmaxAmbient;
+	FixPoint1616_t dmaxDarkTmp;
+	FixPoint1616_t sigmaEstP2Tmp;
+	uint32_t signalRateTemp_mcps;
+
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+
+	LOG_FUNCTION_START("");
+
+	dmaxCalRange_mm =
+		PALDevDataGet(Dev, DmaxCalRangeMilliMeter);
+
+	dmaxCalSignalRateRtn_mcps =
+		PALDevDataGet(Dev, DmaxCalSignalRateRtnMegaCps);
+
+	/* uint32 * FixPoint1616 = FixPoint1616 */
+	SignalAt0mm = dmaxCalRange_mm * dmaxCalSignalRateRtn_mcps;
+
+	/* FixPoint1616 >> 8 = FixPoint2408 */
+	SignalAt0mm = (SignalAt0mm + 0x80) >> 8;
+	SignalAt0mm *= dmaxCalRange_mm;
+
+	minSignalNeeded_p1 = 0;
+	if (totalCorrSignalRate_mcps > 0) {
+
+		/* Shift by 10 bits to increase resolution prior to the
+		 * division */
+		signalRateTemp_mcps = totalSignalRate_mcps << 10;
+
+		/* Add rounding value prior to division */
+		minSignalNeeded_p1 = signalRateTemp_mcps +
+			(totalCorrSignalRate_mcps/2);
+
+		/* FixPoint0626/FixPoint1616 = FixPoint2210 */
+		minSignalNeeded_p1 /= totalCorrSignalRate_mcps;
+
+		/* Apply a factored version of the speed of light.
+		 Correction to be applied at the end */
+		minSignalNeeded_p1 *= 3;
+
+		/* FixPoint2210 * FixPoint2210 = FixPoint1220 */
+		minSignalNeeded_p1 *= minSignalNeeded_p1;
+
+		/* FixPoint1220 >> 16 = FixPoint2804 */
+		minSignalNeeded_p1 = (minSignalNeeded_p1 + 0x8000) >> 16;
+	}
+
+	minSignalNeeded_p2 = pwMult * sigmaEstimateP1;
+
+	/* FixPoint1616 >> 16 =	 uint32 */
+	minSignalNeeded_p2 = (minSignalNeeded_p2 + 0x8000) >> 16;
+
+	/* uint32 * uint32	=  uint32 */
+	minSignalNeeded_p2 *= minSignalNeeded_p2;
+
+	/* Check sigmaEstimateP2
+	 * If this value is too high there is not enough signal rate
+	 * to calculate dmax value so set a suitable value to ensure
+	 * a very small dmax.
+	 */
+	sigmaEstP2Tmp = (sigmaEstimateP2 + 0x8000) >> 16;
+	sigmaEstP2Tmp = (sigmaEstP2Tmp + cAmbEffWidthSigmaEst_ns/2)/
+		cAmbEffWidthSigmaEst_ns;
+	sigmaEstP2Tmp *= cAmbEffWidthDMax_ns;
+
+	if (sigmaEstP2Tmp > 0xffff) {
+		minSignalNeeded_p3 = 0xfff00000;
+	} else {
+
+		/* DMAX uses a different ambient width from sigma, so apply
+		 * correction.
+		 * Perform division before multiplication to prevent overflow.
+		 */
+		sigmaEstimateP2 = (sigmaEstimateP2 + cAmbEffWidthSigmaEst_ns/2)/
+			cAmbEffWidthSigmaEst_ns;
+		sigmaEstimateP2 *= cAmbEffWidthDMax_ns;
+
+		/* FixPoint1616 >> 16 = uint32 */
+		minSignalNeeded_p3 = (sigmaEstimateP2 + 0x8000) >> 16;
+
+		minSignalNeeded_p3 *= minSignalNeeded_p3;
+
+	}
+
+	/* FixPoint1814 / uint32 = FixPoint1814 */
+	sigmaLimitTmp = ((cSigmaLimit << 14) + 500) / 1000;
+
+	/* FixPoint1814 * FixPoint1814 = FixPoint3628 := FixPoint0428 */
+	sigmaLimitTmp *= sigmaLimitTmp;
+
+	/* FixPoint1616 * FixPoint1616 = FixPoint3232 */
+	sigmaEstSqTmp = cSigmaEstRef * cSigmaEstRef;
+
+	/* FixPoint3232 >> 4 = FixPoint0428 */
+	sigmaEstSqTmp = (sigmaEstSqTmp + 0x08) >> 4;
+
+	/* FixPoint0428 - FixPoint0428	= FixPoint0428 */
+	sigmaLimitTmp -=  sigmaEstSqTmp;
+
+	/* uint32_t * FixPoint0428 = FixPoint0428 */
+	minSignalNeeded_p4 = 4 * 12 * sigmaLimitTmp;
+
+	/* FixPoint0428 >> 14 = FixPoint1814 */
+	minSignalNeeded_p4 = (minSignalNeeded_p4 + 0x2000) >> 14;
+
+	/* uint32 + uint32 = uint32 */
+	minSignalNeeded = (minSignalNeeded_p2 + minSignalNeeded_p3);
+
+	/* uint32 / uint32 = uint32 */
+	minSignalNeeded += (peakVcselDuration_us/2);
+	minSignalNeeded /= peakVcselDuration_us;
+
+	/* uint32 << 14 = FixPoint1814 */
+	minSignalNeeded <<= 14;
+
+	/* FixPoint1814 / FixPoint1814 = uint32 */
+	minSignalNeeded += (minSignalNeeded_p4/2);
+	minSignalNeeded /= minSignalNeeded_p4;
+
+	/* FixPoint3200 * FixPoint2804 := FixPoint2804*/
+	minSignalNeeded *= minSignalNeeded_p1;
+
+	/* Apply correction by dividing by 1000000.
+	 * This assumes 10E16 on the numerator of the equation
+	 * and 10E-22 on the denominator.
+	 * We do this because 32bit fix point calculation can't
+	 * handle the larger and smaller elements of this equation,
+	 * i.e. speed of light and pulse widths.
+	 */
+	minSignalNeeded = (minSignalNeeded + 500) / 1000;
+	minSignalNeeded <<= 4;
+
+	minSignalNeeded = (minSignalNeeded + 500) / 1000;
+
+	/* FixPoint1616 >> 8 = FixPoint2408 */
+	signalLimitTmp = (cSignalLimit + 0x80) >> 8;
+
+	/* FixPoint2408/FixPoint2408 = uint32 */
+	if (signalLimitTmp != 0)
+		dmaxDarkTmp = (SignalAt0mm + (signalLimitTmp / 2))
+			/ signalLimitTmp;
+	else
+		dmaxDarkTmp = 0;
+
+	dmaxDark = VL53L0X_isqrt(dmaxDarkTmp);
+
+	/* FixPoint2408/FixPoint2408 = uint32 */
+	if (minSignalNeeded != 0)
+		dmaxAmbient = (SignalAt0mm + minSignalNeeded/2)
+			/ minSignalNeeded;
+	else
+		dmaxAmbient = 0;
+
+	dmaxAmbient = VL53L0X_isqrt(dmaxAmbient);
+
+	*pdmax_mm = dmaxDark;
+	if (dmaxDark > dmaxAmbient)
+		*pdmax_mm = dmaxAmbient;
+
+	LOG_FUNCTION_END(Status);
+
+	return Status;
+}
+
+
+VL53L0X_Error VL53L0X_calc_sigma_estimate(VL53L0X_DEV Dev,
+	VL53L0X_RangingMeasurementData_t *pRangingMeasurementData,
+	FixPoint1616_t *pSigmaEstimate,
+	uint32_t *pDmax_mm)
+{
+	/* Expressed in 100ths of a ns, i.e. centi-ns */
+	const uint32_t cPulseEffectiveWidth_centi_ns   = 800;
+	/* Expressed in 100ths of a ns, i.e. centi-ns */
+	const uint32_t cAmbientEffectiveWidth_centi_ns = 600;
+	const FixPoint1616_t cDfltFinalRangeIntegrationTimeMilliSecs	= 0x00190000; /* 25ms */
+	const uint32_t cVcselPulseWidth_ps	= 4700; /* pico secs */
+	const FixPoint1616_t cSigmaEstMax	= 0x028F87AE;
+	const FixPoint1616_t cSigmaEstRtnMax	= 0xF000;
+	const FixPoint1616_t cAmbToSignalRatioMax = 0xF0000000/
+		cAmbientEffectiveWidth_centi_ns;
+	/* Time Of Flight per mm (6.6 pico secs) */
+	const FixPoint1616_t cTOF_per_mm_ps		= 0x0006999A;
+	const uint32_t c16BitRoundingParam		= 0x00008000;
+	const FixPoint1616_t cMaxXTalk_kcps		= 0x00320000;
+	const uint32_t cPllPeriod_ps			= 1655;
+
+	uint32_t vcselTotalEventsRtn;
+	uint32_t finalRangeTimeoutMicroSecs;
+	uint32_t preRangeTimeoutMicroSecs;
+	uint32_t finalRangeIntegrationTimeMilliSecs;
+	FixPoint1616_t sigmaEstimateP1;
+	FixPoint1616_t sigmaEstimateP2;
+	FixPoint1616_t sigmaEstimateP3;
+	FixPoint1616_t deltaT_ps;
+	FixPoint1616_t pwMult;
+	FixPoint1616_t sigmaEstRtn;
+	FixPoint1616_t sigmaEstimate;
+	FixPoint1616_t xTalkCorrection;
+	FixPoint1616_t ambientRate_kcps;
+	FixPoint1616_t peakSignalRate_kcps;
+	FixPoint1616_t xTalkCompRate_mcps;
+	uint32_t xTalkCompRate_kcps;
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+	FixPoint1616_t diff1_mcps;
+	FixPoint1616_t diff2_mcps;
+	FixPoint1616_t sqr1;
+	FixPoint1616_t sqr2;
+	FixPoint1616_t sqrSum;
+	FixPoint1616_t sqrtResult_centi_ns;
+	FixPoint1616_t sqrtResult;
+	FixPoint1616_t totalSignalRate_mcps;
+	FixPoint1616_t correctedSignalRate_mcps;
+	FixPoint1616_t sigmaEstRef;
+	uint32_t vcselWidth;
+	uint32_t finalRangeMacroPCLKS;
+	uint32_t preRangeMacroPCLKS;
+	uint32_t peakVcselDuration_us;
+	uint8_t finalRangeVcselPCLKS;
+	uint8_t preRangeVcselPCLKS;
+	/*! \addtogroup calc_sigma_estimate
+	 * @{
+	 *
+	 * Estimates the range sigma
+	 */
+
+	LOG_FUNCTION_START("");
+
+	VL53L0X_GETPARAMETERFIELD(Dev, XTalkCompensationRateMegaCps,
+			xTalkCompRate_mcps);
+
+	/*
+	 * We work in kcps rather than mcps as this helps keep within the
+	 * confines of the 32 Fix1616 type.
+	 */
+
+	ambientRate_kcps =
+		(pRangingMeasurementData->AmbientRateRtnMegaCps * 1000) >> 16;
+
+	correctedSignalRate_mcps =
+		pRangingMeasurementData->SignalRateRtnMegaCps;
+
+
+	Status = VL53L0X_get_total_signal_rate(
+		Dev, pRangingMeasurementData, &totalSignalRate_mcps);
+	Status = VL53L0X_get_total_xtalk_rate(
+		Dev, pRangingMeasurementData, &xTalkCompRate_mcps);
+
+
+	/* Signal rate measurement provided by device is the
+	 * peak signal rate, not average.
+	 */
+	peakSignalRate_kcps = (totalSignalRate_mcps * 1000);
+	peakSignalRate_kcps = (peakSignalRate_kcps + 0x8000) >> 16;
+
+	xTalkCompRate_kcps = xTalkCompRate_mcps * 1000;
+
+	if (xTalkCompRate_kcps > cMaxXTalk_kcps)
+		xTalkCompRate_kcps = cMaxXTalk_kcps;
+
+	if (Status == VL53L0X_ERROR_NONE) {
+
+		/* Calculate final range macro periods */
+		finalRangeTimeoutMicroSecs = VL53L0X_GETDEVICESPECIFICPARAMETER(
+			Dev, FinalRangeTimeoutMicroSecs);
+
+		finalRangeVcselPCLKS = VL53L0X_GETDEVICESPECIFICPARAMETER(
+			Dev, FinalRangeVcselPulsePeriod);
+
+		finalRangeMacroPCLKS = VL53L0X_calc_timeout_mclks(
+			Dev, finalRangeTimeoutMicroSecs, finalRangeVcselPCLKS);
+
+		/* Calculate pre-range macro periods */
+		preRangeTimeoutMicroSecs = VL53L0X_GETDEVICESPECIFICPARAMETER(
+			Dev, PreRangeTimeoutMicroSecs);
+
+		preRangeVcselPCLKS = VL53L0X_GETDEVICESPECIFICPARAMETER(
+			Dev, PreRangeVcselPulsePeriod);
+
+		preRangeMacroPCLKS = VL53L0X_calc_timeout_mclks(
+			Dev, preRangeTimeoutMicroSecs, preRangeVcselPCLKS);
+
+		vcselWidth = 3;
+		if (finalRangeVcselPCLKS == 8)
+			vcselWidth = 2;
+
+
+		peakVcselDuration_us = vcselWidth * 2048 *
+			(preRangeMacroPCLKS + finalRangeMacroPCLKS);
+		peakVcselDuration_us = (peakVcselDuration_us + 500)/1000;
+		peakVcselDuration_us *= cPllPeriod_ps;
+		peakVcselDuration_us = (peakVcselDuration_us + 500)/1000;
+
+		/* Fix1616 >> 8 = Fix2408 */
+		totalSignalRate_mcps = (totalSignalRate_mcps + 0x80) >> 8;
+
+		/* Fix2408 * uint32 = Fix2408 */
+		vcselTotalEventsRtn = totalSignalRate_mcps *
+			peakVcselDuration_us;
+
+		/* Fix2408 >> 8 = uint32 */
+		vcselTotalEventsRtn = (vcselTotalEventsRtn + 0x80) >> 8;
+
+		/* Fix2408 << 8 = Fix1616 = */
+		totalSignalRate_mcps <<= 8;
+	}
+
+	if (Status != VL53L0X_ERROR_NONE) {
+		LOG_FUNCTION_END(Status);
+		return Status;
+	}
+
+	if (peakSignalRate_kcps == 0) {
+		*pSigmaEstimate = cSigmaEstMax;
+		PALDevDataSet(Dev, SigmaEstimate, cSigmaEstMax);
+		*pDmax_mm = 0;
+	} else {
+		if (vcselTotalEventsRtn < 1)
+			vcselTotalEventsRtn = 1;
+
+		sigmaEstimateP1 = cPulseEffectiveWidth_centi_ns;
+
+		/* ((FixPoint1616 << 16)* uint32)/uint32 = FixPoint1616 */
+		sigmaEstimateP2 = (ambientRate_kcps << 16)/peakSignalRate_kcps;
+		if (sigmaEstimateP2 > cAmbToSignalRatioMax) {
+			/* Clip to prevent overflow. Will ensure safe
+			 * max result. */
+			sigmaEstimateP2 = cAmbToSignalRatioMax;
+		}
+		sigmaEstimateP2 *= cAmbientEffectiveWidth_centi_ns;
+
+		sigmaEstimateP3 = 2 * VL53L0X_isqrt(vcselTotalEventsRtn * 12);
+
+		/* uint32 * FixPoint1616 = FixPoint1616 */
+		deltaT_ps = pRangingMeasurementData->RangeMilliMeter *
+					cTOF_per_mm_ps;
+
+		/*
+		 * vcselRate - xtalkCompRate
+		 * (uint32 << 16) - FixPoint1616 = FixPoint1616.
+		 * Divide result by 1000 to convert to mcps.
+		 * 500 is added to ensure rounding when integer division
+		 * truncates.
+		 */
+		diff1_mcps = (((peakSignalRate_kcps << 16) -
+			2 * xTalkCompRate_kcps) + 500)/1000;
+
+		/* vcselRate + xtalkCompRate */
+		diff2_mcps = ((peakSignalRate_kcps << 16) + 500)/1000;
+
+		/* Shift by 8 bits to increase resolution prior to the
+		 * division */
+		diff1_mcps <<= 8;
+
+		/* FixPoint0824/FixPoint1616 = FixPoint2408 */
+		xTalkCorrection	 = abs(diff1_mcps/diff2_mcps);
+
+		/* FixPoint2408 << 8 = FixPoint1616 */
+		xTalkCorrection <<= 8;
+
+		if(pRangingMeasurementData->RangeStatus != 0){
+			pwMult = 1 << 16;
+		} else {
+			/* FixPoint1616/uint32 = FixPoint1616 */
+			pwMult = deltaT_ps/cVcselPulseWidth_ps; /* smaller than 1.0f */
+
+			/*
+			 * FixPoint1616 * FixPoint1616 = FixPoint3232, however both
+			 * values are small enough such that32 bits will not be
+			 * exceeded.
+			 */
+			pwMult *= ((1 << 16) - xTalkCorrection);
+
+			/* (FixPoint3232 >> 16) = FixPoint1616 */
+			pwMult =  (pwMult + c16BitRoundingParam) >> 16;
+
+			/* FixPoint1616 + FixPoint1616 = FixPoint1616 */
+			pwMult += (1 << 16);
+
+			/*
+			 * At this point the value will be 1.xx, therefore if we square
+			 * the value this will exceed 32 bits. To address this perform
+			 * a single shift to the right before the multiplication.
+			 */
+			pwMult >>= 1;
+			/* FixPoint1715 * FixPoint1715 = FixPoint3430 */
+			pwMult = pwMult * pwMult;
+
+			/* (FixPoint3430 >> 14) = Fix1616 */
+			pwMult >>= 14;
+		}
+
+		/* FixPoint1616 * uint32 = FixPoint1616 */
+		sqr1 = pwMult * sigmaEstimateP1;
+
+		/* (FixPoint1616 >> 16) = FixPoint3200 */
+		sqr1 = (sqr1 + 0x8000) >> 16;
+
+		/* FixPoint3200 * FixPoint3200 = FixPoint6400 */
+		sqr1 *= sqr1;
+
+		sqr2 = sigmaEstimateP2;
+
+		/* (FixPoint1616 >> 16) = FixPoint3200 */
+		sqr2 = (sqr2 + 0x8000) >> 16;
+
+		/* FixPoint3200 * FixPoint3200 = FixPoint6400 */
+		sqr2 *= sqr2;
+
+		/* FixPoint64000 + FixPoint6400 = FixPoint6400 */
+		sqrSum = sqr1 + sqr2;
+
+		/* SQRT(FixPoin6400) = FixPoint3200 */
+		sqrtResult_centi_ns = VL53L0X_isqrt(sqrSum);
+
+		/* (FixPoint3200 << 16) = FixPoint1616 */
+		sqrtResult_centi_ns <<= 16;
+
+		/*
+		 * Note that the Speed Of Light is expressed in um per 1E-10
+		 * seconds (2997) Therefore to get mm/ns we have to divide by
+		 * 10000
+		 */
+		sigmaEstRtn = (((sqrtResult_centi_ns+50)/100) /
+				sigmaEstimateP3);
+		sigmaEstRtn		 *= VL53L0X_SPEED_OF_LIGHT_IN_AIR;
+
+		/* Add 5000 before dividing by 10000 to ensure rounding. */
+		sigmaEstRtn		 += 5000;
+		sigmaEstRtn		 /= 10000;
+
+		if (sigmaEstRtn > cSigmaEstRtnMax) {
+			/* Clip to prevent overflow. Will ensure safe
+			 * max result. */
+			sigmaEstRtn = cSigmaEstRtnMax;
+		}
+		finalRangeIntegrationTimeMilliSecs =
+			(finalRangeTimeoutMicroSecs + preRangeTimeoutMicroSecs + 500)/1000;
+
+		/* sigmaEstRef = 1mm * 25ms/final range integration time (inc pre-range)
+		 * sqrt(FixPoint1616/int) = FixPoint2408)
+		 */
+		sigmaEstRef =
+			VL53L0X_isqrt((cDfltFinalRangeIntegrationTimeMilliSecs +
+				finalRangeIntegrationTimeMilliSecs/2)/
+				finalRangeIntegrationTimeMilliSecs);
+
+		/* FixPoint2408 << 8 = FixPoint1616 */
+		sigmaEstRef <<= 8;
+		sigmaEstRef = (sigmaEstRef + 500)/1000;
+
+		/* FixPoint1616 * FixPoint1616 = FixPoint3232 */
+		sqr1 = sigmaEstRtn * sigmaEstRtn;
+		/* FixPoint1616 * FixPoint1616 = FixPoint3232 */
+		sqr2 = sigmaEstRef * sigmaEstRef;
+
+		/* sqrt(FixPoint3232) = FixPoint1616 */
+		sqrtResult = VL53L0X_isqrt((sqr1 + sqr2));
+		/*
+		 * Note that the Shift by 4 bits increases resolution prior to
+		 * the sqrt, therefore the result must be shifted by 2 bits to
+		 * the right to revert back to the FixPoint1616 format.
+		 */
+
+		sigmaEstimate	 = 1000 * sqrtResult;
+
+		if ((peakSignalRate_kcps < 1) || (vcselTotalEventsRtn < 1) ||
+				(sigmaEstimate > cSigmaEstMax)) {
+				sigmaEstimate = cSigmaEstMax;
+		}
+
+		*pSigmaEstimate = (uint32_t)(sigmaEstimate);
+		PALDevDataSet(Dev, SigmaEstimate, *pSigmaEstimate);
+		Status = VL53L0X_calc_dmax(
+			Dev,
+			totalSignalRate_mcps,
+			correctedSignalRate_mcps,
+			pwMult,
+			sigmaEstimateP1,
+			sigmaEstimateP2,
+			peakVcselDuration_us,
+			pDmax_mm);
+	}
+
+	LOG_FUNCTION_END(Status);
+	return Status;
+}
+
+VL53L0X_Error VL53L0X_get_pal_range_status(VL53L0X_DEV Dev,
+		uint8_t DeviceRangeStatus,
+		FixPoint1616_t SignalRate,
+		uint16_t EffectiveSpadRtnCount,
+		VL53L0X_RangingMeasurementData_t *pRangingMeasurementData,
+		uint8_t *pPalRangeStatus)
+{
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+	uint8_t NoneFlag;
+	uint8_t SigmaLimitflag = 0;
+	uint8_t SignalRefClipflag = 0;
+	uint8_t RangeIgnoreThresholdflag = 0;
+	uint8_t SigmaLimitCheckEnable = 0;
+	uint8_t SignalRateFinalRangeLimitCheckEnable = 0;
+	uint8_t SignalRefClipLimitCheckEnable = 0;
+	uint8_t RangeIgnoreThresholdLimitCheckEnable = 0;
+	FixPoint1616_t SigmaEstimate;
+	FixPoint1616_t SigmaLimitValue;
+	FixPoint1616_t SignalRefClipValue;
+	FixPoint1616_t RangeIgnoreThresholdValue;
+	FixPoint1616_t SignalRatePerSpad;
+	uint8_t DeviceRangeStatusInternal = 0;
+	uint16_t tmpWord = 0;
+	uint8_t Temp8;
+	uint32_t Dmax_mm = 0;
+	FixPoint1616_t LastSignalRefMcps;
+
+	LOG_FUNCTION_START("");
+
+
+	/*
+	 * VL53L0X has a good ranging when the value of the
+	 * DeviceRangeStatus = 11. This function will replace the value 0 with
+	 * the value 11 in the DeviceRangeStatus.
+	 * In addition, the SigmaEstimator is not included in the VL53L0X
+	 * DeviceRangeStatus, this will be added in the PalRangeStatus.
+	 */
+
+	DeviceRangeStatusInternal = ((DeviceRangeStatus & 0x78) >> 3);
+
+	if (DeviceRangeStatusInternal == 0 ||
+		DeviceRangeStatusInternal == 5 ||
+		DeviceRangeStatusInternal == 7 ||
+		DeviceRangeStatusInternal == 12 ||
+		DeviceRangeStatusInternal == 13 ||
+		DeviceRangeStatusInternal == 14 ||
+		DeviceRangeStatusInternal == 15
+			) {
+		NoneFlag = 1;
+	} else {
+		NoneFlag = 0;
+	}
+
+	/*
+	 * Check if Sigma limit is enabled, if yes then do comparison with limit
+	 * value and put the result back into pPalRangeStatus.
+	 */
+	if (Status == VL53L0X_ERROR_NONE)
+		Status =  VL53L0X_GetLimitCheckEnable(Dev,
+			VL53L0X_CHECKENABLE_SIGMA_FINAL_RANGE,
+			&SigmaLimitCheckEnable);
+
+	if ((SigmaLimitCheckEnable != 0) && (Status == VL53L0X_ERROR_NONE)) {
+		/*
+		* compute the Sigma and check with limit
+		*/
+		Status = VL53L0X_calc_sigma_estimate(
+			Dev,
+			pRangingMeasurementData,
+			&SigmaEstimate,
+			&Dmax_mm);
+		if (Status == VL53L0X_ERROR_NONE)
+			pRangingMeasurementData->RangeDMaxMilliMeter = Dmax_mm;
+
+		if (Status == VL53L0X_ERROR_NONE) {
+			Status = VL53L0X_GetLimitCheckValue(Dev,
+				VL53L0X_CHECKENABLE_SIGMA_FINAL_RANGE,
+				&SigmaLimitValue);
+
+			if ((SigmaLimitValue > 0) &&
+				(SigmaEstimate > SigmaLimitValue))
+					/* Limit Fail */
+					SigmaLimitflag = 1;
+		}
+	}
+
+	/*
+	 * Check if Signal ref clip limit is enabled, if yes then do comparison
+	 * with limit value and put the result back into pPalRangeStatus.
+	 */
+	if (Status == VL53L0X_ERROR_NONE)
+		Status =  VL53L0X_GetLimitCheckEnable(Dev,
+				VL53L0X_CHECKENABLE_SIGNAL_REF_CLIP,
+				&SignalRefClipLimitCheckEnable);
+
+	if ((SignalRefClipLimitCheckEnable != 0) &&
+			(Status == VL53L0X_ERROR_NONE)) {
+
+		Status = VL53L0X_GetLimitCheckValue(Dev,
+				VL53L0X_CHECKENABLE_SIGNAL_REF_CLIP,
+				&SignalRefClipValue);
+
+		/* Read LastSignalRefMcps from device */
+		if (Status == VL53L0X_ERROR_NONE)
+			Status = VL53L0X_WrByte(Dev, 0xFF, 0x01);
+
+		if (Status == VL53L0X_ERROR_NONE)
+			Status = VL53L0X_RdWord(Dev,
+				VL53L0X_REG_RESULT_PEAK_SIGNAL_RATE_REF,
+				&tmpWord);
+
+		if (Status == VL53L0X_ERROR_NONE)
+			Status = VL53L0X_WrByte(Dev, 0xFF, 0x00);
+
+		LastSignalRefMcps = VL53L0X_FIXPOINT97TOFIXPOINT1616(tmpWord);
+		PALDevDataSet(Dev, LastSignalRefMcps, LastSignalRefMcps);
+
+		if ((SignalRefClipValue > 0) &&
+				(LastSignalRefMcps > SignalRefClipValue)) {
+			/* Limit Fail */
+			SignalRefClipflag = 1;
+		}
+	}
+
+	/*
+	 * Check if Signal ref clip limit is enabled, if yes then do comparison
+	 * with limit value and put the result back into pPalRangeStatus.
+	 * EffectiveSpadRtnCount has a format 8.8
+	 * If (Return signal rate < (1.5 x Xtalk x number of Spads)) : FAIL
+	 */
+	if (Status == VL53L0X_ERROR_NONE)
+		Status =  VL53L0X_GetLimitCheckEnable(Dev,
+				VL53L0X_CHECKENABLE_RANGE_IGNORE_THRESHOLD,
+				&RangeIgnoreThresholdLimitCheckEnable);
+
+	if ((RangeIgnoreThresholdLimitCheckEnable != 0) &&
+			(Status == VL53L0X_ERROR_NONE)) {
+
+		/* Compute the signal rate per spad */
+		if (EffectiveSpadRtnCount == 0) {
+			SignalRatePerSpad = 0;
+		} else {
+			SignalRatePerSpad = (FixPoint1616_t)((256 * SignalRate)
+				/ EffectiveSpadRtnCount);
+		}
+
+		Status = VL53L0X_GetLimitCheckValue(Dev,
+				VL53L0X_CHECKENABLE_RANGE_IGNORE_THRESHOLD,
+				&RangeIgnoreThresholdValue);
+
+		if ((RangeIgnoreThresholdValue > 0) &&
+			(SignalRatePerSpad < RangeIgnoreThresholdValue)) {
+			/* Limit Fail add 2^6 to range status */
+			RangeIgnoreThresholdflag = 1;
+		}
+	}
+
+	if (Status == VL53L0X_ERROR_NONE) {
+		if (NoneFlag == 1) {
+			*pPalRangeStatus = 255;	 /* NONE */
+		} else if (DeviceRangeStatusInternal == 1 ||
+					DeviceRangeStatusInternal == 2 ||
+					DeviceRangeStatusInternal == 3) {
+			*pPalRangeStatus = 5; /* HW fail */
+		} else if (DeviceRangeStatusInternal == 6 ||
+					DeviceRangeStatusInternal == 9) {
+			*pPalRangeStatus = 4;  /* Phase fail */
+		} else if (DeviceRangeStatusInternal == 8 ||
+					DeviceRangeStatusInternal == 10 ||
+					SignalRefClipflag == 1) {
+			*pPalRangeStatus = 3;  /* Min range */
+		} else if (DeviceRangeStatusInternal == 4 ||
+					RangeIgnoreThresholdflag == 1) {
+			*pPalRangeStatus = 2;  /* Signal Fail */
+		} else if (SigmaLimitflag == 1) {
+			*pPalRangeStatus = 1;  /* Sigma	 Fail */
+		} else {
+			*pPalRangeStatus = 0; /* Range Valid */
+		}
+	}
+
+	/* DMAX only relevant during range error */
+	if (*pPalRangeStatus == 0)
+		pRangingMeasurementData->RangeDMaxMilliMeter = 0;
+
+	/* fill the Limit Check Status */
+
+	Status =  VL53L0X_GetLimitCheckEnable(Dev,
+			VL53L0X_CHECKENABLE_SIGNAL_RATE_FINAL_RANGE,
+			&SignalRateFinalRangeLimitCheckEnable);
+
+	if (Status == VL53L0X_ERROR_NONE) {
+		if ((SigmaLimitCheckEnable == 0) || (SigmaLimitflag == 1))
+			Temp8 = 1;
+		else
+			Temp8 = 0;
+		VL53L0X_SETARRAYPARAMETERFIELD(Dev, LimitChecksStatus,
+				VL53L0X_CHECKENABLE_SIGMA_FINAL_RANGE, Temp8);
+
+		if ((DeviceRangeStatusInternal == 4) ||
+				(SignalRateFinalRangeLimitCheckEnable == 0))
+			Temp8 = 1;
+		else
+			Temp8 = 0;
+		VL53L0X_SETARRAYPARAMETERFIELD(Dev, LimitChecksStatus,
+				VL53L0X_CHECKENABLE_SIGNAL_RATE_FINAL_RANGE,
+				Temp8);
+
+		if ((SignalRefClipLimitCheckEnable == 0) ||
+					(SignalRefClipflag == 1))
+			Temp8 = 1;
+		else
+			Temp8 = 0;
+
+		VL53L0X_SETARRAYPARAMETERFIELD(Dev, LimitChecksStatus,
+				VL53L0X_CHECKENABLE_SIGNAL_REF_CLIP, Temp8);
+
+		if ((RangeIgnoreThresholdLimitCheckEnable == 0) ||
+				(RangeIgnoreThresholdflag == 1))
+			Temp8 = 1;
+		else
+			Temp8 = 0;
+
+		VL53L0X_SETARRAYPARAMETERFIELD(Dev, LimitChecksStatus,
+				VL53L0X_CHECKENABLE_RANGE_IGNORE_THRESHOLD,
+				Temp8);
+	}
+
+	LOG_FUNCTION_END(Status);
+	return Status;
+
+}
diff --git a/STS/TOF/vl53l0x/vl53l0x_api_core.h b/STS/TOF/vl53l0x/vl53l0x_api_core.h
index 91f2042..f534da4 100644
--- a/STS/TOF/vl53l0x/vl53l0x_api_core.h
+++ b/STS/TOF/vl53l0x/vl53l0x_api_core.h
@@ -1,108 +1,108 @@
-/*******************************************************************************
-Copyright � 2016, STMicroelectronics International N.V.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-    * Redistributions of source code must retain the above copyright
-      notice, this list of conditions and the following disclaimer.
-    * 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.
-    * 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, FITNESS FOR A PARTICULAR PURPOSE, AND
-NON-INFRINGEMENT OF INTELLECTUAL PROPERTY RIGHTS ARE DISCLAIMED.
-IN NO EVENT SHALL STMICROELECTRONICS INTERNATIONAL N.V. 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 _VL53L0X_API_CORE_H_
-#define _VL53L0X_API_CORE_H_
-
-#include "vl53l0x_def.h"
-#include "vl53l0x_platform.h"
-
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
-VL53L0X_Error VL53L0X_reverse_bytes(uint8_t *data, uint32_t size);
-
-VL53L0X_Error VL53L0X_measurement_poll_for_completion(VL53L0X_DEV Dev);
-
-uint8_t VL53L0X_encode_vcsel_period(uint8_t vcsel_period_pclks);
-
-uint8_t VL53L0X_decode_vcsel_period(uint8_t vcsel_period_reg);
-
-uint32_t VL53L0X_isqrt(uint32_t num);
-
-uint32_t VL53L0X_quadrature_sum(uint32_t a, uint32_t b);
-
-VL53L0X_Error VL53L0X_get_info_from_device(VL53L0X_DEV Dev, uint8_t option);
-
-VL53L0X_Error VL53L0X_set_vcsel_pulse_period(VL53L0X_DEV Dev,
-	VL53L0X_VcselPeriod VcselPeriodType, uint8_t VCSELPulsePeriodPCLK);
-
-VL53L0X_Error VL53L0X_get_vcsel_pulse_period(VL53L0X_DEV Dev,
-	VL53L0X_VcselPeriod VcselPeriodType, uint8_t *pVCSELPulsePeriodPCLK);
-
-uint32_t VL53L0X_decode_timeout(uint16_t encoded_timeout);
-
-VL53L0X_Error get_sequence_step_timeout(VL53L0X_DEV Dev,
-			VL53L0X_SequenceStepId SequenceStepId,
-			uint32_t *pTimeOutMicroSecs);
-
-VL53L0X_Error set_sequence_step_timeout(VL53L0X_DEV Dev,
-			VL53L0X_SequenceStepId SequenceStepId,
-			uint32_t TimeOutMicroSecs);
-
-VL53L0X_Error VL53L0X_set_measurement_timing_budget_micro_seconds(VL53L0X_DEV Dev,
-	uint32_t MeasurementTimingBudgetMicroSeconds);
-
-VL53L0X_Error VL53L0X_get_measurement_timing_budget_micro_seconds(VL53L0X_DEV Dev,
-		uint32_t *pMeasurementTimingBudgetMicroSeconds);
-
-VL53L0X_Error VL53L0X_load_tuning_settings(VL53L0X_DEV Dev,
-		uint8_t *pTuningSettingBuffer);
-
-VL53L0X_Error VL53L0X_calc_sigma_estimate(VL53L0X_DEV Dev,
-		VL53L0X_RangingMeasurementData_t *pRangingMeasurementData,
-		FixPoint1616_t *pSigmaEstimate, uint32_t *pDmax_mm);
-
-VL53L0X_Error VL53L0X_get_total_xtalk_rate(VL53L0X_DEV Dev,
-	VL53L0X_RangingMeasurementData_t *pRangingMeasurementData,
-	FixPoint1616_t *ptotal_xtalk_rate_mcps);
-
-VL53L0X_Error VL53L0X_get_total_signal_rate(VL53L0X_DEV Dev,
-	VL53L0X_RangingMeasurementData_t *pRangingMeasurementData,
-	FixPoint1616_t *ptotal_signal_rate_mcps);
-
-VL53L0X_Error VL53L0X_get_pal_range_status(VL53L0X_DEV Dev,
-		 uint8_t DeviceRangeStatus,
-		 FixPoint1616_t SignalRate,
-		 uint16_t EffectiveSpadRtnCount,
-		 VL53L0X_RangingMeasurementData_t *pRangingMeasurementData,
-		 uint8_t *pPalRangeStatus);
-
-uint32_t VL53L0X_calc_timeout_mclks(VL53L0X_DEV Dev,
-	uint32_t timeout_period_us, uint8_t vcsel_period_pclks);
-
-uint16_t VL53L0X_encode_timeout(uint32_t timeout_macro_clks);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _VL53L0X_API_CORE_H_ */
+/*******************************************************************************
+Copyright � 2016, STMicroelectronics International N.V.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+    * Redistributions of source code must retain the above copyright
+      notice, this list of conditions and the following disclaimer.
+    * 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.
+    * 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, FITNESS FOR A PARTICULAR PURPOSE, AND
+NON-INFRINGEMENT OF INTELLECTUAL PROPERTY RIGHTS ARE DISCLAIMED.
+IN NO EVENT SHALL STMICROELECTRONICS INTERNATIONAL N.V. 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 _VL53L0X_API_CORE_H_
+#define _VL53L0X_API_CORE_H_
+
+#include "vl53l0x_def.h"
+#include "vl53l0x_platform.h"
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+VL53L0X_Error VL53L0X_reverse_bytes(uint8_t *data, uint32_t size);
+
+VL53L0X_Error VL53L0X_measurement_poll_for_completion(VL53L0X_DEV Dev);
+
+uint8_t VL53L0X_encode_vcsel_period(uint8_t vcsel_period_pclks);
+
+uint8_t VL53L0X_decode_vcsel_period(uint8_t vcsel_period_reg);
+
+uint32_t VL53L0X_isqrt(uint32_t num);
+
+uint32_t VL53L0X_quadrature_sum(uint32_t a, uint32_t b);
+
+VL53L0X_Error VL53L0X_get_info_from_device(VL53L0X_DEV Dev, uint8_t option);
+
+VL53L0X_Error VL53L0X_set_vcsel_pulse_period(VL53L0X_DEV Dev,
+	VL53L0X_VcselPeriod VcselPeriodType, uint8_t VCSELPulsePeriodPCLK);
+
+VL53L0X_Error VL53L0X_get_vcsel_pulse_period(VL53L0X_DEV Dev,
+	VL53L0X_VcselPeriod VcselPeriodType, uint8_t *pVCSELPulsePeriodPCLK);
+
+uint32_t VL53L0X_decode_timeout(uint16_t encoded_timeout);
+
+VL53L0X_Error get_sequence_step_timeout(VL53L0X_DEV Dev,
+			VL53L0X_SequenceStepId SequenceStepId,
+			uint32_t *pTimeOutMicroSecs);
+
+VL53L0X_Error set_sequence_step_timeout(VL53L0X_DEV Dev,
+			VL53L0X_SequenceStepId SequenceStepId,
+			uint32_t TimeOutMicroSecs);
+
+VL53L0X_Error VL53L0X_set_measurement_timing_budget_micro_seconds(VL53L0X_DEV Dev,
+	uint32_t MeasurementTimingBudgetMicroSeconds);
+
+VL53L0X_Error VL53L0X_get_measurement_timing_budget_micro_seconds(VL53L0X_DEV Dev,
+		uint32_t *pMeasurementTimingBudgetMicroSeconds);
+
+VL53L0X_Error VL53L0X_load_tuning_settings(VL53L0X_DEV Dev,
+		uint8_t *pTuningSettingBuffer);
+
+VL53L0X_Error VL53L0X_calc_sigma_estimate(VL53L0X_DEV Dev,
+		VL53L0X_RangingMeasurementData_t *pRangingMeasurementData,
+		FixPoint1616_t *pSigmaEstimate, uint32_t *pDmax_mm);
+
+VL53L0X_Error VL53L0X_get_total_xtalk_rate(VL53L0X_DEV Dev,
+	VL53L0X_RangingMeasurementData_t *pRangingMeasurementData,
+	FixPoint1616_t *ptotal_xtalk_rate_mcps);
+
+VL53L0X_Error VL53L0X_get_total_signal_rate(VL53L0X_DEV Dev,
+	VL53L0X_RangingMeasurementData_t *pRangingMeasurementData,
+	FixPoint1616_t *ptotal_signal_rate_mcps);
+
+VL53L0X_Error VL53L0X_get_pal_range_status(VL53L0X_DEV Dev,
+		 uint8_t DeviceRangeStatus,
+		 FixPoint1616_t SignalRate,
+		 uint16_t EffectiveSpadRtnCount,
+		 VL53L0X_RangingMeasurementData_t *pRangingMeasurementData,
+		 uint8_t *pPalRangeStatus);
+
+uint32_t VL53L0X_calc_timeout_mclks(VL53L0X_DEV Dev,
+	uint32_t timeout_period_us, uint8_t vcsel_period_pclks);
+
+uint16_t VL53L0X_encode_timeout(uint32_t timeout_macro_clks);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _VL53L0X_API_CORE_H_ */
diff --git a/STS/TOF/vl53l0x/vl53l0x_api_ranging.c b/STS/TOF/vl53l0x/vl53l0x_api_ranging.c
index f07283f..7d848d8 100644
--- a/STS/TOF/vl53l0x/vl53l0x_api_ranging.c
+++ b/STS/TOF/vl53l0x/vl53l0x_api_ranging.c
@@ -1,42 +1,42 @@
-/*******************************************************************************
- Copyright � 2016, STMicroelectronics International N.V.
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
- * 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.
- * 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, FITNESS FOR A PARTICULAR PURPOSE, AND
- NON-INFRINGEMENT OF INTELLECTUAL PROPERTY RIGHTS ARE DISCLAIMED.
- IN NO EVENT SHALL STMICROELECTRONICS INTERNATIONAL N.V. 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 "vl53l0x_api.h"
-#include "vl53l0x_api_core.h"
-
-
-#ifndef __KERNEL__
-#include <stdlib.h>
-#endif
-#define LOG_FUNCTION_START(fmt, ...) \
-	_LOG_FUNCTION_START(TRACE_MODULE_API, fmt, ##__VA_ARGS__)
-#define LOG_FUNCTION_END(status, ...) \
-	_LOG_FUNCTION_END(TRACE_MODULE_API, status, ##__VA_ARGS__)
-#define LOG_FUNCTION_END_FMT(status, fmt, ...) \
-	_LOG_FUNCTION_END_FMT(TRACE_MODULE_API, status, fmt, ##__VA_ARGS__)
-
+/*******************************************************************************
+ Copyright � 2016, STMicroelectronics International N.V.
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ * 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.
+ * 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, FITNESS FOR A PARTICULAR PURPOSE, AND
+ NON-INFRINGEMENT OF INTELLECTUAL PROPERTY RIGHTS ARE DISCLAIMED.
+ IN NO EVENT SHALL STMICROELECTRONICS INTERNATIONAL N.V. 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 "vl53l0x_api.h"
+#include "vl53l0x_api_core.h"
+
+
+#ifndef __KERNEL__
+#include <stdlib.h>
+#endif
+#define LOG_FUNCTION_START(fmt, ...) \
+	_LOG_FUNCTION_START(TRACE_MODULE_API, fmt, ##__VA_ARGS__)
+#define LOG_FUNCTION_END(status, ...) \
+	_LOG_FUNCTION_END(TRACE_MODULE_API, status, ##__VA_ARGS__)
+#define LOG_FUNCTION_END_FMT(status, fmt, ...) \
+	_LOG_FUNCTION_END_FMT(TRACE_MODULE_API, status, fmt, ##__VA_ARGS__)
+
diff --git a/STS/TOF/vl53l0x/vl53l0x_api_ranging.h b/STS/TOF/vl53l0x/vl53l0x_api_ranging.h
index 6d9f4b0..05b0b27 100644
--- a/STS/TOF/vl53l0x/vl53l0x_api_ranging.h
+++ b/STS/TOF/vl53l0x/vl53l0x_api_ranging.h
@@ -1,47 +1,47 @@
-/*******************************************************************************
-Copyright � 2016, STMicroelectronics International N.V.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-    * Redistributions of source code must retain the above copyright
-      notice, this list of conditions and the following disclaimer.
-    * 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.
-    * 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, FITNESS FOR A PARTICULAR PURPOSE, AND
-NON-INFRINGEMENT OF INTELLECTUAL PROPERTY RIGHTS ARE DISCLAIMED.
-IN NO EVENT SHALL STMICROELECTRONICS INTERNATIONAL N.V. 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 _VL53L0X_API_RANGING_H_
-#define _VL53L0X_API_RANGING_H_
-
-#include "vl53l0x_def.h"
-#include "vl53l0x_platform.h"
-
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _VL53L0X_API_RANGING_H_ */
+/*******************************************************************************
+Copyright � 2016, STMicroelectronics International N.V.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+    * Redistributions of source code must retain the above copyright
+      notice, this list of conditions and the following disclaimer.
+    * 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.
+    * 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, FITNESS FOR A PARTICULAR PURPOSE, AND
+NON-INFRINGEMENT OF INTELLECTUAL PROPERTY RIGHTS ARE DISCLAIMED.
+IN NO EVENT SHALL STMICROELECTRONICS INTERNATIONAL N.V. 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 _VL53L0X_API_RANGING_H_
+#define _VL53L0X_API_RANGING_H_
+
+#include "vl53l0x_def.h"
+#include "vl53l0x_platform.h"
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _VL53L0X_API_RANGING_H_ */
diff --git a/STS/TOF/vl53l0x/vl53l0x_api_strings.c b/STS/TOF/vl53l0x/vl53l0x_api_strings.c
index bc2bd30..130c9a6 100644
--- a/STS/TOF/vl53l0x/vl53l0x_api_strings.c
+++ b/STS/TOF/vl53l0x/vl53l0x_api_strings.c
@@ -1,462 +1,462 @@
-/*******************************************************************************
- Copyright � 2016, STMicroelectronics International N.V.
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
- * 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.
- * 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, FITNESS FOR A PARTICULAR PURPOSE, AND
- NON-INFRINGEMENT OF INTELLECTUAL PROPERTY RIGHTS ARE DISCLAIMED.
- IN NO EVENT SHALL STMICROELECTRONICS INTERNATIONAL N.V. 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 "vl53l0x_api.h"
-#include "vl53l0x_api_core.h"
-#include "vl53l0x_api_strings.h"
-
-#ifndef __KERNEL__
-#include <stdlib.h>
-#endif
-
-#define LOG_FUNCTION_START(fmt, ...) \
-	_LOG_FUNCTION_START(TRACE_MODULE_API, fmt, ##__VA_ARGS__)
-#define LOG_FUNCTION_END(status, ...) \
-	_LOG_FUNCTION_END(TRACE_MODULE_API, status, ##__VA_ARGS__)
-#define LOG_FUNCTION_END_FMT(status, fmt, ...) \
-	_LOG_FUNCTION_END_FMT(TRACE_MODULE_API, status, fmt, ##__VA_ARGS__)
-
-
-VL53L0X_Error VL53L0X_check_part_used(VL53L0X_DEV Dev,
-		uint8_t *Revision,
-		VL53L0X_DeviceInfo_t *pVL53L0X_DeviceInfo)
-{
-	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
-	uint8_t ModuleIdInt;
-	char *ProductId_tmp;
-
-	LOG_FUNCTION_START("");
-
-	Status = VL53L0X_get_info_from_device(Dev, 2);
-
-	if (Status == VL53L0X_ERROR_NONE) {
-		ModuleIdInt = VL53L0X_GETDEVICESPECIFICPARAMETER(Dev, ModuleId);
-
-	if (ModuleIdInt == 0) {
-		*Revision = 0;
-		VL53L0X_COPYSTRING(pVL53L0X_DeviceInfo->ProductId, "");
-	} else {
-		*Revision = VL53L0X_GETDEVICESPECIFICPARAMETER(Dev, Revision);
-		ProductId_tmp = VL53L0X_GETDEVICESPECIFICPARAMETER(Dev,
-			ProductId);
-		VL53L0X_COPYSTRING(pVL53L0X_DeviceInfo->ProductId, ProductId_tmp);
-	}
-	}
-
-	LOG_FUNCTION_END(Status);
-	return Status;
-}
-
-
-VL53L0X_Error VL53L0X_get_device_info(VL53L0X_DEV Dev,
-				VL53L0X_DeviceInfo_t *pVL53L0X_DeviceInfo)
-{
-	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
-	uint8_t revision_id;
-	uint8_t Revision;
-
-	Status = VL53L0X_check_part_used(Dev, &Revision, pVL53L0X_DeviceInfo);
-
-	if (Status == VL53L0X_ERROR_NONE) {
-		if (Revision == 0) {
-			VL53L0X_COPYSTRING(pVL53L0X_DeviceInfo->Name,
-					VL53L0X_STRING_DEVICE_INFO_NAME_TS0);
-		} else if ((Revision <= 34) && (Revision != 32)) {
-			VL53L0X_COPYSTRING(pVL53L0X_DeviceInfo->Name,
-					VL53L0X_STRING_DEVICE_INFO_NAME_TS1);
-		} else if (Revision < 39) {
-			VL53L0X_COPYSTRING(pVL53L0X_DeviceInfo->Name,
-					VL53L0X_STRING_DEVICE_INFO_NAME_TS2);
-		} else {
-			VL53L0X_COPYSTRING(pVL53L0X_DeviceInfo->Name,
-					VL53L0X_STRING_DEVICE_INFO_NAME_ES1);
-		}
-
-		VL53L0X_COPYSTRING(pVL53L0X_DeviceInfo->Type,
-				VL53L0X_STRING_DEVICE_INFO_TYPE);
-
-	}
-
-	if (Status == VL53L0X_ERROR_NONE) {
-		Status = VL53L0X_RdByte(Dev, VL53L0X_REG_IDENTIFICATION_MODEL_ID,
-				&pVL53L0X_DeviceInfo->ProductType);
-	}
-
-	if (Status == VL53L0X_ERROR_NONE) {
-		Status = VL53L0X_RdByte(Dev,
-			VL53L0X_REG_IDENTIFICATION_REVISION_ID,
-				&revision_id);
-		pVL53L0X_DeviceInfo->ProductRevisionMajor = 1;
-		pVL53L0X_DeviceInfo->ProductRevisionMinor =
-					(revision_id & 0xF0) >> 4;
-	}
-
-	return Status;
-}
-
-
-VL53L0X_Error VL53L0X_get_device_error_string(VL53L0X_DeviceError ErrorCode,
-		char *pDeviceErrorString)
-{
-	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
-
-	LOG_FUNCTION_START("");
-
-	switch (ErrorCode) {
-	case VL53L0X_DEVICEERROR_NONE:
-		VL53L0X_COPYSTRING(pDeviceErrorString,
-			VL53L0X_STRING_DEVICEERROR_NONE);
-	break;
-	case VL53L0X_DEVICEERROR_VCSELCONTINUITYTESTFAILURE:
-		VL53L0X_COPYSTRING(pDeviceErrorString,
-			VL53L0X_STRING_DEVICEERROR_VCSELCONTINUITYTESTFAILURE);
-	break;
-	case VL53L0X_DEVICEERROR_VCSELWATCHDOGTESTFAILURE:
-		VL53L0X_COPYSTRING(pDeviceErrorString,
-			VL53L0X_STRING_DEVICEERROR_VCSELWATCHDOGTESTFAILURE);
-	break;
-	case VL53L0X_DEVICEERROR_NOVHVVALUEFOUND:
-		VL53L0X_COPYSTRING(pDeviceErrorString,
-			VL53L0X_STRING_DEVICEERROR_NOVHVVALUEFOUND);
-	break;
-	case VL53L0X_DEVICEERROR_MSRCNOTARGET:
-		VL53L0X_COPYSTRING(pDeviceErrorString,
-			VL53L0X_STRING_DEVICEERROR_MSRCNOTARGET);
-	break;
-	case VL53L0X_DEVICEERROR_SNRCHECK:
-		VL53L0X_COPYSTRING(pDeviceErrorString,
-			VL53L0X_STRING_DEVICEERROR_SNRCHECK);
-	break;
-	case VL53L0X_DEVICEERROR_RANGEPHASECHECK:
-		VL53L0X_COPYSTRING(pDeviceErrorString,
-			VL53L0X_STRING_DEVICEERROR_RANGEPHASECHECK);
-	break;
-	case VL53L0X_DEVICEERROR_SIGMATHRESHOLDCHECK:
-		VL53L0X_COPYSTRING(pDeviceErrorString,
-			VL53L0X_STRING_DEVICEERROR_SIGMATHRESHOLDCHECK);
-	break;
-	case VL53L0X_DEVICEERROR_TCC:
-		VL53L0X_COPYSTRING(pDeviceErrorString,
-			VL53L0X_STRING_DEVICEERROR_TCC);
-	break;
-	case VL53L0X_DEVICEERROR_PHASECONSISTENCY:
-		VL53L0X_COPYSTRING(pDeviceErrorString,
-			VL53L0X_STRING_DEVICEERROR_PHASECONSISTENCY);
-	break;
-	case VL53L0X_DEVICEERROR_MINCLIP:
-		VL53L0X_COPYSTRING(pDeviceErrorString,
-			VL53L0X_STRING_DEVICEERROR_MINCLIP);
-	break;
-	case VL53L0X_DEVICEERROR_RANGECOMPLETE:
-		VL53L0X_COPYSTRING(pDeviceErrorString,
-			VL53L0X_STRING_DEVICEERROR_RANGECOMPLETE);
-	break;
-	case VL53L0X_DEVICEERROR_ALGOUNDERFLOW:
-		VL53L0X_COPYSTRING(pDeviceErrorString,
-			VL53L0X_STRING_DEVICEERROR_ALGOUNDERFLOW);
-	break;
-	case VL53L0X_DEVICEERROR_ALGOOVERFLOW:
-		VL53L0X_COPYSTRING(pDeviceErrorString,
-			VL53L0X_STRING_DEVICEERROR_ALGOOVERFLOW);
-	break;
-	case VL53L0X_DEVICEERROR_RANGEIGNORETHRESHOLD:
-		VL53L0X_COPYSTRING(pDeviceErrorString,
-			VL53L0X_STRING_DEVICEERROR_RANGEIGNORETHRESHOLD);
-	break;
-
-	default:
-		VL53L0X_COPYSTRING(pDeviceErrorString,
-			VL53L0X_STRING_UNKNOW_ERROR_CODE);
-
-	}
-
-	LOG_FUNCTION_END(Status);
-	return Status;
-}
-
-VL53L0X_Error VL53L0X_get_range_status_string(uint8_t RangeStatus,
-		char *pRangeStatusString)
-{
-	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
-
-	LOG_FUNCTION_START("");
-
-	switch (RangeStatus) {
-	case 0:
-		VL53L0X_COPYSTRING(pRangeStatusString,
-			VL53L0X_STRING_RANGESTATUS_RANGEVALID);
-	break;
-	case 1:
-		VL53L0X_COPYSTRING(pRangeStatusString,
-			VL53L0X_STRING_RANGESTATUS_SIGMA);
-	break;
-	case 2:
-		VL53L0X_COPYSTRING(pRangeStatusString,
-			VL53L0X_STRING_RANGESTATUS_SIGNAL);
-	break;
-	case 3:
-		VL53L0X_COPYSTRING(pRangeStatusString,
-			VL53L0X_STRING_RANGESTATUS_MINRANGE);
-	break;
-	case 4:
-		VL53L0X_COPYSTRING(pRangeStatusString,
-			VL53L0X_STRING_RANGESTATUS_PHASE);
-	break;
-	case 5:
-		VL53L0X_COPYSTRING(pRangeStatusString,
-			VL53L0X_STRING_RANGESTATUS_HW);
-	break;
-
-	default: /**/
-		VL53L0X_COPYSTRING(pRangeStatusString,
-				VL53L0X_STRING_RANGESTATUS_NONE);
-	}
-
-	LOG_FUNCTION_END(Status);
-	return Status;
-}
-
-VL53L0X_Error VL53L0X_get_pal_error_string(VL53L0X_Error PalErrorCode,
-		char *pPalErrorString)
-{
-	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
-
-	LOG_FUNCTION_START("");
-
-	switch (PalErrorCode) {
-	case VL53L0X_ERROR_NONE:
-		VL53L0X_COPYSTRING(pPalErrorString,
-			VL53L0X_STRING_ERROR_NONE);
-	break;
-	case VL53L0X_ERROR_CALIBRATION_WARNING:
-		VL53L0X_COPYSTRING(pPalErrorString,
-			VL53L0X_STRING_ERROR_CALIBRATION_WARNING);
-	break;
-	case VL53L0X_ERROR_MIN_CLIPPED:
-		VL53L0X_COPYSTRING(pPalErrorString,
-			VL53L0X_STRING_ERROR_MIN_CLIPPED);
-	break;
-	case VL53L0X_ERROR_UNDEFINED:
-		VL53L0X_COPYSTRING(pPalErrorString,
-			VL53L0X_STRING_ERROR_UNDEFINED);
-	break;
-	case VL53L0X_ERROR_INVALID_PARAMS:
-		VL53L0X_COPYSTRING(pPalErrorString,
-			VL53L0X_STRING_ERROR_INVALID_PARAMS);
-	break;
-	case VL53L0X_ERROR_NOT_SUPPORTED:
-		VL53L0X_COPYSTRING(pPalErrorString,
-			VL53L0X_STRING_ERROR_NOT_SUPPORTED);
-	break;
-	case VL53L0X_ERROR_INTERRUPT_NOT_CLEARED:
-		VL53L0X_COPYSTRING(pPalErrorString,
-			VL53L0X_STRING_ERROR_INTERRUPT_NOT_CLEARED);
-	break;
-	case VL53L0X_ERROR_RANGE_ERROR:
-		VL53L0X_COPYSTRING(pPalErrorString,
-			VL53L0X_STRING_ERROR_RANGE_ERROR);
-	break;
-	case VL53L0X_ERROR_TIME_OUT:
-		VL53L0X_COPYSTRING(pPalErrorString,
-			VL53L0X_STRING_ERROR_TIME_OUT);
-	break;
-	case VL53L0X_ERROR_MODE_NOT_SUPPORTED:
-		VL53L0X_COPYSTRING(pPalErrorString,
-			VL53L0X_STRING_ERROR_MODE_NOT_SUPPORTED);
-	break;
-	case VL53L0X_ERROR_BUFFER_TOO_SMALL:
-		VL53L0X_COPYSTRING(pPalErrorString,
-			VL53L0X_STRING_ERROR_BUFFER_TOO_SMALL);
-	break;
-	case VL53L0X_ERROR_GPIO_NOT_EXISTING:
-		VL53L0X_COPYSTRING(pPalErrorString,
-			VL53L0X_STRING_ERROR_GPIO_NOT_EXISTING);
-	break;
-	case VL53L0X_ERROR_GPIO_FUNCTIONALITY_NOT_SUPPORTED:
-		VL53L0X_COPYSTRING(pPalErrorString,
-			VL53L0X_STRING_ERROR_GPIO_FUNCTIONALITY_NOT_SUPPORTED);
-	break;
-	case VL53L0X_ERROR_CONTROL_INTERFACE:
-		VL53L0X_COPYSTRING(pPalErrorString,
-			VL53L0X_STRING_ERROR_CONTROL_INTERFACE);
-	break;
-	case VL53L0X_ERROR_INVALID_COMMAND:
-		VL53L0X_COPYSTRING(pPalErrorString,
-			VL53L0X_STRING_ERROR_INVALID_COMMAND);
-	break;
-	case VL53L0X_ERROR_DIVISION_BY_ZERO:
-		VL53L0X_COPYSTRING(pPalErrorString,
-			VL53L0X_STRING_ERROR_DIVISION_BY_ZERO);
-	break;
-	case VL53L0X_ERROR_REF_SPAD_INIT:
-		VL53L0X_COPYSTRING(pPalErrorString,
-			VL53L0X_STRING_ERROR_REF_SPAD_INIT);
-	break;
-	case VL53L0X_ERROR_NOT_IMPLEMENTED:
-		VL53L0X_COPYSTRING(pPalErrorString,
-			VL53L0X_STRING_ERROR_NOT_IMPLEMENTED);
-	break;
-
-	default:
-		VL53L0X_COPYSTRING(pPalErrorString,
-				VL53L0X_STRING_UNKNOW_ERROR_CODE);
-	}
-
-	LOG_FUNCTION_END(Status);
-	return Status;
-}
-
-VL53L0X_Error VL53L0X_get_pal_state_string(VL53L0X_State PalStateCode,
-		char *pPalStateString)
-{
-	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
-
-	LOG_FUNCTION_START("");
-
-	switch (PalStateCode) {
-	case VL53L0X_STATE_POWERDOWN:
-		VL53L0X_COPYSTRING(pPalStateString,
-			VL53L0X_STRING_STATE_POWERDOWN);
-	break;
-	case VL53L0X_STATE_WAIT_STATICINIT:
-		VL53L0X_COPYSTRING(pPalStateString,
-			VL53L0X_STRING_STATE_WAIT_STATICINIT);
-	break;
-	case VL53L0X_STATE_STANDBY:
-		VL53L0X_COPYSTRING(pPalStateString,
-			VL53L0X_STRING_STATE_STANDBY);
-	break;
-	case VL53L0X_STATE_IDLE:
-		VL53L0X_COPYSTRING(pPalStateString,
-			VL53L0X_STRING_STATE_IDLE);
-	break;
-	case VL53L0X_STATE_RUNNING:
-		VL53L0X_COPYSTRING(pPalStateString,
-			VL53L0X_STRING_STATE_RUNNING);
-	break;
-	case VL53L0X_STATE_UNKNOWN:
-		VL53L0X_COPYSTRING(pPalStateString,
-			VL53L0X_STRING_STATE_UNKNOWN);
-	break;
-	case VL53L0X_STATE_ERROR:
-		VL53L0X_COPYSTRING(pPalStateString,
-			VL53L0X_STRING_STATE_ERROR);
-	break;
-
-	default:
-		VL53L0X_COPYSTRING(pPalStateString,
-			VL53L0X_STRING_STATE_UNKNOWN);
-	}
-
-	LOG_FUNCTION_END(Status);
-	return Status;
-}
-
-VL53L0X_Error VL53L0X_get_sequence_steps_info(
-		VL53L0X_SequenceStepId SequenceStepId,
-		char *pSequenceStepsString)
-{
-	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
-	LOG_FUNCTION_START("");
-
-	switch (SequenceStepId) {
-	case VL53L0X_SEQUENCESTEP_TCC:
-		VL53L0X_COPYSTRING(pSequenceStepsString,
-			VL53L0X_STRING_SEQUENCESTEP_TCC);
-	break;
-	case VL53L0X_SEQUENCESTEP_DSS:
-		VL53L0X_COPYSTRING(pSequenceStepsString,
-			VL53L0X_STRING_SEQUENCESTEP_DSS);
-	break;
-	case VL53L0X_SEQUENCESTEP_MSRC:
-		VL53L0X_COPYSTRING(pSequenceStepsString,
-			VL53L0X_STRING_SEQUENCESTEP_MSRC);
-	break;
-	case VL53L0X_SEQUENCESTEP_PRE_RANGE:
-		VL53L0X_COPYSTRING(pSequenceStepsString,
-			VL53L0X_STRING_SEQUENCESTEP_PRE_RANGE);
-	break;
-	case VL53L0X_SEQUENCESTEP_FINAL_RANGE:
-		VL53L0X_COPYSTRING(pSequenceStepsString,
-			VL53L0X_STRING_SEQUENCESTEP_FINAL_RANGE);
-	break;
-
-	default:
-		Status = VL53L0X_ERROR_INVALID_PARAMS;
-	}
-
-	LOG_FUNCTION_END(Status);
-
-	return Status;
-}
-
-
-VL53L0X_Error VL53L0X_get_limit_check_info(VL53L0X_DEV Dev, uint16_t LimitCheckId,
-	char *pLimitCheckString)
-{
-	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
-
-	LOG_FUNCTION_START("");
-
-	switch (LimitCheckId) {
-	case VL53L0X_CHECKENABLE_SIGMA_FINAL_RANGE:
-		VL53L0X_COPYSTRING(pLimitCheckString,
-			VL53L0X_STRING_CHECKENABLE_SIGMA_FINAL_RANGE);
-	break;
-	case VL53L0X_CHECKENABLE_SIGNAL_RATE_FINAL_RANGE:
-		VL53L0X_COPYSTRING(pLimitCheckString,
-			VL53L0X_STRING_CHECKENABLE_SIGNAL_RATE_FINAL_RANGE);
-	break;
-	case VL53L0X_CHECKENABLE_SIGNAL_REF_CLIP:
-		VL53L0X_COPYSTRING(pLimitCheckString,
-			VL53L0X_STRING_CHECKENABLE_SIGNAL_REF_CLIP);
-	break;
-	case VL53L0X_CHECKENABLE_RANGE_IGNORE_THRESHOLD:
-		VL53L0X_COPYSTRING(pLimitCheckString,
-			VL53L0X_STRING_CHECKENABLE_RANGE_IGNORE_THRESHOLD);
-	break;
-
-	case VL53L0X_CHECKENABLE_SIGNAL_RATE_MSRC:
-		VL53L0X_COPYSTRING(pLimitCheckString,
-			VL53L0X_STRING_CHECKENABLE_SIGNAL_RATE_MSRC);
-	break;
-
-	case VL53L0X_CHECKENABLE_SIGNAL_RATE_PRE_RANGE:
-		VL53L0X_COPYSTRING(pLimitCheckString,
-			VL53L0X_STRING_CHECKENABLE_SIGNAL_RATE_PRE_RANGE);
-	break;
-
-	default:
-		VL53L0X_COPYSTRING(pLimitCheckString,
-			VL53L0X_STRING_UNKNOW_ERROR_CODE);
-
-	}
-
-	LOG_FUNCTION_END(Status);
-	return Status;
-}
+/*******************************************************************************
+ Copyright � 2016, STMicroelectronics International N.V.
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ * 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.
+ * 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, FITNESS FOR A PARTICULAR PURPOSE, AND
+ NON-INFRINGEMENT OF INTELLECTUAL PROPERTY RIGHTS ARE DISCLAIMED.
+ IN NO EVENT SHALL STMICROELECTRONICS INTERNATIONAL N.V. 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 "vl53l0x_api.h"
+#include "vl53l0x_api_core.h"
+#include "vl53l0x_api_strings.h"
+
+#ifndef __KERNEL__
+#include <stdlib.h>
+#endif
+
+#define LOG_FUNCTION_START(fmt, ...) \
+	_LOG_FUNCTION_START(TRACE_MODULE_API, fmt, ##__VA_ARGS__)
+#define LOG_FUNCTION_END(status, ...) \
+	_LOG_FUNCTION_END(TRACE_MODULE_API, status, ##__VA_ARGS__)
+#define LOG_FUNCTION_END_FMT(status, fmt, ...) \
+	_LOG_FUNCTION_END_FMT(TRACE_MODULE_API, status, fmt, ##__VA_ARGS__)
+
+
+VL53L0X_Error VL53L0X_check_part_used(VL53L0X_DEV Dev,
+		uint8_t *Revision,
+		VL53L0X_DeviceInfo_t *pVL53L0X_DeviceInfo)
+{
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+	uint8_t ModuleIdInt;
+	char *ProductId_tmp;
+
+	LOG_FUNCTION_START("");
+
+	Status = VL53L0X_get_info_from_device(Dev, 2);
+
+	if (Status == VL53L0X_ERROR_NONE) {
+		ModuleIdInt = VL53L0X_GETDEVICESPECIFICPARAMETER(Dev, ModuleId);
+
+	if (ModuleIdInt == 0) {
+		*Revision = 0;
+		VL53L0X_COPYSTRING(pVL53L0X_DeviceInfo->ProductId, "");
+	} else {
+		*Revision = VL53L0X_GETDEVICESPECIFICPARAMETER(Dev, Revision);
+		ProductId_tmp = VL53L0X_GETDEVICESPECIFICPARAMETER(Dev,
+			ProductId);
+		VL53L0X_COPYSTRING(pVL53L0X_DeviceInfo->ProductId, ProductId_tmp);
+	}
+	}
+
+	LOG_FUNCTION_END(Status);
+	return Status;
+}
+
+
+VL53L0X_Error VL53L0X_get_device_info(VL53L0X_DEV Dev,
+				VL53L0X_DeviceInfo_t *pVL53L0X_DeviceInfo)
+{
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+	uint8_t revision_id;
+	uint8_t Revision;
+
+	Status = VL53L0X_check_part_used(Dev, &Revision, pVL53L0X_DeviceInfo);
+
+	if (Status == VL53L0X_ERROR_NONE) {
+		if (Revision == 0) {
+			VL53L0X_COPYSTRING(pVL53L0X_DeviceInfo->Name,
+					VL53L0X_STRING_DEVICE_INFO_NAME_TS0);
+		} else if ((Revision <= 34) && (Revision != 32)) {
+			VL53L0X_COPYSTRING(pVL53L0X_DeviceInfo->Name,
+					VL53L0X_STRING_DEVICE_INFO_NAME_TS1);
+		} else if (Revision < 39) {
+			VL53L0X_COPYSTRING(pVL53L0X_DeviceInfo->Name,
+					VL53L0X_STRING_DEVICE_INFO_NAME_TS2);
+		} else {
+			VL53L0X_COPYSTRING(pVL53L0X_DeviceInfo->Name,
+					VL53L0X_STRING_DEVICE_INFO_NAME_ES1);
+		}
+
+		VL53L0X_COPYSTRING(pVL53L0X_DeviceInfo->Type,
+				VL53L0X_STRING_DEVICE_INFO_TYPE);
+
+	}
+
+	if (Status == VL53L0X_ERROR_NONE) {
+		Status = VL53L0X_RdByte(Dev, VL53L0X_REG_IDENTIFICATION_MODEL_ID,
+				&pVL53L0X_DeviceInfo->ProductType);
+	}
+
+	if (Status == VL53L0X_ERROR_NONE) {
+		Status = VL53L0X_RdByte(Dev,
+			VL53L0X_REG_IDENTIFICATION_REVISION_ID,
+				&revision_id);
+		pVL53L0X_DeviceInfo->ProductRevisionMajor = 1;
+		pVL53L0X_DeviceInfo->ProductRevisionMinor =
+					(revision_id & 0xF0) >> 4;
+	}
+
+	return Status;
+}
+
+
+VL53L0X_Error VL53L0X_get_device_error_string(VL53L0X_DeviceError ErrorCode,
+		char *pDeviceErrorString)
+{
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+
+	LOG_FUNCTION_START("");
+
+	switch (ErrorCode) {
+	case VL53L0X_DEVICEERROR_NONE:
+		VL53L0X_COPYSTRING(pDeviceErrorString,
+			VL53L0X_STRING_DEVICEERROR_NONE);
+	break;
+	case VL53L0X_DEVICEERROR_VCSELCONTINUITYTESTFAILURE:
+		VL53L0X_COPYSTRING(pDeviceErrorString,
+			VL53L0X_STRING_DEVICEERROR_VCSELCONTINUITYTESTFAILURE);
+	break;
+	case VL53L0X_DEVICEERROR_VCSELWATCHDOGTESTFAILURE:
+		VL53L0X_COPYSTRING(pDeviceErrorString,
+			VL53L0X_STRING_DEVICEERROR_VCSELWATCHDOGTESTFAILURE);
+	break;
+	case VL53L0X_DEVICEERROR_NOVHVVALUEFOUND:
+		VL53L0X_COPYSTRING(pDeviceErrorString,
+			VL53L0X_STRING_DEVICEERROR_NOVHVVALUEFOUND);
+	break;
+	case VL53L0X_DEVICEERROR_MSRCNOTARGET:
+		VL53L0X_COPYSTRING(pDeviceErrorString,
+			VL53L0X_STRING_DEVICEERROR_MSRCNOTARGET);
+	break;
+	case VL53L0X_DEVICEERROR_SNRCHECK:
+		VL53L0X_COPYSTRING(pDeviceErrorString,
+			VL53L0X_STRING_DEVICEERROR_SNRCHECK);
+	break;
+	case VL53L0X_DEVICEERROR_RANGEPHASECHECK:
+		VL53L0X_COPYSTRING(pDeviceErrorString,
+			VL53L0X_STRING_DEVICEERROR_RANGEPHASECHECK);
+	break;
+	case VL53L0X_DEVICEERROR_SIGMATHRESHOLDCHECK:
+		VL53L0X_COPYSTRING(pDeviceErrorString,
+			VL53L0X_STRING_DEVICEERROR_SIGMATHRESHOLDCHECK);
+	break;
+	case VL53L0X_DEVICEERROR_TCC:
+		VL53L0X_COPYSTRING(pDeviceErrorString,
+			VL53L0X_STRING_DEVICEERROR_TCC);
+	break;
+	case VL53L0X_DEVICEERROR_PHASECONSISTENCY:
+		VL53L0X_COPYSTRING(pDeviceErrorString,
+			VL53L0X_STRING_DEVICEERROR_PHASECONSISTENCY);
+	break;
+	case VL53L0X_DEVICEERROR_MINCLIP:
+		VL53L0X_COPYSTRING(pDeviceErrorString,
+			VL53L0X_STRING_DEVICEERROR_MINCLIP);
+	break;
+	case VL53L0X_DEVICEERROR_RANGECOMPLETE:
+		VL53L0X_COPYSTRING(pDeviceErrorString,
+			VL53L0X_STRING_DEVICEERROR_RANGECOMPLETE);
+	break;
+	case VL53L0X_DEVICEERROR_ALGOUNDERFLOW:
+		VL53L0X_COPYSTRING(pDeviceErrorString,
+			VL53L0X_STRING_DEVICEERROR_ALGOUNDERFLOW);
+	break;
+	case VL53L0X_DEVICEERROR_ALGOOVERFLOW:
+		VL53L0X_COPYSTRING(pDeviceErrorString,
+			VL53L0X_STRING_DEVICEERROR_ALGOOVERFLOW);
+	break;
+	case VL53L0X_DEVICEERROR_RANGEIGNORETHRESHOLD:
+		VL53L0X_COPYSTRING(pDeviceErrorString,
+			VL53L0X_STRING_DEVICEERROR_RANGEIGNORETHRESHOLD);
+	break;
+
+	default:
+		VL53L0X_COPYSTRING(pDeviceErrorString,
+			VL53L0X_STRING_UNKNOW_ERROR_CODE);
+
+	}
+
+	LOG_FUNCTION_END(Status);
+	return Status;
+}
+
+VL53L0X_Error VL53L0X_get_range_status_string(uint8_t RangeStatus,
+		char *pRangeStatusString)
+{
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+
+	LOG_FUNCTION_START("");
+
+	switch (RangeStatus) {
+	case 0:
+		VL53L0X_COPYSTRING(pRangeStatusString,
+			VL53L0X_STRING_RANGESTATUS_RANGEVALID);
+	break;
+	case 1:
+		VL53L0X_COPYSTRING(pRangeStatusString,
+			VL53L0X_STRING_RANGESTATUS_SIGMA);
+	break;
+	case 2:
+		VL53L0X_COPYSTRING(pRangeStatusString,
+			VL53L0X_STRING_RANGESTATUS_SIGNAL);
+	break;
+	case 3:
+		VL53L0X_COPYSTRING(pRangeStatusString,
+			VL53L0X_STRING_RANGESTATUS_MINRANGE);
+	break;
+	case 4:
+		VL53L0X_COPYSTRING(pRangeStatusString,
+			VL53L0X_STRING_RANGESTATUS_PHASE);
+	break;
+	case 5:
+		VL53L0X_COPYSTRING(pRangeStatusString,
+			VL53L0X_STRING_RANGESTATUS_HW);
+	break;
+
+	default: /**/
+		VL53L0X_COPYSTRING(pRangeStatusString,
+				VL53L0X_STRING_RANGESTATUS_NONE);
+	}
+
+	LOG_FUNCTION_END(Status);
+	return Status;
+}
+
+VL53L0X_Error VL53L0X_get_pal_error_string(VL53L0X_Error PalErrorCode,
+		char *pPalErrorString)
+{
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+
+	LOG_FUNCTION_START("");
+
+	switch (PalErrorCode) {
+	case VL53L0X_ERROR_NONE:
+		VL53L0X_COPYSTRING(pPalErrorString,
+			VL53L0X_STRING_ERROR_NONE);
+	break;
+	case VL53L0X_ERROR_CALIBRATION_WARNING:
+		VL53L0X_COPYSTRING(pPalErrorString,
+			VL53L0X_STRING_ERROR_CALIBRATION_WARNING);
+	break;
+	case VL53L0X_ERROR_MIN_CLIPPED:
+		VL53L0X_COPYSTRING(pPalErrorString,
+			VL53L0X_STRING_ERROR_MIN_CLIPPED);
+	break;
+	case VL53L0X_ERROR_UNDEFINED:
+		VL53L0X_COPYSTRING(pPalErrorString,
+			VL53L0X_STRING_ERROR_UNDEFINED);
+	break;
+	case VL53L0X_ERROR_INVALID_PARAMS:
+		VL53L0X_COPYSTRING(pPalErrorString,
+			VL53L0X_STRING_ERROR_INVALID_PARAMS);
+	break;
+	case VL53L0X_ERROR_NOT_SUPPORTED:
+		VL53L0X_COPYSTRING(pPalErrorString,
+			VL53L0X_STRING_ERROR_NOT_SUPPORTED);
+	break;
+	case VL53L0X_ERROR_INTERRUPT_NOT_CLEARED:
+		VL53L0X_COPYSTRING(pPalErrorString,
+			VL53L0X_STRING_ERROR_INTERRUPT_NOT_CLEARED);
+	break;
+	case VL53L0X_ERROR_RANGE_ERROR:
+		VL53L0X_COPYSTRING(pPalErrorString,
+			VL53L0X_STRING_ERROR_RANGE_ERROR);
+	break;
+	case VL53L0X_ERROR_TIME_OUT:
+		VL53L0X_COPYSTRING(pPalErrorString,
+			VL53L0X_STRING_ERROR_TIME_OUT);
+	break;
+	case VL53L0X_ERROR_MODE_NOT_SUPPORTED:
+		VL53L0X_COPYSTRING(pPalErrorString,
+			VL53L0X_STRING_ERROR_MODE_NOT_SUPPORTED);
+	break;
+	case VL53L0X_ERROR_BUFFER_TOO_SMALL:
+		VL53L0X_COPYSTRING(pPalErrorString,
+			VL53L0X_STRING_ERROR_BUFFER_TOO_SMALL);
+	break;
+	case VL53L0X_ERROR_GPIO_NOT_EXISTING:
+		VL53L0X_COPYSTRING(pPalErrorString,
+			VL53L0X_STRING_ERROR_GPIO_NOT_EXISTING);
+	break;
+	case VL53L0X_ERROR_GPIO_FUNCTIONALITY_NOT_SUPPORTED:
+		VL53L0X_COPYSTRING(pPalErrorString,
+			VL53L0X_STRING_ERROR_GPIO_FUNCTIONALITY_NOT_SUPPORTED);
+	break;
+	case VL53L0X_ERROR_CONTROL_INTERFACE:
+		VL53L0X_COPYSTRING(pPalErrorString,
+			VL53L0X_STRING_ERROR_CONTROL_INTERFACE);
+	break;
+	case VL53L0X_ERROR_INVALID_COMMAND:
+		VL53L0X_COPYSTRING(pPalErrorString,
+			VL53L0X_STRING_ERROR_INVALID_COMMAND);
+	break;
+	case VL53L0X_ERROR_DIVISION_BY_ZERO:
+		VL53L0X_COPYSTRING(pPalErrorString,
+			VL53L0X_STRING_ERROR_DIVISION_BY_ZERO);
+	break;
+	case VL53L0X_ERROR_REF_SPAD_INIT:
+		VL53L0X_COPYSTRING(pPalErrorString,
+			VL53L0X_STRING_ERROR_REF_SPAD_INIT);
+	break;
+	case VL53L0X_ERROR_NOT_IMPLEMENTED:
+		VL53L0X_COPYSTRING(pPalErrorString,
+			VL53L0X_STRING_ERROR_NOT_IMPLEMENTED);
+	break;
+
+	default:
+		VL53L0X_COPYSTRING(pPalErrorString,
+				VL53L0X_STRING_UNKNOW_ERROR_CODE);
+	}
+
+	LOG_FUNCTION_END(Status);
+	return Status;
+}
+
+VL53L0X_Error VL53L0X_get_pal_state_string(VL53L0X_State PalStateCode,
+		char *pPalStateString)
+{
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+
+	LOG_FUNCTION_START("");
+
+	switch (PalStateCode) {
+	case VL53L0X_STATE_POWERDOWN:
+		VL53L0X_COPYSTRING(pPalStateString,
+			VL53L0X_STRING_STATE_POWERDOWN);
+	break;
+	case VL53L0X_STATE_WAIT_STATICINIT:
+		VL53L0X_COPYSTRING(pPalStateString,
+			VL53L0X_STRING_STATE_WAIT_STATICINIT);
+	break;
+	case VL53L0X_STATE_STANDBY:
+		VL53L0X_COPYSTRING(pPalStateString,
+			VL53L0X_STRING_STATE_STANDBY);
+	break;
+	case VL53L0X_STATE_IDLE:
+		VL53L0X_COPYSTRING(pPalStateString,
+			VL53L0X_STRING_STATE_IDLE);
+	break;
+	case VL53L0X_STATE_RUNNING:
+		VL53L0X_COPYSTRING(pPalStateString,
+			VL53L0X_STRING_STATE_RUNNING);
+	break;
+	case VL53L0X_STATE_UNKNOWN:
+		VL53L0X_COPYSTRING(pPalStateString,
+			VL53L0X_STRING_STATE_UNKNOWN);
+	break;
+	case VL53L0X_STATE_ERROR:
+		VL53L0X_COPYSTRING(pPalStateString,
+			VL53L0X_STRING_STATE_ERROR);
+	break;
+
+	default:
+		VL53L0X_COPYSTRING(pPalStateString,
+			VL53L0X_STRING_STATE_UNKNOWN);
+	}
+
+	LOG_FUNCTION_END(Status);
+	return Status;
+}
+
+VL53L0X_Error VL53L0X_get_sequence_steps_info(
+		VL53L0X_SequenceStepId SequenceStepId,
+		char *pSequenceStepsString)
+{
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+	LOG_FUNCTION_START("");
+
+	switch (SequenceStepId) {
+	case VL53L0X_SEQUENCESTEP_TCC:
+		VL53L0X_COPYSTRING(pSequenceStepsString,
+			VL53L0X_STRING_SEQUENCESTEP_TCC);
+	break;
+	case VL53L0X_SEQUENCESTEP_DSS:
+		VL53L0X_COPYSTRING(pSequenceStepsString,
+			VL53L0X_STRING_SEQUENCESTEP_DSS);
+	break;
+	case VL53L0X_SEQUENCESTEP_MSRC:
+		VL53L0X_COPYSTRING(pSequenceStepsString,
+			VL53L0X_STRING_SEQUENCESTEP_MSRC);
+	break;
+	case VL53L0X_SEQUENCESTEP_PRE_RANGE:
+		VL53L0X_COPYSTRING(pSequenceStepsString,
+			VL53L0X_STRING_SEQUENCESTEP_PRE_RANGE);
+	break;
+	case VL53L0X_SEQUENCESTEP_FINAL_RANGE:
+		VL53L0X_COPYSTRING(pSequenceStepsString,
+			VL53L0X_STRING_SEQUENCESTEP_FINAL_RANGE);
+	break;
+
+	default:
+		Status = VL53L0X_ERROR_INVALID_PARAMS;
+	}
+
+	LOG_FUNCTION_END(Status);
+
+	return Status;
+}
+
+
+VL53L0X_Error VL53L0X_get_limit_check_info(VL53L0X_DEV Dev, uint16_t LimitCheckId,
+	char *pLimitCheckString)
+{
+	VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+
+	LOG_FUNCTION_START("");
+
+	switch (LimitCheckId) {
+	case VL53L0X_CHECKENABLE_SIGMA_FINAL_RANGE:
+		VL53L0X_COPYSTRING(pLimitCheckString,
+			VL53L0X_STRING_CHECKENABLE_SIGMA_FINAL_RANGE);
+	break;
+	case VL53L0X_CHECKENABLE_SIGNAL_RATE_FINAL_RANGE:
+		VL53L0X_COPYSTRING(pLimitCheckString,
+			VL53L0X_STRING_CHECKENABLE_SIGNAL_RATE_FINAL_RANGE);
+	break;
+	case VL53L0X_CHECKENABLE_SIGNAL_REF_CLIP:
+		VL53L0X_COPYSTRING(pLimitCheckString,
+			VL53L0X_STRING_CHECKENABLE_SIGNAL_REF_CLIP);
+	break;
+	case VL53L0X_CHECKENABLE_RANGE_IGNORE_THRESHOLD:
+		VL53L0X_COPYSTRING(pLimitCheckString,
+			VL53L0X_STRING_CHECKENABLE_RANGE_IGNORE_THRESHOLD);
+	break;
+
+	case VL53L0X_CHECKENABLE_SIGNAL_RATE_MSRC:
+		VL53L0X_COPYSTRING(pLimitCheckString,
+			VL53L0X_STRING_CHECKENABLE_SIGNAL_RATE_MSRC);
+	break;
+
+	case VL53L0X_CHECKENABLE_SIGNAL_RATE_PRE_RANGE:
+		VL53L0X_COPYSTRING(pLimitCheckString,
+			VL53L0X_STRING_CHECKENABLE_SIGNAL_RATE_PRE_RANGE);
+	break;
+
+	default:
+		VL53L0X_COPYSTRING(pLimitCheckString,
+			VL53L0X_STRING_UNKNOW_ERROR_CODE);
+
+	}
+
+	LOG_FUNCTION_END(Status);
+	return Status;
+}
diff --git a/STS/TOF/vl53l0x/vl53l0x_api_strings.h b/STS/TOF/vl53l0x/vl53l0x_api_strings.h
index b680d8f..2586b49 100644
--- a/STS/TOF/vl53l0x/vl53l0x_api_strings.h
+++ b/STS/TOF/vl53l0x/vl53l0x_api_strings.h
@@ -1,277 +1,277 @@
-/*******************************************************************************
-Copyright � 2016, STMicroelectronics International N.V.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-    * Redistributions of source code must retain the above copyright
-      notice, this list of conditions and the following disclaimer.
-    * 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.
-    * 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, FITNESS FOR A PARTICULAR PURPOSE, AND
-NON-INFRINGEMENT OF INTELLECTUAL PROPERTY RIGHTS ARE DISCLAIMED.
-IN NO EVENT SHALL STMICROELECTRONICS INTERNATIONAL N.V. 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 VL53L0X_API_STRINGS_H_
-#define VL53L0X_API_STRINGS_H_
-
-#include "vl53l0x_def.h"
-#include "vl53l0x_platform.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
-VL53L0X_Error VL53L0X_get_device_info(VL53L0X_DEV Dev,
-			VL53L0X_DeviceInfo_t *pVL53L0X_DeviceInfo);
-
-VL53L0X_Error VL53L0X_get_device_error_string(VL53L0X_DeviceError ErrorCode,
-		char *pDeviceErrorString);
-
-VL53L0X_Error VL53L0X_get_range_status_string(uint8_t RangeStatus,
-		char *pRangeStatusString);
-
-VL53L0X_Error VL53L0X_get_pal_error_string(VL53L0X_Error PalErrorCode,
-		char *pPalErrorString);
-
-VL53L0X_Error VL53L0X_get_pal_state_string(VL53L0X_State PalStateCode,
-		char *pPalStateString);
-
-VL53L0X_Error VL53L0X_get_sequence_steps_info(
-		VL53L0X_SequenceStepId SequenceStepId,
-		char *pSequenceStepsString);
-
-VL53L0X_Error VL53L0X_get_limit_check_info(VL53L0X_DEV Dev, uint16_t LimitCheckId,
-	char *pLimitCheckString);
-
-
-#ifdef USE_EMPTY_STRING
-	#define  VL53L0X_STRING_DEVICE_INFO_NAME                             ""
-	#define  VL53L0X_STRING_DEVICE_INFO_NAME_TS0                         ""
-	#define  VL53L0X_STRING_DEVICE_INFO_NAME_TS1                         ""
-	#define  VL53L0X_STRING_DEVICE_INFO_NAME_TS2                         ""
-	#define  VL53L0X_STRING_DEVICE_INFO_NAME_ES1                         ""
-	#define  VL53L0X_STRING_DEVICE_INFO_TYPE                             ""
-
-	/* PAL ERROR strings */
-	#define  VL53L0X_STRING_ERROR_NONE                                   ""
-	#define  VL53L0X_STRING_ERROR_CALIBRATION_WARNING                    ""
-	#define  VL53L0X_STRING_ERROR_MIN_CLIPPED                            ""
-	#define  VL53L0X_STRING_ERROR_UNDEFINED                              ""
-	#define  VL53L0X_STRING_ERROR_INVALID_PARAMS                         ""
-	#define  VL53L0X_STRING_ERROR_NOT_SUPPORTED                          ""
-	#define  VL53L0X_STRING_ERROR_RANGE_ERROR                            ""
-	#define  VL53L0X_STRING_ERROR_TIME_OUT                               ""
-	#define  VL53L0X_STRING_ERROR_MODE_NOT_SUPPORTED                     ""
-	#define  VL53L0X_STRING_ERROR_BUFFER_TOO_SMALL                       ""
-	#define  VL53L0X_STRING_ERROR_GPIO_NOT_EXISTING                      ""
-	#define  VL53L0X_STRING_ERROR_GPIO_FUNCTIONALITY_NOT_SUPPORTED       ""
-	#define  VL53L0X_STRING_ERROR_CONTROL_INTERFACE                      ""
-	#define  VL53L0X_STRING_ERROR_INVALID_COMMAND                        ""
-	#define  VL53L0X_STRING_ERROR_DIVISION_BY_ZERO                       ""
-	#define  VL53L0X_STRING_ERROR_REF_SPAD_INIT                          ""
-	#define  VL53L0X_STRING_ERROR_NOT_IMPLEMENTED                        ""
-
-	#define  VL53L0X_STRING_UNKNOW_ERROR_CODE                            ""
-
-
-
-	/* Range Status */
-	#define  VL53L0X_STRING_RANGESTATUS_NONE                             ""
-	#define  VL53L0X_STRING_RANGESTATUS_RANGEVALID                       ""
-	#define  VL53L0X_STRING_RANGESTATUS_SIGMA                            ""
-	#define  VL53L0X_STRING_RANGESTATUS_SIGNAL                           ""
-	#define  VL53L0X_STRING_RANGESTATUS_MINRANGE                         ""
-	#define  VL53L0X_STRING_RANGESTATUS_PHASE                            ""
-	#define  VL53L0X_STRING_RANGESTATUS_HW                               ""
-
-
-	/* Range Status */
-	#define  VL53L0X_STRING_STATE_POWERDOWN                              ""
-	#define  VL53L0X_STRING_STATE_WAIT_STATICINIT                        ""
-	#define  VL53L0X_STRING_STATE_STANDBY                                ""
-	#define  VL53L0X_STRING_STATE_IDLE                                   ""
-	#define  VL53L0X_STRING_STATE_RUNNING                                ""
-	#define  VL53L0X_STRING_STATE_UNKNOWN                                ""
-	#define  VL53L0X_STRING_STATE_ERROR                                  ""
-
-
-	/* Device Specific */
-	#define  VL53L0X_STRING_DEVICEERROR_NONE                             ""
-	#define  VL53L0X_STRING_DEVICEERROR_VCSELCONTINUITYTESTFAILURE       ""
-	#define  VL53L0X_STRING_DEVICEERROR_VCSELWATCHDOGTESTFAILURE         ""
-	#define  VL53L0X_STRING_DEVICEERROR_NOVHVVALUEFOUND                  ""
-	#define  VL53L0X_STRING_DEVICEERROR_MSRCNOTARGET                     ""
-	#define  VL53L0X_STRING_DEVICEERROR_SNRCHECK                         ""
-	#define  VL53L0X_STRING_DEVICEERROR_RANGEPHASECHECK                  ""
-	#define  VL53L0X_STRING_DEVICEERROR_SIGMATHRESHOLDCHECK              ""
-	#define  VL53L0X_STRING_DEVICEERROR_TCC                              ""
-	#define  VL53L0X_STRING_DEVICEERROR_PHASECONSISTENCY                 ""
-	#define  VL53L0X_STRING_DEVICEERROR_MINCLIP                          ""
-	#define  VL53L0X_STRING_DEVICEERROR_RANGECOMPLETE                    ""
-	#define  VL53L0X_STRING_DEVICEERROR_ALGOUNDERFLOW                    ""
-	#define  VL53L0X_STRING_DEVICEERROR_ALGOOVERFLOW                     ""
-	#define  VL53L0X_STRING_DEVICEERROR_RANGEIGNORETHRESHOLD             ""
-	#define  VL53L0X_STRING_DEVICEERROR_UNKNOWN                          ""
-
-	/* Check Enable */
-	#define  VL53L0X_STRING_CHECKENABLE_SIGMA_FINAL_RANGE                ""
-	#define  VL53L0X_STRING_CHECKENABLE_SIGNAL_RATE_FINAL_RANGE          ""
-	#define  VL53L0X_STRING_CHECKENABLE_SIGNAL_REF_CLIP                  ""
-	#define  VL53L0X_STRING_CHECKENABLE_RANGE_IGNORE_THRESHOLD           ""
-
-	/* Sequence Step */
-	#define  VL53L0X_STRING_SEQUENCESTEP_TCC                             ""
-	#define  VL53L0X_STRING_SEQUENCESTEP_DSS                             ""
-	#define  VL53L0X_STRING_SEQUENCESTEP_MSRC                            ""
-	#define  VL53L0X_STRING_SEQUENCESTEP_PRE_RANGE                       ""
-	#define  VL53L0X_STRING_SEQUENCESTEP_FINAL_RANGE                     ""
-#else
-	#define  VL53L0X_STRING_DEVICE_INFO_NAME          "VL53L0X cut1.0"
-	#define  VL53L0X_STRING_DEVICE_INFO_NAME_TS0      "VL53L0X TS0"
-	#define  VL53L0X_STRING_DEVICE_INFO_NAME_TS1      "VL53L0X TS1"
-	#define  VL53L0X_STRING_DEVICE_INFO_NAME_TS2      "VL53L0X TS2"
-	#define  VL53L0X_STRING_DEVICE_INFO_NAME_ES1      "VL53L0X ES1 or later"
-	#define  VL53L0X_STRING_DEVICE_INFO_TYPE          "VL53L0X"
-
-	/* PAL ERROR strings */
-	#define  VL53L0X_STRING_ERROR_NONE \
-			"No Error"
-	#define  VL53L0X_STRING_ERROR_CALIBRATION_WARNING \
-			"Calibration Warning Error"
-	#define  VL53L0X_STRING_ERROR_MIN_CLIPPED \
-			"Min clipped error"
-	#define  VL53L0X_STRING_ERROR_UNDEFINED \
-			"Undefined error"
-	#define  VL53L0X_STRING_ERROR_INVALID_PARAMS \
-			"Invalid parameters error"
-	#define  VL53L0X_STRING_ERROR_NOT_SUPPORTED \
-			"Not supported error"
-	#define  VL53L0X_STRING_ERROR_RANGE_ERROR \
-			"Range error"
-	#define  VL53L0X_STRING_ERROR_TIME_OUT \
-			"Time out error"
-	#define  VL53L0X_STRING_ERROR_MODE_NOT_SUPPORTED \
-			"Mode not supported error"
-	#define  VL53L0X_STRING_ERROR_BUFFER_TOO_SMALL \
-			"Buffer too small"
-	#define  VL53L0X_STRING_ERROR_GPIO_NOT_EXISTING \
-			"GPIO not existing"
-	#define  VL53L0X_STRING_ERROR_GPIO_FUNCTIONALITY_NOT_SUPPORTED \
-			"GPIO funct not supported"
-	#define  VL53L0X_STRING_ERROR_INTERRUPT_NOT_CLEARED \
-			"Interrupt not Cleared"
-	#define  VL53L0X_STRING_ERROR_CONTROL_INTERFACE \
-			"Control Interface Error"
-	#define  VL53L0X_STRING_ERROR_INVALID_COMMAND \
-			"Invalid Command Error"
-	#define  VL53L0X_STRING_ERROR_DIVISION_BY_ZERO \
-			"Division by zero Error"
-	#define  VL53L0X_STRING_ERROR_REF_SPAD_INIT \
-			"Reference Spad Init Error"
-	#define  VL53L0X_STRING_ERROR_NOT_IMPLEMENTED \
-			"Not implemented error"
-
-	#define  VL53L0X_STRING_UNKNOW_ERROR_CODE \
-			"Unknown Error Code"
-
-
-
-	/* Range Status */
-	#define  VL53L0X_STRING_RANGESTATUS_NONE                 "No Update"
-	#define  VL53L0X_STRING_RANGESTATUS_RANGEVALID           "Range Valid"
-	#define  VL53L0X_STRING_RANGESTATUS_SIGMA                "Sigma Fail"
-	#define  VL53L0X_STRING_RANGESTATUS_SIGNAL               "Signal Fail"
-	#define  VL53L0X_STRING_RANGESTATUS_MINRANGE             "Min Range Fail"
-	#define  VL53L0X_STRING_RANGESTATUS_PHASE                "Phase Fail"
-	#define  VL53L0X_STRING_RANGESTATUS_HW                   "Hardware Fail"
-
-
-	/* Range Status */
-	#define  VL53L0X_STRING_STATE_POWERDOWN               "POWERDOWN State"
-	#define  VL53L0X_STRING_STATE_WAIT_STATICINIT \
-			"Wait for staticinit State"
-	#define  VL53L0X_STRING_STATE_STANDBY                 "STANDBY State"
-	#define  VL53L0X_STRING_STATE_IDLE                    "IDLE State"
-	#define  VL53L0X_STRING_STATE_RUNNING                 "RUNNING State"
-	#define  VL53L0X_STRING_STATE_UNKNOWN                 "UNKNOWN State"
-	#define  VL53L0X_STRING_STATE_ERROR                   "ERROR State"
-
-
-	/* Device Specific */
-	#define  VL53L0X_STRING_DEVICEERROR_NONE                   "No Update"
-	#define  VL53L0X_STRING_DEVICEERROR_VCSELCONTINUITYTESTFAILURE \
-			"VCSEL Continuity Test Failure"
-	#define  VL53L0X_STRING_DEVICEERROR_VCSELWATCHDOGTESTFAILURE \
-			"VCSEL Watchdog Test Failure"
-	#define  VL53L0X_STRING_DEVICEERROR_NOVHVVALUEFOUND \
-			"No VHV Value found"
-	#define  VL53L0X_STRING_DEVICEERROR_MSRCNOTARGET \
-			"MSRC No Target Error"
-	#define  VL53L0X_STRING_DEVICEERROR_SNRCHECK \
-			"SNR Check Exit"
-	#define  VL53L0X_STRING_DEVICEERROR_RANGEPHASECHECK \
-			"Range Phase Check Error"
-	#define  VL53L0X_STRING_DEVICEERROR_SIGMATHRESHOLDCHECK \
-			"Sigma Threshold Check Error"
-	#define  VL53L0X_STRING_DEVICEERROR_TCC \
-			"TCC Error"
-	#define  VL53L0X_STRING_DEVICEERROR_PHASECONSISTENCY \
-			"Phase Consistency Error"
-	#define  VL53L0X_STRING_DEVICEERROR_MINCLIP \
-			"Min Clip Error"
-	#define  VL53L0X_STRING_DEVICEERROR_RANGECOMPLETE \
-			"Range Complete"
-	#define  VL53L0X_STRING_DEVICEERROR_ALGOUNDERFLOW \
-			"Range Algo Underflow Error"
-	#define  VL53L0X_STRING_DEVICEERROR_ALGOOVERFLOW \
-			"Range Algo Overlow Error"
-	#define  VL53L0X_STRING_DEVICEERROR_RANGEIGNORETHRESHOLD \
-			"Range Ignore Threshold Error"
-	#define  VL53L0X_STRING_DEVICEERROR_UNKNOWN \
-			"Unknown error code"
-
-	/* Check Enable */
-	#define  VL53L0X_STRING_CHECKENABLE_SIGMA_FINAL_RANGE \
-			"SIGMA FINAL RANGE"
-	#define  VL53L0X_STRING_CHECKENABLE_SIGNAL_RATE_FINAL_RANGE \
-			"SIGNAL RATE FINAL RANGE"
-	#define  VL53L0X_STRING_CHECKENABLE_SIGNAL_REF_CLIP \
-			"SIGNAL REF CLIP"
-	#define  VL53L0X_STRING_CHECKENABLE_RANGE_IGNORE_THRESHOLD \
-			"RANGE IGNORE THRESHOLD"
-	#define  VL53L0X_STRING_CHECKENABLE_SIGNAL_RATE_MSRC \
-			"SIGNAL RATE MSRC"
-	#define  VL53L0X_STRING_CHECKENABLE_SIGNAL_RATE_PRE_RANGE \
-			"SIGNAL RATE PRE RANGE"
-
-	/* Sequence Step */
-	#define  VL53L0X_STRING_SEQUENCESTEP_TCC                   "TCC"
-	#define  VL53L0X_STRING_SEQUENCESTEP_DSS                   "DSS"
-	#define  VL53L0X_STRING_SEQUENCESTEP_MSRC                  "MSRC"
-	#define  VL53L0X_STRING_SEQUENCESTEP_PRE_RANGE             "PRE RANGE"
-	#define  VL53L0X_STRING_SEQUENCESTEP_FINAL_RANGE           "FINAL RANGE"
-#endif /* USE_EMPTY_STRING */
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-
+/*******************************************************************************
+Copyright � 2016, STMicroelectronics International N.V.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+    * Redistributions of source code must retain the above copyright
+      notice, this list of conditions and the following disclaimer.
+    * 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.
+    * 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, FITNESS FOR A PARTICULAR PURPOSE, AND
+NON-INFRINGEMENT OF INTELLECTUAL PROPERTY RIGHTS ARE DISCLAIMED.
+IN NO EVENT SHALL STMICROELECTRONICS INTERNATIONAL N.V. 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 VL53L0X_API_STRINGS_H_
+#define VL53L0X_API_STRINGS_H_
+
+#include "vl53l0x_def.h"
+#include "vl53l0x_platform.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+VL53L0X_Error VL53L0X_get_device_info(VL53L0X_DEV Dev,
+			VL53L0X_DeviceInfo_t *pVL53L0X_DeviceInfo);
+
+VL53L0X_Error VL53L0X_get_device_error_string(VL53L0X_DeviceError ErrorCode,
+		char *pDeviceErrorString);
+
+VL53L0X_Error VL53L0X_get_range_status_string(uint8_t RangeStatus,
+		char *pRangeStatusString);
+
+VL53L0X_Error VL53L0X_get_pal_error_string(VL53L0X_Error PalErrorCode,
+		char *pPalErrorString);
+
+VL53L0X_Error VL53L0X_get_pal_state_string(VL53L0X_State PalStateCode,
+		char *pPalStateString);
+
+VL53L0X_Error VL53L0X_get_sequence_steps_info(
+		VL53L0X_SequenceStepId SequenceStepId,
+		char *pSequenceStepsString);
+
+VL53L0X_Error VL53L0X_get_limit_check_info(VL53L0X_DEV Dev, uint16_t LimitCheckId,
+	char *pLimitCheckString);
+
+
+#ifdef USE_EMPTY_STRING
+	#define  VL53L0X_STRING_DEVICE_INFO_NAME                             ""
+	#define  VL53L0X_STRING_DEVICE_INFO_NAME_TS0                         ""
+	#define  VL53L0X_STRING_DEVICE_INFO_NAME_TS1                         ""
+	#define  VL53L0X_STRING_DEVICE_INFO_NAME_TS2                         ""
+	#define  VL53L0X_STRING_DEVICE_INFO_NAME_ES1                         ""
+	#define  VL53L0X_STRING_DEVICE_INFO_TYPE                             ""
+
+	/* PAL ERROR strings */
+	#define  VL53L0X_STRING_ERROR_NONE                                   ""
+	#define  VL53L0X_STRING_ERROR_CALIBRATION_WARNING                    ""
+	#define  VL53L0X_STRING_ERROR_MIN_CLIPPED                            ""
+	#define  VL53L0X_STRING_ERROR_UNDEFINED                              ""
+	#define  VL53L0X_STRING_ERROR_INVALID_PARAMS                         ""
+	#define  VL53L0X_STRING_ERROR_NOT_SUPPORTED                          ""
+	#define  VL53L0X_STRING_ERROR_RANGE_ERROR                            ""
+	#define  VL53L0X_STRING_ERROR_TIME_OUT                               ""
+	#define  VL53L0X_STRING_ERROR_MODE_NOT_SUPPORTED                     ""
+	#define  VL53L0X_STRING_ERROR_BUFFER_TOO_SMALL                       ""
+	#define  VL53L0X_STRING_ERROR_GPIO_NOT_EXISTING                      ""
+	#define  VL53L0X_STRING_ERROR_GPIO_FUNCTIONALITY_NOT_SUPPORTED       ""
+	#define  VL53L0X_STRING_ERROR_CONTROL_INTERFACE                      ""
+	#define  VL53L0X_STRING_ERROR_INVALID_COMMAND                        ""
+	#define  VL53L0X_STRING_ERROR_DIVISION_BY_ZERO                       ""
+	#define  VL53L0X_STRING_ERROR_REF_SPAD_INIT                          ""
+	#define  VL53L0X_STRING_ERROR_NOT_IMPLEMENTED                        ""
+
+	#define  VL53L0X_STRING_UNKNOW_ERROR_CODE                            ""
+
+
+
+	/* Range Status */
+	#define  VL53L0X_STRING_RANGESTATUS_NONE                             ""
+	#define  VL53L0X_STRING_RANGESTATUS_RANGEVALID                       ""
+	#define  VL53L0X_STRING_RANGESTATUS_SIGMA                            ""
+	#define  VL53L0X_STRING_RANGESTATUS_SIGNAL                           ""
+	#define  VL53L0X_STRING_RANGESTATUS_MINRANGE                         ""
+	#define  VL53L0X_STRING_RANGESTATUS_PHASE                            ""
+	#define  VL53L0X_STRING_RANGESTATUS_HW                               ""
+
+
+	/* Range Status */
+	#define  VL53L0X_STRING_STATE_POWERDOWN                              ""
+	#define  VL53L0X_STRING_STATE_WAIT_STATICINIT                        ""
+	#define  VL53L0X_STRING_STATE_STANDBY                                ""
+	#define  VL53L0X_STRING_STATE_IDLE                                   ""
+	#define  VL53L0X_STRING_STATE_RUNNING                                ""
+	#define  VL53L0X_STRING_STATE_UNKNOWN                                ""
+	#define  VL53L0X_STRING_STATE_ERROR                                  ""
+
+
+	/* Device Specific */
+	#define  VL53L0X_STRING_DEVICEERROR_NONE                             ""
+	#define  VL53L0X_STRING_DEVICEERROR_VCSELCONTINUITYTESTFAILURE       ""
+	#define  VL53L0X_STRING_DEVICEERROR_VCSELWATCHDOGTESTFAILURE         ""
+	#define  VL53L0X_STRING_DEVICEERROR_NOVHVVALUEFOUND                  ""
+	#define  VL53L0X_STRING_DEVICEERROR_MSRCNOTARGET                     ""
+	#define  VL53L0X_STRING_DEVICEERROR_SNRCHECK                         ""
+	#define  VL53L0X_STRING_DEVICEERROR_RANGEPHASECHECK                  ""
+	#define  VL53L0X_STRING_DEVICEERROR_SIGMATHRESHOLDCHECK              ""
+	#define  VL53L0X_STRING_DEVICEERROR_TCC                              ""
+	#define  VL53L0X_STRING_DEVICEERROR_PHASECONSISTENCY                 ""
+	#define  VL53L0X_STRING_DEVICEERROR_MINCLIP                          ""
+	#define  VL53L0X_STRING_DEVICEERROR_RANGECOMPLETE                    ""
+	#define  VL53L0X_STRING_DEVICEERROR_ALGOUNDERFLOW                    ""
+	#define  VL53L0X_STRING_DEVICEERROR_ALGOOVERFLOW                     ""
+	#define  VL53L0X_STRING_DEVICEERROR_RANGEIGNORETHRESHOLD             ""
+	#define  VL53L0X_STRING_DEVICEERROR_UNKNOWN                          ""
+
+	/* Check Enable */
+	#define  VL53L0X_STRING_CHECKENABLE_SIGMA_FINAL_RANGE                ""
+	#define  VL53L0X_STRING_CHECKENABLE_SIGNAL_RATE_FINAL_RANGE          ""
+	#define  VL53L0X_STRING_CHECKENABLE_SIGNAL_REF_CLIP                  ""
+	#define  VL53L0X_STRING_CHECKENABLE_RANGE_IGNORE_THRESHOLD           ""
+
+	/* Sequence Step */
+	#define  VL53L0X_STRING_SEQUENCESTEP_TCC                             ""
+	#define  VL53L0X_STRING_SEQUENCESTEP_DSS                             ""
+	#define  VL53L0X_STRING_SEQUENCESTEP_MSRC                            ""
+	#define  VL53L0X_STRING_SEQUENCESTEP_PRE_RANGE                       ""
+	#define  VL53L0X_STRING_SEQUENCESTEP_FINAL_RANGE                     ""
+#else
+	#define  VL53L0X_STRING_DEVICE_INFO_NAME          "VL53L0X cut1.0"
+	#define  VL53L0X_STRING_DEVICE_INFO_NAME_TS0      "VL53L0X TS0"
+	#define  VL53L0X_STRING_DEVICE_INFO_NAME_TS1      "VL53L0X TS1"
+	#define  VL53L0X_STRING_DEVICE_INFO_NAME_TS2      "VL53L0X TS2"
+	#define  VL53L0X_STRING_DEVICE_INFO_NAME_ES1      "VL53L0X ES1 or later"
+	#define  VL53L0X_STRING_DEVICE_INFO_TYPE          "VL53L0X"
+
+	/* PAL ERROR strings */
+	#define  VL53L0X_STRING_ERROR_NONE \
+			"No Error"
+	#define  VL53L0X_STRING_ERROR_CALIBRATION_WARNING \
+			"Calibration Warning Error"
+	#define  VL53L0X_STRING_ERROR_MIN_CLIPPED \
+			"Min clipped error"
+	#define  VL53L0X_STRING_ERROR_UNDEFINED \
+			"Undefined error"
+	#define  VL53L0X_STRING_ERROR_INVALID_PARAMS \
+			"Invalid parameters error"
+	#define  VL53L0X_STRING_ERROR_NOT_SUPPORTED \
+			"Not supported error"
+	#define  VL53L0X_STRING_ERROR_RANGE_ERROR \
+			"Range error"
+	#define  VL53L0X_STRING_ERROR_TIME_OUT \
+			"Time out error"
+	#define  VL53L0X_STRING_ERROR_MODE_NOT_SUPPORTED \
+			"Mode not supported error"
+	#define  VL53L0X_STRING_ERROR_BUFFER_TOO_SMALL \
+			"Buffer too small"
+	#define  VL53L0X_STRING_ERROR_GPIO_NOT_EXISTING \
+			"GPIO not existing"
+	#define  VL53L0X_STRING_ERROR_GPIO_FUNCTIONALITY_NOT_SUPPORTED \
+			"GPIO funct not supported"
+	#define  VL53L0X_STRING_ERROR_INTERRUPT_NOT_CLEARED \
+			"Interrupt not Cleared"
+	#define  VL53L0X_STRING_ERROR_CONTROL_INTERFACE \
+			"Control Interface Error"
+	#define  VL53L0X_STRING_ERROR_INVALID_COMMAND \
+			"Invalid Command Error"
+	#define  VL53L0X_STRING_ERROR_DIVISION_BY_ZERO \
+			"Division by zero Error"
+	#define  VL53L0X_STRING_ERROR_REF_SPAD_INIT \
+			"Reference Spad Init Error"
+	#define  VL53L0X_STRING_ERROR_NOT_IMPLEMENTED \
+			"Not implemented error"
+
+	#define  VL53L0X_STRING_UNKNOW_ERROR_CODE \
+			"Unknown Error Code"
+
+
+
+	/* Range Status */
+	#define  VL53L0X_STRING_RANGESTATUS_NONE                 "No Update"
+	#define  VL53L0X_STRING_RANGESTATUS_RANGEVALID           "Range Valid"
+	#define  VL53L0X_STRING_RANGESTATUS_SIGMA                "Sigma Fail"
+	#define  VL53L0X_STRING_RANGESTATUS_SIGNAL               "Signal Fail"
+	#define  VL53L0X_STRING_RANGESTATUS_MINRANGE             "Min Range Fail"
+	#define  VL53L0X_STRING_RANGESTATUS_PHASE                "Phase Fail"
+	#define  VL53L0X_STRING_RANGESTATUS_HW                   "Hardware Fail"
+
+
+	/* Range Status */
+	#define  VL53L0X_STRING_STATE_POWERDOWN               "POWERDOWN State"
+	#define  VL53L0X_STRING_STATE_WAIT_STATICINIT \
+			"Wait for staticinit State"
+	#define  VL53L0X_STRING_STATE_STANDBY                 "STANDBY State"
+	#define  VL53L0X_STRING_STATE_IDLE                    "IDLE State"
+	#define  VL53L0X_STRING_STATE_RUNNING                 "RUNNING State"
+	#define  VL53L0X_STRING_STATE_UNKNOWN                 "UNKNOWN State"
+	#define  VL53L0X_STRING_STATE_ERROR                   "ERROR State"
+
+
+	/* Device Specific */
+	#define  VL53L0X_STRING_DEVICEERROR_NONE                   "No Update"
+	#define  VL53L0X_STRING_DEVICEERROR_VCSELCONTINUITYTESTFAILURE \
+			"VCSEL Continuity Test Failure"
+	#define  VL53L0X_STRING_DEVICEERROR_VCSELWATCHDOGTESTFAILURE \
+			"VCSEL Watchdog Test Failure"
+	#define  VL53L0X_STRING_DEVICEERROR_NOVHVVALUEFOUND \
+			"No VHV Value found"
+	#define  VL53L0X_STRING_DEVICEERROR_MSRCNOTARGET \
+			"MSRC No Target Error"
+	#define  VL53L0X_STRING_DEVICEERROR_SNRCHECK \
+			"SNR Check Exit"
+	#define  VL53L0X_STRING_DEVICEERROR_RANGEPHASECHECK \
+			"Range Phase Check Error"
+	#define  VL53L0X_STRING_DEVICEERROR_SIGMATHRESHOLDCHECK \
+			"Sigma Threshold Check Error"
+	#define  VL53L0X_STRING_DEVICEERROR_TCC \
+			"TCC Error"
+	#define  VL53L0X_STRING_DEVICEERROR_PHASECONSISTENCY \
+			"Phase Consistency Error"
+	#define  VL53L0X_STRING_DEVICEERROR_MINCLIP \
+			"Min Clip Error"
+	#define  VL53L0X_STRING_DEVICEERROR_RANGECOMPLETE \
+			"Range Complete"
+	#define  VL53L0X_STRING_DEVICEERROR_ALGOUNDERFLOW \
+			"Range Algo Underflow Error"
+	#define  VL53L0X_STRING_DEVICEERROR_ALGOOVERFLOW \
+			"Range Algo Overlow Error"
+	#define  VL53L0X_STRING_DEVICEERROR_RANGEIGNORETHRESHOLD \
+			"Range Ignore Threshold Error"
+	#define  VL53L0X_STRING_DEVICEERROR_UNKNOWN \
+			"Unknown error code"
+
+	/* Check Enable */
+	#define  VL53L0X_STRING_CHECKENABLE_SIGMA_FINAL_RANGE \
+			"SIGMA FINAL RANGE"
+	#define  VL53L0X_STRING_CHECKENABLE_SIGNAL_RATE_FINAL_RANGE \
+			"SIGNAL RATE FINAL RANGE"
+	#define  VL53L0X_STRING_CHECKENABLE_SIGNAL_REF_CLIP \
+			"SIGNAL REF CLIP"
+	#define  VL53L0X_STRING_CHECKENABLE_RANGE_IGNORE_THRESHOLD \
+			"RANGE IGNORE THRESHOLD"
+	#define  VL53L0X_STRING_CHECKENABLE_SIGNAL_RATE_MSRC \
+			"SIGNAL RATE MSRC"
+	#define  VL53L0X_STRING_CHECKENABLE_SIGNAL_RATE_PRE_RANGE \
+			"SIGNAL RATE PRE RANGE"
+
+	/* Sequence Step */
+	#define  VL53L0X_STRING_SEQUENCESTEP_TCC                   "TCC"
+	#define  VL53L0X_STRING_SEQUENCESTEP_DSS                   "DSS"
+	#define  VL53L0X_STRING_SEQUENCESTEP_MSRC                  "MSRC"
+	#define  VL53L0X_STRING_SEQUENCESTEP_PRE_RANGE             "PRE RANGE"
+	#define  VL53L0X_STRING_SEQUENCESTEP_FINAL_RANGE           "FINAL RANGE"
+#endif /* USE_EMPTY_STRING */
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+
diff --git a/STS/TOF/vl53l0x/vl53l0x_def.h b/STS/TOF/vl53l0x/vl53l0x_def.h
index 6c9af35..e0d8f74 100644
--- a/STS/TOF/vl53l0x/vl53l0x_def.h
+++ b/STS/TOF/vl53l0x/vl53l0x_def.h
@@ -1,640 +1,640 @@
-/*******************************************************************************
-Copyright � 2016, STMicroelectronics International N.V.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-	* Redistributions of source code must retain the above copyright
-	  notice, this list of conditions and the following disclaimer.
-	* 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.
-	* 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, FITNESS FOR A PARTICULAR PURPOSE, AND
-NON-INFRINGEMENT OF INTELLECTUAL PROPERTY RIGHTS ARE DISCLAIMED.
-IN NO EVENT SHALL STMICROELECTRONICS INTERNATIONAL N.V. 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 VL53L0X_def.h
- *
- * @brief Type definitions for VL53L0X API.
- *
- */
-
-
-#ifndef _VL53L0X_DEF_H_
-#define _VL53L0X_DEF_H_
-
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/** @defgroup VL53L0X_globaldefine_group VL53L0X Defines
- *	@brief	  VL53L0X Defines
- *	@{
- */
-
-
-/** PAL SPECIFICATION major version */
-#define VL53L0X10_SPECIFICATION_VER_MAJOR   1
-/** PAL SPECIFICATION minor version */
-#define VL53L0X10_SPECIFICATION_VER_MINOR   2
-/** PAL SPECIFICATION sub version */
-#define VL53L0X10_SPECIFICATION_VER_SUB	   7
-/** PAL SPECIFICATION sub version */
-#define VL53L0X10_SPECIFICATION_VER_REVISION 1440
-
-/** VL53L0X PAL IMPLEMENTATION major version */
-#define VL53L0X10_IMPLEMENTATION_VER_MAJOR	1
-/** VL53L0X PAL IMPLEMENTATION minor version */
-#define VL53L0X10_IMPLEMENTATION_VER_MINOR	0
-/** VL53L0X PAL IMPLEMENTATION sub version */
-#define VL53L0X10_IMPLEMENTATION_VER_SUB		9
-/** VL53L0X PAL IMPLEMENTATION sub version */
-#define VL53L0X10_IMPLEMENTATION_VER_REVISION	3673
-
-/** PAL SPECIFICATION major version */
-#define VL53L0X_SPECIFICATION_VER_MAJOR	 1
-/** PAL SPECIFICATION minor version */
-#define VL53L0X_SPECIFICATION_VER_MINOR	 2
-/** PAL SPECIFICATION sub version */
-#define VL53L0X_SPECIFICATION_VER_SUB	 7
-/** PAL SPECIFICATION sub version */
-#define VL53L0X_SPECIFICATION_VER_REVISION 1440
-
-/** VL53L0X PAL IMPLEMENTATION major version */
-#define VL53L0X_IMPLEMENTATION_VER_MAJOR	  1
-/** VL53L0X PAL IMPLEMENTATION minor version */
-#define VL53L0X_IMPLEMENTATION_VER_MINOR	  0
-/** VL53L0X PAL IMPLEMENTATION sub version */
-#define VL53L0X_IMPLEMENTATION_VER_SUB	  2
-/** VL53L0X PAL IMPLEMENTATION sub version */
-#define VL53L0X_IMPLEMENTATION_VER_REVISION	  4823
-#define VL53L0X_DEFAULT_MAX_LOOP 2000
-#define VL53L0X_MAX_STRING_LENGTH 32
-
-
-#include "vl53l0x_device.h"
-#include "vl53l0x_types.h"
-
-
-/****************************************
- * PRIVATE define do not edit
- ****************************************/
-
-/** @brief Defines the parameters of the Get Version Functions
- */
-typedef struct {
-	uint32_t	 revision; /*!< revision number */
-	uint8_t		 major;	   /*!< major number */
-	uint8_t		 minor;	   /*!< minor number */
-	uint8_t		 build;	   /*!< build number */
-} VL53L0X_Version_t;
-
-
-/** @brief Defines the parameters of the Get Device Info Functions
- */
-typedef struct {
-	char Name[VL53L0X_MAX_STRING_LENGTH];
-		/*!< Name of the Device e.g. Left_Distance */
-	char Type[VL53L0X_MAX_STRING_LENGTH];
-		/*!< Type of the Device e.g VL53L0X */
-	char ProductId[VL53L0X_MAX_STRING_LENGTH];
-		/*!< Product Identifier String	*/
-	uint8_t ProductType;
-		/*!< Product Type, VL53L0X = 1, VL53L1 = 2 */
-	uint8_t ProductRevisionMajor;
-		/*!< Product revision major */
-	uint8_t ProductRevisionMinor;
-		/*!< Product revision minor */
-} VL53L0X_DeviceInfo_t;
-
-
-/** @defgroup VL53L0X_define_Error_group Error and Warning code returned by API
- *	The following DEFINE are used to identify the PAL ERROR
- *	@{
- */
-
-typedef int8_t VL53L0X_Error;
-
-#define VL53L0X_ERROR_NONE		((VL53L0X_Error)	0)
-#define VL53L0X_ERROR_CALIBRATION_WARNING	((VL53L0X_Error) -1)
-	/*!< Warning invalid calibration data may be in used
-		\a	VL53L0X_InitData()
-		\a VL53L0X_GetOffsetCalibrationData
-		\a VL53L0X_SetOffsetCalibrationData */
-#define VL53L0X_ERROR_MIN_CLIPPED			((VL53L0X_Error) -2)
-	/*!< Warning parameter passed was clipped to min before to be applied */
-
-#define VL53L0X_ERROR_UNDEFINED				((VL53L0X_Error) -3)
-	/*!< Unqualified error */
-#define VL53L0X_ERROR_INVALID_PARAMS			((VL53L0X_Error) -4)
-	/*!< Parameter passed is invalid or out of range */
-#define VL53L0X_ERROR_NOT_SUPPORTED			((VL53L0X_Error) -5)
-	/*!< Function is not supported in current mode or configuration */
-#define VL53L0X_ERROR_RANGE_ERROR			((VL53L0X_Error) -6)
-	/*!< Device report a ranging error interrupt status */
-#define VL53L0X_ERROR_TIME_OUT				((VL53L0X_Error) -7)
-	/*!< Aborted due to time out */
-#define VL53L0X_ERROR_MODE_NOT_SUPPORTED			((VL53L0X_Error) -8)
-	/*!< Asked mode is not supported by the device */
-#define VL53L0X_ERROR_BUFFER_TOO_SMALL			((VL53L0X_Error) -9)
-	/*!< ... */
-#define VL53L0X_ERROR_GPIO_NOT_EXISTING			((VL53L0X_Error) -10)
-	/*!< User tried to setup a non-existing GPIO pin */
-#define VL53L0X_ERROR_GPIO_FUNCTIONALITY_NOT_SUPPORTED  ((VL53L0X_Error) -11)
-	/*!< unsupported GPIO functionality */
-#define VL53L0X_ERROR_INTERRUPT_NOT_CLEARED		((VL53L0X_Error) -12)
-	/*!< Error during interrupt clear */
-#define VL53L0X_ERROR_CONTROL_INTERFACE			((VL53L0X_Error) -20)
-	/*!< error reported from IO functions */
-#define VL53L0X_ERROR_INVALID_COMMAND			((VL53L0X_Error) -30)
-	/*!< The command is not allowed in the current device state
-	 *	(power down) */
-#define VL53L0X_ERROR_DIVISION_BY_ZERO			((VL53L0X_Error) -40)
-	/*!< In the function a division by zero occurs */
-#define VL53L0X_ERROR_REF_SPAD_INIT			((VL53L0X_Error) -50)
-	/*!< Error during reference SPAD initialization */
-#define VL53L0X_ERROR_NOT_IMPLEMENTED			((VL53L0X_Error) -99)
-	/*!< Tells requested functionality has not been implemented yet or
-	 * not compatible with the device */
-/** @} VL53L0X_define_Error_group */
-
-
-/** @defgroup VL53L0X_define_DeviceModes_group Defines Device modes
- *	Defines all possible modes for the device
- *	@{
- */
-typedef uint8_t VL53L0X_DeviceModes;
-
-#define VL53L0X_DEVICEMODE_SINGLE_RANGING	((VL53L0X_DeviceModes)  0)
-#define VL53L0X_DEVICEMODE_CONTINUOUS_RANGING	((VL53L0X_DeviceModes)  1)
-#define VL53L0X_DEVICEMODE_SINGLE_HISTOGRAM	((VL53L0X_DeviceModes)  2)
-#define VL53L0X_DEVICEMODE_CONTINUOUS_TIMED_RANGING ((VL53L0X_DeviceModes) 3)
-#define VL53L0X_DEVICEMODE_SINGLE_ALS		((VL53L0X_DeviceModes) 10)
-#define VL53L0X_DEVICEMODE_GPIO_DRIVE		((VL53L0X_DeviceModes) 20)
-#define VL53L0X_DEVICEMODE_GPIO_OSC		((VL53L0X_DeviceModes) 21)
-	/* ... Modes to be added depending on device */
-/** @} VL53L0X_define_DeviceModes_group */
-
-
-
-/** @defgroup VL53L0X_define_HistogramModes_group Defines Histogram modes
- *	Defines all possible Histogram modes for the device
- *	@{
- */
-typedef uint8_t VL53L0X_HistogramModes;
-
-#define VL53L0X_HISTOGRAMMODE_DISABLED		((VL53L0X_HistogramModes) 0)
-	/*!< Histogram Disabled */
-#define VL53L0X_HISTOGRAMMODE_REFERENCE_ONLY	((VL53L0X_HistogramModes) 1)
-	/*!< Histogram Reference array only */
-#define VL53L0X_HISTOGRAMMODE_RETURN_ONLY	((VL53L0X_HistogramModes) 2)
-	/*!< Histogram Return array only */
-#define VL53L0X_HISTOGRAMMODE_BOTH		((VL53L0X_HistogramModes) 3)
-	/*!< Histogram both Reference and Return Arrays */
-	/* ... Modes to be added depending on device */
-/** @} VL53L0X_define_HistogramModes_group */
-
-
-/** @defgroup VL53L0X_define_PowerModes_group List of available Power Modes
- *	List of available Power Modes
- *	@{
- */
-
-typedef uint8_t VL53L0X_PowerModes;
-
-#define VL53L0X_POWERMODE_STANDBY_LEVEL1 ((VL53L0X_PowerModes) 0)
-	/*!< Standby level 1 */
-#define VL53L0X_POWERMODE_STANDBY_LEVEL2 ((VL53L0X_PowerModes) 1)
-	/*!< Standby level 2 */
-#define VL53L0X_POWERMODE_IDLE_LEVEL1	((VL53L0X_PowerModes) 2)
-	/*!< Idle level 1 */
-#define VL53L0X_POWERMODE_IDLE_LEVEL2	((VL53L0X_PowerModes) 3)
-	/*!< Idle level 2 */
-
-/** @} VL53L0X_define_PowerModes_group */
-
-
-/** @brief Defines all parameters for the device
- */
-typedef struct {
-	VL53L0X_DeviceModes DeviceMode;
-	/*!< Defines type of measurement to be done for the next measure */
-	VL53L0X_HistogramModes HistogramMode;
-	/*!< Defines type of histogram measurement to be done for the next
-	 *	measure */
-	uint32_t MeasurementTimingBudgetMicroSeconds;
-	/*!< Defines the allowed total time for a single measurement */
-	uint32_t InterMeasurementPeriodMilliSeconds;
-	/*!< Defines time between two consecutive measurements (between two
-	 *	measurement starts). If set to 0 means back-to-back mode */
-	uint8_t XTalkCompensationEnable;
-	/*!< Tells if Crosstalk compensation shall be enable or not	 */
-	uint16_t XTalkCompensationRangeMilliMeter;
-	/*!< CrossTalk compensation range in millimeter	 */
-	FixPoint1616_t XTalkCompensationRateMegaCps;
-	/*!< CrossTalk compensation rate in Mega counts per seconds.
-	 *	Expressed in 16.16 fixed point format.	*/
-	int32_t RangeOffsetMicroMeters;
-	/*!< Range offset adjustment (mm).	*/
-
-	uint8_t LimitChecksEnable[VL53L0X_CHECKENABLE_NUMBER_OF_CHECKS];
-	/*!< This Array store all the Limit Check enable for this device. */
-	uint8_t LimitChecksStatus[VL53L0X_CHECKENABLE_NUMBER_OF_CHECKS];
-	/*!< This Array store all the Status of the check linked to last
-	* measurement. */
-	FixPoint1616_t LimitChecksValue[VL53L0X_CHECKENABLE_NUMBER_OF_CHECKS];
-	/*!< This Array store all the Limit Check value for this device */
-
-	uint8_t WrapAroundCheckEnable;
-	/*!< Tells if Wrap Around Check shall be enable or not */
-} VL53L0X_DeviceParameters_t;
-
-
-/** @defgroup VL53L0X_define_State_group Defines the current status of the device
- *	Defines the current status of the device
- *	@{
- */
-
-typedef uint8_t VL53L0X_State;
-
-#define VL53L0X_STATE_POWERDOWN		 ((VL53L0X_State)  0)
-	/*!< Device is in HW reset	*/
-#define VL53L0X_STATE_WAIT_STATICINIT ((VL53L0X_State)  1)
-	/*!< Device is initialized and wait for static initialization  */
-#define VL53L0X_STATE_STANDBY		 ((VL53L0X_State)  2)
-	/*!< Device is in Low power Standby mode   */
-#define VL53L0X_STATE_IDLE			 ((VL53L0X_State)  3)
-	/*!< Device has been initialized and ready to do measurements  */
-#define VL53L0X_STATE_RUNNING		 ((VL53L0X_State)  4)
-	/*!< Device is performing measurement */
-#define VL53L0X_STATE_UNKNOWN		 ((VL53L0X_State)  98)
-	/*!< Device is in unknown state and need to be rebooted	 */
-#define VL53L0X_STATE_ERROR			 ((VL53L0X_State)  99)
-	/*!< Device is in error state and need to be rebooted  */
-
-/** @} VL53L0X_define_State_group */
-
-
-/** @brief Structure containing the Dmax computation parameters and data
- */
-typedef struct {
-	int32_t AmbTuningWindowFactor_K;
-		/*!<  internal algo tuning (*1000) */
-	int32_t RetSignalAt0mm;
-		/*!< intermediate dmax computation value caching */
-} VL53L0X_DMaxData_t;
-
-/**
- * @struct VL53L0X_RangeData_t
- * @brief Range measurement data.
- */
-typedef struct {
-	uint32_t TimeStamp;		/*!< 32-bit time stamp. */
-	uint32_t MeasurementTimeUsec;
-		/*!< Give the Measurement time needed by the device to do the
-		 * measurement.*/
-
-
-	uint16_t RangeMilliMeter;	/*!< range distance in millimeter. */
-
-	uint16_t RangeDMaxMilliMeter;
-		/*!< Tells what is the maximum detection distance of the device
-		 * in current setup and environment conditions (Filled when
-		 *	applicable) */
-
-	FixPoint1616_t SignalRateRtnMegaCps;
-		/*!< Return signal rate (MCPS)\n these is a 16.16 fix point
-		 *	value, which is effectively a measure of target
-		 *	 reflectance.*/
-	FixPoint1616_t AmbientRateRtnMegaCps;
-		/*!< Return ambient rate (MCPS)\n these is a 16.16 fix point
-		 *	value, which is effectively a measure of the ambien
-		 *	t light.*/
-
-	uint16_t EffectiveSpadRtnCount;
-		/*!< Return the effective SPAD count for the return signal.
-		 *	To obtain Real value it should be divided by 256 */
-
-	uint8_t ZoneId;
-		/*!< Denotes which zone and range scheduler stage the range
-		 *	data relates to. */
-	uint8_t RangeFractionalPart;
-		/*!< Fractional part of range distance. Final value is a
-		 *	FixPoint168 value. */
-	uint8_t RangeStatus;
-		/*!< Range Status for the current measurement. This is device
-		 *	dependent. Value = 0 means value is valid.
-		 *	See \ref RangeStatusPage */
-} VL53L0X_RangingMeasurementData_t;
-
-
-#define VL53L0X_HISTOGRAM_BUFFER_SIZE 24
-
-/**
- * @struct VL53L0X_HistogramData_t
- * @brief Histogram measurement data.
- */
-typedef struct {
-	/* Histogram Measurement data */
-	uint32_t HistogramData[VL53L0X_HISTOGRAM_BUFFER_SIZE];
-	/*!< Histogram data */
-	uint8_t HistogramType; /*!< Indicate the types of histogram data :
-	Return only, Reference only, both Return and Reference */
-	uint8_t FirstBin; /*!< First Bin value */
-	uint8_t BufferSize; /*!< Buffer Size - Set by the user.*/
-	uint8_t NumberOfBins;
-	/*!< Number of bins filled by the histogram measurement */
-
-	VL53L0X_DeviceError ErrorStatus;
-	/*!< Error status of the current measurement. \n
-	see @a ::VL53L0X_DeviceError @a VL53L0X_GetStatusErrorString() */
-} VL53L0X_HistogramMeasurementData_t;
-
-#define VL53L0X_REF_SPAD_BUFFER_SIZE 6
-
-/**
- * @struct VL53L0X_SpadData_t
- * @brief Spad Configuration Data.
- */
-typedef struct {
-	uint8_t RefSpadEnables[VL53L0X_REF_SPAD_BUFFER_SIZE];
-	/*!< Reference Spad Enables */
-	uint8_t RefGoodSpadMap[VL53L0X_REF_SPAD_BUFFER_SIZE];
-	/*!< Reference Spad Good Spad Map */
-} VL53L0X_SpadData_t;
-
-typedef struct {
-	FixPoint1616_t OscFrequencyMHz; /* Frequency used */
-
-	uint16_t LastEncodedTimeout;
-	/* last encoded Time out used for timing budget*/
-
-	VL53L0X_GpioFunctionality Pin0GpioFunctionality;
-	/* store the functionality of the GPIO: pin0 */
-
-	uint32_t FinalRangeTimeoutMicroSecs;
-	 /*!< Execution time of the final range*/
-	uint8_t FinalRangeVcselPulsePeriod;
-	 /*!< Vcsel pulse period (pll clocks) for the final range measurement*/
-	uint32_t PreRangeTimeoutMicroSecs;
-	 /*!< Execution time of the final range*/
-	uint8_t PreRangeVcselPulsePeriod;
-	 /*!< Vcsel pulse period (pll clocks) for the pre-range measurement*/
-
-	uint16_t SigmaEstRefArray;
-	 /*!< Reference array sigma value in 1/100th of [mm] e.g. 100 = 1mm */
-	uint16_t SigmaEstEffPulseWidth;
-	 /*!< Effective Pulse width for sigma estimate in 1/100th
-	  * of ns e.g. 900 = 9.0ns */
-	uint16_t SigmaEstEffAmbWidth;
-	 /*!< Effective Ambient width for sigma estimate in 1/100th of ns
-	  * e.g. 500 = 5.0ns */
-
-
-	uint8_t ReadDataFromDeviceDone; /* Indicate if read from device has
-	been done (==1) or not (==0) */
-	uint8_t ModuleId; /* Module ID */
-	uint8_t Revision; /* test Revision */
-	char ProductId[VL53L0X_MAX_STRING_LENGTH];
-		/* Product Identifier String  */
-	uint8_t ReferenceSpadCount; /* used for ref spad management */
-	uint8_t ReferenceSpadType;	/* used for ref spad management */
-	uint8_t RefSpadsInitialised; /* reports if ref spads are initialised. */
-	uint32_t PartUIDUpper; /*!< Unique Part ID Upper */
-	uint32_t PartUIDLower; /*!< Unique Part ID Lower */
-	FixPoint1616_t SignalRateMeasFixed400mm; /*!< Peek Signal rate
-	at 400 mm*/
-
-} VL53L0X_DeviceSpecificParameters_t;
-
-/**
- * @struct VL53L0X_DevData_t
- *
- * @brief VL53L0X PAL device ST private data structure \n
- * End user should never access any of these field directly
- *
- * These must never access directly but only via macro
- */
-typedef struct {
-	VL53L0X_DMaxData_t DMaxData;
-	/*!< Dmax Data */
-	int32_t	 Part2PartOffsetNVMMicroMeter;
-	/*!< backed up NVM value */
-	int32_t	 Part2PartOffsetAdjustmentNVMMicroMeter;
-	/*!< backed up NVM value representing additional offset adjustment */
-	VL53L0X_DeviceParameters_t CurrentParameters;
-	/*!< Current Device Parameter */
-	VL53L0X_RangingMeasurementData_t LastRangeMeasure;
-	/*!< Ranging Data */
-	VL53L0X_HistogramMeasurementData_t LastHistogramMeasure;
-	/*!< Histogram Data */
-	VL53L0X_DeviceSpecificParameters_t DeviceSpecificParameters;
-	/*!< Parameters specific to the device */
-	VL53L0X_SpadData_t SpadData;
-	/*!< Spad Data */
-	uint8_t SequenceConfig;
-	/*!< Internal value for the sequence config */
-	uint8_t RangeFractionalEnable;
-	/*!< Enable/Disable fractional part of ranging data */
-	VL53L0X_State PalState;
-	/*!< Current state of the PAL for this device */
-	VL53L0X_PowerModes PowerMode;
-	/*!< Current Power Mode	 */
-	uint16_t SigmaEstRefArray;
-	/*!< Reference array sigma value in 1/100th of [mm] e.g. 100 = 1mm */
-	uint16_t SigmaEstEffPulseWidth;
-	/*!< Effective Pulse width for sigma estimate in 1/100th
-	* of ns e.g. 900 = 9.0ns */
-	uint16_t SigmaEstEffAmbWidth;
-	/*!< Effective Ambient width for sigma estimate in 1/100th of ns
-	* e.g. 500 = 5.0ns */
-	uint8_t StopVariable;
-	/*!< StopVariable used during the stop sequence */
-	uint16_t targetRefRate;
-	/*!< Target Ambient Rate for Ref spad management */
-	FixPoint1616_t SigmaEstimate;
-	/*!< Sigma Estimate - based on ambient & VCSEL rates and
-	* signal_total_events */
-	FixPoint1616_t SignalEstimate;
-	/*!< Signal Estimate - based on ambient & VCSEL rates and cross talk */
-	FixPoint1616_t LastSignalRefMcps;
-	/*!< Latest Signal ref in Mcps */
-	uint8_t *pTuningSettingsPointer;
-	/*!< Pointer for Tuning Settings table */
-	uint8_t UseInternalTuningSettings;
-	/*!< Indicate if we use	 Tuning Settings table */
-	uint16_t LinearityCorrectiveGain;
-	/*!< Linearity Corrective Gain value in x1000 */
-	uint16_t DmaxCalRangeMilliMeter;
-	/*!< Dmax Calibration Range millimeter */
-	FixPoint1616_t DmaxCalSignalRateRtnMegaCps;
-	/*!< Dmax Calibration Signal Rate Return MegaCps */
-
-} VL53L0X_DevData_t;
-
-
-/** @defgroup VL53L0X_define_InterruptPolarity_group Defines the Polarity
- * of the Interrupt
- *	Defines the Polarity of the Interrupt
- *	@{
- */
-typedef uint8_t VL53L0X_InterruptPolarity;
-
-#define VL53L0X_INTERRUPTPOLARITY_LOW	   ((VL53L0X_InterruptPolarity)	0)
-/*!< Set active low polarity best setup for falling edge. */
-#define VL53L0X_INTERRUPTPOLARITY_HIGH	   ((VL53L0X_InterruptPolarity)	1)
-/*!< Set active high polarity best setup for rising edge. */
-
-/** @} VL53L0X_define_InterruptPolarity_group */
-
-
-/** @defgroup VL53L0X_define_VcselPeriod_group Vcsel Period Defines
- *	Defines the range measurement for which to access the vcsel period.
- *	@{
- */
-typedef uint8_t VL53L0X_VcselPeriod;
-
-#define VL53L0X_VCSEL_PERIOD_PRE_RANGE	((VL53L0X_VcselPeriod) 0)
-/*!<Identifies the pre-range vcsel period. */
-#define VL53L0X_VCSEL_PERIOD_FINAL_RANGE ((VL53L0X_VcselPeriod) 1)
-/*!<Identifies the final range vcsel period. */
-
-/** @} VL53L0X_define_VcselPeriod_group */
-
-/** @defgroup VL53L0X_define_SchedulerSequence_group Defines the steps
- * carried out by the scheduler during a range measurement.
- *	@{
- *	Defines the states of all the steps in the scheduler
- *	i.e. enabled/disabled.
- */
-typedef struct {
-	uint8_t		 TccOn;	   /*!<Reports if Target Centre Check On  */
-	uint8_t		 MsrcOn;	   /*!<Reports if MSRC On  */
-	uint8_t		 DssOn;		   /*!<Reports if DSS On  */
-	uint8_t		 PreRangeOn;   /*!<Reports if Pre-Range On	*/
-	uint8_t		 FinalRangeOn; /*!<Reports if Final-Range On  */
-} VL53L0X_SchedulerSequenceSteps_t;
-
-/** @} VL53L0X_define_SchedulerSequence_group */
-
-/** @defgroup VL53L0X_define_SequenceStepId_group Defines the Polarity
- *	of the Interrupt
- *	Defines the the sequence steps performed during ranging..
- *	@{
- */
-typedef uint8_t VL53L0X_SequenceStepId;
-
-#define	 VL53L0X_SEQUENCESTEP_TCC		 ((VL53L0X_VcselPeriod) 0)
-/*!<Target CentreCheck identifier. */
-#define	 VL53L0X_SEQUENCESTEP_DSS		 ((VL53L0X_VcselPeriod) 1)
-/*!<Dynamic Spad Selection function Identifier. */
-#define	 VL53L0X_SEQUENCESTEP_MSRC		 ((VL53L0X_VcselPeriod) 2)
-/*!<Minimum Signal Rate Check function Identifier. */
-#define	 VL53L0X_SEQUENCESTEP_PRE_RANGE	 ((VL53L0X_VcselPeriod) 3)
-/*!<Pre-Range check Identifier. */
-#define	 VL53L0X_SEQUENCESTEP_FINAL_RANGE ((VL53L0X_VcselPeriod) 4)
-/*!<Final Range Check Identifier. */
-
-#define	 VL53L0X_SEQUENCESTEP_NUMBER_OF_CHECKS			 5
-/*!<Number of Sequence Step Managed by the API. */
-
-/** @} VL53L0X_define_SequenceStepId_group */
-
-
-/* MACRO Definitions */
-/** @defgroup VL53L0X_define_GeneralMacro_group General Macro Defines
- *	General Macro Defines
- *	@{
- */
-
-/* Defines */
-#define VL53L0X_SETPARAMETERFIELD(Dev, field, value) \
-	PALDevDataSet(Dev, CurrentParameters.field, value)
-
-#define VL53L0X_GETPARAMETERFIELD(Dev, field, variable) \
-	variable = PALDevDataGet(Dev, CurrentParameters).field
-
-
-#define VL53L0X_SETARRAYPARAMETERFIELD(Dev, field, index, value) \
-	PALDevDataSet(Dev, CurrentParameters.field[index], value)
-
-#define VL53L0X_GETARRAYPARAMETERFIELD(Dev, field, index, variable) \
-	variable = PALDevDataGet(Dev, CurrentParameters).field[index]
-
-
-#define VL53L0X_SETDEVICESPECIFICPARAMETER(Dev, field, value) \
-		PALDevDataSet(Dev, DeviceSpecificParameters.field, value)
-
-#define VL53L0X_GETDEVICESPECIFICPARAMETER(Dev, field) \
-		PALDevDataGet(Dev, DeviceSpecificParameters).field
-
-
-#define VL53L0X_FIXPOINT1616TOFIXPOINT97(Value) \
-	(uint16_t)((Value>>9)&0xFFFF)
-#define VL53L0X_FIXPOINT97TOFIXPOINT1616(Value) \
-	(FixPoint1616_t)(Value<<9)
-
-#define VL53L0X_FIXPOINT1616TOFIXPOINT88(Value) \
-	(uint16_t)((Value>>8)&0xFFFF)
-#define VL53L0X_FIXPOINT88TOFIXPOINT1616(Value) \
-	(FixPoint1616_t)(Value<<8)
-
-#define VL53L0X_FIXPOINT1616TOFIXPOINT412(Value) \
-	(uint16_t)((Value>>4)&0xFFFF)
-#define VL53L0X_FIXPOINT412TOFIXPOINT1616(Value) \
-	(FixPoint1616_t)(Value<<4)
-
-#define VL53L0X_FIXPOINT1616TOFIXPOINT313(Value) \
-	(uint16_t)((Value>>3)&0xFFFF)
-#define VL53L0X_FIXPOINT313TOFIXPOINT1616(Value) \
-	(FixPoint1616_t)(Value<<3)
-
-#define VL53L0X_FIXPOINT1616TOFIXPOINT08(Value) \
-	(uint8_t)((Value>>8)&0x00FF)
-#define VL53L0X_FIXPOINT08TOFIXPOINT1616(Value) \
-	(FixPoint1616_t)(Value<<8)
-
-#define VL53L0X_FIXPOINT1616TOFIXPOINT53(Value) \
-	(uint8_t)((Value>>13)&0x00FF)
-#define VL53L0X_FIXPOINT53TOFIXPOINT1616(Value) \
-	(FixPoint1616_t)(Value<<13)
-
-#define VL53L0X_FIXPOINT1616TOFIXPOINT102(Value) \
-	(uint16_t)((Value>>14)&0x0FFF)
-#define VL53L0X_FIXPOINT102TOFIXPOINT1616(Value) \
-	(FixPoint1616_t)(Value<<12)
-
-#define VL53L0X_MAKEUINT16(lsb, msb) (uint16_t)((((uint16_t)msb)<<8) + \
-		(uint16_t)lsb)
-
-/** @} VL53L0X_define_GeneralMacro_group */
-
-/** @} VL53L0X_globaldefine_group */
-
-
-
-
-
-
-
-#ifdef __cplusplus
-}
-#endif
-
-
-#endif /* _VL53L0X_DEF_H_ */
+/*******************************************************************************
+Copyright � 2016, STMicroelectronics International N.V.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+	* Redistributions of source code must retain the above copyright
+	  notice, this list of conditions and the following disclaimer.
+	* 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.
+	* 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, FITNESS FOR A PARTICULAR PURPOSE, AND
+NON-INFRINGEMENT OF INTELLECTUAL PROPERTY RIGHTS ARE DISCLAIMED.
+IN NO EVENT SHALL STMICROELECTRONICS INTERNATIONAL N.V. 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 VL53L0X_def.h
+ *
+ * @brief Type definitions for VL53L0X API.
+ *
+ */
+
+
+#ifndef _VL53L0X_DEF_H_
+#define _VL53L0X_DEF_H_
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/** @defgroup VL53L0X_globaldefine_group VL53L0X Defines
+ *	@brief	  VL53L0X Defines
+ *	@{
+ */
+
+
+/** PAL SPECIFICATION major version */
+#define VL53L0X10_SPECIFICATION_VER_MAJOR   1
+/** PAL SPECIFICATION minor version */
+#define VL53L0X10_SPECIFICATION_VER_MINOR   2
+/** PAL SPECIFICATION sub version */
+#define VL53L0X10_SPECIFICATION_VER_SUB	   7
+/** PAL SPECIFICATION sub version */
+#define VL53L0X10_SPECIFICATION_VER_REVISION 1440
+
+/** VL53L0X PAL IMPLEMENTATION major version */
+#define VL53L0X10_IMPLEMENTATION_VER_MAJOR	1
+/** VL53L0X PAL IMPLEMENTATION minor version */
+#define VL53L0X10_IMPLEMENTATION_VER_MINOR	0
+/** VL53L0X PAL IMPLEMENTATION sub version */
+#define VL53L0X10_IMPLEMENTATION_VER_SUB		9
+/** VL53L0X PAL IMPLEMENTATION sub version */
+#define VL53L0X10_IMPLEMENTATION_VER_REVISION	3673
+
+/** PAL SPECIFICATION major version */
+#define VL53L0X_SPECIFICATION_VER_MAJOR	 1
+/** PAL SPECIFICATION minor version */
+#define VL53L0X_SPECIFICATION_VER_MINOR	 2
+/** PAL SPECIFICATION sub version */
+#define VL53L0X_SPECIFICATION_VER_SUB	 7
+/** PAL SPECIFICATION sub version */
+#define VL53L0X_SPECIFICATION_VER_REVISION 1440
+
+/** VL53L0X PAL IMPLEMENTATION major version */
+#define VL53L0X_IMPLEMENTATION_VER_MAJOR	  1
+/** VL53L0X PAL IMPLEMENTATION minor version */
+#define VL53L0X_IMPLEMENTATION_VER_MINOR	  0
+/** VL53L0X PAL IMPLEMENTATION sub version */
+#define VL53L0X_IMPLEMENTATION_VER_SUB	  2
+/** VL53L0X PAL IMPLEMENTATION sub version */
+#define VL53L0X_IMPLEMENTATION_VER_REVISION	  4823
+#define VL53L0X_DEFAULT_MAX_LOOP 2000
+#define VL53L0X_MAX_STRING_LENGTH 32
+
+
+#include "vl53l0x_device.h"
+#include "vl53l0x_types.h"
+
+
+/****************************************
+ * PRIVATE define do not edit
+ ****************************************/
+
+/** @brief Defines the parameters of the Get Version Functions
+ */
+typedef struct {
+	uint32_t	 revision; /*!< revision number */
+	uint8_t		 major;	   /*!< major number */
+	uint8_t		 minor;	   /*!< minor number */
+	uint8_t		 build;	   /*!< build number */
+} VL53L0X_Version_t;
+
+
+/** @brief Defines the parameters of the Get Device Info Functions
+ */
+typedef struct {
+	char Name[VL53L0X_MAX_STRING_LENGTH];
+		/*!< Name of the Device e.g. Left_Distance */
+	char Type[VL53L0X_MAX_STRING_LENGTH];
+		/*!< Type of the Device e.g VL53L0X */
+	char ProductId[VL53L0X_MAX_STRING_LENGTH];
+		/*!< Product Identifier String	*/
+	uint8_t ProductType;
+		/*!< Product Type, VL53L0X = 1, VL53L1 = 2 */
+	uint8_t ProductRevisionMajor;
+		/*!< Product revision major */
+	uint8_t ProductRevisionMinor;
+		/*!< Product revision minor */
+} VL53L0X_DeviceInfo_t;
+
+
+/** @defgroup VL53L0X_define_Error_group Error and Warning code returned by API
+ *	The following DEFINE are used to identify the PAL ERROR
+ *	@{
+ */
+
+typedef int8_t VL53L0X_Error;
+
+#define VL53L0X_ERROR_NONE		((VL53L0X_Error)	0)
+#define VL53L0X_ERROR_CALIBRATION_WARNING	((VL53L0X_Error) -1)
+	/*!< Warning invalid calibration data may be in used
+		\a	VL53L0X_InitData()
+		\a VL53L0X_GetOffsetCalibrationData
+		\a VL53L0X_SetOffsetCalibrationData */
+#define VL53L0X_ERROR_MIN_CLIPPED			((VL53L0X_Error) -2)
+	/*!< Warning parameter passed was clipped to min before to be applied */
+
+#define VL53L0X_ERROR_UNDEFINED				((VL53L0X_Error) -3)
+	/*!< Unqualified error */
+#define VL53L0X_ERROR_INVALID_PARAMS			((VL53L0X_Error) -4)
+	/*!< Parameter passed is invalid or out of range */
+#define VL53L0X_ERROR_NOT_SUPPORTED			((VL53L0X_Error) -5)
+	/*!< Function is not supported in current mode or configuration */
+#define VL53L0X_ERROR_RANGE_ERROR			((VL53L0X_Error) -6)
+	/*!< Device report a ranging error interrupt status */
+#define VL53L0X_ERROR_TIME_OUT				((VL53L0X_Error) -7)
+	/*!< Aborted due to time out */
+#define VL53L0X_ERROR_MODE_NOT_SUPPORTED			((VL53L0X_Error) -8)
+	/*!< Asked mode is not supported by the device */
+#define VL53L0X_ERROR_BUFFER_TOO_SMALL			((VL53L0X_Error) -9)
+	/*!< ... */
+#define VL53L0X_ERROR_GPIO_NOT_EXISTING			((VL53L0X_Error) -10)
+	/*!< User tried to setup a non-existing GPIO pin */
+#define VL53L0X_ERROR_GPIO_FUNCTIONALITY_NOT_SUPPORTED  ((VL53L0X_Error) -11)
+	/*!< unsupported GPIO functionality */
+#define VL53L0X_ERROR_INTERRUPT_NOT_CLEARED		((VL53L0X_Error) -12)
+	/*!< Error during interrupt clear */
+#define VL53L0X_ERROR_CONTROL_INTERFACE			((VL53L0X_Error) -20)
+	/*!< error reported from IO functions */
+#define VL53L0X_ERROR_INVALID_COMMAND			((VL53L0X_Error) -30)
+	/*!< The command is not allowed in the current device state
+	 *	(power down) */
+#define VL53L0X_ERROR_DIVISION_BY_ZERO			((VL53L0X_Error) -40)
+	/*!< In the function a division by zero occurs */
+#define VL53L0X_ERROR_REF_SPAD_INIT			((VL53L0X_Error) -50)
+	/*!< Error during reference SPAD initialization */
+#define VL53L0X_ERROR_NOT_IMPLEMENTED			((VL53L0X_Error) -99)
+	/*!< Tells requested functionality has not been implemented yet or
+	 * not compatible with the device */
+/** @} VL53L0X_define_Error_group */
+
+
+/** @defgroup VL53L0X_define_DeviceModes_group Defines Device modes
+ *	Defines all possible modes for the device
+ *	@{
+ */
+typedef uint8_t VL53L0X_DeviceModes;
+
+#define VL53L0X_DEVICEMODE_SINGLE_RANGING	((VL53L0X_DeviceModes)  0)
+#define VL53L0X_DEVICEMODE_CONTINUOUS_RANGING	((VL53L0X_DeviceModes)  1)
+#define VL53L0X_DEVICEMODE_SINGLE_HISTOGRAM	((VL53L0X_DeviceModes)  2)
+#define VL53L0X_DEVICEMODE_CONTINUOUS_TIMED_RANGING ((VL53L0X_DeviceModes) 3)
+#define VL53L0X_DEVICEMODE_SINGLE_ALS		((VL53L0X_DeviceModes) 10)
+#define VL53L0X_DEVICEMODE_GPIO_DRIVE		((VL53L0X_DeviceModes) 20)
+#define VL53L0X_DEVICEMODE_GPIO_OSC		((VL53L0X_DeviceModes) 21)
+	/* ... Modes to be added depending on device */
+/** @} VL53L0X_define_DeviceModes_group */
+
+
+
+/** @defgroup VL53L0X_define_HistogramModes_group Defines Histogram modes
+ *	Defines all possible Histogram modes for the device
+ *	@{
+ */
+typedef uint8_t VL53L0X_HistogramModes;
+
+#define VL53L0X_HISTOGRAMMODE_DISABLED		((VL53L0X_HistogramModes) 0)
+	/*!< Histogram Disabled */
+#define VL53L0X_HISTOGRAMMODE_REFERENCE_ONLY	((VL53L0X_HistogramModes) 1)
+	/*!< Histogram Reference array only */
+#define VL53L0X_HISTOGRAMMODE_RETURN_ONLY	((VL53L0X_HistogramModes) 2)
+	/*!< Histogram Return array only */
+#define VL53L0X_HISTOGRAMMODE_BOTH		((VL53L0X_HistogramModes) 3)
+	/*!< Histogram both Reference and Return Arrays */
+	/* ... Modes to be added depending on device */
+/** @} VL53L0X_define_HistogramModes_group */
+
+
+/** @defgroup VL53L0X_define_PowerModes_group List of available Power Modes
+ *	List of available Power Modes
+ *	@{
+ */
+
+typedef uint8_t VL53L0X_PowerModes;
+
+#define VL53L0X_POWERMODE_STANDBY_LEVEL1 ((VL53L0X_PowerModes) 0)
+	/*!< Standby level 1 */
+#define VL53L0X_POWERMODE_STANDBY_LEVEL2 ((VL53L0X_PowerModes) 1)
+	/*!< Standby level 2 */
+#define VL53L0X_POWERMODE_IDLE_LEVEL1	((VL53L0X_PowerModes) 2)
+	/*!< Idle level 1 */
+#define VL53L0X_POWERMODE_IDLE_LEVEL2	((VL53L0X_PowerModes) 3)
+	/*!< Idle level 2 */
+
+/** @} VL53L0X_define_PowerModes_group */
+
+
+/** @brief Defines all parameters for the device
+ */
+typedef struct {
+	VL53L0X_DeviceModes DeviceMode;
+	/*!< Defines type of measurement to be done for the next measure */
+	VL53L0X_HistogramModes HistogramMode;
+	/*!< Defines type of histogram measurement to be done for the next
+	 *	measure */
+	uint32_t MeasurementTimingBudgetMicroSeconds;
+	/*!< Defines the allowed total time for a single measurement */
+	uint32_t InterMeasurementPeriodMilliSeconds;
+	/*!< Defines time between two consecutive measurements (between two
+	 *	measurement starts). If set to 0 means back-to-back mode */
+	uint8_t XTalkCompensationEnable;
+	/*!< Tells if Crosstalk compensation shall be enable or not	 */
+	uint16_t XTalkCompensationRangeMilliMeter;
+	/*!< CrossTalk compensation range in millimeter	 */
+	FixPoint1616_t XTalkCompensationRateMegaCps;
+	/*!< CrossTalk compensation rate in Mega counts per seconds.
+	 *	Expressed in 16.16 fixed point format.	*/
+	int32_t RangeOffsetMicroMeters;
+	/*!< Range offset adjustment (mm).	*/
+
+	uint8_t LimitChecksEnable[VL53L0X_CHECKENABLE_NUMBER_OF_CHECKS];
+	/*!< This Array store all the Limit Check enable for this device. */
+	uint8_t LimitChecksStatus[VL53L0X_CHECKENABLE_NUMBER_OF_CHECKS];
+	/*!< This Array store all the Status of the check linked to last
+	* measurement. */
+	FixPoint1616_t LimitChecksValue[VL53L0X_CHECKENABLE_NUMBER_OF_CHECKS];
+	/*!< This Array store all the Limit Check value for this device */
+
+	uint8_t WrapAroundCheckEnable;
+	/*!< Tells if Wrap Around Check shall be enable or not */
+} VL53L0X_DeviceParameters_t;
+
+
+/** @defgroup VL53L0X_define_State_group Defines the current status of the device
+ *	Defines the current status of the device
+ *	@{
+ */
+
+typedef uint8_t VL53L0X_State;
+
+#define VL53L0X_STATE_POWERDOWN		 ((VL53L0X_State)  0)
+	/*!< Device is in HW reset	*/
+#define VL53L0X_STATE_WAIT_STATICINIT ((VL53L0X_State)  1)
+	/*!< Device is initialized and wait for static initialization  */
+#define VL53L0X_STATE_STANDBY		 ((VL53L0X_State)  2)
+	/*!< Device is in Low power Standby mode   */
+#define VL53L0X_STATE_IDLE			 ((VL53L0X_State)  3)
+	/*!< Device has been initialized and ready to do measurements  */
+#define VL53L0X_STATE_RUNNING		 ((VL53L0X_State)  4)
+	/*!< Device is performing measurement */
+#define VL53L0X_STATE_UNKNOWN		 ((VL53L0X_State)  98)
+	/*!< Device is in unknown state and need to be rebooted	 */
+#define VL53L0X_STATE_ERROR			 ((VL53L0X_State)  99)
+	/*!< Device is in error state and need to be rebooted  */
+
+/** @} VL53L0X_define_State_group */
+
+
+/** @brief Structure containing the Dmax computation parameters and data
+ */
+typedef struct {
+	int32_t AmbTuningWindowFactor_K;
+		/*!<  internal algo tuning (*1000) */
+	int32_t RetSignalAt0mm;
+		/*!< intermediate dmax computation value caching */
+} VL53L0X_DMaxData_t;
+
+/**
+ * @struct VL53L0X_RangeData_t
+ * @brief Range measurement data.
+ */
+typedef struct {
+	uint32_t TimeStamp;		/*!< 32-bit time stamp. */
+	uint32_t MeasurementTimeUsec;
+		/*!< Give the Measurement time needed by the device to do the
+		 * measurement.*/
+
+
+	uint16_t RangeMilliMeter;	/*!< range distance in millimeter. */
+
+	uint16_t RangeDMaxMilliMeter;
+		/*!< Tells what is the maximum detection distance of the device
+		 * in current setup and environment conditions (Filled when
+		 *	applicable) */
+
+	FixPoint1616_t SignalRateRtnMegaCps;
+		/*!< Return signal rate (MCPS)\n these is a 16.16 fix point
+		 *	value, which is effectively a measure of target
+		 *	 reflectance.*/
+	FixPoint1616_t AmbientRateRtnMegaCps;
+		/*!< Return ambient rate (MCPS)\n these is a 16.16 fix point
+		 *	value, which is effectively a measure of the ambien
+		 *	t light.*/
+
+	uint16_t EffectiveSpadRtnCount;
+		/*!< Return the effective SPAD count for the return signal.
+		 *	To obtain Real value it should be divided by 256 */
+
+	uint8_t ZoneId;
+		/*!< Denotes which zone and range scheduler stage the range
+		 *	data relates to. */
+	uint8_t RangeFractionalPart;
+		/*!< Fractional part of range distance. Final value is a
+		 *	FixPoint168 value. */
+	uint8_t RangeStatus;
+		/*!< Range Status for the current measurement. This is device
+		 *	dependent. Value = 0 means value is valid.
+		 *	See \ref RangeStatusPage */
+} VL53L0X_RangingMeasurementData_t;
+
+
+#define VL53L0X_HISTOGRAM_BUFFER_SIZE 24
+
+/**
+ * @struct VL53L0X_HistogramData_t
+ * @brief Histogram measurement data.
+ */
+typedef struct {
+	/* Histogram Measurement data */
+	uint32_t HistogramData[VL53L0X_HISTOGRAM_BUFFER_SIZE];
+	/*!< Histogram data */
+	uint8_t HistogramType; /*!< Indicate the types of histogram data :
+	Return only, Reference only, both Return and Reference */
+	uint8_t FirstBin; /*!< First Bin value */
+	uint8_t BufferSize; /*!< Buffer Size - Set by the user.*/
+	uint8_t NumberOfBins;
+	/*!< Number of bins filled by the histogram measurement */
+
+	VL53L0X_DeviceError ErrorStatus;
+	/*!< Error status of the current measurement. \n
+	see @a ::VL53L0X_DeviceError @a VL53L0X_GetStatusErrorString() */
+} VL53L0X_HistogramMeasurementData_t;
+
+#define VL53L0X_REF_SPAD_BUFFER_SIZE 6
+
+/**
+ * @struct VL53L0X_SpadData_t
+ * @brief Spad Configuration Data.
+ */
+typedef struct {
+	uint8_t RefSpadEnables[VL53L0X_REF_SPAD_BUFFER_SIZE];
+	/*!< Reference Spad Enables */
+	uint8_t RefGoodSpadMap[VL53L0X_REF_SPAD_BUFFER_SIZE];
+	/*!< Reference Spad Good Spad Map */
+} VL53L0X_SpadData_t;
+
+typedef struct {
+	FixPoint1616_t OscFrequencyMHz; /* Frequency used */
+
+	uint16_t LastEncodedTimeout;
+	/* last encoded Time out used for timing budget*/
+
+	VL53L0X_GpioFunctionality Pin0GpioFunctionality;
+	/* store the functionality of the GPIO: pin0 */
+
+	uint32_t FinalRangeTimeoutMicroSecs;
+	 /*!< Execution time of the final range*/
+	uint8_t FinalRangeVcselPulsePeriod;
+	 /*!< Vcsel pulse period (pll clocks) for the final range measurement*/
+	uint32_t PreRangeTimeoutMicroSecs;
+	 /*!< Execution time of the final range*/
+	uint8_t PreRangeVcselPulsePeriod;
+	 /*!< Vcsel pulse period (pll clocks) for the pre-range measurement*/
+
+	uint16_t SigmaEstRefArray;
+	 /*!< Reference array sigma value in 1/100th of [mm] e.g. 100 = 1mm */
+	uint16_t SigmaEstEffPulseWidth;
+	 /*!< Effective Pulse width for sigma estimate in 1/100th
+	  * of ns e.g. 900 = 9.0ns */
+	uint16_t SigmaEstEffAmbWidth;
+	 /*!< Effective Ambient width for sigma estimate in 1/100th of ns
+	  * e.g. 500 = 5.0ns */
+
+
+	uint8_t ReadDataFromDeviceDone; /* Indicate if read from device has
+	been done (==1) or not (==0) */
+	uint8_t ModuleId; /* Module ID */
+	uint8_t Revision; /* test Revision */
+	char ProductId[VL53L0X_MAX_STRING_LENGTH];
+		/* Product Identifier String  */
+	uint8_t ReferenceSpadCount; /* used for ref spad management */
+	uint8_t ReferenceSpadType;	/* used for ref spad management */
+	uint8_t RefSpadsInitialised; /* reports if ref spads are initialised. */
+	uint32_t PartUIDUpper; /*!< Unique Part ID Upper */
+	uint32_t PartUIDLower; /*!< Unique Part ID Lower */
+	FixPoint1616_t SignalRateMeasFixed400mm; /*!< Peek Signal rate
+	at 400 mm*/
+
+} VL53L0X_DeviceSpecificParameters_t;
+
+/**
+ * @struct VL53L0X_DevData_t
+ *
+ * @brief VL53L0X PAL device ST private data structure \n
+ * End user should never access any of these field directly
+ *
+ * These must never access directly but only via macro
+ */
+typedef struct {
+	VL53L0X_DMaxData_t DMaxData;
+	/*!< Dmax Data */
+	int32_t	 Part2PartOffsetNVMMicroMeter;
+	/*!< backed up NVM value */
+	int32_t	 Part2PartOffsetAdjustmentNVMMicroMeter;
+	/*!< backed up NVM value representing additional offset adjustment */
+	VL53L0X_DeviceParameters_t CurrentParameters;
+	/*!< Current Device Parameter */
+	VL53L0X_RangingMeasurementData_t LastRangeMeasure;
+	/*!< Ranging Data */
+	VL53L0X_HistogramMeasurementData_t LastHistogramMeasure;
+	/*!< Histogram Data */
+	VL53L0X_DeviceSpecificParameters_t DeviceSpecificParameters;
+	/*!< Parameters specific to the device */
+	VL53L0X_SpadData_t SpadData;
+	/*!< Spad Data */
+	uint8_t SequenceConfig;
+	/*!< Internal value for the sequence config */
+	uint8_t RangeFractionalEnable;
+	/*!< Enable/Disable fractional part of ranging data */
+	VL53L0X_State PalState;
+	/*!< Current state of the PAL for this device */
+	VL53L0X_PowerModes PowerMode;
+	/*!< Current Power Mode	 */
+	uint16_t SigmaEstRefArray;
+	/*!< Reference array sigma value in 1/100th of [mm] e.g. 100 = 1mm */
+	uint16_t SigmaEstEffPulseWidth;
+	/*!< Effective Pulse width for sigma estimate in 1/100th
+	* of ns e.g. 900 = 9.0ns */
+	uint16_t SigmaEstEffAmbWidth;
+	/*!< Effective Ambient width for sigma estimate in 1/100th of ns
+	* e.g. 500 = 5.0ns */
+	uint8_t StopVariable;
+	/*!< StopVariable used during the stop sequence */
+	uint16_t targetRefRate;
+	/*!< Target Ambient Rate for Ref spad management */
+	FixPoint1616_t SigmaEstimate;
+	/*!< Sigma Estimate - based on ambient & VCSEL rates and
+	* signal_total_events */
+	FixPoint1616_t SignalEstimate;
+	/*!< Signal Estimate - based on ambient & VCSEL rates and cross talk */
+	FixPoint1616_t LastSignalRefMcps;
+	/*!< Latest Signal ref in Mcps */
+	uint8_t *pTuningSettingsPointer;
+	/*!< Pointer for Tuning Settings table */
+	uint8_t UseInternalTuningSettings;
+	/*!< Indicate if we use	 Tuning Settings table */
+	uint16_t LinearityCorrectiveGain;
+	/*!< Linearity Corrective Gain value in x1000 */
+	uint16_t DmaxCalRangeMilliMeter;
+	/*!< Dmax Calibration Range millimeter */
+	FixPoint1616_t DmaxCalSignalRateRtnMegaCps;
+	/*!< Dmax Calibration Signal Rate Return MegaCps */
+
+} VL53L0X_DevData_t;
+
+
+/** @defgroup VL53L0X_define_InterruptPolarity_group Defines the Polarity
+ * of the Interrupt
+ *	Defines the Polarity of the Interrupt
+ *	@{
+ */
+typedef uint8_t VL53L0X_InterruptPolarity;
+
+#define VL53L0X_INTERRUPTPOLARITY_LOW	   ((VL53L0X_InterruptPolarity)	0)
+/*!< Set active low polarity best setup for falling edge. */
+#define VL53L0X_INTERRUPTPOLARITY_HIGH	   ((VL53L0X_InterruptPolarity)	1)
+/*!< Set active high polarity best setup for rising edge. */
+
+/** @} VL53L0X_define_InterruptPolarity_group */
+
+
+/** @defgroup VL53L0X_define_VcselPeriod_group Vcsel Period Defines
+ *	Defines the range measurement for which to access the vcsel period.
+ *	@{
+ */
+typedef uint8_t VL53L0X_VcselPeriod;
+
+#define VL53L0X_VCSEL_PERIOD_PRE_RANGE	((VL53L0X_VcselPeriod) 0)
+/*!<Identifies the pre-range vcsel period. */
+#define VL53L0X_VCSEL_PERIOD_FINAL_RANGE ((VL53L0X_VcselPeriod) 1)
+/*!<Identifies the final range vcsel period. */
+
+/** @} VL53L0X_define_VcselPeriod_group */
+
+/** @defgroup VL53L0X_define_SchedulerSequence_group Defines the steps
+ * carried out by the scheduler during a range measurement.
+ *	@{
+ *	Defines the states of all the steps in the scheduler
+ *	i.e. enabled/disabled.
+ */
+typedef struct {
+	uint8_t		 TccOn;	   /*!<Reports if Target Centre Check On  */
+	uint8_t		 MsrcOn;	   /*!<Reports if MSRC On  */
+	uint8_t		 DssOn;		   /*!<Reports if DSS On  */
+	uint8_t		 PreRangeOn;   /*!<Reports if Pre-Range On	*/
+	uint8_t		 FinalRangeOn; /*!<Reports if Final-Range On  */
+} VL53L0X_SchedulerSequenceSteps_t;
+
+/** @} VL53L0X_define_SchedulerSequence_group */
+
+/** @defgroup VL53L0X_define_SequenceStepId_group Defines the Polarity
+ *	of the Interrupt
+ *	Defines the the sequence steps performed during ranging..
+ *	@{
+ */
+typedef uint8_t VL53L0X_SequenceStepId;
+
+#define	 VL53L0X_SEQUENCESTEP_TCC		 ((VL53L0X_VcselPeriod) 0)
+/*!<Target CentreCheck identifier. */
+#define	 VL53L0X_SEQUENCESTEP_DSS		 ((VL53L0X_VcselPeriod) 1)
+/*!<Dynamic Spad Selection function Identifier. */
+#define	 VL53L0X_SEQUENCESTEP_MSRC		 ((VL53L0X_VcselPeriod) 2)
+/*!<Minimum Signal Rate Check function Identifier. */
+#define	 VL53L0X_SEQUENCESTEP_PRE_RANGE	 ((VL53L0X_VcselPeriod) 3)
+/*!<Pre-Range check Identifier. */
+#define	 VL53L0X_SEQUENCESTEP_FINAL_RANGE ((VL53L0X_VcselPeriod) 4)
+/*!<Final Range Check Identifier. */
+
+#define	 VL53L0X_SEQUENCESTEP_NUMBER_OF_CHECKS			 5
+/*!<Number of Sequence Step Managed by the API. */
+
+/** @} VL53L0X_define_SequenceStepId_group */
+
+
+/* MACRO Definitions */
+/** @defgroup VL53L0X_define_GeneralMacro_group General Macro Defines
+ *	General Macro Defines
+ *	@{
+ */
+
+/* Defines */
+#define VL53L0X_SETPARAMETERFIELD(Dev, field, value) \
+	PALDevDataSet(Dev, CurrentParameters.field, value)
+
+#define VL53L0X_GETPARAMETERFIELD(Dev, field, variable) \
+	variable = PALDevDataGet(Dev, CurrentParameters).field
+
+
+#define VL53L0X_SETARRAYPARAMETERFIELD(Dev, field, index, value) \
+	PALDevDataSet(Dev, CurrentParameters.field[index], value)
+
+#define VL53L0X_GETARRAYPARAMETERFIELD(Dev, field, index, variable) \
+	variable = PALDevDataGet(Dev, CurrentParameters).field[index]
+
+
+#define VL53L0X_SETDEVICESPECIFICPARAMETER(Dev, field, value) \
+		PALDevDataSet(Dev, DeviceSpecificParameters.field, value)
+
+#define VL53L0X_GETDEVICESPECIFICPARAMETER(Dev, field) \
+		PALDevDataGet(Dev, DeviceSpecificParameters).field
+
+
+#define VL53L0X_FIXPOINT1616TOFIXPOINT97(Value) \
+	(uint16_t)((Value>>9)&0xFFFF)
+#define VL53L0X_FIXPOINT97TOFIXPOINT1616(Value) \
+	(FixPoint1616_t)(Value<<9)
+
+#define VL53L0X_FIXPOINT1616TOFIXPOINT88(Value) \
+	(uint16_t)((Value>>8)&0xFFFF)
+#define VL53L0X_FIXPOINT88TOFIXPOINT1616(Value) \
+	(FixPoint1616_t)(Value<<8)
+
+#define VL53L0X_FIXPOINT1616TOFIXPOINT412(Value) \
+	(uint16_t)((Value>>4)&0xFFFF)
+#define VL53L0X_FIXPOINT412TOFIXPOINT1616(Value) \
+	(FixPoint1616_t)(Value<<4)
+
+#define VL53L0X_FIXPOINT1616TOFIXPOINT313(Value) \
+	(uint16_t)((Value>>3)&0xFFFF)
+#define VL53L0X_FIXPOINT313TOFIXPOINT1616(Value) \
+	(FixPoint1616_t)(Value<<3)
+
+#define VL53L0X_FIXPOINT1616TOFIXPOINT08(Value) \
+	(uint8_t)((Value>>8)&0x00FF)
+#define VL53L0X_FIXPOINT08TOFIXPOINT1616(Value) \
+	(FixPoint1616_t)(Value<<8)
+
+#define VL53L0X_FIXPOINT1616TOFIXPOINT53(Value) \
+	(uint8_t)((Value>>13)&0x00FF)
+#define VL53L0X_FIXPOINT53TOFIXPOINT1616(Value) \
+	(FixPoint1616_t)(Value<<13)
+
+#define VL53L0X_FIXPOINT1616TOFIXPOINT102(Value) \
+	(uint16_t)((Value>>14)&0x0FFF)
+#define VL53L0X_FIXPOINT102TOFIXPOINT1616(Value) \
+	(FixPoint1616_t)(Value<<12)
+
+#define VL53L0X_MAKEUINT16(lsb, msb) (uint16_t)((((uint16_t)msb)<<8) + \
+		(uint16_t)lsb)
+
+/** @} VL53L0X_define_GeneralMacro_group */
+
+/** @} VL53L0X_globaldefine_group */
+
+
+
+
+
+
+
+#ifdef __cplusplus
+}
+#endif
+
+
+#endif /* _VL53L0X_DEF_H_ */
diff --git a/STS/TOF/vl53l0x/vl53l0x_device.h b/STS/TOF/vl53l0x/vl53l0x_device.h
index dc010c2..4aa572b 100644
--- a/STS/TOF/vl53l0x/vl53l0x_device.h
+++ b/STS/TOF/vl53l0x/vl53l0x_device.h
@@ -1,257 +1,257 @@
-/*******************************************************************************
-Copyright � 2016, STMicroelectronics International N.V.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-    * Redistributions of source code must retain the above copyright
-      notice, this list of conditions and the following disclaimer.
-    * 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.
-    * 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, FITNESS FOR A PARTICULAR PURPOSE, AND
-NON-INFRINGEMENT OF INTELLECTUAL PROPERTY RIGHTS ARE DISCLAIMED.
-IN NO EVENT SHALL STMICROELECTRONICS INTERNATIONAL N.V. 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.
-*******************************************************************************/
-
-/**
- * Device specific defines. To be adapted by implementer for the targeted
- * device.
- */
-
-#ifndef _VL53L0X_DEVICE_H_
-#define _VL53L0X_DEVICE_H_
-
-#include "vl53l0x_types.h"
-
-
-/** @defgroup VL53L0X_DevSpecDefines_group VL53L0X cut1.1 Device Specific Defines
- *  @brief VL53L0X cut1.1 Device Specific Defines
- *  @{
- */
-
-
-/** @defgroup VL53L0X_DeviceError_group Device Error
- *  @brief Device Error code
- *
- *  This enum is Device specific it should be updated in the implementation
- *  Use @a VL53L0X_GetStatusErrorString() to get the string.
- *  It is related to Status Register of the Device.
- *  @{
- */
-typedef uint8_t VL53L0X_DeviceError;
-
-#define VL53L0X_DEVICEERROR_NONE                        ((VL53L0X_DeviceError) 0)
-	/*!< 0  NoError  */
-#define VL53L0X_DEVICEERROR_VCSELCONTINUITYTESTFAILURE  ((VL53L0X_DeviceError) 1)
-#define VL53L0X_DEVICEERROR_VCSELWATCHDOGTESTFAILURE    ((VL53L0X_DeviceError) 2)
-#define VL53L0X_DEVICEERROR_NOVHVVALUEFOUND             ((VL53L0X_DeviceError) 3)
-#define VL53L0X_DEVICEERROR_MSRCNOTARGET                ((VL53L0X_DeviceError) 4)
-#define VL53L0X_DEVICEERROR_SNRCHECK                    ((VL53L0X_DeviceError) 5)
-#define VL53L0X_DEVICEERROR_RANGEPHASECHECK             ((VL53L0X_DeviceError) 6)
-#define VL53L0X_DEVICEERROR_SIGMATHRESHOLDCHECK         ((VL53L0X_DeviceError) 7)
-#define VL53L0X_DEVICEERROR_TCC                         ((VL53L0X_DeviceError) 8)
-#define VL53L0X_DEVICEERROR_PHASECONSISTENCY            ((VL53L0X_DeviceError) 9)
-#define VL53L0X_DEVICEERROR_MINCLIP                     ((VL53L0X_DeviceError) 10)
-#define VL53L0X_DEVICEERROR_RANGECOMPLETE               ((VL53L0X_DeviceError) 11)
-#define VL53L0X_DEVICEERROR_ALGOUNDERFLOW               ((VL53L0X_DeviceError) 12)
-#define VL53L0X_DEVICEERROR_ALGOOVERFLOW                ((VL53L0X_DeviceError) 13)
-#define VL53L0X_DEVICEERROR_RANGEIGNORETHRESHOLD        ((VL53L0X_DeviceError) 14)
-
-/** @} end of VL53L0X_DeviceError_group */
-
-
-/** @defgroup VL53L0X_CheckEnable_group Check Enable list
- *  @brief Check Enable code
- *
- *  Define used to specify the LimitCheckId.
- *  Use @a VL53L0X_GetLimitCheckInfo() to get the string.
- *  @{
- */
-
-#define VL53L0X_CHECKENABLE_SIGMA_FINAL_RANGE           0
-#define VL53L0X_CHECKENABLE_SIGNAL_RATE_FINAL_RANGE     1
-#define VL53L0X_CHECKENABLE_SIGNAL_REF_CLIP             2
-#define VL53L0X_CHECKENABLE_RANGE_IGNORE_THRESHOLD      3
-#define VL53L0X_CHECKENABLE_SIGNAL_RATE_MSRC            4
-#define VL53L0X_CHECKENABLE_SIGNAL_RATE_PRE_RANGE       5
-
-#define VL53L0X_CHECKENABLE_NUMBER_OF_CHECKS            6
-
-/** @}  end of VL53L0X_CheckEnable_group */
-
-
-/** @defgroup VL53L0X_GpioFunctionality_group Gpio Functionality
- *  @brief Defines the different functionalities for the device GPIO(s)
- *  @{
- */
-typedef uint8_t VL53L0X_GpioFunctionality;
-
-#define VL53L0X_GPIOFUNCTIONALITY_OFF                     \
-	((VL53L0X_GpioFunctionality)  0) /*!< NO Interrupt  */
-#define VL53L0X_GPIOFUNCTIONALITY_THRESHOLD_CROSSED_LOW   \
-	((VL53L0X_GpioFunctionality)  1) /*!< Level Low (value < thresh_low)  */
-#define VL53L0X_GPIOFUNCTIONALITY_THRESHOLD_CROSSED_HIGH   \
-	((VL53L0X_GpioFunctionality)  2) /*!< Level High (value > thresh_high) */
-#define VL53L0X_GPIOFUNCTIONALITY_THRESHOLD_CROSSED_OUT    \
-	((VL53L0X_GpioFunctionality)  3)
-	/*!< Out Of Window (value < thresh_low OR value > thresh_high)  */
-#define VL53L0X_GPIOFUNCTIONALITY_NEW_MEASURE_READY        \
-	((VL53L0X_GpioFunctionality)  4) /*!< New Sample Ready  */
-
-/** @} end of VL53L0X_GpioFunctionality_group */
-
-
-/* Device register map */
-
-/** @defgroup VL53L0X_DefineRegisters_group Define Registers
- *  @brief List of all the defined registers
- *  @{
- */
-#define VL53L0X_REG_SYSRANGE_START                        0x000
-	/** mask existing bit in #VL53L0X_REG_SYSRANGE_START*/
-	#define VL53L0X_REG_SYSRANGE_MODE_MASK          0x0F
-	/** bit 0 in #VL53L0X_REG_SYSRANGE_START write 1 toggle state in
-	 * continuous mode and arm next shot in single shot mode */
-	#define VL53L0X_REG_SYSRANGE_MODE_START_STOP    0x01
-	/** bit 1 write 0 in #VL53L0X_REG_SYSRANGE_START set single shot mode */
-	#define VL53L0X_REG_SYSRANGE_MODE_SINGLESHOT    0x00
-	/** bit 1 write 1 in #VL53L0X_REG_SYSRANGE_START set back-to-back
-	 *  operation mode */
-	#define VL53L0X_REG_SYSRANGE_MODE_BACKTOBACK    0x02
-	/** bit 2 write 1 in #VL53L0X_REG_SYSRANGE_START set timed operation
-	 *  mode */
-	#define VL53L0X_REG_SYSRANGE_MODE_TIMED         0x04
-	/** bit 3 write 1 in #VL53L0X_REG_SYSRANGE_START set histogram operation
-	 *  mode */
-	#define VL53L0X_REG_SYSRANGE_MODE_HISTOGRAM     0x08
-
-
-#define VL53L0X_REG_SYSTEM_THRESH_HIGH               0x000C
-#define VL53L0X_REG_SYSTEM_THRESH_LOW                0x000E
-
-
-#define VL53L0X_REG_SYSTEM_SEQUENCE_CONFIG		0x0001
-#define VL53L0X_REG_SYSTEM_RANGE_CONFIG			0x0009
-#define VL53L0X_REG_SYSTEM_INTERMEASUREMENT_PERIOD	0x0004
-
-
-#define VL53L0X_REG_SYSTEM_INTERRUPT_CONFIG_GPIO               0x000A
-	#define VL53L0X_REG_SYSTEM_INTERRUPT_GPIO_DISABLED	0x00
-	#define VL53L0X_REG_SYSTEM_INTERRUPT_GPIO_LEVEL_LOW	0x01
-	#define VL53L0X_REG_SYSTEM_INTERRUPT_GPIO_LEVEL_HIGH	0x02
-	#define VL53L0X_REG_SYSTEM_INTERRUPT_GPIO_OUT_OF_WINDOW	0x03
-	#define VL53L0X_REG_SYSTEM_INTERRUPT_GPIO_NEW_SAMPLE_READY	0x04
-
-#define VL53L0X_REG_GPIO_HV_MUX_ACTIVE_HIGH          0x0084
-
-
-#define VL53L0X_REG_SYSTEM_INTERRUPT_CLEAR           0x000B
-
-/* Result registers */
-#define VL53L0X_REG_RESULT_INTERRUPT_STATUS          0x0013
-#define VL53L0X_REG_RESULT_RANGE_STATUS              0x0014
-
-#define VL53L0X_REG_RESULT_CORE_PAGE  1
-#define VL53L0X_REG_RESULT_CORE_AMBIENT_WINDOW_EVENTS_RTN   0x00BC
-#define VL53L0X_REG_RESULT_CORE_RANGING_TOTAL_EVENTS_RTN    0x00C0
-#define VL53L0X_REG_RESULT_CORE_AMBIENT_WINDOW_EVENTS_REF   0x00D0
-#define VL53L0X_REG_RESULT_CORE_RANGING_TOTAL_EVENTS_REF    0x00D4
-#define VL53L0X_REG_RESULT_PEAK_SIGNAL_RATE_REF             0x00B6
-
-/* Algo register */
-
-#define VL53L0X_REG_ALGO_PART_TO_PART_RANGE_OFFSET_MM       0x0028
-
-#define VL53L0X_REG_I2C_SLAVE_DEVICE_ADDRESS                0x008a
-
-/* Check Limit registers */
-#define VL53L0X_REG_MSRC_CONFIG_CONTROL                     0x0060
-
-#define VL53L0X_REG_PRE_RANGE_CONFIG_MIN_SNR                      0X0027
-#define VL53L0X_REG_PRE_RANGE_CONFIG_VALID_PHASE_LOW              0x0056
-#define VL53L0X_REG_PRE_RANGE_CONFIG_VALID_PHASE_HIGH             0x0057
-#define VL53L0X_REG_PRE_RANGE_MIN_COUNT_RATE_RTN_LIMIT            0x0064
-
-#define VL53L0X_REG_FINAL_RANGE_CONFIG_MIN_SNR                    0X0067
-#define VL53L0X_REG_FINAL_RANGE_CONFIG_VALID_PHASE_LOW            0x0047
-#define VL53L0X_REG_FINAL_RANGE_CONFIG_VALID_PHASE_HIGH           0x0048
-#define VL53L0X_REG_FINAL_RANGE_CONFIG_MIN_COUNT_RATE_RTN_LIMIT   0x0044
-
-
-#define VL53L0X_REG_PRE_RANGE_CONFIG_SIGMA_THRESH_HI              0X0061
-#define VL53L0X_REG_PRE_RANGE_CONFIG_SIGMA_THRESH_LO              0X0062
-
-/* PRE RANGE registers */
-#define VL53L0X_REG_PRE_RANGE_CONFIG_VCSEL_PERIOD                 0x0050
-#define VL53L0X_REG_PRE_RANGE_CONFIG_TIMEOUT_MACROP_HI            0x0051
-#define VL53L0X_REG_PRE_RANGE_CONFIG_TIMEOUT_MACROP_LO            0x0052
-
-#define VL53L0X_REG_SYSTEM_HISTOGRAM_BIN                          0x0081
-#define VL53L0X_REG_HISTOGRAM_CONFIG_INITIAL_PHASE_SELECT         0x0033
-#define VL53L0X_REG_HISTOGRAM_CONFIG_READOUT_CTRL                 0x0055
-
-#define VL53L0X_REG_FINAL_RANGE_CONFIG_VCSEL_PERIOD               0x0070
-#define VL53L0X_REG_FINAL_RANGE_CONFIG_TIMEOUT_MACROP_HI          0x0071
-#define VL53L0X_REG_FINAL_RANGE_CONFIG_TIMEOUT_MACROP_LO          0x0072
-#define VL53L0X_REG_CROSSTALK_COMPENSATION_PEAK_RATE_MCPS         0x0020
-
-#define VL53L0X_REG_MSRC_CONFIG_TIMEOUT_MACROP                    0x0046
-
-
-#define VL53L0X_REG_SOFT_RESET_GO2_SOFT_RESET_N	                 0x00bf
-#define VL53L0X_REG_IDENTIFICATION_MODEL_ID                       0x00c0
-#define VL53L0X_REG_IDENTIFICATION_REVISION_ID                    0x00c2
-
-#define VL53L0X_REG_OSC_CALIBRATE_VAL                             0x00f8
-
-
-#define VL53L0X_SIGMA_ESTIMATE_MAX_VALUE                          65535
-/* equivalent to a range sigma of 655.35mm */
-
-#define VL53L0X_REG_GLOBAL_CONFIG_VCSEL_WIDTH          0x032
-#define VL53L0X_REG_GLOBAL_CONFIG_SPAD_ENABLES_REF_0   0x0B0
-#define VL53L0X_REG_GLOBAL_CONFIG_SPAD_ENABLES_REF_1   0x0B1
-#define VL53L0X_REG_GLOBAL_CONFIG_SPAD_ENABLES_REF_2   0x0B2
-#define VL53L0X_REG_GLOBAL_CONFIG_SPAD_ENABLES_REF_3   0x0B3
-#define VL53L0X_REG_GLOBAL_CONFIG_SPAD_ENABLES_REF_4   0x0B4
-#define VL53L0X_REG_GLOBAL_CONFIG_SPAD_ENABLES_REF_5   0x0B5
-
-#define VL53L0X_REG_GLOBAL_CONFIG_REF_EN_START_SELECT   0xB6
-#define VL53L0X_REG_DYNAMIC_SPAD_NUM_REQUESTED_REF_SPAD 0x4E /* 0x14E */
-#define VL53L0X_REG_DYNAMIC_SPAD_REF_EN_START_OFFSET    0x4F /* 0x14F */
-#define VL53L0X_REG_POWER_MANAGEMENT_GO1_POWER_FORCE    0x80
-
-/*
- * Speed of light in um per 1E-10 Seconds
- */
-
-#define VL53L0X_SPEED_OF_LIGHT_IN_AIR 2997
-
-#define VL53L0X_REG_VHV_CONFIG_PAD_SCL_SDA__EXTSUP_HV     0x0089
-
-#define VL53L0X_REG_ALGO_PHASECAL_LIM                         0x0030 /* 0x130 */
-#define VL53L0X_REG_ALGO_PHASECAL_CONFIG_TIMEOUT              0x0030
-
-/** @} VL53L0X_DefineRegisters_group */
-
-/** @} VL53L0X_DevSpecDefines_group */
-
-
-#endif
-
-/* _VL53L0X_DEVICE_H_ */
-
-
+/*******************************************************************************
+Copyright � 2016, STMicroelectronics International N.V.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+    * Redistributions of source code must retain the above copyright
+      notice, this list of conditions and the following disclaimer.
+    * 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.
+    * 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, FITNESS FOR A PARTICULAR PURPOSE, AND
+NON-INFRINGEMENT OF INTELLECTUAL PROPERTY RIGHTS ARE DISCLAIMED.
+IN NO EVENT SHALL STMICROELECTRONICS INTERNATIONAL N.V. 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.
+*******************************************************************************/
+
+/**
+ * Device specific defines. To be adapted by implementer for the targeted
+ * device.
+ */
+
+#ifndef _VL53L0X_DEVICE_H_
+#define _VL53L0X_DEVICE_H_
+
+#include "vl53l0x_types.h"
+
+
+/** @defgroup VL53L0X_DevSpecDefines_group VL53L0X cut1.1 Device Specific Defines
+ *  @brief VL53L0X cut1.1 Device Specific Defines
+ *  @{
+ */
+
+
+/** @defgroup VL53L0X_DeviceError_group Device Error
+ *  @brief Device Error code
+ *
+ *  This enum is Device specific it should be updated in the implementation
+ *  Use @a VL53L0X_GetStatusErrorString() to get the string.
+ *  It is related to Status Register of the Device.
+ *  @{
+ */
+typedef uint8_t VL53L0X_DeviceError;
+
+#define VL53L0X_DEVICEERROR_NONE                        ((VL53L0X_DeviceError) 0)
+	/*!< 0  NoError  */
+#define VL53L0X_DEVICEERROR_VCSELCONTINUITYTESTFAILURE  ((VL53L0X_DeviceError) 1)
+#define VL53L0X_DEVICEERROR_VCSELWATCHDOGTESTFAILURE    ((VL53L0X_DeviceError) 2)
+#define VL53L0X_DEVICEERROR_NOVHVVALUEFOUND             ((VL53L0X_DeviceError) 3)
+#define VL53L0X_DEVICEERROR_MSRCNOTARGET                ((VL53L0X_DeviceError) 4)
+#define VL53L0X_DEVICEERROR_SNRCHECK                    ((VL53L0X_DeviceError) 5)
+#define VL53L0X_DEVICEERROR_RANGEPHASECHECK             ((VL53L0X_DeviceError) 6)
+#define VL53L0X_DEVICEERROR_SIGMATHRESHOLDCHECK         ((VL53L0X_DeviceError) 7)
+#define VL53L0X_DEVICEERROR_TCC                         ((VL53L0X_DeviceError) 8)
+#define VL53L0X_DEVICEERROR_PHASECONSISTENCY            ((VL53L0X_DeviceError) 9)
+#define VL53L0X_DEVICEERROR_MINCLIP                     ((VL53L0X_DeviceError) 10)
+#define VL53L0X_DEVICEERROR_RANGECOMPLETE               ((VL53L0X_DeviceError) 11)
+#define VL53L0X_DEVICEERROR_ALGOUNDERFLOW               ((VL53L0X_DeviceError) 12)
+#define VL53L0X_DEVICEERROR_ALGOOVERFLOW                ((VL53L0X_DeviceError) 13)
+#define VL53L0X_DEVICEERROR_RANGEIGNORETHRESHOLD        ((VL53L0X_DeviceError) 14)
+
+/** @} end of VL53L0X_DeviceError_group */
+
+
+/** @defgroup VL53L0X_CheckEnable_group Check Enable list
+ *  @brief Check Enable code
+ *
+ *  Define used to specify the LimitCheckId.
+ *  Use @a VL53L0X_GetLimitCheckInfo() to get the string.
+ *  @{
+ */
+
+#define VL53L0X_CHECKENABLE_SIGMA_FINAL_RANGE           0
+#define VL53L0X_CHECKENABLE_SIGNAL_RATE_FINAL_RANGE     1
+#define VL53L0X_CHECKENABLE_SIGNAL_REF_CLIP             2
+#define VL53L0X_CHECKENABLE_RANGE_IGNORE_THRESHOLD      3
+#define VL53L0X_CHECKENABLE_SIGNAL_RATE_MSRC            4
+#define VL53L0X_CHECKENABLE_SIGNAL_RATE_PRE_RANGE       5
+
+#define VL53L0X_CHECKENABLE_NUMBER_OF_CHECKS            6
+
+/** @}  end of VL53L0X_CheckEnable_group */
+
+
+/** @defgroup VL53L0X_GpioFunctionality_group Gpio Functionality
+ *  @brief Defines the different functionalities for the device GPIO(s)
+ *  @{
+ */
+typedef uint8_t VL53L0X_GpioFunctionality;
+
+#define VL53L0X_GPIOFUNCTIONALITY_OFF                     \
+	((VL53L0X_GpioFunctionality)  0) /*!< NO Interrupt  */
+#define VL53L0X_GPIOFUNCTIONALITY_THRESHOLD_CROSSED_LOW   \
+	((VL53L0X_GpioFunctionality)  1) /*!< Level Low (value < thresh_low)  */
+#define VL53L0X_GPIOFUNCTIONALITY_THRESHOLD_CROSSED_HIGH   \
+	((VL53L0X_GpioFunctionality)  2) /*!< Level High (value > thresh_high) */
+#define VL53L0X_GPIOFUNCTIONALITY_THRESHOLD_CROSSED_OUT    \
+	((VL53L0X_GpioFunctionality)  3)
+	/*!< Out Of Window (value < thresh_low OR value > thresh_high)  */
+#define VL53L0X_GPIOFUNCTIONALITY_NEW_MEASURE_READY        \
+	((VL53L0X_GpioFunctionality)  4) /*!< New Sample Ready  */
+
+/** @} end of VL53L0X_GpioFunctionality_group */
+
+
+/* Device register map */
+
+/** @defgroup VL53L0X_DefineRegisters_group Define Registers
+ *  @brief List of all the defined registers
+ *  @{
+ */
+#define VL53L0X_REG_SYSRANGE_START                        0x000
+	/** mask existing bit in #VL53L0X_REG_SYSRANGE_START*/
+	#define VL53L0X_REG_SYSRANGE_MODE_MASK          0x0F
+	/** bit 0 in #VL53L0X_REG_SYSRANGE_START write 1 toggle state in
+	 * continuous mode and arm next shot in single shot mode */
+	#define VL53L0X_REG_SYSRANGE_MODE_START_STOP    0x01
+	/** bit 1 write 0 in #VL53L0X_REG_SYSRANGE_START set single shot mode */
+	#define VL53L0X_REG_SYSRANGE_MODE_SINGLESHOT    0x00
+	/** bit 1 write 1 in #VL53L0X_REG_SYSRANGE_START set back-to-back
+	 *  operation mode */
+	#define VL53L0X_REG_SYSRANGE_MODE_BACKTOBACK    0x02
+	/** bit 2 write 1 in #VL53L0X_REG_SYSRANGE_START set timed operation
+	 *  mode */
+	#define VL53L0X_REG_SYSRANGE_MODE_TIMED         0x04
+	/** bit 3 write 1 in #VL53L0X_REG_SYSRANGE_START set histogram operation
+	 *  mode */
+	#define VL53L0X_REG_SYSRANGE_MODE_HISTOGRAM     0x08
+
+
+#define VL53L0X_REG_SYSTEM_THRESH_HIGH               0x000C
+#define VL53L0X_REG_SYSTEM_THRESH_LOW                0x000E
+
+
+#define VL53L0X_REG_SYSTEM_SEQUENCE_CONFIG		0x0001
+#define VL53L0X_REG_SYSTEM_RANGE_CONFIG			0x0009
+#define VL53L0X_REG_SYSTEM_INTERMEASUREMENT_PERIOD	0x0004
+
+
+#define VL53L0X_REG_SYSTEM_INTERRUPT_CONFIG_GPIO               0x000A
+	#define VL53L0X_REG_SYSTEM_INTERRUPT_GPIO_DISABLED	0x00
+	#define VL53L0X_REG_SYSTEM_INTERRUPT_GPIO_LEVEL_LOW	0x01
+	#define VL53L0X_REG_SYSTEM_INTERRUPT_GPIO_LEVEL_HIGH	0x02
+	#define VL53L0X_REG_SYSTEM_INTERRUPT_GPIO_OUT_OF_WINDOW	0x03
+	#define VL53L0X_REG_SYSTEM_INTERRUPT_GPIO_NEW_SAMPLE_READY	0x04
+
+#define VL53L0X_REG_GPIO_HV_MUX_ACTIVE_HIGH          0x0084
+
+
+#define VL53L0X_REG_SYSTEM_INTERRUPT_CLEAR           0x000B
+
+/* Result registers */
+#define VL53L0X_REG_RESULT_INTERRUPT_STATUS          0x0013
+#define VL53L0X_REG_RESULT_RANGE_STATUS              0x0014
+
+#define VL53L0X_REG_RESULT_CORE_PAGE  1
+#define VL53L0X_REG_RESULT_CORE_AMBIENT_WINDOW_EVENTS_RTN   0x00BC
+#define VL53L0X_REG_RESULT_CORE_RANGING_TOTAL_EVENTS_RTN    0x00C0
+#define VL53L0X_REG_RESULT_CORE_AMBIENT_WINDOW_EVENTS_REF   0x00D0
+#define VL53L0X_REG_RESULT_CORE_RANGING_TOTAL_EVENTS_REF    0x00D4
+#define VL53L0X_REG_RESULT_PEAK_SIGNAL_RATE_REF             0x00B6
+
+/* Algo register */
+
+#define VL53L0X_REG_ALGO_PART_TO_PART_RANGE_OFFSET_MM       0x0028
+
+#define VL53L0X_REG_I2C_SLAVE_DEVICE_ADDRESS                0x008a
+
+/* Check Limit registers */
+#define VL53L0X_REG_MSRC_CONFIG_CONTROL                     0x0060
+
+#define VL53L0X_REG_PRE_RANGE_CONFIG_MIN_SNR                      0X0027
+#define VL53L0X_REG_PRE_RANGE_CONFIG_VALID_PHASE_LOW              0x0056
+#define VL53L0X_REG_PRE_RANGE_CONFIG_VALID_PHASE_HIGH             0x0057
+#define VL53L0X_REG_PRE_RANGE_MIN_COUNT_RATE_RTN_LIMIT            0x0064
+
+#define VL53L0X_REG_FINAL_RANGE_CONFIG_MIN_SNR                    0X0067
+#define VL53L0X_REG_FINAL_RANGE_CONFIG_VALID_PHASE_LOW            0x0047
+#define VL53L0X_REG_FINAL_RANGE_CONFIG_VALID_PHASE_HIGH           0x0048
+#define VL53L0X_REG_FINAL_RANGE_CONFIG_MIN_COUNT_RATE_RTN_LIMIT   0x0044
+
+
+#define VL53L0X_REG_PRE_RANGE_CONFIG_SIGMA_THRESH_HI              0X0061
+#define VL53L0X_REG_PRE_RANGE_CONFIG_SIGMA_THRESH_LO              0X0062
+
+/* PRE RANGE registers */
+#define VL53L0X_REG_PRE_RANGE_CONFIG_VCSEL_PERIOD                 0x0050
+#define VL53L0X_REG_PRE_RANGE_CONFIG_TIMEOUT_MACROP_HI            0x0051
+#define VL53L0X_REG_PRE_RANGE_CONFIG_TIMEOUT_MACROP_LO            0x0052
+
+#define VL53L0X_REG_SYSTEM_HISTOGRAM_BIN                          0x0081
+#define VL53L0X_REG_HISTOGRAM_CONFIG_INITIAL_PHASE_SELECT         0x0033
+#define VL53L0X_REG_HISTOGRAM_CONFIG_READOUT_CTRL                 0x0055
+
+#define VL53L0X_REG_FINAL_RANGE_CONFIG_VCSEL_PERIOD               0x0070
+#define VL53L0X_REG_FINAL_RANGE_CONFIG_TIMEOUT_MACROP_HI          0x0071
+#define VL53L0X_REG_FINAL_RANGE_CONFIG_TIMEOUT_MACROP_LO          0x0072
+#define VL53L0X_REG_CROSSTALK_COMPENSATION_PEAK_RATE_MCPS         0x0020
+
+#define VL53L0X_REG_MSRC_CONFIG_TIMEOUT_MACROP                    0x0046
+
+
+#define VL53L0X_REG_SOFT_RESET_GO2_SOFT_RESET_N	                 0x00bf
+#define VL53L0X_REG_IDENTIFICATION_MODEL_ID                       0x00c0
+#define VL53L0X_REG_IDENTIFICATION_REVISION_ID                    0x00c2
+
+#define VL53L0X_REG_OSC_CALIBRATE_VAL                             0x00f8
+
+
+#define VL53L0X_SIGMA_ESTIMATE_MAX_VALUE                          65535
+/* equivalent to a range sigma of 655.35mm */
+
+#define VL53L0X_REG_GLOBAL_CONFIG_VCSEL_WIDTH          0x032
+#define VL53L0X_REG_GLOBAL_CONFIG_SPAD_ENABLES_REF_0   0x0B0
+#define VL53L0X_REG_GLOBAL_CONFIG_SPAD_ENABLES_REF_1   0x0B1
+#define VL53L0X_REG_GLOBAL_CONFIG_SPAD_ENABLES_REF_2   0x0B2
+#define VL53L0X_REG_GLOBAL_CONFIG_SPAD_ENABLES_REF_3   0x0B3
+#define VL53L0X_REG_GLOBAL_CONFIG_SPAD_ENABLES_REF_4   0x0B4
+#define VL53L0X_REG_GLOBAL_CONFIG_SPAD_ENABLES_REF_5   0x0B5
+
+#define VL53L0X_REG_GLOBAL_CONFIG_REF_EN_START_SELECT   0xB6
+#define VL53L0X_REG_DYNAMIC_SPAD_NUM_REQUESTED_REF_SPAD 0x4E /* 0x14E */
+#define VL53L0X_REG_DYNAMIC_SPAD_REF_EN_START_OFFSET    0x4F /* 0x14F */
+#define VL53L0X_REG_POWER_MANAGEMENT_GO1_POWER_FORCE    0x80
+
+/*
+ * Speed of light in um per 1E-10 Seconds
+ */
+
+#define VL53L0X_SPEED_OF_LIGHT_IN_AIR 2997
+
+#define VL53L0X_REG_VHV_CONFIG_PAD_SCL_SDA__EXTSUP_HV     0x0089
+
+#define VL53L0X_REG_ALGO_PHASECAL_LIM                         0x0030 /* 0x130 */
+#define VL53L0X_REG_ALGO_PHASECAL_CONFIG_TIMEOUT              0x0030
+
+/** @} VL53L0X_DefineRegisters_group */
+
+/** @} VL53L0X_DevSpecDefines_group */
+
+
+#endif
+
+/* _VL53L0X_DEVICE_H_ */
+
+
diff --git a/STS/TOF/vl53l0x/vl53l0x_interrupt_threshold_settings.h b/STS/TOF/vl53l0x/vl53l0x_interrupt_threshold_settings.h
index 41677f1..d18358a 100644
--- a/STS/TOF/vl53l0x/vl53l0x_interrupt_threshold_settings.h
+++ b/STS/TOF/vl53l0x/vl53l0x_interrupt_threshold_settings.h
@@ -1,194 +1,194 @@
-/*******************************************************************************
-Copyright � 2016, STMicroelectronics International N.V.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-	* Redistributions of source code must retain the above copyright
-	  notice, this list of conditions and the following disclaimer.
-	* 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.
-	* 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, FITNESS FOR A PARTICULAR PURPOSE, AND
-NON-INFRINGEMENT OF INTELLECTUAL PROPERTY RIGHTS ARE DISCLAIMED.
-IN NO EVENT SHALL STMICROELECTRONICS INTERNATIONAL N.V. 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 _VL53L0X_INTERRUPT_THRESHOLD_SETTINGS_H_
-#define _VL53L0X_INTERRUPT_THRESHOLD_SETTINGS_H_
-
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
-uint8_t InterruptThresholdSettings[] = {
-
-	/* Start of Interrupt Threshold Settings */
-	0x1, 0xff, 0x00,
-	0x1, 0x80, 0x01,
-	0x1, 0xff, 0x01,
-	0x1, 0x00, 0x00,
-	0x1, 0xff, 0x01,
-	0x1, 0x4f, 0x02,
-	0x1, 0xFF, 0x0E,
-	0x1, 0x00, 0x03,
-	0x1, 0x01, 0x84,
-	0x1, 0x02, 0x0A,
-	0x1, 0x03, 0x03,
-	0x1, 0x04, 0x08,
-	0x1, 0x05, 0xC8,
-	0x1, 0x06, 0x03,
-	0x1, 0x07, 0x8D,
-	0x1, 0x08, 0x08,
-	0x1, 0x09, 0xC6,
-	0x1, 0x0A, 0x01,
-	0x1, 0x0B, 0x02,
-	0x1, 0x0C, 0x00,
-	0x1, 0x0D, 0xD5,
-	0x1, 0x0E, 0x18,
-	0x1, 0x0F, 0x12,
-	0x1, 0x10, 0x01,
-	0x1, 0x11, 0x82,
-	0x1, 0x12, 0x00,
-	0x1, 0x13, 0xD5,
-	0x1, 0x14, 0x18,
-	0x1, 0x15, 0x13,
-	0x1, 0x16, 0x03,
-	0x1, 0x17, 0x86,
-	0x1, 0x18, 0x0A,
-	0x1, 0x19, 0x09,
-	0x1, 0x1A, 0x08,
-	0x1, 0x1B, 0xC2,
-	0x1, 0x1C, 0x03,
-	0x1, 0x1D, 0x8F,
-	0x1, 0x1E, 0x0A,
-	0x1, 0x1F, 0x06,
-	0x1, 0x20, 0x01,
-	0x1, 0x21, 0x02,
-	0x1, 0x22, 0x00,
-	0x1, 0x23, 0xD5,
-	0x1, 0x24, 0x18,
-	0x1, 0x25, 0x22,
-	0x1, 0x26, 0x01,
-	0x1, 0x27, 0x82,
-	0x1, 0x28, 0x00,
-	0x1, 0x29, 0xD5,
-	0x1, 0x2A, 0x18,
-	0x1, 0x2B, 0x0B,
-	0x1, 0x2C, 0x28,
-	0x1, 0x2D, 0x78,
-	0x1, 0x2E, 0x28,
-	0x1, 0x2F, 0x91,
-	0x1, 0x30, 0x00,
-	0x1, 0x31, 0x0B,
-	0x1, 0x32, 0x00,
-	0x1, 0x33, 0x0B,
-	0x1, 0x34, 0x00,
-	0x1, 0x35, 0xA1,
-	0x1, 0x36, 0x00,
-	0x1, 0x37, 0xA0,
-	0x1, 0x38, 0x00,
-	0x1, 0x39, 0x04,
-	0x1, 0x3A, 0x28,
-	0x1, 0x3B, 0x30,
-	0x1, 0x3C, 0x0C,
-	0x1, 0x3D, 0x04,
-	0x1, 0x3E, 0x0F,
-	0x1, 0x3F, 0x79,
-	0x1, 0x40, 0x28,
-	0x1, 0x41, 0x1E,
-	0x1, 0x42, 0x2F,
-	0x1, 0x43, 0x87,
-	0x1, 0x44, 0x00,
-	0x1, 0x45, 0x0B,
-	0x1, 0x46, 0x00,
-	0x1, 0x47, 0x0B,
-	0x1, 0x48, 0x00,
-	0x1, 0x49, 0xA7,
-	0x1, 0x4A, 0x00,
-	0x1, 0x4B, 0xA6,
-	0x1, 0x4C, 0x00,
-	0x1, 0x4D, 0x04,
-	0x1, 0x4E, 0x01,
-	0x1, 0x4F, 0x00,
-	0x1, 0x50, 0x00,
-	0x1, 0x51, 0x80,
-	0x1, 0x52, 0x09,
-	0x1, 0x53, 0x08,
-	0x1, 0x54, 0x01,
-	0x1, 0x55, 0x00,
-	0x1, 0x56, 0x0F,
-	0x1, 0x57, 0x79,
-	0x1, 0x58, 0x09,
-	0x1, 0x59, 0x05,
-	0x1, 0x5A, 0x00,
-	0x1, 0x5B, 0x60,
-	0x1, 0x5C, 0x05,
-	0x1, 0x5D, 0xD1,
-	0x1, 0x5E, 0x0C,
-	0x1, 0x5F, 0x3C,
-	0x1, 0x60, 0x00,
-	0x1, 0x61, 0xD0,
-	0x1, 0x62, 0x0B,
-	0x1, 0x63, 0x03,
-	0x1, 0x64, 0x28,
-	0x1, 0x65, 0x10,
-	0x1, 0x66, 0x2A,
-	0x1, 0x67, 0x39,
-	0x1, 0x68, 0x0B,
-	0x1, 0x69, 0x02,
-	0x1, 0x6A, 0x28,
-	0x1, 0x6B, 0x10,
-	0x1, 0x6C, 0x2A,
-	0x1, 0x6D, 0x61,
-	0x1, 0x6E, 0x0C,
-	0x1, 0x6F, 0x00,
-	0x1, 0x70, 0x0F,
-	0x1, 0x71, 0x79,
-	0x1, 0x72, 0x00,
-	0x1, 0x73, 0x0B,
-	0x1, 0x74, 0x00,
-	0x1, 0x75, 0x0B,
-	0x1, 0x76, 0x00,
-	0x1, 0x77, 0xA1,
-	0x1, 0x78, 0x00,
-	0x1, 0x79, 0xA0,
-	0x1, 0x7A, 0x00,
-	0x1, 0x7B, 0x04,
-	0x1, 0xFF, 0x04,
-	0x1, 0x79, 0x1D,
-	0x1, 0x7B, 0x27,
-	0x1, 0x96, 0x0E,
-	0x1, 0x97, 0xFE,
-	0x1, 0x98, 0x03,
-	0x1, 0x99, 0xEF,
-	0x1, 0x9A, 0x02,
-	0x1, 0x9B, 0x44,
-	0x1, 0x73, 0x07,
-	0x1, 0x70, 0x01,
-	0x1, 0xff, 0x01,
-	0x1, 0x00, 0x01,
-	0x1, 0xff, 0x00,
-	0x00, 0x00, 0x00
-};
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _VL53L0X_INTERRUPT_THRESHOLD_SETTINGS_H_ */
+/*******************************************************************************
+Copyright � 2016, STMicroelectronics International N.V.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+	* Redistributions of source code must retain the above copyright
+	  notice, this list of conditions and the following disclaimer.
+	* 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.
+	* 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, FITNESS FOR A PARTICULAR PURPOSE, AND
+NON-INFRINGEMENT OF INTELLECTUAL PROPERTY RIGHTS ARE DISCLAIMED.
+IN NO EVENT SHALL STMICROELECTRONICS INTERNATIONAL N.V. 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 _VL53L0X_INTERRUPT_THRESHOLD_SETTINGS_H_
+#define _VL53L0X_INTERRUPT_THRESHOLD_SETTINGS_H_
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+uint8_t InterruptThresholdSettings[] = {
+
+	/* Start of Interrupt Threshold Settings */
+	0x1, 0xff, 0x00,
+	0x1, 0x80, 0x01,
+	0x1, 0xff, 0x01,
+	0x1, 0x00, 0x00,
+	0x1, 0xff, 0x01,
+	0x1, 0x4f, 0x02,
+	0x1, 0xFF, 0x0E,
+	0x1, 0x00, 0x03,
+	0x1, 0x01, 0x84,
+	0x1, 0x02, 0x0A,
+	0x1, 0x03, 0x03,
+	0x1, 0x04, 0x08,
+	0x1, 0x05, 0xC8,
+	0x1, 0x06, 0x03,
+	0x1, 0x07, 0x8D,
+	0x1, 0x08, 0x08,
+	0x1, 0x09, 0xC6,
+	0x1, 0x0A, 0x01,
+	0x1, 0x0B, 0x02,
+	0x1, 0x0C, 0x00,
+	0x1, 0x0D, 0xD5,
+	0x1, 0x0E, 0x18,
+	0x1, 0x0F, 0x12,
+	0x1, 0x10, 0x01,
+	0x1, 0x11, 0x82,
+	0x1, 0x12, 0x00,
+	0x1, 0x13, 0xD5,
+	0x1, 0x14, 0x18,
+	0x1, 0x15, 0x13,
+	0x1, 0x16, 0x03,
+	0x1, 0x17, 0x86,
+	0x1, 0x18, 0x0A,
+	0x1, 0x19, 0x09,
+	0x1, 0x1A, 0x08,
+	0x1, 0x1B, 0xC2,
+	0x1, 0x1C, 0x03,
+	0x1, 0x1D, 0x8F,
+	0x1, 0x1E, 0x0A,
+	0x1, 0x1F, 0x06,
+	0x1, 0x20, 0x01,
+	0x1, 0x21, 0x02,
+	0x1, 0x22, 0x00,
+	0x1, 0x23, 0xD5,
+	0x1, 0x24, 0x18,
+	0x1, 0x25, 0x22,
+	0x1, 0x26, 0x01,
+	0x1, 0x27, 0x82,
+	0x1, 0x28, 0x00,
+	0x1, 0x29, 0xD5,
+	0x1, 0x2A, 0x18,
+	0x1, 0x2B, 0x0B,
+	0x1, 0x2C, 0x28,
+	0x1, 0x2D, 0x78,
+	0x1, 0x2E, 0x28,
+	0x1, 0x2F, 0x91,
+	0x1, 0x30, 0x00,
+	0x1, 0x31, 0x0B,
+	0x1, 0x32, 0x00,
+	0x1, 0x33, 0x0B,
+	0x1, 0x34, 0x00,
+	0x1, 0x35, 0xA1,
+	0x1, 0x36, 0x00,
+	0x1, 0x37, 0xA0,
+	0x1, 0x38, 0x00,
+	0x1, 0x39, 0x04,
+	0x1, 0x3A, 0x28,
+	0x1, 0x3B, 0x30,
+	0x1, 0x3C, 0x0C,
+	0x1, 0x3D, 0x04,
+	0x1, 0x3E, 0x0F,
+	0x1, 0x3F, 0x79,
+	0x1, 0x40, 0x28,
+	0x1, 0x41, 0x1E,
+	0x1, 0x42, 0x2F,
+	0x1, 0x43, 0x87,
+	0x1, 0x44, 0x00,
+	0x1, 0x45, 0x0B,
+	0x1, 0x46, 0x00,
+	0x1, 0x47, 0x0B,
+	0x1, 0x48, 0x00,
+	0x1, 0x49, 0xA7,
+	0x1, 0x4A, 0x00,
+	0x1, 0x4B, 0xA6,
+	0x1, 0x4C, 0x00,
+	0x1, 0x4D, 0x04,
+	0x1, 0x4E, 0x01,
+	0x1, 0x4F, 0x00,
+	0x1, 0x50, 0x00,
+	0x1, 0x51, 0x80,
+	0x1, 0x52, 0x09,
+	0x1, 0x53, 0x08,
+	0x1, 0x54, 0x01,
+	0x1, 0x55, 0x00,
+	0x1, 0x56, 0x0F,
+	0x1, 0x57, 0x79,
+	0x1, 0x58, 0x09,
+	0x1, 0x59, 0x05,
+	0x1, 0x5A, 0x00,
+	0x1, 0x5B, 0x60,
+	0x1, 0x5C, 0x05,
+	0x1, 0x5D, 0xD1,
+	0x1, 0x5E, 0x0C,
+	0x1, 0x5F, 0x3C,
+	0x1, 0x60, 0x00,
+	0x1, 0x61, 0xD0,
+	0x1, 0x62, 0x0B,
+	0x1, 0x63, 0x03,
+	0x1, 0x64, 0x28,
+	0x1, 0x65, 0x10,
+	0x1, 0x66, 0x2A,
+	0x1, 0x67, 0x39,
+	0x1, 0x68, 0x0B,
+	0x1, 0x69, 0x02,
+	0x1, 0x6A, 0x28,
+	0x1, 0x6B, 0x10,
+	0x1, 0x6C, 0x2A,
+	0x1, 0x6D, 0x61,
+	0x1, 0x6E, 0x0C,
+	0x1, 0x6F, 0x00,
+	0x1, 0x70, 0x0F,
+	0x1, 0x71, 0x79,
+	0x1, 0x72, 0x00,
+	0x1, 0x73, 0x0B,
+	0x1, 0x74, 0x00,
+	0x1, 0x75, 0x0B,
+	0x1, 0x76, 0x00,
+	0x1, 0x77, 0xA1,
+	0x1, 0x78, 0x00,
+	0x1, 0x79, 0xA0,
+	0x1, 0x7A, 0x00,
+	0x1, 0x7B, 0x04,
+	0x1, 0xFF, 0x04,
+	0x1, 0x79, 0x1D,
+	0x1, 0x7B, 0x27,
+	0x1, 0x96, 0x0E,
+	0x1, 0x97, 0xFE,
+	0x1, 0x98, 0x03,
+	0x1, 0x99, 0xEF,
+	0x1, 0x9A, 0x02,
+	0x1, 0x9B, 0x44,
+	0x1, 0x73, 0x07,
+	0x1, 0x70, 0x01,
+	0x1, 0xff, 0x01,
+	0x1, 0x00, 0x01,
+	0x1, 0xff, 0x00,
+	0x00, 0x00, 0x00
+};
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _VL53L0X_INTERRUPT_THRESHOLD_SETTINGS_H_ */
diff --git a/STS/TOF/vl53l0x/vl53l0x_platform.c b/STS/TOF/vl53l0x/vl53l0x_platform.c
index 393b938..1263fb2 100644
--- a/STS/TOF/vl53l0x/vl53l0x_platform.c
+++ b/STS/TOF/vl53l0x/vl53l0x_platform.c
@@ -1,237 +1,237 @@
-//?????#include "hal.h"
-#include "vl53l0x_platform.h"
-#include "vl53l0x_api.h"
-
-#include "stm32wlxx_hal.h"
-#include <string.h>
-
-#define I2C_TIME_OUT_BASE   10
-#define I2C_TIME_OUT_BYTE   1
-#define VL53L0X_OsDelay(...) HAL_Delay(2)
-
-
-#ifndef HAL_I2C_MODULE_ENABLED
-#warning "HAL I2C module must be enable "
-#endif
-//extern I2C_HandleTypeDef hi2c1;
-//#define VL53L0X_pI2cHandle    (&hi2c1)
-
-/* when not customized by application define dummy one */
-#ifndef VL53L0X_GetI2cBus
-/** This macro can be overloaded by user to enforce i2c sharing in RTOS context
- */
-#   define VL53L0X_GetI2cBus(...) (void)0
-#endif
-
-#ifndef VL53L0X_PutI2cBus
-/** This macro can be overloaded by user to enforce i2c sharing in RTOS context
- */
-#   define VL53L0X_PutI2cBus(...) (void)0
-#endif
-
-#ifndef VL53L0X_OsDelay
-#   define  VL53L0X_OsDelay(...) (void)0
-#endif
-
-
-uint8_t _I2CBuffer[64];
-
-int _I2CWrite(VL53L0X_DEV Dev, uint8_t *pdata, uint32_t count) {
-    int status;
-    int i2c_time_out = I2C_TIME_OUT_BASE+ count* I2C_TIME_OUT_BYTE;
-
-    status = HAL_I2C_Master_Transmit(Dev->I2cHandle, Dev->I2cDevAddr, pdata, count, i2c_time_out);
-    if (status) {
-        //VL6180x_ErrLog("I2C error 0x%x %d len", dev->I2cAddr, len);
-        //XNUCLEO6180XA1_I2C1_Init(&hi2c1);
-    }
-    return status;
-}
-
-int _I2CRead(VL53L0X_DEV Dev, uint8_t *pdata, uint32_t count) {
-    int status;
-    int i2c_time_out = I2C_TIME_OUT_BASE+ count* I2C_TIME_OUT_BYTE;
-
-    status = HAL_I2C_Master_Receive(Dev->I2cHandle, Dev->I2cDevAddr|1, pdata, count, i2c_time_out);
-    if (status) {
-        //VL6180x_ErrLog("I2C error 0x%x %d len", dev->I2cAddr, len);
-        //XNUCLEO6180XA1_I2C1_Init(&hi2c1);
-    }
-    return status;
-}
-
-// the ranging_sensor_comms.dll will take care of the page selection
-VL53L0X_Error VL53L0X_WriteMulti(VL53L0X_DEV Dev, uint8_t index, uint8_t *pdata, uint32_t count) {
-    int status_int;
-    VL53L0X_Error Status = VL53L0X_ERROR_NONE;
-    if (count > sizeof(_I2CBuffer) - 1) {
-        return VL53L0X_ERROR_INVALID_PARAMS;
-    }
-    _I2CBuffer[0] = index;
-    memcpy(&_I2CBuffer[1], pdata, count);
-    VL53L0X_GetI2cBus();
-    status_int = _I2CWrite(Dev, _I2CBuffer, count + 1);
-    if (status_int != 0) {
-        Status = VL53L0X_ERROR_CONTROL_INTERFACE;
-    }
-    VL53L0X_PutI2cBus();
-    return Status;
-}
-
-// the ranging_sensor_comms.dll will take care of the page selection
-VL53L0X_Error VL53L0X_ReadMulti(VL53L0X_DEV Dev, uint8_t index, uint8_t *pdata, uint32_t count) {
-    VL53L0X_Error Status = VL53L0X_ERROR_NONE;
-    int32_t status_int;
-    VL53L0X_GetI2cBus();
-    status_int = _I2CWrite(Dev, &index, 1);
-    if (status_int != 0) {
-        Status = VL53L0X_ERROR_CONTROL_INTERFACE;
-        goto done;
-    }
-    status_int = _I2CRead(Dev, pdata, count);
-    if (status_int != 0) {
-        Status = VL53L0X_ERROR_CONTROL_INTERFACE;
-    }
-done:
-    VL53L0X_PutI2cBus();
-    return Status;
-}
-
-VL53L0X_Error VL53L0X_WrByte(VL53L0X_DEV Dev, uint8_t index, uint8_t data) {
-    VL53L0X_Error Status = VL53L0X_ERROR_NONE;
-    int32_t status_int;
-
-    _I2CBuffer[0] = index;
-    _I2CBuffer[1] = data;
-
-    VL53L0X_GetI2cBus();
-    status_int = _I2CWrite(Dev, _I2CBuffer, 2);
-    if (status_int != 0) {
-        Status = VL53L0X_ERROR_CONTROL_INTERFACE;
-    }
-    VL53L0X_PutI2cBus();
-    return Status;
-}
-
-VL53L0X_Error VL53L0X_WrWord(VL53L0X_DEV Dev, uint8_t index, uint16_t data) {
-    VL53L0X_Error Status = VL53L0X_ERROR_NONE;
-    int32_t status_int;
-
-    _I2CBuffer[0] = index;
-    _I2CBuffer[1] = data >> 8;
-    _I2CBuffer[2] = data & 0x00FF;
-
-    VL53L0X_GetI2cBus();
-    status_int = _I2CWrite(Dev, _I2CBuffer, 3);
-    if (status_int != 0) {
-        Status = VL53L0X_ERROR_CONTROL_INTERFACE;
-    }
-    VL53L0X_PutI2cBus();
-    return Status;
-}
-
-VL53L0X_Error VL53L0X_WrDWord(VL53L0X_DEV Dev, uint8_t index, uint32_t data) {
-    VL53L0X_Error Status = VL53L0X_ERROR_NONE;
-    int32_t status_int;
-    _I2CBuffer[0] = index;
-    _I2CBuffer[1] = (data >> 24) & 0xFF;
-    _I2CBuffer[2] = (data >> 16) & 0xFF;
-    _I2CBuffer[3] = (data >> 8)  & 0xFF;
-    _I2CBuffer[4] = (data >> 0 ) & 0xFF;
-    VL53L0X_GetI2cBus();
-    status_int = _I2CWrite(Dev, _I2CBuffer, 5);
-    if (status_int != 0) {
-        Status = VL53L0X_ERROR_CONTROL_INTERFACE;
-    }
-    VL53L0X_PutI2cBus();
-    return Status;
-}
-
-VL53L0X_Error VL53L0X_UpdateByte(VL53L0X_DEV Dev, uint8_t index, uint8_t AndData, uint8_t OrData) {
-    VL53L0X_Error Status = VL53L0X_ERROR_NONE;
-    uint8_t data;
-
-    Status = VL53L0X_RdByte(Dev, index, &data);
-    if (Status) {
-        goto done;
-    }
-    data = (data & AndData) | OrData;
-    Status = VL53L0X_WrByte(Dev, index, data);
-done:
-    return Status;
-}
-
-VL53L0X_Error VL53L0X_RdByte(VL53L0X_DEV Dev, uint8_t index, uint8_t *data) {
-    VL53L0X_Error Status = VL53L0X_ERROR_NONE;
-    int32_t status_int;
-
-    VL53L0X_GetI2cBus();
-    status_int = _I2CWrite(Dev, &index, 1);
-    if( status_int ){
-        Status = VL53L0X_ERROR_CONTROL_INTERFACE;
-        goto done;
-    }
-    status_int = _I2CRead(Dev, data, 1);
-    if (status_int != 0) {
-        Status = VL53L0X_ERROR_CONTROL_INTERFACE;
-    }
-done:
-    VL53L0X_PutI2cBus();
-    return Status;
-}
-
-VL53L0X_Error VL53L0X_RdWord(VL53L0X_DEV Dev, uint8_t index, uint16_t *data) {
-    VL53L0X_Error Status = VL53L0X_ERROR_NONE;
-    int32_t status_int;
-
-    VL53L0X_GetI2cBus();
-    status_int = _I2CWrite(Dev, &index, 1);
-
-    if( status_int ){
-        Status = VL53L0X_ERROR_CONTROL_INTERFACE;
-        goto done;
-    }
-    status_int = _I2CRead(Dev, _I2CBuffer, 2);
-    if (status_int != 0) {
-        Status = VL53L0X_ERROR_CONTROL_INTERFACE;
-        goto done;
-    }
-
-    *data = ((uint16_t)_I2CBuffer[0]<<8) + (uint16_t)_I2CBuffer[1];
-done:
-    VL53L0X_PutI2cBus();
-    return Status;
-}
-
-VL53L0X_Error VL53L0X_RdDWord(VL53L0X_DEV Dev, uint8_t index, uint32_t *data) {
-    VL53L0X_Error Status = VL53L0X_ERROR_NONE;
-    int32_t status_int;
-
-    VL53L0X_GetI2cBus();
-    status_int = _I2CWrite(Dev, &index, 1);
-    if (status_int != 0) {
-        Status = VL53L0X_ERROR_CONTROL_INTERFACE;
-        goto done;
-    }
-    status_int = _I2CRead(Dev, _I2CBuffer, 4);
-    if (status_int != 0) {
-        Status = VL53L0X_ERROR_CONTROL_INTERFACE;
-        goto done;
-    }
-
-    *data = ((uint32_t)_I2CBuffer[0]<<24) + ((uint32_t)_I2CBuffer[1]<<16) + ((uint32_t)_I2CBuffer[2]<<8) + (uint32_t)_I2CBuffer[3];
-
-done:
-    VL53L0X_PutI2cBus();
-    return Status;
-}
-
-VL53L0X_Error VL53L0X_PollingDelay(VL53L0X_DEV Dev) {
-    VL53L0X_Error status = VL53L0X_ERROR_NONE;
-
-    // do nothing
-    VL53L0X_OsDelay();
-    return status;
-}
-
-//end of file
+//?????#include "hal.h"
+#include "vl53l0x_platform.h"
+#include "vl53l0x_api.h"
+
+#include "stm32wlxx_hal.h"
+#include <string.h>
+
+#define I2C_TIME_OUT_BASE   10
+#define I2C_TIME_OUT_BYTE   1
+#define VL53L0X_OsDelay(...) HAL_Delay(2)
+
+
+#ifndef HAL_I2C_MODULE_ENABLED
+#warning "HAL I2C module must be enable "
+#endif
+//extern I2C_HandleTypeDef hi2c1;
+//#define VL53L0X_pI2cHandle    (&hi2c1)
+
+/* when not customized by application define dummy one */
+#ifndef VL53L0X_GetI2cBus
+/** This macro can be overloaded by user to enforce i2c sharing in RTOS context
+ */
+#   define VL53L0X_GetI2cBus(...) (void)0
+#endif
+
+#ifndef VL53L0X_PutI2cBus
+/** This macro can be overloaded by user to enforce i2c sharing in RTOS context
+ */
+#   define VL53L0X_PutI2cBus(...) (void)0
+#endif
+
+#ifndef VL53L0X_OsDelay
+#   define  VL53L0X_OsDelay(...) (void)0
+#endif
+
+
+uint8_t _I2CBuffer[64];
+
+int _I2CWrite(VL53L0X_DEV Dev, uint8_t *pdata, uint32_t count) {
+    int status;
+    int i2c_time_out = I2C_TIME_OUT_BASE+ count* I2C_TIME_OUT_BYTE;
+
+    status = HAL_I2C_Master_Transmit(Dev->I2cHandle, Dev->I2cDevAddr, pdata, count, i2c_time_out);
+    if (status) {
+        //VL6180x_ErrLog("I2C error 0x%x %d len", dev->I2cAddr, len);
+        //XNUCLEO6180XA1_I2C1_Init(&hi2c1);
+    }
+    return status;
+}
+
+int _I2CRead(VL53L0X_DEV Dev, uint8_t *pdata, uint32_t count) {
+    int status;
+    int i2c_time_out = I2C_TIME_OUT_BASE+ count* I2C_TIME_OUT_BYTE;
+
+    status = HAL_I2C_Master_Receive(Dev->I2cHandle, Dev->I2cDevAddr|1, pdata, count, i2c_time_out);
+    if (status) {
+        //VL6180x_ErrLog("I2C error 0x%x %d len", dev->I2cAddr, len);
+        //XNUCLEO6180XA1_I2C1_Init(&hi2c1);
+    }
+    return status;
+}
+
+// the ranging_sensor_comms.dll will take care of the page selection
+VL53L0X_Error VL53L0X_WriteMulti(VL53L0X_DEV Dev, uint8_t index, uint8_t *pdata, uint32_t count) {
+    int status_int;
+    VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+    if (count > sizeof(_I2CBuffer) - 1) {
+        return VL53L0X_ERROR_INVALID_PARAMS;
+    }
+    _I2CBuffer[0] = index;
+    memcpy(&_I2CBuffer[1], pdata, count);
+    VL53L0X_GetI2cBus();
+    status_int = _I2CWrite(Dev, _I2CBuffer, count + 1);
+    if (status_int != 0) {
+        Status = VL53L0X_ERROR_CONTROL_INTERFACE;
+    }
+    VL53L0X_PutI2cBus();
+    return Status;
+}
+
+// the ranging_sensor_comms.dll will take care of the page selection
+VL53L0X_Error VL53L0X_ReadMulti(VL53L0X_DEV Dev, uint8_t index, uint8_t *pdata, uint32_t count) {
+    VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+    int32_t status_int;
+    VL53L0X_GetI2cBus();
+    status_int = _I2CWrite(Dev, &index, 1);
+    if (status_int != 0) {
+        Status = VL53L0X_ERROR_CONTROL_INTERFACE;
+        goto done;
+    }
+    status_int = _I2CRead(Dev, pdata, count);
+    if (status_int != 0) {
+        Status = VL53L0X_ERROR_CONTROL_INTERFACE;
+    }
+done:
+    VL53L0X_PutI2cBus();
+    return Status;
+}
+
+VL53L0X_Error VL53L0X_WrByte(VL53L0X_DEV Dev, uint8_t index, uint8_t data) {
+    VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+    int32_t status_int;
+
+    _I2CBuffer[0] = index;
+    _I2CBuffer[1] = data;
+
+    VL53L0X_GetI2cBus();
+    status_int = _I2CWrite(Dev, _I2CBuffer, 2);
+    if (status_int != 0) {
+        Status = VL53L0X_ERROR_CONTROL_INTERFACE;
+    }
+    VL53L0X_PutI2cBus();
+    return Status;
+}
+
+VL53L0X_Error VL53L0X_WrWord(VL53L0X_DEV Dev, uint8_t index, uint16_t data) {
+    VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+    int32_t status_int;
+
+    _I2CBuffer[0] = index;
+    _I2CBuffer[1] = data >> 8;
+    _I2CBuffer[2] = data & 0x00FF;
+
+    VL53L0X_GetI2cBus();
+    status_int = _I2CWrite(Dev, _I2CBuffer, 3);
+    if (status_int != 0) {
+        Status = VL53L0X_ERROR_CONTROL_INTERFACE;
+    }
+    VL53L0X_PutI2cBus();
+    return Status;
+}
+
+VL53L0X_Error VL53L0X_WrDWord(VL53L0X_DEV Dev, uint8_t index, uint32_t data) {
+    VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+    int32_t status_int;
+    _I2CBuffer[0] = index;
+    _I2CBuffer[1] = (data >> 24) & 0xFF;
+    _I2CBuffer[2] = (data >> 16) & 0xFF;
+    _I2CBuffer[3] = (data >> 8)  & 0xFF;
+    _I2CBuffer[4] = (data >> 0 ) & 0xFF;
+    VL53L0X_GetI2cBus();
+    status_int = _I2CWrite(Dev, _I2CBuffer, 5);
+    if (status_int != 0) {
+        Status = VL53L0X_ERROR_CONTROL_INTERFACE;
+    }
+    VL53L0X_PutI2cBus();
+    return Status;
+}
+
+VL53L0X_Error VL53L0X_UpdateByte(VL53L0X_DEV Dev, uint8_t index, uint8_t AndData, uint8_t OrData) {
+    VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+    uint8_t data;
+
+    Status = VL53L0X_RdByte(Dev, index, &data);
+    if (Status) {
+        goto done;
+    }
+    data = (data & AndData) | OrData;
+    Status = VL53L0X_WrByte(Dev, index, data);
+done:
+    return Status;
+}
+
+VL53L0X_Error VL53L0X_RdByte(VL53L0X_DEV Dev, uint8_t index, uint8_t *data) {
+    VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+    int32_t status_int;
+
+    VL53L0X_GetI2cBus();
+    status_int = _I2CWrite(Dev, &index, 1);
+    if( status_int ){
+        Status = VL53L0X_ERROR_CONTROL_INTERFACE;
+        goto done;
+    }
+    status_int = _I2CRead(Dev, data, 1);
+    if (status_int != 0) {
+        Status = VL53L0X_ERROR_CONTROL_INTERFACE;
+    }
+done:
+    VL53L0X_PutI2cBus();
+    return Status;
+}
+
+VL53L0X_Error VL53L0X_RdWord(VL53L0X_DEV Dev, uint8_t index, uint16_t *data) {
+    VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+    int32_t status_int;
+
+    VL53L0X_GetI2cBus();
+    status_int = _I2CWrite(Dev, &index, 1);
+
+    if( status_int ){
+        Status = VL53L0X_ERROR_CONTROL_INTERFACE;
+        goto done;
+    }
+    status_int = _I2CRead(Dev, _I2CBuffer, 2);
+    if (status_int != 0) {
+        Status = VL53L0X_ERROR_CONTROL_INTERFACE;
+        goto done;
+    }
+
+    *data = ((uint16_t)_I2CBuffer[0]<<8) + (uint16_t)_I2CBuffer[1];
+done:
+    VL53L0X_PutI2cBus();
+    return Status;
+}
+
+VL53L0X_Error VL53L0X_RdDWord(VL53L0X_DEV Dev, uint8_t index, uint32_t *data) {
+    VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+    int32_t status_int;
+
+    VL53L0X_GetI2cBus();
+    status_int = _I2CWrite(Dev, &index, 1);
+    if (status_int != 0) {
+        Status = VL53L0X_ERROR_CONTROL_INTERFACE;
+        goto done;
+    }
+    status_int = _I2CRead(Dev, _I2CBuffer, 4);
+    if (status_int != 0) {
+        Status = VL53L0X_ERROR_CONTROL_INTERFACE;
+        goto done;
+    }
+
+    *data = ((uint32_t)_I2CBuffer[0]<<24) + ((uint32_t)_I2CBuffer[1]<<16) + ((uint32_t)_I2CBuffer[2]<<8) + (uint32_t)_I2CBuffer[3];
+
+done:
+    VL53L0X_PutI2cBus();
+    return Status;
+}
+
+VL53L0X_Error VL53L0X_PollingDelay(VL53L0X_DEV Dev) {
+    VL53L0X_Error status = VL53L0X_ERROR_NONE;
+
+    // do nothing
+    VL53L0X_OsDelay();
+    return status;
+}
+
+//end of file
diff --git a/STS/TOF/vl53l0x/vl53l0x_platform.h b/STS/TOF/vl53l0x/vl53l0x_platform.h
index 9ffbc79..7e49e8c 100644
--- a/STS/TOF/vl53l0x/vl53l0x_platform.h
+++ b/STS/TOF/vl53l0x/vl53l0x_platform.h
@@ -1,267 +1,267 @@
-/*******************************************************************************
-Copyright � 2015, STMicroelectronics International N.V.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-    * Redistributions of source code must retain the above copyright
-      notice, this list of conditions and the following disclaimer.
-    * 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.
-    * 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, FITNESS FOR A PARTICULAR PURPOSE, AND
-NON-INFRINGEMENT OF INTELLECTUAL PROPERTY RIGHTS ARE DISCLAIMED.
-IN NO EVENT SHALL STMICROELECTRONICS INTERNATIONAL N.V. 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 _VL53L0X_PLATFORM_H_
-#define _VL53L0X_PLATFORM_H_
-
-#include "vl53l0x_def.h"
-#include "vl53l0x_platform_log.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include "stm32wlxx_hal.h"
-
-
-#if TRACE_UART
-#define trace_printf uart_printf
-#endif
-
-/**
- * @file vl53l0x_platform.h
- *
- * @brief All end user OS/platform/application porting
- */
- 
-/**
- * @defgroup VL53L0X_platform_group VL53L0X Platform Functions
- * @brief    VL53L0X Platform Functions
- *  @{
- */
-
-/**
- * @struct  VL53L0X_Dev_t
- * @brief    Generic PAL device type that does link between API and platform abstraction layer
- *
- */
-typedef struct {
-    VL53L0X_DevData_t Data;               /*!< embed ST Ewok Dev  data as "Data"*/
-
-    /*!< user specific field */
-
-    I2C_HandleTypeDef *I2cHandle;
-    uint8_t   I2cDevAddr;
-
-    char    DevLetter;
-
-    int     Id;
-    int     Present;
-    int 	Enabled;
-    int		Ready;
-
-    uint8_t   comms_type;
-    uint16_t  comms_speed_khz;
-
-    int LeakyRange;
-    int LeakyFirst;
-    uint8_t RangeStatus;
-    uint8_t PreviousRangeStatus;
-    FixPoint1616_t SignalRateRtnMegaCps;
-    uint16_t EffectiveSpadRtnCount;
-    uint32_t StartTime;
-
-} VL53L0X_Dev_t;
-
-
-/**
- * @brief   Declare the device Handle as a pointer of the structure @a VL53L0X_Dev_t.
- *
- */
-typedef VL53L0X_Dev_t* VL53L0X_DEV;
-
-/**
- * @def PALDevDataGet
- * @brief Get ST private structure @a VL53L0X_DevData_t data access
- *
- * @param Dev       Device Handle
- * @param field     ST structure field name
- * It maybe used and as real data "ref" not just as "get" for sub-structure item
- * like PALDevDataGet(FilterData.field)[i] or PALDevDataGet(FilterData.MeasurementIndex)++
- */
-#define PALDevDataGet(Dev, field) (Dev->Data.field)
-
-/**
- * @def PALDevDataSet(Dev, field, data)
- * @brief  Set ST private structure @a VL53L0X_DevData_t data field
- * @param Dev       Device Handle
- * @param field     ST structure field name
- * @param data      Data to be set
- */
-#define PALDevDataSet(Dev, field, data) (Dev->Data.field)=(data)
-
-
-/**
- * @defgroup VL53L0X_registerAccess_group PAL Register Access Functions
- * @brief    PAL Register Access Functions
- *  @{
- */
-
-/**
- * Lock comms interface to serialize all commands to a shared I2C interface for a specific device
- * @param   Dev       Device Handle
- * @return  VL53L0X_ERROR_NONE        Success
- * @return  "Other error code"    See ::VL53L0X_Error
- */
-VL53L0X_Error VL53L0X_LockSequenceAccess(VL53L0X_DEV Dev);
-
-/**
- * Unlock comms interface to serialize all commands to a shared I2C interface for a specific device
- * @param   Dev       Device Handle
- * @return  VL53L0X_ERROR_NONE        Success
- * @return  "Other error code"    See ::VL53L0X_Error
- */
-VL53L0X_Error VL53L0X_UnlockSequenceAccess(VL53L0X_DEV Dev);
-
-
-/**
- * Writes the supplied byte buffer to the device
- * @param   Dev       Device Handle
- * @param   index     The register index
- * @param   pdata     Pointer to uint8_t buffer containing the data to be written
- * @param   count     Number of bytes in the supplied byte buffer
- * @return  VL53L0X_ERROR_NONE        Success
- * @return  "Other error code"    See ::VL53L0X_Error
- */
-VL53L0X_Error VL53L0X_WriteMulti(VL53L0X_DEV Dev, uint8_t index, uint8_t *pdata, uint32_t count);
-
-/**
- * Reads the requested number of bytes from the device
- * @param   Dev       Device Handle
- * @param   index     The register index
- * @param   pdata     Pointer to the uint8_t buffer to store read data
- * @param   count     Number of uint8_t's to read
- * @return  VL53L0X_ERROR_NONE        Success
- * @return  "Other error code"    See ::VL53L0X_Error
- */
-VL53L0X_Error VL53L0X_ReadMulti(VL53L0X_DEV Dev, uint8_t index, uint8_t *pdata, uint32_t count);
-
-/**
- * Write single byte register
- * @param   Dev       Device Handle
- * @param   index     The register index
- * @param   data      8 bit register data
- * @return  VL53L0X_ERROR_NONE        Success
- * @return  "Other error code"    See ::VL53L0X_Error
- */
-VL53L0X_Error VL53L0X_WrByte(VL53L0X_DEV Dev, uint8_t index, uint8_t data);
-
-/**
- * Write word register
- * @param   Dev       Device Handle
- * @param   index     The register index
- * @param   data      16 bit register data
- * @return  VL53L0X_ERROR_NONE        Success
- * @return  "Other error code"    See ::VL53L0X_Error
- */
-VL53L0X_Error VL53L0X_WrWord(VL53L0X_DEV Dev, uint8_t index, uint16_t data);
-
-/**
- * Write double word (4 byte) register
- * @param   Dev       Device Handle
- * @param   index     The register index
- * @param   data      32 bit register data
- * @return  VL53L0X_ERROR_NONE        Success
- * @return  "Other error code"    See ::VL53L0X_Error
- */
-VL53L0X_Error VL53L0X_WrDWord(VL53L0X_DEV Dev, uint8_t index, uint32_t data);
-
-/**
- * Read single byte register
- * @param   Dev       Device Handle
- * @param   index     The register index
- * @param   data      pointer to 8 bit data
- * @return  VL53L0X_ERROR_NONE        Success
- * @return  "Other error code"    See ::VL53L0X_Error
- */
-VL53L0X_Error VL53L0X_RdByte(VL53L0X_DEV Dev, uint8_t index, uint8_t *data);
-
-/**
- * Read word (2byte) register
- * @param   Dev       Device Handle
- * @param   index     The register index
- * @param   data      pointer to 16 bit data
- * @return  VL53L0X_ERROR_NONE        Success
- * @return  "Other error code"    See ::VL53L0X_Error
- */
-VL53L0X_Error VL53L0X_RdWord(VL53L0X_DEV Dev, uint8_t index, uint16_t *data);
-
-/**
- * Read dword (4byte) register
- * @param   Dev       Device Handle
- * @param   index     The register index
- * @param   data      pointer to 32 bit data
- * @return  VL53L0X_ERROR_NONE        Success
- * @return  "Other error code"    See ::VL53L0X_Error
- */
-VL53L0X_Error VL53L0X_RdDWord(VL53L0X_DEV Dev, uint8_t index, uint32_t *data);
-
-/**
- * Threat safe Update (read/modify/write) single byte register
- *
- * Final_reg = (Initial_reg & and_data) |or_data
- *
- * @param   Dev        Device Handle
- * @param   index      The register index
- * @param   AndData    8 bit and data
- * @param   OrData     8 bit or data
- * @return  VL53L0X_ERROR_NONE        Success
- * @return  "Other error code"    See ::VL53L0X_Error
- */
-VL53L0X_Error VL53L0X_UpdateByte(VL53L0X_DEV Dev, uint8_t index, uint8_t AndData, uint8_t OrData);
-
-/** @} end of VL53L0X_registerAccess_group */
-
-    
-/**
- * @brief execute delay in all polling API call
- *
- * A typical multi-thread or RTOs implementation is to sleep the task for some 5ms (with 100Hz max rate faster polling is not needed)
- * if nothing specific is need you can define it as an empty/void macro
- * @code
- * #define VL53L0X_PollingDelay(...) (void)0
- * @endcode
- * @param Dev       Device Handle
- * @return  VL53L0X_ERROR_NONE        Success
- * @return  "Other error code"    See ::VL53L0X_Error
- */
-VL53L0X_Error VL53L0X_PollingDelay(VL53L0X_DEV Dev); /* usually best implemented as a real function */
-
-/** @} end of VL53L0X_platform_group */
-
-#define VL53L0X_COPYSTRING(str, ...) strcpy(str, ##__VA_ARGS__)
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif  /* _VL53L0X_PLATFORM_H_ */
-
-
-
+/*******************************************************************************
+Copyright � 2015, STMicroelectronics International N.V.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+    * Redistributions of source code must retain the above copyright
+      notice, this list of conditions and the following disclaimer.
+    * 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.
+    * 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, FITNESS FOR A PARTICULAR PURPOSE, AND
+NON-INFRINGEMENT OF INTELLECTUAL PROPERTY RIGHTS ARE DISCLAIMED.
+IN NO EVENT SHALL STMICROELECTRONICS INTERNATIONAL N.V. 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 _VL53L0X_PLATFORM_H_
+#define _VL53L0X_PLATFORM_H_
+
+#include "vl53l0x_def.h"
+#include "vl53l0x_platform_log.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include "stm32wlxx_hal.h"
+
+
+#if TRACE_UART
+#define trace_printf uart_printf
+#endif
+
+/**
+ * @file vl53l0x_platform.h
+ *
+ * @brief All end user OS/platform/application porting
+ */
+ 
+/**
+ * @defgroup VL53L0X_platform_group VL53L0X Platform Functions
+ * @brief    VL53L0X Platform Functions
+ *  @{
+ */
+
+/**
+ * @struct  VL53L0X_Dev_t
+ * @brief    Generic PAL device type that does link between API and platform abstraction layer
+ *
+ */
+typedef struct {
+    VL53L0X_DevData_t Data;               /*!< embed ST Ewok Dev  data as "Data"*/
+
+    /*!< user specific field */
+
+    I2C_HandleTypeDef *I2cHandle;
+    uint8_t   I2cDevAddr;
+
+    char    DevLetter;
+
+    int     Id;
+    int     Present;
+    int 	Enabled;
+    int		Ready;
+
+    uint8_t   comms_type;
+    uint16_t  comms_speed_khz;
+
+    int LeakyRange;
+    int LeakyFirst;
+    uint8_t RangeStatus;
+    uint8_t PreviousRangeStatus;
+    FixPoint1616_t SignalRateRtnMegaCps;
+    uint16_t EffectiveSpadRtnCount;
+    uint32_t StartTime;
+
+} VL53L0X_Dev_t;
+
+
+/**
+ * @brief   Declare the device Handle as a pointer of the structure @a VL53L0X_Dev_t.
+ *
+ */
+typedef VL53L0X_Dev_t* VL53L0X_DEV;
+
+/**
+ * @def PALDevDataGet
+ * @brief Get ST private structure @a VL53L0X_DevData_t data access
+ *
+ * @param Dev       Device Handle
+ * @param field     ST structure field name
+ * It maybe used and as real data "ref" not just as "get" for sub-structure item
+ * like PALDevDataGet(FilterData.field)[i] or PALDevDataGet(FilterData.MeasurementIndex)++
+ */
+#define PALDevDataGet(Dev, field) (Dev->Data.field)
+
+/**
+ * @def PALDevDataSet(Dev, field, data)
+ * @brief  Set ST private structure @a VL53L0X_DevData_t data field
+ * @param Dev       Device Handle
+ * @param field     ST structure field name
+ * @param data      Data to be set
+ */
+#define PALDevDataSet(Dev, field, data) (Dev->Data.field)=(data)
+
+
+/**
+ * @defgroup VL53L0X_registerAccess_group PAL Register Access Functions
+ * @brief    PAL Register Access Functions
+ *  @{
+ */
+
+/**
+ * Lock comms interface to serialize all commands to a shared I2C interface for a specific device
+ * @param   Dev       Device Handle
+ * @return  VL53L0X_ERROR_NONE        Success
+ * @return  "Other error code"    See ::VL53L0X_Error
+ */
+VL53L0X_Error VL53L0X_LockSequenceAccess(VL53L0X_DEV Dev);
+
+/**
+ * Unlock comms interface to serialize all commands to a shared I2C interface for a specific device
+ * @param   Dev       Device Handle
+ * @return  VL53L0X_ERROR_NONE        Success
+ * @return  "Other error code"    See ::VL53L0X_Error
+ */
+VL53L0X_Error VL53L0X_UnlockSequenceAccess(VL53L0X_DEV Dev);
+
+
+/**
+ * Writes the supplied byte buffer to the device
+ * @param   Dev       Device Handle
+ * @param   index     The register index
+ * @param   pdata     Pointer to uint8_t buffer containing the data to be written
+ * @param   count     Number of bytes in the supplied byte buffer
+ * @return  VL53L0X_ERROR_NONE        Success
+ * @return  "Other error code"    See ::VL53L0X_Error
+ */
+VL53L0X_Error VL53L0X_WriteMulti(VL53L0X_DEV Dev, uint8_t index, uint8_t *pdata, uint32_t count);
+
+/**
+ * Reads the requested number of bytes from the device
+ * @param   Dev       Device Handle
+ * @param   index     The register index
+ * @param   pdata     Pointer to the uint8_t buffer to store read data
+ * @param   count     Number of uint8_t's to read
+ * @return  VL53L0X_ERROR_NONE        Success
+ * @return  "Other error code"    See ::VL53L0X_Error
+ */
+VL53L0X_Error VL53L0X_ReadMulti(VL53L0X_DEV Dev, uint8_t index, uint8_t *pdata, uint32_t count);
+
+/**
+ * Write single byte register
+ * @param   Dev       Device Handle
+ * @param   index     The register index
+ * @param   data      8 bit register data
+ * @return  VL53L0X_ERROR_NONE        Success
+ * @return  "Other error code"    See ::VL53L0X_Error
+ */
+VL53L0X_Error VL53L0X_WrByte(VL53L0X_DEV Dev, uint8_t index, uint8_t data);
+
+/**
+ * Write word register
+ * @param   Dev       Device Handle
+ * @param   index     The register index
+ * @param   data      16 bit register data
+ * @return  VL53L0X_ERROR_NONE        Success
+ * @return  "Other error code"    See ::VL53L0X_Error
+ */
+VL53L0X_Error VL53L0X_WrWord(VL53L0X_DEV Dev, uint8_t index, uint16_t data);
+
+/**
+ * Write double word (4 byte) register
+ * @param   Dev       Device Handle
+ * @param   index     The register index
+ * @param   data      32 bit register data
+ * @return  VL53L0X_ERROR_NONE        Success
+ * @return  "Other error code"    See ::VL53L0X_Error
+ */
+VL53L0X_Error VL53L0X_WrDWord(VL53L0X_DEV Dev, uint8_t index, uint32_t data);
+
+/**
+ * Read single byte register
+ * @param   Dev       Device Handle
+ * @param   index     The register index
+ * @param   data      pointer to 8 bit data
+ * @return  VL53L0X_ERROR_NONE        Success
+ * @return  "Other error code"    See ::VL53L0X_Error
+ */
+VL53L0X_Error VL53L0X_RdByte(VL53L0X_DEV Dev, uint8_t index, uint8_t *data);
+
+/**
+ * Read word (2byte) register
+ * @param   Dev       Device Handle
+ * @param   index     The register index
+ * @param   data      pointer to 16 bit data
+ * @return  VL53L0X_ERROR_NONE        Success
+ * @return  "Other error code"    See ::VL53L0X_Error
+ */
+VL53L0X_Error VL53L0X_RdWord(VL53L0X_DEV Dev, uint8_t index, uint16_t *data);
+
+/**
+ * Read dword (4byte) register
+ * @param   Dev       Device Handle
+ * @param   index     The register index
+ * @param   data      pointer to 32 bit data
+ * @return  VL53L0X_ERROR_NONE        Success
+ * @return  "Other error code"    See ::VL53L0X_Error
+ */
+VL53L0X_Error VL53L0X_RdDWord(VL53L0X_DEV Dev, uint8_t index, uint32_t *data);
+
+/**
+ * Threat safe Update (read/modify/write) single byte register
+ *
+ * Final_reg = (Initial_reg & and_data) |or_data
+ *
+ * @param   Dev        Device Handle
+ * @param   index      The register index
+ * @param   AndData    8 bit and data
+ * @param   OrData     8 bit or data
+ * @return  VL53L0X_ERROR_NONE        Success
+ * @return  "Other error code"    See ::VL53L0X_Error
+ */
+VL53L0X_Error VL53L0X_UpdateByte(VL53L0X_DEV Dev, uint8_t index, uint8_t AndData, uint8_t OrData);
+
+/** @} end of VL53L0X_registerAccess_group */
+
+    
+/**
+ * @brief execute delay in all polling API call
+ *
+ * A typical multi-thread or RTOs implementation is to sleep the task for some 5ms (with 100Hz max rate faster polling is not needed)
+ * if nothing specific is need you can define it as an empty/void macro
+ * @code
+ * #define VL53L0X_PollingDelay(...) (void)0
+ * @endcode
+ * @param Dev       Device Handle
+ * @return  VL53L0X_ERROR_NONE        Success
+ * @return  "Other error code"    See ::VL53L0X_Error
+ */
+VL53L0X_Error VL53L0X_PollingDelay(VL53L0X_DEV Dev); /* usually best implemented as a real function */
+
+/** @} end of VL53L0X_platform_group */
+
+#define VL53L0X_COPYSTRING(str, ...) strcpy(str, ##__VA_ARGS__)
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif  /* _VL53L0X_PLATFORM_H_ */
+
+
+
diff --git a/STS/TOF/vl53l0x/vl53l0x_platform_log.c b/STS/TOF/vl53l0x/vl53l0x_platform_log.c
index b34420d..bb56edf 100644
--- a/STS/TOF/vl53l0x/vl53l0x_platform_log.c
+++ b/STS/TOF/vl53l0x/vl53l0x_platform_log.c
@@ -1,59 +1,59 @@
-/*
- * COPYRIGHT (C) STMicroelectronics 2015. All rights reserved.
- *
- * This software is the confidential and proprietary information of
- * STMicroelectronics ("Confidential Information").  You shall not
- * disclose such Confidential Information and shall use it only in
- * accordance with the terms of the license agreement you entered into
- * with STMicroelectronics
- *
- * Programming Golden Rule: Keep it Simple!
- *
- */
-
-/*!
- * \file   VL53L0X_platform_log.c
- * \brief  Code function defintions for Ewok Platform Layer
- *
- */
-
-
-#include <stdio.h>    // sprintf(), vsnprintf(), printf()
-#include <stdarg.h>   // sprintf(), vsnprintf(), printf()
-#ifdef _MSC_VER
-#define snprintf _snprintf
-#endif
-
-#include "vl53l0x_def.h"
-#include "vl53l0x_platform_log.h"
-
-
-uint32_t _trace_level = TRACE_LEVEL_WARNING;
-uint32_t _trace_modules = TRACE_MODULE_NONE;
-uint32_t _trace_functions = TRACE_FUNCTION_NONE;
-
-#if defined(VL53L0X_LOG_ENABLE) && (TRACE_UART==1)
-int32_t VL53L0X_trace_config(char *filename, uint32_t modules, uint32_t level, uint32_t functions)
-{
-    int STATUS = 0;
-
-    _trace_functions = functions;
-    _trace_level = level;
-    _trace_modules = modules;
-
-    return STATUS;
-}
-
-
-void trace_print_module_function(uint32_t module, uint32_t level, uint32_t function, const char *format, ...)
-{
-    if ( ((level <=_trace_level) && ((module & _trace_modules) > 0))
-        || ((function & _trace_functions) > 0) )
-    {
-    	va_list arg_list;
-        va_start(arg_list, format);
-        trace_vprintf( format, arg_list);
-        va_end(arg_list);
-    }
-}
-#endif
+/*
+ * COPYRIGHT (C) STMicroelectronics 2015. All rights reserved.
+ *
+ * This software is the confidential and proprietary information of
+ * STMicroelectronics ("Confidential Information").  You shall not
+ * disclose such Confidential Information and shall use it only in
+ * accordance with the terms of the license agreement you entered into
+ * with STMicroelectronics
+ *
+ * Programming Golden Rule: Keep it Simple!
+ *
+ */
+
+/*!
+ * \file   VL53L0X_platform_log.c
+ * \brief  Code function defintions for Ewok Platform Layer
+ *
+ */
+
+
+#include <stdio.h>    // sprintf(), vsnprintf(), printf()
+#include <stdarg.h>   // sprintf(), vsnprintf(), printf()
+#ifdef _MSC_VER
+#define snprintf _snprintf
+#endif
+
+#include "vl53l0x_def.h"
+#include "vl53l0x_platform_log.h"
+
+
+uint32_t _trace_level = TRACE_LEVEL_WARNING;
+uint32_t _trace_modules = TRACE_MODULE_NONE;
+uint32_t _trace_functions = TRACE_FUNCTION_NONE;
+
+#if defined(VL53L0X_LOG_ENABLE) && (TRACE_UART==1)
+int32_t VL53L0X_trace_config(char *filename, uint32_t modules, uint32_t level, uint32_t functions)
+{
+    int STATUS = 0;
+
+    _trace_functions = functions;
+    _trace_level = level;
+    _trace_modules = modules;
+
+    return STATUS;
+}
+
+
+void trace_print_module_function(uint32_t module, uint32_t level, uint32_t function, const char *format, ...)
+{
+    if ( ((level <=_trace_level) && ((module & _trace_modules) > 0))
+        || ((function & _trace_functions) > 0) )
+    {
+    	va_list arg_list;
+        va_start(arg_list, format);
+        trace_vprintf( format, arg_list);
+        va_end(arg_list);
+    }
+}
+#endif
diff --git a/STS/TOF/vl53l0x/vl53l0x_platform_log.h b/STS/TOF/vl53l0x/vl53l0x_platform_log.h
index c525bc9..2415b08 100644
--- a/STS/TOF/vl53l0x/vl53l0x_platform_log.h
+++ b/STS/TOF/vl53l0x/vl53l0x_platform_log.h
@@ -1,121 +1,121 @@
-/*******************************************************************************
-Copyright � 2015, STMicroelectronics International N.V.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-    * Redistributions of source code must retain the above copyright
-      notice, this list of conditions and the following disclaimer.
-    * 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.
-    * 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, FITNESS FOR A PARTICULAR PURPOSE, AND
-NON-INFRINGEMENT OF INTELLECTUAL PROPERTY RIGHTS ARE DISCLAIMED.
-IN NO EVENT SHALL STMICROELECTRONICS INTERNATIONAL N.V. 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 _VL53L0X_PLATFORM_LOG_H_
-#define _VL53L0X_PLATFORM_LOG_H_
-
-#include <stdio.h>
-#include <string.h>
-/* LOG Functions */
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
-/**
- * @file vl53l0x_platform_log.h
- *
- * @brief platform log function definition
- */
-
-//#define VL53L0X_LOG_ENABLE 0
-
-enum {
-    TRACE_LEVEL_NONE,
-    TRACE_LEVEL_ERRORS,
-    TRACE_LEVEL_WARNING,
-    TRACE_LEVEL_INFO,
-    TRACE_LEVEL_DEBUG,
-    TRACE_LEVEL_ALL,
-    TRACE_LEVEL_IGNORE
-};
-
-enum {
-    TRACE_FUNCTION_NONE = 0,
-    TRACE_FUNCTION_I2C  = 1,
-    TRACE_FUNCTION_ALL  = 0x7fffffff //all bits except sign
-};
-
-enum {
-    TRACE_MODULE_NONE              = 0x0,
-    TRACE_MODULE_API               = 0x1,
-    TRACE_MODULE_PLATFORM          = 0x2,
-    TRACE_MODULE_ALL               = 0x7fffffff //all bits except sign
-};
-
-
-#if defined(VL53L0X_LOG_ENABLE) && (TRACE_UART==1)
-
-#include <stdarg.h>
-extern int uart_printf(const char *msg, ...);
-extern int uart_vprintf(const char *msg, va_list ap);
-
-#define trace_printf uart_printf
-#define trace_vprintf uart_vprintf
-
-
-extern uint32_t _trace_level;
-
-
-
-int32_t VL53L0X_trace_config(char *filename, uint32_t modules, uint32_t level, uint32_t functions);
-void trace_print_module_function(uint32_t module, uint32_t level, uint32_t function, const char *format, ...);
-
-
-//extern FILE * log_file;
-
-#define LOG_GET_TIME() (int)HAL_GetTick()
-
-#define _LOG_FUNCTION_START(module, fmt, ... ) \
-        trace_print_module_function(module, _trace_level, TRACE_FUNCTION_ALL, "%ld <START> %s "fmt"\n", LOG_GET_TIME(), __FUNCTION__, ##__VA_ARGS__);
-
-#define _LOG_FUNCTION_END(module, status, ... )\
-        trace_print_module_function(module, _trace_level, TRACE_FUNCTION_ALL, "%d <END> %s %d\n", LOG_GET_TIME(), __FUNCTION__, (int)status, ##__VA_ARGS__)
-
-#define _LOG_FUNCTION_END_FMT(module, status, fmt, ... )\
-        trace_print_module_function(module, _trace_level, TRACE_FUNCTION_ALL, "%d <END> %s %d "fmt"\n", LOG_GET_TIME(),  __FUNCTION__, (int)status,##__VA_ARGS__)
-
-
-#else /* VL53L0X_LOG_ENABLE no logging or no TRACE_UART */
-    #define VL53L0X_ErrLog(...) (void)0
-    #define _LOG_FUNCTION_START(module, fmt, ... ) (void)0
-    #define _LOG_FUNCTION_END(module, status, ... ) (void)0
-    #define _LOG_FUNCTION_END_FMT(module, status, fmt, ... ) (void)0
-    #define trace_vprintf(...) (void)0
-    #define VL53L0X_trace_config(...) (void)0
-
-#endif /* else */
-
-#define VL53L0_COPYSTRING(str, ...) strcpy(str, ##__VA_ARGS__)
-
-#endif  /* _VL53L0X_PLATFORM_LOG_H_ */
-
-
-
+/*******************************************************************************
+Copyright � 2015, STMicroelectronics International N.V.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+    * Redistributions of source code must retain the above copyright
+      notice, this list of conditions and the following disclaimer.
+    * 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.
+    * 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, FITNESS FOR A PARTICULAR PURPOSE, AND
+NON-INFRINGEMENT OF INTELLECTUAL PROPERTY RIGHTS ARE DISCLAIMED.
+IN NO EVENT SHALL STMICROELECTRONICS INTERNATIONAL N.V. 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 _VL53L0X_PLATFORM_LOG_H_
+#define _VL53L0X_PLATFORM_LOG_H_
+
+#include <stdio.h>
+#include <string.h>
+/* LOG Functions */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+/**
+ * @file vl53l0x_platform_log.h
+ *
+ * @brief platform log function definition
+ */
+
+//#define VL53L0X_LOG_ENABLE 0
+
+enum {
+    TRACE_LEVEL_NONE,
+    TRACE_LEVEL_ERRORS,
+    TRACE_LEVEL_WARNING,
+    TRACE_LEVEL_INFO,
+    TRACE_LEVEL_DEBUG,
+    TRACE_LEVEL_ALL,
+    TRACE_LEVEL_IGNORE
+};
+
+enum {
+    TRACE_FUNCTION_NONE = 0,
+    TRACE_FUNCTION_I2C  = 1,
+    TRACE_FUNCTION_ALL  = 0x7fffffff //all bits except sign
+};
+
+enum {
+    TRACE_MODULE_NONE              = 0x0,
+    TRACE_MODULE_API               = 0x1,
+    TRACE_MODULE_PLATFORM          = 0x2,
+    TRACE_MODULE_ALL               = 0x7fffffff //all bits except sign
+};
+
+
+#if defined(VL53L0X_LOG_ENABLE) && (TRACE_UART==1)
+
+#include <stdarg.h>
+extern int uart_printf(const char *msg, ...);
+extern int uart_vprintf(const char *msg, va_list ap);
+
+#define trace_printf uart_printf
+#define trace_vprintf uart_vprintf
+
+
+extern uint32_t _trace_level;
+
+
+
+int32_t VL53L0X_trace_config(char *filename, uint32_t modules, uint32_t level, uint32_t functions);
+void trace_print_module_function(uint32_t module, uint32_t level, uint32_t function, const char *format, ...);
+
+
+//extern FILE * log_file;
+
+#define LOG_GET_TIME() (int)HAL_GetTick()
+
+#define _LOG_FUNCTION_START(module, fmt, ... ) \
+        trace_print_module_function(module, _trace_level, TRACE_FUNCTION_ALL, "%ld <START> %s "fmt"\n", LOG_GET_TIME(), __FUNCTION__, ##__VA_ARGS__);
+
+#define _LOG_FUNCTION_END(module, status, ... )\
+        trace_print_module_function(module, _trace_level, TRACE_FUNCTION_ALL, "%d <END> %s %d\n", LOG_GET_TIME(), __FUNCTION__, (int)status, ##__VA_ARGS__)
+
+#define _LOG_FUNCTION_END_FMT(module, status, fmt, ... )\
+        trace_print_module_function(module, _trace_level, TRACE_FUNCTION_ALL, "%d <END> %s %d "fmt"\n", LOG_GET_TIME(),  __FUNCTION__, (int)status,##__VA_ARGS__)
+
+
+#else /* VL53L0X_LOG_ENABLE no logging or no TRACE_UART */
+    #define VL53L0X_ErrLog(...) (void)0
+    #define _LOG_FUNCTION_START(module, fmt, ... ) (void)0
+    #define _LOG_FUNCTION_END(module, status, ... ) (void)0
+    #define _LOG_FUNCTION_END_FMT(module, status, fmt, ... ) (void)0
+    #define trace_vprintf(...) (void)0
+    #define VL53L0X_trace_config(...) (void)0
+
+#endif /* else */
+
+#define VL53L0_COPYSTRING(str, ...) strcpy(str, ##__VA_ARGS__)
+
+#endif  /* _VL53L0X_PLATFORM_LOG_H_ */
+
+
+
diff --git a/STS/TOF/vl53l0x/vl53l0x_tuning.h b/STS/TOF/vl53l0x/vl53l0x_tuning.h
index a7ad71b..918d4fb 100644
--- a/STS/TOF/vl53l0x/vl53l0x_tuning.h
+++ b/STS/TOF/vl53l0x/vl53l0x_tuning.h
@@ -1,146 +1,146 @@
-/*******************************************************************************
-Copyright � 2016, STMicroelectronics International N.V.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-	* Redistributions of source code must retain the above copyright
-	  notice, this list of conditions and the following disclaimer.
-	* 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.
-	* 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, FITNESS FOR A PARTICULAR PURPOSE, AND
-NON-INFRINGEMENT OF INTELLECTUAL PROPERTY RIGHTS ARE DISCLAIMED.
-IN NO EVENT SHALL STMICROELECTRONICS INTERNATIONAL N.V. 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 _VL53L0X_TUNING_H_
-#define _VL53L0X_TUNING_H_
-
-#include "vl53l0x_def.h"
-
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
-uint8_t DefaultTuningSettings[] = {
-
-	/* update 02/11/2015_v36 */
-	0x01, 0xFF, 0x01,
-	0x01, 0x00, 0x00,
-
-	0x01, 0xFF, 0x00,
-	0x01, 0x09, 0x00,
-	0x01, 0x10, 0x00,
-	0x01, 0x11, 0x00,
-
-	0x01, 0x24, 0x01,
-	0x01, 0x25, 0xff,
-	0x01, 0x75, 0x00,
-
-	0x01, 0xFF, 0x01,
-	0x01, 0x4e, 0x2c,
-	0x01, 0x48, 0x00,
-	0x01, 0x30, 0x20,
-
-	0x01, 0xFF, 0x00,
-	0x01, 0x30, 0x09, /* mja changed from 0x64. */
-	0x01, 0x54, 0x00,
-	0x01, 0x31, 0x04,
-	0x01, 0x32, 0x03,
-	0x01, 0x40, 0x83,
-	0x01, 0x46, 0x25,
-	0x01, 0x60, 0x00,
-	0x01, 0x27, 0x00,
-	0x01, 0x50, 0x06,
-	0x01, 0x51, 0x00,
-	0x01, 0x52, 0x96,
-	0x01, 0x56, 0x08,
-	0x01, 0x57, 0x30,
-	0x01, 0x61, 0x00,
-	0x01, 0x62, 0x00,
-	0x01, 0x64, 0x00,
-	0x01, 0x65, 0x00,
-	0x01, 0x66, 0xa0,
-
-	0x01, 0xFF, 0x01,
-	0x01, 0x22, 0x32,
-	0x01, 0x47, 0x14,
-	0x01, 0x49, 0xff,
-	0x01, 0x4a, 0x00,
-
-	0x01, 0xFF, 0x00,
-	0x01, 0x7a, 0x0a,
-	0x01, 0x7b, 0x00,
-	0x01, 0x78, 0x21,
-
-	0x01, 0xFF, 0x01,
-	0x01, 0x23, 0x34,
-	0x01, 0x42, 0x00,
-	0x01, 0x44, 0xff,
-	0x01, 0x45, 0x26,
-	0x01, 0x46, 0x05,
-	0x01, 0x40, 0x40,
-	0x01, 0x0E, 0x06,
-	0x01, 0x20, 0x1a,
-	0x01, 0x43, 0x40,
-
-	0x01, 0xFF, 0x00,
-	0x01, 0x34, 0x03,
-	0x01, 0x35, 0x44,
-
-	0x01, 0xFF, 0x01,
-	0x01, 0x31, 0x04,
-	0x01, 0x4b, 0x09,
-	0x01, 0x4c, 0x05,
-	0x01, 0x4d, 0x04,
-
-
-	0x01, 0xFF, 0x00,
-	0x01, 0x44, 0x00,
-	0x01, 0x45, 0x20,
-	0x01, 0x47, 0x08,
-	0x01, 0x48, 0x28,
-	0x01, 0x67, 0x00,
-	0x01, 0x70, 0x04,
-	0x01, 0x71, 0x01,
-	0x01, 0x72, 0xfe,
-	0x01, 0x76, 0x00,
-	0x01, 0x77, 0x00,
-
-	0x01, 0xFF, 0x01,
-	0x01, 0x0d, 0x01,
-
-	0x01, 0xFF, 0x00,
-	0x01, 0x80, 0x01,
-	0x01, 0x01, 0xF8,
-
-	0x01, 0xFF, 0x01,
-	0x01, 0x8e, 0x01,
-	0x01, 0x00, 0x01,
-	0x01, 0xFF, 0x00,
-	0x01, 0x80, 0x00,
-
-	0x00, 0x00, 0x00
-};
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _VL53L0X_TUNING_H_ */
+/*******************************************************************************
+Copyright � 2016, STMicroelectronics International N.V.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+	* Redistributions of source code must retain the above copyright
+	  notice, this list of conditions and the following disclaimer.
+	* 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.
+	* 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, FITNESS FOR A PARTICULAR PURPOSE, AND
+NON-INFRINGEMENT OF INTELLECTUAL PROPERTY RIGHTS ARE DISCLAIMED.
+IN NO EVENT SHALL STMICROELECTRONICS INTERNATIONAL N.V. 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 _VL53L0X_TUNING_H_
+#define _VL53L0X_TUNING_H_
+
+#include "vl53l0x_def.h"
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+uint8_t DefaultTuningSettings[] = {
+
+	/* update 02/11/2015_v36 */
+	0x01, 0xFF, 0x01,
+	0x01, 0x00, 0x00,
+
+	0x01, 0xFF, 0x00,
+	0x01, 0x09, 0x00,
+	0x01, 0x10, 0x00,
+	0x01, 0x11, 0x00,
+
+	0x01, 0x24, 0x01,
+	0x01, 0x25, 0xff,
+	0x01, 0x75, 0x00,
+
+	0x01, 0xFF, 0x01,
+	0x01, 0x4e, 0x2c,
+	0x01, 0x48, 0x00,
+	0x01, 0x30, 0x20,
+
+	0x01, 0xFF, 0x00,
+	0x01, 0x30, 0x09, /* mja changed from 0x64. */
+	0x01, 0x54, 0x00,
+	0x01, 0x31, 0x04,
+	0x01, 0x32, 0x03,
+	0x01, 0x40, 0x83,
+	0x01, 0x46, 0x25,
+	0x01, 0x60, 0x00,
+	0x01, 0x27, 0x00,
+	0x01, 0x50, 0x06,
+	0x01, 0x51, 0x00,
+	0x01, 0x52, 0x96,
+	0x01, 0x56, 0x08,
+	0x01, 0x57, 0x30,
+	0x01, 0x61, 0x00,
+	0x01, 0x62, 0x00,
+	0x01, 0x64, 0x00,
+	0x01, 0x65, 0x00,
+	0x01, 0x66, 0xa0,
+
+	0x01, 0xFF, 0x01,
+	0x01, 0x22, 0x32,
+	0x01, 0x47, 0x14,
+	0x01, 0x49, 0xff,
+	0x01, 0x4a, 0x00,
+
+	0x01, 0xFF, 0x00,
+	0x01, 0x7a, 0x0a,
+	0x01, 0x7b, 0x00,
+	0x01, 0x78, 0x21,
+
+	0x01, 0xFF, 0x01,
+	0x01, 0x23, 0x34,
+	0x01, 0x42, 0x00,
+	0x01, 0x44, 0xff,
+	0x01, 0x45, 0x26,
+	0x01, 0x46, 0x05,
+	0x01, 0x40, 0x40,
+	0x01, 0x0E, 0x06,
+	0x01, 0x20, 0x1a,
+	0x01, 0x43, 0x40,
+
+	0x01, 0xFF, 0x00,
+	0x01, 0x34, 0x03,
+	0x01, 0x35, 0x44,
+
+	0x01, 0xFF, 0x01,
+	0x01, 0x31, 0x04,
+	0x01, 0x4b, 0x09,
+	0x01, 0x4c, 0x05,
+	0x01, 0x4d, 0x04,
+
+
+	0x01, 0xFF, 0x00,
+	0x01, 0x44, 0x00,
+	0x01, 0x45, 0x20,
+	0x01, 0x47, 0x08,
+	0x01, 0x48, 0x28,
+	0x01, 0x67, 0x00,
+	0x01, 0x70, 0x04,
+	0x01, 0x71, 0x01,
+	0x01, 0x72, 0xfe,
+	0x01, 0x76, 0x00,
+	0x01, 0x77, 0x00,
+
+	0x01, 0xFF, 0x01,
+	0x01, 0x0d, 0x01,
+
+	0x01, 0xFF, 0x00,
+	0x01, 0x80, 0x01,
+	0x01, 0x01, 0xF8,
+
+	0x01, 0xFF, 0x01,
+	0x01, 0x8e, 0x01,
+	0x01, 0x00, 0x01,
+	0x01, 0xFF, 0x00,
+	0x01, 0x80, 0x00,
+
+	0x00, 0x00, 0x00
+};
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _VL53L0X_TUNING_H_ */
diff --git a/STS/TOF/vl53l0x/vl53l0x_types.h b/STS/TOF/vl53l0x/vl53l0x_types.h
index 177637e..6773ca1 100644
--- a/STS/TOF/vl53l0x/vl53l0x_types.h
+++ b/STS/TOF/vl53l0x/vl53l0x_types.h
@@ -1,111 +1,111 @@
-/*******************************************************************************
-Copyright � 2015, STMicroelectronics International N.V.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-    * Redistributions of source code must retain the above copyright
-      notice, this list of conditions and the following disclaimer.
-    * 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.
-    * 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, FITNESS FOR A PARTICULAR PURPOSE, AND
-NON-INFRINGEMENT OF INTELLECTUAL PROPERTY RIGHTS ARE DISCLAIMED.
-IN NO EVENT SHALL STMICROELECTRONICS INTERNATIONAL N.V. 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  vl53l0x_types.h
- * @brief VL53L0X types definition
- */
-
-#ifndef VL53L0X_TYPES_H_
-#define VL53L0X_TYPES_H_
-
-/** @defgroup porting_type  Basic type definition
- *  @ingroup  VL53L0X_platform_group
- *
- *  @brief  file vl53l0x_types.h files hold basic type definition that may requires porting
- *
- *  contains type that must be defined for the platform\n
- *  when target platform and compiler provide stdint.h and stddef.h it is enough to include it.\n
- *  If stdint.h is not available review and adapt all signed and unsigned 8/16/32 bits basic types. \n
- *  If stddef.h is not available review and adapt NULL definition .
- */
-#include <stdint.h>
-#include <stddef.h>
-
-#ifndef NULL
-#error "Error NULL definition should be done. Please add required include "
-#endif
-
-
-#if ! defined(STDINT_H) &&  !defined(_GCC_STDINT_H) &&!defined(__STDINT_DECLS) && !defined(_GCC_WRAP_STDINT_H) && !defined(_STDINT) && !defined(_STDINT_H)
-
- #pragma message("Please review  type definition of STDINT define for your platform and add to list above ")
-
- /*
-  *  target platform do not provide stdint or use a different #define than above
-  *  to avoid seeing the message below addapt the #define list above or implement
-  *  all type and delete these pragma
-  */
-
-/** \ingroup VL53L0X_portingType_group
- * @{
- */
-
-
-typedef unsigned long long uint64_t;
-
-
-/** @brief Typedef defining 32 bit unsigned int type.\n
- * The developer should modify this to suit the platform being deployed.
- */
-typedef unsigned int uint32_t;
-
-/** @brief Typedef defining 32 bit int type.\n
- * The developer should modify this to suit the platform being deployed.
- */
-typedef int int32_t;
-
-/** @brief Typedef defining 16 bit unsigned short type.\n
- * The developer should modify this to suit the platform being deployed.
- */
-typedef unsigned short uint16_t;
-
-/** @brief Typedef defining 16 bit short type.\n
- * The developer should modify this to suit the platform being deployed.
- */
-typedef short int16_t;
-
-/** @brief Typedef defining 8 bit unsigned char type.\n
- * The developer should modify this to suit the platform being deployed.
- */
-typedef unsigned char uint8_t;
-
-/** @brief Typedef defining 8 bit char type.\n
- * The developer should modify this to suit the platform being deployed.
- */
-typedef signed char int8_t;
-
-/** @}  */
-#endif /* _STDINT_H */
-
-
-/** use where fractional values are expected
- *
- * Given a floating point value f it's .16 bit point is (int)(f*(1<<16))*/
-typedef uint32_t FixPoint1616_t;
-
-#endif /* VL53L0X_TYPES_H_ */
+/*******************************************************************************
+Copyright � 2015, STMicroelectronics International N.V.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+    * Redistributions of source code must retain the above copyright
+      notice, this list of conditions and the following disclaimer.
+    * 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.
+    * 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, FITNESS FOR A PARTICULAR PURPOSE, AND
+NON-INFRINGEMENT OF INTELLECTUAL PROPERTY RIGHTS ARE DISCLAIMED.
+IN NO EVENT SHALL STMICROELECTRONICS INTERNATIONAL N.V. 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  vl53l0x_types.h
+ * @brief VL53L0X types definition
+ */
+
+#ifndef VL53L0X_TYPES_H_
+#define VL53L0X_TYPES_H_
+
+/** @defgroup porting_type  Basic type definition
+ *  @ingroup  VL53L0X_platform_group
+ *
+ *  @brief  file vl53l0x_types.h files hold basic type definition that may requires porting
+ *
+ *  contains type that must be defined for the platform\n
+ *  when target platform and compiler provide stdint.h and stddef.h it is enough to include it.\n
+ *  If stdint.h is not available review and adapt all signed and unsigned 8/16/32 bits basic types. \n
+ *  If stddef.h is not available review and adapt NULL definition .
+ */
+#include <stdint.h>
+#include <stddef.h>
+
+#ifndef NULL
+#error "Error NULL definition should be done. Please add required include "
+#endif
+
+
+#if ! defined(STDINT_H) &&  !defined(_GCC_STDINT_H) &&!defined(__STDINT_DECLS) && !defined(_GCC_WRAP_STDINT_H) && !defined(_STDINT) && !defined(_STDINT_H)
+
+ #pragma message("Please review  type definition of STDINT define for your platform and add to list above ")
+
+ /*
+  *  target platform do not provide stdint or use a different #define than above
+  *  to avoid seeing the message below addapt the #define list above or implement
+  *  all type and delete these pragma
+  */
+
+/** \ingroup VL53L0X_portingType_group
+ * @{
+ */
+
+
+typedef unsigned long long uint64_t;
+
+
+/** @brief Typedef defining 32 bit unsigned int type.\n
+ * The developer should modify this to suit the platform being deployed.
+ */
+typedef unsigned int uint32_t;
+
+/** @brief Typedef defining 32 bit int type.\n
+ * The developer should modify this to suit the platform being deployed.
+ */
+typedef int int32_t;
+
+/** @brief Typedef defining 16 bit unsigned short type.\n
+ * The developer should modify this to suit the platform being deployed.
+ */
+typedef unsigned short uint16_t;
+
+/** @brief Typedef defining 16 bit short type.\n
+ * The developer should modify this to suit the platform being deployed.
+ */
+typedef short int16_t;
+
+/** @brief Typedef defining 8 bit unsigned char type.\n
+ * The developer should modify this to suit the platform being deployed.
+ */
+typedef unsigned char uint8_t;
+
+/** @brief Typedef defining 8 bit char type.\n
+ * The developer should modify this to suit the platform being deployed.
+ */
+typedef signed char int8_t;
+
+/** @}  */
+#endif /* _STDINT_H */
+
+
+/** use where fractional values are expected
+ *
+ * Given a floating point value f it's .16 bit point is (int)(f*(1<<16))*/
+typedef uint32_t FixPoint1616_t;
+
+#endif /* VL53L0X_TYPES_H_ */
diff --git a/hk_as923_decoder.js b/hk_as923_decoder.js
index 2af81f3..8509bf2 100644
--- a/hk_as923_decoder.js
+++ b/hk_as923_decoder.js
@@ -1,567 +1,567 @@
-// Decode decodes an array of bytes into an object.
-//  - fPort contains the LoRaWAN fPort number
-//  - bytes is an array of bytes, e.g. [225, 230, 255, 0]
-//  - variables contains the device variables e.g. {"calibration": "3.5"} (both the key / value are of type string)
-// The function must return an object, e.g. {"temperature": 22.5}
-// for Yunhorn SmarToilets STS-O7 Occupancy/Fall Detection/Over stay sensor
-function Decode(fPort, data, variables) {
-    var data = {};
-    data.length = bytes.length;
-    // R4 soap/sanitizer sensor
-    if (fPort === 7) {
-        data.length = bytes.length;
-        data.led_state = bytes[0] == 0x0 ? "Off" : "On";
-        data.mtm_code_1 = bytes[1];
-        data.mtm_code_2 = bytes[2];
-        data.hw_code = bytes[3];
-        data.battery_level = bytes[4] + "%";
-        data.size_value = bytes[5];
-        data.measure_tech = (bytes[6] === 0) ? "Capacitive" : "Other";
-        data.liquid_level_event = (bytes[7] === 0x1) ? "Liquid Detected" : "No Liquid";
-
-        return { "Yunhorn_SmarToilets_data": data };
-    }
-    else if ((fPort === 10)) {  // STS_O2_O6 V3 version 2023,pixel-network version
-        switch (bytes[0]) {
-            case 0x00:
-                data.LEDcolor = "Dark";
-                break;
-            case 0x01:
-                data.LEDcolor = "Green";
-                data.cubicleOccupyStatus = "Vacant";
-                break;
-            case 0x02:
-                data.LEDcolor = "Red";
-                data.cubicleOccupyStatus = "Occupied";
-                break;
-            case 0x03:
-                data.LEDcolor = "Blue";
-                data.cubicleOccupyStatus = "Maintenance";
-                break;
-            case 0x04:
-                data.LEDcolor = "Yellow";
-                data.cubicleOccupyStatus = "TBD";
-                break;
-            case 0x05:
-                data.LEDcolor = "Pink";
-                data.cubicleOccupyStatus = "TBD";
-                break;
-            case 0x06:
-                data.LEDcolor = "Cyan";
-                data.cubicleOccupyStatus = "TBD";
-                break;
-            case 0x07:
-                data.LEDcolor = "White";
-                data.cubicleOccupyStatus = "TBD";
-                break;
-            case 0x08:
-                data.LEDcolor = "Red_Blue";
-                data.cubicleOccupyStatus = "EMERGENCY";
-                break;
-            case 0x23:
-                data.LEDcolor = "Red_Blue";
-                data.cubicleOccupyStatus = "EMERGENCY";
-                break;
-            case 0x20:
-                data.LEDcolor = "Red_Flash";
-                data.cubicleOccupyStatus = "EMERGENCY";
-                break;
-            default:
-                data.LEDcolor = "TBD_COLOR";
-                data.cubicleOccupyStatus = "TBD_status";
-                break;
-        }
-
-        switch (bytes[1]) {
-            case 0x0:
-                data.workmode = "Network_mode";
-                break;
-            case 0x01:
-                data.workmode = "Wired_Mode";
-                break;
-            case 0x02:
-                data.workmode = "Hall_element_mode";
-                break;
-            case 0x03:
-                data.workmode = "MotionDetect_mode";
-                break;
-            case 0x04:
-                data.workmode = "Dual_mode";
-                break;
-            case 0x05:
-                data.workmode = "Uni_Mode";
-                break;
-            default:
-                data.workmode = "Unknown Mode";
-                break;
-        }
-        // select only one below
-        // For NC(Normal Closed states
-        data.Sensor1_Door_Contact_Open = bytes[2] === 0 ? "Door Closed" : "Door Open";
-
-        // For NC(Normal Closed states
-        //data.Sensor1_Door_Contact_Open = bytes[3]===1?"Door Closed":"Door Open"; 
-        if (bytes[1] == 0x02) //Hall_element_mode
-        {
-            data.Sensor2_SOS_Pushed = bytes[3] === 0 ? "PushDown" : "RelaseUP";
-        } else if (bytes[1] > 0x02) {
-            data.Sensor2_Motion_Detected = bytes[3] === 0 ? "No Motion" : "Motion Detected";
-        }
-
-        return { "Yunhorn_SmarToilets_data": data };
-    }
-    else if ((fPort === 17) || (fPort === 19) || (fPort === 21)) {
-        data.BoardLED = ((bytes[0] & 0x7F) === 0x01) ? "ON" : "OFF";
-        switch (bytes[1]) {
-            case 0x00:
-                data.LEDcolor = "Dark";
-                break;
-            case 0x01:
-                data.LEDcolor = "Green";
-                data.cubicleOccupyStatus = "Vacant";
-                break;
-            case 0x02:
-                data.LEDcolor = "Red";
-                data.cubicleOccupyStatus = "Occupied";
-                break;
-            case 0x03:
-                data.LEDcolor = "Blue";
-                data.cubicleOccupyStatus = "Maintenance";
-                break;
-            case 0x04:
-                data.LEDcolor = "Yellow";
-                data.cubicleOccupyStatus = "TBD";
-                break;
-            case 0x05:
-                data.LEDcolor = "Pink";
-                data.cubicleOccupyStatus = "TBD";
-                break;
-            case 0x06:
-                data.LEDcolor = "Cyan";
-                data.cubicleOccupyStatus = "TBD";
-                break;
-            case 0x07:
-                data.LEDcolor = "White";
-                data.cubicleOccupyStatus = "TBD";
-                break;
-            case 0x08:
-                data.LEDcolor = "Red_Blue";
-                data.cubicleOccupyStatus = "EMERGENCY";
-                break;
-            case 0x23:
-                data.LEDcolor = "Red_Blue";
-                data.cubicleOccupyStatus = "EMERGENCY";
-                break;
-            case 0x20:
-                data.LEDcolor = "Red_Flash";
-                data.cubicleOccupyStatus = "EMERGENCY";
-                break;
-            default:
-                data.LEDcolor = "TBD_COLOR";
-                data.cubicleOccupyStatus = "TBD_status";
-                break;
-        }
-
-        switch (bytes[2]) {
-            case 0x0:
-                data.workmode = "Network_mode";
-                break;
-            case 0x01:
-                data.workmode = "Wired_Mode";
-                break;
-            case 0x02:
-                data.workmode = "Hall_element_mode";
-                break;
-            case 0x03:
-                data.workmode = "MotionDetect_mode";
-                break;
-            case 0x04:
-                data.workmode = "Dual_mode";
-                break;
-            case 0x05:
-                data.workmode = "Uni_Mode";
-                break;
-            default:
-                data.workmode = "Unknown Mode";
-                break;
-        }
-        // select only one below
-        // For NC(Normal Closed states
-        data.Sensor1_Door_Contact_Open = bytes[3] === 0 ? "Door Closed" : "Door Open";
-
-        // For NC(Normal Closed states
-        //data.Sensor1_Door_Contact_Open = bytes[3]===1?"Door Closed":"Door Open"; 
-        data.Sensor2_Emergency_Button = bytes[4] === 0 ? "Alarm Push Down" : "No Alarm, Released";
-        data.Sensor3_Motion_Detected = bytes[5] === 0 ? "No Motion" : "Motion Detected";
-
-        data.length = bytes.length;
-        if (data.length === 9) {
-            data.Over_stay_state = (bytes[6] === 0) ? "False" : "True";
-            data.Over_Stay_duration_in_Seconds = (bytes[7] << 8 | bytes[8]);
-
-            return { "Yunhorn_SmarToilets_data": data };
-        }
-        else if (data.length > 9) {
-            data.Sensor4_ALARM_MUTE = (bytes[6] === 0) ? "Down Mute" : "No Mute";
-            data.Sensor5_ALARM_RESET = (bytes[7] === 0) ? "Down RESET" : "NO Reset";
-            data.Distance_in_mm = (bytes[8] << 8 | bytes[9]);
-            data.MotionLevel = (bytes[10] << 8 | bytes[11]);
-
-            data.Unconcious_State = (bytes[12] == 0) ? "False" : "True";
-
-            switch (bytes[13]) {
-                case 0x0:
-                    data.Fall_Down_Detected_State = "Presence_Normal";
-                    break;
-                case 0x01:
-                    data.Fall_Down_Detected_State = "Presence_Fall_Down";
-                    break;
-                case 0x02:
-                    data.Fall_Down_Detected_State = "Presence_Rising_Up";
-                    break;
-                case 0x03:
-                    data.Fall_Down_Detected_State = "Presence_LayDown";
-                    break;
-                case 0x04:
-                    data.Fall_Down_Detected_State = "Presence_Unconcious";
-                    break;
-                case 0x05:
-                    data.Fall_Down_Detected_State = "Presence_Stay_Still";
-                    break;
-                default:
-                    data.Fall_Down_Detected_State = "Presence_Normal";
-                    break;
-            }
-            data.OverStay_Detected_State = (bytes[14] == 0x0) ? "False" : "True";
-            data.OverStay_Duration_in_Seconds = (bytes[15] << 8 | bytes[16]);
-            data.No_Movement_Duration_in_Seconds = (bytes[17] << 8 | bytes[18]);
-            data.Unconcious_Duration_in_Seconds = (bytes[17] << 8 | bytes[18]);
-            data.Fall_Down_Speed_in_m_per_s = (bytes[19]);
-            data.Fall_Down_Gravity_in_g = (bytes[20]);
-            data.SOS_PushDown_Stamp = (bytes[21] << 24 | bytes[22] << 16 | bytes[23] << 8 | bytes[24]);
-            if (data.SOS_PushDown_Stamp != 0) {
-                var sos_start = new Date(1000 * data.SOS_PushDown_Stamp);
-                data.SOS_PushDown_Time = "[" + sos_start.getDate() + "." + (sos_start.getMonth() + 1) + "." + (sos_start.getFullYear()) + "] " + sos_start.getHours() + ":" + sos_start.getMinutes() + ":" + sos_start.getSeconds();
-            } else data.SOS_PushDown_Time = "N/A";
-            data.SOS_ReleaseUP_Stamp = (bytes[25] << 24 | bytes[26] << 16 | bytes[27] << 8 | bytes[28]);
-            if (data.SOS_ReleaseUP_Stamp != 0) {
-                var sos_stop = new Date(1000 * data.SOS_ReleaseUP_Stamp);
-                data.SOS_ReleaseUP_Time = "[" + sos_stop.getDate() + "." + (sos_stop.getMonth() + 1) + "." + (sos_stop.getFullYear()) + "] " + sos_stop.getHours() + ":" + sos_stop.getMinutes() + ":" + sos_stop.getSeconds();
-            } else data.SOS_ReleaseUP_Time = "N/A";
-
-            data.Fall_Down_Stamp = (bytes[29] << 24 | bytes[30] << 16 | bytes[31] << 8 | bytes[32]);
-            if (data.Fall_Down_Stamp != 0) {
-                var fall_start = new Date(1000 * data.Fall_Down_Stamp);
-                data.Fall_Down_Time = "[" + fall_start.getDate() + "." + (fall_start.getMonth() + 1) + "." + (fall_start.getFullYear()) + "] " + fall_start.getHours() + ":" + fall_start.getMinutes() + ":" + fall_start.getSeconds();
-            } else data.Fall_RiseUp_Stamp = "N/A";
-            data.Fall_RiseUp_Stamp = (bytes[33] << 24 | bytes[34] << 16 | bytes[35] << 8 | bytes[36]);
-            if (data.Fall_RiseUp_Stamp != 0) {
-                var fall_stop = new Date(1000 * data.Fall_RiseUp_Stamp);
-                data.Fall_RiseUp_Time = "[" + fall_stop.getDate() + "." + (fall_stop.getMonth() + 1) + "." + (fall_stop.getFullYear()) + "] " + fall_stop.getHours() + ":" + fall_stop.getMinutes() + ":" + fall_stop.getSeconds();
-            } else data.Fall_RiseUp_Time = "N/A";
-        }
-        return { "Yunhorn_SmarToilets_data": data };
-    }
-    else if ((fPort === 11) || (fPort === 52)) {
-        return [
-            {
-                led_state: bytes[0] === 0 ? "Off" : "On",
-                mtm_code_1: bytes[1],
-                mtm_code_2: bytes[2],
-                hw_code: bytes[3],
-                battery_level: bytes[4] + "%",
-                //battery_level:(bytes[4])*100+" mV",
-                size_value: bytes[5],
-                distance_1_mm: bytes[6] << 8 | bytes[7],
-                //distance_2_mm:bytes[8]<<8|bytes[9],
-                //distance_3_mm:bytes[10]<<8|bytes[11],
-                distance_unit: "mm",
-            }
-        ];
-    }
-    // R1D dual roll toilet paper sensor
-    else if (fPort === 57) {
-        return [
-            {
-                led_state: bytes[0] === 0 ? "Off" : "On",
-                mtm_code_1: bytes[1],
-                mtm_code_2: bytes[2],
-                hw_code: bytes[3],
-                battery_level: bytes[4] + "%",
-                //battery_level:(bytes[4])*100+" mV",
-                size_value: bytes[5],
-                distance_1_mm: bytes[6] << 8 | bytes[7],
-                distance_2_mm: bytes[8] << 8 | bytes[9],
-                //distance_3_mm:bytes[10]<<8|bytes[11],
-                distance_unit: "mm",
-            }
-        ];
-    }
-    else if ((fPort === 106)) {		//STS-P2 bi-directional people counting        
-        data.LED_State = bytes[0] === 0 ? "Off" : "On";
-        data.MTM_Code_1 = bytes[1];
-        data.MTM_Code_2 = bytes[2];
-        data.HW_Code = bytes[3];
-        data.Battery_Level = bytes[4] + " %";
-        data.Payload_Size = bytes[5];
-        data.Walk_In_People_Count = bytes[6] << 8 | bytes[7];
-        data.Walk_Out_People_Count = bytes[8] << 8 | bytes[8];
-        data.Walk_Around_People_Count = bytes[10] << 8 | bytes[11];
-        data.Count_Period = bytes[12];
-        data.Count_Period_Unit = String.fromCharCode(bytes[13]);
-        data.Sum_Day_Walk_In_People_Count = bytes[14] << 8 | bytes[15];
-        data.Sum_Day_Walk_Out_People_Count = bytes[16] << 8 | bytes[17];
-        data.Sum_Day_Walk_Around_People_Count = bytes[18] << 8 | bytes[19];
-        data.Count_Valid = (bytes[20] == 0x0) ? "Error" : "OK";
-
-        return { "Yunhorn_SmarToilets_data": data };
-    }
-    // Heart Beat 
-    else if ((fPort === 8) || (fPort === 12) || (fPort === 20) || (fPort === 18) || (fPort === 5) || (fPort === 107) || (fPort === 58)) {
-        var data = {};
-        //data.led_state=(bytes[0] & 0x7f) === 0 ? "Off" : "On";
-        data.BoardLED = ((bytes[0] & 0x7F) === 0x01) ? "ON" : "OFF";
-        //data.battery_level = bytes[1] + " %";
-        data.battery_level = bytes[1] * 100 + "mV";
-        return { "Yunhorn_SmarToilets_data": data };
-    }
-
-    // UPLINK, RFAC
-    else if (fPort === 1) {
-        var data = {};
-        data.length = bytes.length;
-        if ((data.length === 10) && (bytes[0] == 0x59) && (bytes[9] == 0x38)) {
-            data.Yunhorn_PRD = "True";
-            data.PRD_String = String.fromCharCode(bytes);
-        }
-        else if ((data.length === 4) && (bytes[0] == 0x52) && (bytes[1] == 0x46)) //RFAC
-        {
-            data.Request_Performed = "OK";
-            data.RFAC = "OK";
-            data.AC0 = bytes[0];
-            data.AC1 = bytes[1];
-        }
-        else if ((data.length === 4) && (bytes[0] === 0x50) && (bytes[1] === 0x31) && (bytes[2] === 0x31)) {
-            data.Work_Mode_Switch = "OK";
-            switch (bytes[3] - 0x30) {
-                case 0x0:
-                    data.workmode = "Network_mode";
-                    break;
-                case 0x01:
-                    data.workmode = "Wired_Mode";
-                    break;
-                case 0x02:
-                    data.workmode = "Hall_element_mode";
-                    break;
-                case 0x03:
-                    data.workmode = "MotionDetect_mode";
-                    break;
-                case 0x04:
-                    data.workmode = "Dual_mode";
-                    break;
-                case 0x05:
-                    data.workmode = "Uni_Mode";
-                    break;
-                default:
-                    data.workmode = "Unknown Mode";
-                    break;
-            }
-        }
-
-        if ((bytes[0] === 0x59) && (bytes[1] === 0x44)) //Duration interval
-        {
-            data.Uplink_interval = (bytes[2] - 0x30) * 10 + (bytes[3] - 0x30);
-            data.Uplink_interval_unit = String.fromCharCode(bytes[4]);
-            //data.Heart_beat_Duration = (bytes[2]-0x30)*10 + (bytes[3]-0x30);
-            //data.Unit = String.fromCharCode(bytes[4]);
-        }
-
-        else if ((bytes[0] === 0x59) && (bytes[1] === 0x53))	//Sampling interval or Heart-beat interval
-        {
-            data.Heart_Beat_interval = (bytes[2] - 0x30) * 10 + (bytes[3] - 0x30);
-            data.Heart_Beat_interval_unit = String.fromCharCode(bytes[4]);
-            //data.Wakeup_sampling_interval = (bytes[2]-0x30)*10 + (bytes[3]-0x30);
-            //data.Unit = String.fromCharCode(bytes[4]);
-        }
-
-        else if (bytes[0] === 0x43) {  // report current nvm config
-            data.mtm_code1 = bytes[1];
-            data.mtm_code2 = bytes[2];
-            data.sts_verion = bytes[3];
-            data.sts_hw_ver = bytes[4];
-            data.sts_uplink_interval = bytes[5];
-            data.sts_uplink_interval_unit = String.fromCharCode(bytes[6]);
-            data.sts_sampling_interval = bytes[7];
-            data.sts_sampling_interval_unit = String.fromCharCode(bytes[8]);
-            data.sts_work_mode = bytes[9];
-            data.sts_service_mask = bytes[10];
-            data.sts_reserve01 = bytes[11];
-            data.sts_payload_length = bytes[12];
-            data.rss_start_distance = bytes[13] * 0.1 + " meter";
-            data.rss_range_length = bytes[14] * 0.1 + " meter";
-            data.rss_threshold = bytes[15] * 0.1;
-            data.rss_receiving_gain = bytes[16] + " %";
-            data.rss_profile = bytes[17];
-            data.rss_rate_tracking = bytes[18];
-            data.rss_rate_presence = bytes[19];
-            data.rss_HWAAS = bytes[20];
-            data.rss_nbr_removed_pc = bytes[21];
-            data.rss_inter_frame_deviation_time_const = bytes[22] * 0.1;
-            data.rss_inter_frame_fast_cutoff = bytes[23];
-            data.rss_inter_frame_slow_cutoff = bytes[24];
-            data.rss_intra_frame_time_const = bytes[25];
-            data.rss_intra_frame_weight = bytes[26] * 0.1;
-            data.rss_output_time_const = bytes[27] * 0.1;
-            data.rss_downsampling_factor = bytes[28];
-            data.rss_power_saving_mode_active = bytes[29];
-            data.rss_reserve02 = bytes[30];
-            data.rss_reserve03 = bytes[31];
-            data.rss_reserve04 = bytes[32];
-            data.reserve2 = bytes[33];
-            data.reserve3 = bytes[34];
-            data.sensor_install_height = bytes[35] * 10 + " cm";
-
-            data.alarm_parameter05 = bytes[36];
-            data.alarm_mute_expire_timer = bytes[37];
-            data.alarm_lamp_bar_flashing_color = bytes[38];
-            data.occupancy_overtime_threshold = bytes[39];
-
-            data.motionless_duration_threshold = bytes[40];
-            data.unconcious_threshold = bytes[41];
-
-            data.fall_detection_acc_threshold = bytes[42];
-            data.fall_detection_depth_threshold = bytes[43];
-            data.fall_down_confirm_threshold = bytes[44];
-        }
-        else if (bytes[0] === 0x53) {  // SELF TEST FUNCTION
-            data.mtm_code1 = bytes[1];
-            data.mtm_code2 = bytes[2];
-            data.sts_verion = bytes[3];
-            data.sts_hw_ver = bytes[4];
-            data.battery_level = bytes[5];
-            if ((bytes[6] === 0x03)) {	// report sensor install height
-                data.sts_sensor_install_height = (bytes[7] << 8 | bytes[8]);
-                data.sts_sensor_install_height_unit = "mm";
-            }
-            else if ((bytes[6] === 0x58)) {
-                data.sts_Test_Result = "### Motion Sensor Not Detected ###";
-            } else if ((bytes[6] === 0x0E)) //result length, 10 rss bytes, 4 distance bytes
-            {
-                data.sts_Test_Result = "Motion Sensor Test Result:";
-                data.sts_test_result_length = bytes[6];
-                data.sts_rss_sub_code1 = bytes[7];
-                data.sts_rss_sub_code2 = bytes[8];
-                data.sts_rss_sub_code3 = bytes[9];
-                data.sts_rss_sub_code4 = bytes[10];
-                data.sts_rss_sub_code5 = bytes[11];
-                data.sts_rss_sub_code6 = bytes[12];
-                data.sts_rss_sub_code7 = bytes[13];
-                data.sts_rss_sub_code8 = bytes[14];
-                data.sts_rss_sub_code9 = bytes[15];
-                data.sts_rss_sub_code10 = bytes[16];
-                data.sts_sensor_install_height = String.fromCharCode(bytes[17]) + String.fromCharCode(bytes[18]) + String.fromCharCode(bytes[19]) + String.fromCharCode(bytes[20]) + " mm";
-            }
-        }
-        else if (bytes[0] === 0x44) {  // MEASURE INSTALLATION HEIGHT
-            data.mtm_code1 = bytes[1];
-            data.mtm_code2 = bytes[2];
-            data.sts_verion = bytes[3];
-            data.sts_hw_ver = bytes[4];
-            data.battery_level = bytes[5];
-            data.payload_length = bytes[6];
-            data.Measure_Distance = String.fromCharCode(bytes[7]) + String.fromCharCode(bytes[8]) + String.fromCharCode(bytes[9]) + String.fromCharCode(bytes[10]);
-            data.Distance_unit = "mm";
-        }
-        else if (bytes[0] === 0x4c) { // LoRaWAN Class A/B/C
-            data.mtm_code1 = bytes[1];
-            data.mtm_code2 = bytes[2];
-            data.sts_verion = bytes[3];
-            data.LoRaWAN_Class = String.fromCharCode(bytes[4]);
-        }
-        else if (bytes[0] === 0x56) {	 // FIRMWARE VERSION
-
-            data.mtm_code1 = bytes[1];
-            data.mtm_code2 = bytes[2];
-            data.sts_verion = bytes[3];
-            data.sts_hw_ver = bytes[4];
-            data.sts_major = bytes[5];
-            data.sts_minor = bytes[6];
-            data.subminor = bytes[7];
-
-            if (data.length === 15) {
-                data.L_year = (bytes[8] << 8 | bytes[9]);
-                data.L_mon = bytes[10];
-                data.L_day = bytes[11];
-                data.L_hour = bytes[12];
-                data.L_min = bytes[13];
-                data.L_sec = bytes[14];
-                data.LocalTime_UTC = "UTC:  " + data.L_year + "/" + data.L_mon + "/" + data.L_day + " " + data.L_hour + ":" + data.L_min + ":" + data.L_sec;
-                data.LocalTime_EST8 = "GMT+8: " + data.L_year + "/" + data.L_mon + "/" + data.L_day + " " + (data.L_hour + 8) + ":" + data.L_min + ":" + data.L_sec;
-            }
-        }
-        else if (bytes[0] === 0x54) {  //T: date & time
-            data.L_year = (bytes[1] << 8 | bytes[2]);
-            data.L_mon = bytes[3];
-            data.L_day = bytes[4];
-            data.L_hour = bytes[5];
-            data.L_min = bytes[6];
-            data.L_sec = bytes[7];
-            data.LocalTime_UTC = "UTC:  " + data.L_year + "/" + data.L_mon + "/" + data.L_day + " " + data.L_hour + ":" + data.L_min + ":" + data.L_sec;
-
-        }
-        else if (bytes[0] === 0x50) { // P cmd report
-            if (data.length == 7) {
-                switch (bytes[3]) {
-                    case 0x46:   // F --- fall down & unconscious detection threshold
-                        data.FALL_acceleration = (bytes[4] == 0x30 ? "Disabled" : ((bytes[4] - 0x30) * 10) + " mg/s2");
-                        data.FALL_depth_measure = (bytes[5] == 0x30 ? "Disabled" : ((bytes[5] - 0x30) * 10) + " cm");
-                        data.FALL_confirm_threshold = (bytes[6] == 0x30 ? "Disabled" : ((bytes[6] - 0x30) * 10) + " seconds");
-                        //data.FALL_reserved = (bytes[7]==0x0?"Disabled":((bytes[6]-0x30)*10)+" min");
-                        break;
-                } //switch
-            }
-            else if (data.length == 8) {
-                switch (bytes[3]) {
-                    case 0x4f:  // O -- over stay, onconscious, long stay
-                        data.OMU_Motionless_duration_in_min = (bytes[4] == 0x30 ? "Disabled" : ((bytes[4] - 0x30)) + " Min");
-                        data.OMU_Long_Occupy_duration_in_Min = (bytes[5] == 0x30 ? "Disabled" : ((bytes[5] - 0x30) * 10) + " Min");
-                        data.OMU_Unconcious_Threshold = (bytes[6] == 0x30 ? "Disabled" : ((bytes[6] - 0x30) * 100) + "ml");
-                        data.OMU_Alarm_Mute_Reset_Timer = (bytes[7] == 0x30 ? "Disabled" : ((bytes[7] - 0x30) * 10) + " Seconds");
-                        break;
-                    case 0x46:   // F --- fall down & unconscious detection threshold
-                        data.FALL_acceleration = (bytes[4] == 0x30 ? "Disabled" : ((bytes[4] - 0x30) * 10) + " mg/s2");
-                        data.FALL_depth_measure = (bytes[5] == 0x30 ? "Disabled" : ((bytes[5] - 0x30) * 10) + " cm");
-                        data.FALL_confirm_threshold = (bytes[6] == 0x30 ? "Disabled" : ((bytes[6] - 0x30) * 10) + " seconds");
-                        data.FALL_reserved = (bytes[7] == 0x30 ? "Disabled" : ((bytes[6] - 0x30) * 10) + " min");
-                        break;
-                } //switch
-            } else if (data.length == 11) { // P 1108201365
-                data.RSS_SIMPLE_Start = ((bytes[3] - 0x30) * 100 + (bytes[4] - 0x30) * 10) + " cm";
-                data.RSS_SIMPLE_Length = ((bytes[5] - 0x30) * 100 + (bytes[6] - 0x030) * 10) + " cm";
-                data.RSS_SIMPLE_Threshold = ((bytes[7] - 0x30) * 1000 + (bytes[8] - 0x30) * 100) + " ml";
-                data.RSS_SIMPLE_Gain = ((bytes[9] - 0x30) * 10 + (bytes[10] - 0x30)) + " %";
-            } else if (data.length == 33) { // P 11
-                data.RSS_FULL_Start = ((bytes[3] - 0x30) * 100 + (bytes[4] - 0x30) * 10) + " cm";
-                data.RSS_FULL_Length = ((bytes[5] - 0x30) * 100 + (bytes[6] - 0x30) * 10) + " cm";
-                data.RSS_FULL_Threshold = ((bytes[7] - 0x30) * 1000 + (bytes[8] - 0x30) * 100) + " ml";
-                data.RSS_FULL_Gain = ((bytes[9] - 0x30) * 10 + (bytes[10] - 0x30)) + " %";
-                data.RSS_FULL_Profile = (bytes[11] - 0x30);
-                data.RSS_FULL_Rate_Tracking = ((bytes[12] - 0x30) * 10 + (bytes[13] - 0x30));
-                data.RSS_FULL_Rate_Presence = ((bytes[14] - 0x30) * 10 + (bytes[15] - 0x30));
-                data.RSS_FULL_HWAAS = ((bytes[16] - 0x30) * 10 + (bytes[17] - 0x30));
-                data.RSS_FULL_Num_Removed_PC = (bytes[18] - 0x30);
-                data.RSS_FULL_Inter_Deviation_Time_Const_in_Sec = ((bytes[19] - 0x30) + (bytes[20] - 0x30) * 0.1);
-                data.RSS_FULL_Inter_Fast_Cut_Off = ((bytes[21] - 0x30) * 10 + (bytes[22] - 0x30));
-                data.RSS_FULL_Inter_Slow_Cut_Off = ((bytes[23] - 0x30) * 0.1 + (bytes[24] - 0x30) * 0.001);
-                data.RSS_FULL_Inter_Time_Const_in_Sec = ((bytes[25] - 0x30) * 10 + (bytes[26] - 0x30));
-                data.RSS_FULL_Inter_Weight = ((bytes[27] - 0x30) + (bytes[28] - 0x30) * 0.1);
-                data.RSS_FULL_Output_Time_Const_in_Sec = ((bytes[29] - 0x30) + (bytes[30] - 0x30) * 0.1);
-                data.RSS_FULL_DownSampling_factor = (bytes[31] - 0x30);
-                data.RSS_FULL_Power_Saving_mode = (bytes[32] - 0x30);
-
-
-            }
-        }
-        return { "Yunhorn_SmarToilets_data": data };
-    }
+// Decode decodes an array of bytes into an object.
+//  - fPort contains the LoRaWAN fPort number
+//  - bytes is an array of bytes, e.g. [225, 230, 255, 0]
+//  - variables contains the device variables e.g. {"calibration": "3.5"} (both the key / value are of type string)
+// The function must return an object, e.g. {"temperature": 22.5}
+// for Yunhorn SmarToilets STS-O7 Occupancy/Fall Detection/Over stay sensor
+function Decode(fPort, data, variables) {
+    var data = {};
+    data.length = bytes.length;
+    // R4 soap/sanitizer sensor
+    if (fPort === 7) {
+        data.length = bytes.length;
+        data.led_state = bytes[0] == 0x0 ? "Off" : "On";
+        data.mtm_code_1 = bytes[1];
+        data.mtm_code_2 = bytes[2];
+        data.hw_code = bytes[3];
+        data.battery_level = bytes[4] + "%";
+        data.size_value = bytes[5];
+        data.measure_tech = (bytes[6] === 0) ? "Capacitive" : "Other";
+        data.liquid_level_event = (bytes[7] === 0x1) ? "Liquid Detected" : "No Liquid";
+
+        return { "Yunhorn_SmarToilets_data": data };
+    }
+    else if ((fPort === 10)) {  // STS_O2_O6 V3 version 2023,pixel-network version
+        switch (bytes[0]) {
+            case 0x00:
+                data.LEDcolor = "Dark";
+                break;
+            case 0x01:
+                data.LEDcolor = "Green";
+                data.cubicleOccupyStatus = "Vacant";
+                break;
+            case 0x02:
+                data.LEDcolor = "Red";
+                data.cubicleOccupyStatus = "Occupied";
+                break;
+            case 0x03:
+                data.LEDcolor = "Blue";
+                data.cubicleOccupyStatus = "Maintenance";
+                break;
+            case 0x04:
+                data.LEDcolor = "Yellow";
+                data.cubicleOccupyStatus = "TBD";
+                break;
+            case 0x05:
+                data.LEDcolor = "Pink";
+                data.cubicleOccupyStatus = "TBD";
+                break;
+            case 0x06:
+                data.LEDcolor = "Cyan";
+                data.cubicleOccupyStatus = "TBD";
+                break;
+            case 0x07:
+                data.LEDcolor = "White";
+                data.cubicleOccupyStatus = "TBD";
+                break;
+            case 0x08:
+                data.LEDcolor = "Red_Blue";
+                data.cubicleOccupyStatus = "EMERGENCY";
+                break;
+            case 0x23:
+                data.LEDcolor = "Red_Blue";
+                data.cubicleOccupyStatus = "EMERGENCY";
+                break;
+            case 0x20:
+                data.LEDcolor = "Red_Flash";
+                data.cubicleOccupyStatus = "EMERGENCY";
+                break;
+            default:
+                data.LEDcolor = "TBD_COLOR";
+                data.cubicleOccupyStatus = "TBD_status";
+                break;
+        }
+
+        switch (bytes[1]) {
+            case 0x0:
+                data.workmode = "Network_mode";
+                break;
+            case 0x01:
+                data.workmode = "Wired_Mode";
+                break;
+            case 0x02:
+                data.workmode = "Hall_element_mode";
+                break;
+            case 0x03:
+                data.workmode = "MotionDetect_mode";
+                break;
+            case 0x04:
+                data.workmode = "Dual_mode";
+                break;
+            case 0x05:
+                data.workmode = "Uni_Mode";
+                break;
+            default:
+                data.workmode = "Unknown Mode";
+                break;
+        }
+        // select only one below
+        // For NC(Normal Closed states
+        data.Sensor1_Door_Contact_Open = bytes[2] === 0 ? "Door Closed" : "Door Open";
+
+        // For NC(Normal Closed states
+        //data.Sensor1_Door_Contact_Open = bytes[3]===1?"Door Closed":"Door Open"; 
+        if (bytes[1] == 0x02) //Hall_element_mode
+        {
+            data.Sensor2_SOS_Pushed = bytes[3] === 0 ? "PushDown" : "RelaseUP";
+        } else if (bytes[1] > 0x02) {
+            data.Sensor2_Motion_Detected = bytes[3] === 0 ? "No Motion" : "Motion Detected";
+        }
+
+        return { "Yunhorn_SmarToilets_data": data };
+    }
+    else if ((fPort === 17) || (fPort === 19) || (fPort === 21)) {
+        data.BoardLED = ((bytes[0] & 0x7F) === 0x01) ? "ON" : "OFF";
+        switch (bytes[1]) {
+            case 0x00:
+                data.LEDcolor = "Dark";
+                break;
+            case 0x01:
+                data.LEDcolor = "Green";
+                data.cubicleOccupyStatus = "Vacant";
+                break;
+            case 0x02:
+                data.LEDcolor = "Red";
+                data.cubicleOccupyStatus = "Occupied";
+                break;
+            case 0x03:
+                data.LEDcolor = "Blue";
+                data.cubicleOccupyStatus = "Maintenance";
+                break;
+            case 0x04:
+                data.LEDcolor = "Yellow";
+                data.cubicleOccupyStatus = "TBD";
+                break;
+            case 0x05:
+                data.LEDcolor = "Pink";
+                data.cubicleOccupyStatus = "TBD";
+                break;
+            case 0x06:
+                data.LEDcolor = "Cyan";
+                data.cubicleOccupyStatus = "TBD";
+                break;
+            case 0x07:
+                data.LEDcolor = "White";
+                data.cubicleOccupyStatus = "TBD";
+                break;
+            case 0x08:
+                data.LEDcolor = "Red_Blue";
+                data.cubicleOccupyStatus = "EMERGENCY";
+                break;
+            case 0x23:
+                data.LEDcolor = "Red_Blue";
+                data.cubicleOccupyStatus = "EMERGENCY";
+                break;
+            case 0x20:
+                data.LEDcolor = "Red_Flash";
+                data.cubicleOccupyStatus = "EMERGENCY";
+                break;
+            default:
+                data.LEDcolor = "TBD_COLOR";
+                data.cubicleOccupyStatus = "TBD_status";
+                break;
+        }
+
+        switch (bytes[2]) {
+            case 0x0:
+                data.workmode = "Network_mode";
+                break;
+            case 0x01:
+                data.workmode = "Wired_Mode";
+                break;
+            case 0x02:
+                data.workmode = "Hall_element_mode";
+                break;
+            case 0x03:
+                data.workmode = "MotionDetect_mode";
+                break;
+            case 0x04:
+                data.workmode = "Dual_mode";
+                break;
+            case 0x05:
+                data.workmode = "Uni_Mode";
+                break;
+            default:
+                data.workmode = "Unknown Mode";
+                break;
+        }
+        // select only one below
+        // For NC(Normal Closed states
+        data.Sensor1_Door_Contact_Open = bytes[3] === 0 ? "Door Closed" : "Door Open";
+
+        // For NC(Normal Closed states
+        //data.Sensor1_Door_Contact_Open = bytes[3]===1?"Door Closed":"Door Open"; 
+        data.Sensor2_Emergency_Button = bytes[4] === 0 ? "Alarm Push Down" : "No Alarm, Released";
+        data.Sensor3_Motion_Detected = bytes[5] === 0 ? "No Motion" : "Motion Detected";
+
+        data.length = bytes.length;
+        if (data.length === 9) {
+            data.Over_stay_state = (bytes[6] === 0) ? "False" : "True";
+            data.Over_Stay_duration_in_Seconds = (bytes[7] << 8 | bytes[8]);
+
+            return { "Yunhorn_SmarToilets_data": data };
+        }
+        else if (data.length > 9) {
+            data.Sensor4_ALARM_MUTE = (bytes[6] === 0) ? "Down Mute" : "No Mute";
+            data.Sensor5_ALARM_RESET = (bytes[7] === 0) ? "Down RESET" : "NO Reset";
+            data.Distance_in_mm = (bytes[8] << 8 | bytes[9]);
+            data.MotionLevel = (bytes[10] << 8 | bytes[11]);
+
+            data.Unconcious_State = (bytes[12] == 0) ? "False" : "True";
+
+            switch (bytes[13]) {
+                case 0x0:
+                    data.Fall_Down_Detected_State = "Presence_Normal";
+                    break;
+                case 0x01:
+                    data.Fall_Down_Detected_State = "Presence_Fall_Down";
+                    break;
+                case 0x02:
+                    data.Fall_Down_Detected_State = "Presence_Rising_Up";
+                    break;
+                case 0x03:
+                    data.Fall_Down_Detected_State = "Presence_LayDown";
+                    break;
+                case 0x04:
+                    data.Fall_Down_Detected_State = "Presence_Unconcious";
+                    break;
+                case 0x05:
+                    data.Fall_Down_Detected_State = "Presence_Stay_Still";
+                    break;
+                default:
+                    data.Fall_Down_Detected_State = "Presence_Normal";
+                    break;
+            }
+            data.OverStay_Detected_State = (bytes[14] == 0x0) ? "False" : "True";
+            data.OverStay_Duration_in_Seconds = (bytes[15] << 8 | bytes[16]);
+            data.No_Movement_Duration_in_Seconds = (bytes[17] << 8 | bytes[18]);
+            data.Unconcious_Duration_in_Seconds = (bytes[17] << 8 | bytes[18]);
+            data.Fall_Down_Speed_in_m_per_s = (bytes[19]);
+            data.Fall_Down_Gravity_in_g = (bytes[20]);
+            data.SOS_PushDown_Stamp = (bytes[21] << 24 | bytes[22] << 16 | bytes[23] << 8 | bytes[24]);
+            if (data.SOS_PushDown_Stamp != 0) {
+                var sos_start = new Date(1000 * data.SOS_PushDown_Stamp);
+                data.SOS_PushDown_Time = "[" + sos_start.getDate() + "." + (sos_start.getMonth() + 1) + "." + (sos_start.getFullYear()) + "] " + sos_start.getHours() + ":" + sos_start.getMinutes() + ":" + sos_start.getSeconds();
+            } else data.SOS_PushDown_Time = "N/A";
+            data.SOS_ReleaseUP_Stamp = (bytes[25] << 24 | bytes[26] << 16 | bytes[27] << 8 | bytes[28]);
+            if (data.SOS_ReleaseUP_Stamp != 0) {
+                var sos_stop = new Date(1000 * data.SOS_ReleaseUP_Stamp);
+                data.SOS_ReleaseUP_Time = "[" + sos_stop.getDate() + "." + (sos_stop.getMonth() + 1) + "." + (sos_stop.getFullYear()) + "] " + sos_stop.getHours() + ":" + sos_stop.getMinutes() + ":" + sos_stop.getSeconds();
+            } else data.SOS_ReleaseUP_Time = "N/A";
+
+            data.Fall_Down_Stamp = (bytes[29] << 24 | bytes[30] << 16 | bytes[31] << 8 | bytes[32]);
+            if (data.Fall_Down_Stamp != 0) {
+                var fall_start = new Date(1000 * data.Fall_Down_Stamp);
+                data.Fall_Down_Time = "[" + fall_start.getDate() + "." + (fall_start.getMonth() + 1) + "." + (fall_start.getFullYear()) + "] " + fall_start.getHours() + ":" + fall_start.getMinutes() + ":" + fall_start.getSeconds();
+            } else data.Fall_RiseUp_Stamp = "N/A";
+            data.Fall_RiseUp_Stamp = (bytes[33] << 24 | bytes[34] << 16 | bytes[35] << 8 | bytes[36]);
+            if (data.Fall_RiseUp_Stamp != 0) {
+                var fall_stop = new Date(1000 * data.Fall_RiseUp_Stamp);
+                data.Fall_RiseUp_Time = "[" + fall_stop.getDate() + "." + (fall_stop.getMonth() + 1) + "." + (fall_stop.getFullYear()) + "] " + fall_stop.getHours() + ":" + fall_stop.getMinutes() + ":" + fall_stop.getSeconds();
+            } else data.Fall_RiseUp_Time = "N/A";
+        }
+        return { "Yunhorn_SmarToilets_data": data };
+    }
+    else if ((fPort === 11) || (fPort === 52)) {
+        return [
+            {
+                led_state: bytes[0] === 0 ? "Off" : "On",
+                mtm_code_1: bytes[1],
+                mtm_code_2: bytes[2],
+                hw_code: bytes[3],
+                battery_level: bytes[4] + "%",
+                //battery_level:(bytes[4])*100+" mV",
+                size_value: bytes[5],
+                distance_1_mm: bytes[6] << 8 | bytes[7],
+                //distance_2_mm:bytes[8]<<8|bytes[9],
+                //distance_3_mm:bytes[10]<<8|bytes[11],
+                distance_unit: "mm",
+            }
+        ];
+    }
+    // R1D dual roll toilet paper sensor
+    else if (fPort === 57) {
+        return [
+            {
+                led_state: bytes[0] === 0 ? "Off" : "On",
+                mtm_code_1: bytes[1],
+                mtm_code_2: bytes[2],
+                hw_code: bytes[3],
+                battery_level: bytes[4] + "%",
+                //battery_level:(bytes[4])*100+" mV",
+                size_value: bytes[5],
+                distance_1_mm: bytes[6] << 8 | bytes[7],
+                distance_2_mm: bytes[8] << 8 | bytes[9],
+                //distance_3_mm:bytes[10]<<8|bytes[11],
+                distance_unit: "mm",
+            }
+        ];
+    }
+    else if ((fPort === 106)) {		//STS-P2 bi-directional people counting        
+        data.LED_State = bytes[0] === 0 ? "Off" : "On";
+        data.MTM_Code_1 = bytes[1];
+        data.MTM_Code_2 = bytes[2];
+        data.HW_Code = bytes[3];
+        data.Battery_Level = bytes[4] + " %";
+        data.Payload_Size = bytes[5];
+        data.Walk_In_People_Count = bytes[6] << 8 | bytes[7];
+        data.Walk_Out_People_Count = bytes[8] << 8 | bytes[8];
+        data.Walk_Around_People_Count = bytes[10] << 8 | bytes[11];
+        data.Count_Period = bytes[12];
+        data.Count_Period_Unit = String.fromCharCode(bytes[13]);
+        data.Sum_Day_Walk_In_People_Count = bytes[14] << 8 | bytes[15];
+        data.Sum_Day_Walk_Out_People_Count = bytes[16] << 8 | bytes[17];
+        data.Sum_Day_Walk_Around_People_Count = bytes[18] << 8 | bytes[19];
+        data.Count_Valid = (bytes[20] == 0x0) ? "Error" : "OK";
+
+        return { "Yunhorn_SmarToilets_data": data };
+    }
+    // Heart Beat 
+    else if ((fPort === 8) || (fPort === 12) || (fPort === 20) || (fPort === 18) || (fPort === 5) || (fPort === 107) || (fPort === 58)) {
+        var data = {};
+        //data.led_state=(bytes[0] & 0x7f) === 0 ? "Off" : "On";
+        data.BoardLED = ((bytes[0] & 0x7F) === 0x01) ? "ON" : "OFF";
+        //data.battery_level = bytes[1] + " %";
+        data.battery_level = bytes[1] * 100 + "mV";
+        return { "Yunhorn_SmarToilets_data": data };
+    }
+
+    // UPLINK, RFAC
+    else if (fPort === 1) {
+        var data = {};
+        data.length = bytes.length;
+        if ((data.length === 10) && (bytes[0] == 0x59) && (bytes[9] == 0x38)) {
+            data.Yunhorn_PRD = "True";
+            data.PRD_String = String.fromCharCode(bytes);
+        }
+        else if ((data.length === 4) && (bytes[0] == 0x52) && (bytes[1] == 0x46)) //RFAC
+        {
+            data.Request_Performed = "OK";
+            data.RFAC = "OK";
+            data.AC0 = bytes[0];
+            data.AC1 = bytes[1];
+        }
+        else if ((data.length === 4) && (bytes[0] === 0x50) && (bytes[1] === 0x31) && (bytes[2] === 0x31)) {
+            data.Work_Mode_Switch = "OK";
+            switch (bytes[3] - 0x30) {
+                case 0x0:
+                    data.workmode = "Network_mode";
+                    break;
+                case 0x01:
+                    data.workmode = "Wired_Mode";
+                    break;
+                case 0x02:
+                    data.workmode = "Hall_element_mode";
+                    break;
+                case 0x03:
+                    data.workmode = "MotionDetect_mode";
+                    break;
+                case 0x04:
+                    data.workmode = "Dual_mode";
+                    break;
+                case 0x05:
+                    data.workmode = "Uni_Mode";
+                    break;
+                default:
+                    data.workmode = "Unknown Mode";
+                    break;
+            }
+        }
+
+        if ((bytes[0] === 0x59) && (bytes[1] === 0x44)) //Duration interval
+        {
+            data.Uplink_interval = (bytes[2] - 0x30) * 10 + (bytes[3] - 0x30);
+            data.Uplink_interval_unit = String.fromCharCode(bytes[4]);
+            //data.Heart_beat_Duration = (bytes[2]-0x30)*10 + (bytes[3]-0x30);
+            //data.Unit = String.fromCharCode(bytes[4]);
+        }
+
+        else if ((bytes[0] === 0x59) && (bytes[1] === 0x53))	//Sampling interval or Heart-beat interval
+        {
+            data.Heart_Beat_interval = (bytes[2] - 0x30) * 10 + (bytes[3] - 0x30);
+            data.Heart_Beat_interval_unit = String.fromCharCode(bytes[4]);
+            //data.Wakeup_sampling_interval = (bytes[2]-0x30)*10 + (bytes[3]-0x30);
+            //data.Unit = String.fromCharCode(bytes[4]);
+        }
+
+        else if (bytes[0] === 0x43) {  // report current nvm config
+            data.mtm_code1 = bytes[1];
+            data.mtm_code2 = bytes[2];
+            data.sts_verion = bytes[3];
+            data.sts_hw_ver = bytes[4];
+            data.sts_uplink_interval = bytes[5];
+            data.sts_uplink_interval_unit = String.fromCharCode(bytes[6]);
+            data.sts_sampling_interval = bytes[7];
+            data.sts_sampling_interval_unit = String.fromCharCode(bytes[8]);
+            data.sts_work_mode = bytes[9];
+            data.sts_service_mask = bytes[10];
+            data.sts_reserve01 = bytes[11];
+            data.sts_payload_length = bytes[12];
+            data.rss_start_distance = bytes[13] * 0.1 + " meter";
+            data.rss_range_length = bytes[14] * 0.1 + " meter";
+            data.rss_threshold = bytes[15] * 0.1;
+            data.rss_receiving_gain = bytes[16] + " %";
+            data.rss_profile = bytes[17];
+            data.rss_rate_tracking = bytes[18];
+            data.rss_rate_presence = bytes[19];
+            data.rss_HWAAS = bytes[20];
+            data.rss_nbr_removed_pc = bytes[21];
+            data.rss_inter_frame_deviation_time_const = bytes[22] * 0.1;
+            data.rss_inter_frame_fast_cutoff = bytes[23];
+            data.rss_inter_frame_slow_cutoff = bytes[24];
+            data.rss_intra_frame_time_const = bytes[25];
+            data.rss_intra_frame_weight = bytes[26] * 0.1;
+            data.rss_output_time_const = bytes[27] * 0.1;
+            data.rss_downsampling_factor = bytes[28];
+            data.rss_power_saving_mode_active = bytes[29];
+            data.rss_reserve02 = bytes[30];
+            data.rss_reserve03 = bytes[31];
+            data.rss_reserve04 = bytes[32];
+            data.reserve2 = bytes[33];
+            data.reserve3 = bytes[34];
+            data.sensor_install_height = bytes[35] * 10 + " cm";
+
+            data.alarm_parameter05 = bytes[36];
+            data.alarm_mute_expire_timer = bytes[37];
+            data.alarm_lamp_bar_flashing_color = bytes[38];
+            data.occupancy_overtime_threshold = bytes[39];
+
+            data.motionless_duration_threshold = bytes[40];
+            data.unconcious_threshold = bytes[41];
+
+            data.fall_detection_acc_threshold = bytes[42];
+            data.fall_detection_depth_threshold = bytes[43];
+            data.fall_down_confirm_threshold = bytes[44];
+        }
+        else if (bytes[0] === 0x53) {  // SELF TEST FUNCTION
+            data.mtm_code1 = bytes[1];
+            data.mtm_code2 = bytes[2];
+            data.sts_verion = bytes[3];
+            data.sts_hw_ver = bytes[4];
+            data.battery_level = bytes[5];
+            if ((bytes[6] === 0x03)) {	// report sensor install height
+                data.sts_sensor_install_height = (bytes[7] << 8 | bytes[8]);
+                data.sts_sensor_install_height_unit = "mm";
+            }
+            else if ((bytes[6] === 0x58)) {
+                data.sts_Test_Result = "### Motion Sensor Not Detected ###";
+            } else if ((bytes[6] === 0x0E)) //result length, 10 rss bytes, 4 distance bytes
+            {
+                data.sts_Test_Result = "Motion Sensor Test Result:";
+                data.sts_test_result_length = bytes[6];
+                data.sts_rss_sub_code1 = bytes[7];
+                data.sts_rss_sub_code2 = bytes[8];
+                data.sts_rss_sub_code3 = bytes[9];
+                data.sts_rss_sub_code4 = bytes[10];
+                data.sts_rss_sub_code5 = bytes[11];
+                data.sts_rss_sub_code6 = bytes[12];
+                data.sts_rss_sub_code7 = bytes[13];
+                data.sts_rss_sub_code8 = bytes[14];
+                data.sts_rss_sub_code9 = bytes[15];
+                data.sts_rss_sub_code10 = bytes[16];
+                data.sts_sensor_install_height = String.fromCharCode(bytes[17]) + String.fromCharCode(bytes[18]) + String.fromCharCode(bytes[19]) + String.fromCharCode(bytes[20]) + " mm";
+            }
+        }
+        else if (bytes[0] === 0x44) {  // MEASURE INSTALLATION HEIGHT
+            data.mtm_code1 = bytes[1];
+            data.mtm_code2 = bytes[2];
+            data.sts_verion = bytes[3];
+            data.sts_hw_ver = bytes[4];
+            data.battery_level = bytes[5];
+            data.payload_length = bytes[6];
+            data.Measure_Distance = String.fromCharCode(bytes[7]) + String.fromCharCode(bytes[8]) + String.fromCharCode(bytes[9]) + String.fromCharCode(bytes[10]);
+            data.Distance_unit = "mm";
+        }
+        else if (bytes[0] === 0x4c) { // LoRaWAN Class A/B/C
+            data.mtm_code1 = bytes[1];
+            data.mtm_code2 = bytes[2];
+            data.sts_verion = bytes[3];
+            data.LoRaWAN_Class = String.fromCharCode(bytes[4]);
+        }
+        else if (bytes[0] === 0x56) {	 // FIRMWARE VERSION
+
+            data.mtm_code1 = bytes[1];
+            data.mtm_code2 = bytes[2];
+            data.sts_verion = bytes[3];
+            data.sts_hw_ver = bytes[4];
+            data.sts_major = bytes[5];
+            data.sts_minor = bytes[6];
+            data.subminor = bytes[7];
+
+            if (data.length === 15) {
+                data.L_year = (bytes[8] << 8 | bytes[9]);
+                data.L_mon = bytes[10];
+                data.L_day = bytes[11];
+                data.L_hour = bytes[12];
+                data.L_min = bytes[13];
+                data.L_sec = bytes[14];
+                data.LocalTime_UTC = "UTC:  " + data.L_year + "/" + data.L_mon + "/" + data.L_day + " " + data.L_hour + ":" + data.L_min + ":" + data.L_sec;
+                data.LocalTime_EST8 = "GMT+8: " + data.L_year + "/" + data.L_mon + "/" + data.L_day + " " + (data.L_hour + 8) + ":" + data.L_min + ":" + data.L_sec;
+            }
+        }
+        else if (bytes[0] === 0x54) {  //T: date & time
+            data.L_year = (bytes[1] << 8 | bytes[2]);
+            data.L_mon = bytes[3];
+            data.L_day = bytes[4];
+            data.L_hour = bytes[5];
+            data.L_min = bytes[6];
+            data.L_sec = bytes[7];
+            data.LocalTime_UTC = "UTC:  " + data.L_year + "/" + data.L_mon + "/" + data.L_day + " " + data.L_hour + ":" + data.L_min + ":" + data.L_sec;
+
+        }
+        else if (bytes[0] === 0x50) { // P cmd report
+            if (data.length == 7) {
+                switch (bytes[3]) {
+                    case 0x46:   // F --- fall down & unconscious detection threshold
+                        data.FALL_acceleration = (bytes[4] == 0x30 ? "Disabled" : ((bytes[4] - 0x30) * 10) + " mg/s2");
+                        data.FALL_depth_measure = (bytes[5] == 0x30 ? "Disabled" : ((bytes[5] - 0x30) * 10) + " cm");
+                        data.FALL_confirm_threshold = (bytes[6] == 0x30 ? "Disabled" : ((bytes[6] - 0x30) * 10) + " seconds");
+                        //data.FALL_reserved = (bytes[7]==0x0?"Disabled":((bytes[6]-0x30)*10)+" min");
+                        break;
+                } //switch
+            }
+            else if (data.length == 8) {
+                switch (bytes[3]) {
+                    case 0x4f:  // O -- over stay, onconscious, long stay
+                        data.OMU_Motionless_duration_in_min = (bytes[4] == 0x30 ? "Disabled" : ((bytes[4] - 0x30)) + " Min");
+                        data.OMU_Long_Occupy_duration_in_Min = (bytes[5] == 0x30 ? "Disabled" : ((bytes[5] - 0x30) * 10) + " Min");
+                        data.OMU_Unconcious_Threshold = (bytes[6] == 0x30 ? "Disabled" : ((bytes[6] - 0x30) * 100) + "ml");
+                        data.OMU_Alarm_Mute_Reset_Timer = (bytes[7] == 0x30 ? "Disabled" : ((bytes[7] - 0x30) * 10) + " Seconds");
+                        break;
+                    case 0x46:   // F --- fall down & unconscious detection threshold
+                        data.FALL_acceleration = (bytes[4] == 0x30 ? "Disabled" : ((bytes[4] - 0x30) * 10) + " mg/s2");
+                        data.FALL_depth_measure = (bytes[5] == 0x30 ? "Disabled" : ((bytes[5] - 0x30) * 10) + " cm");
+                        data.FALL_confirm_threshold = (bytes[6] == 0x30 ? "Disabled" : ((bytes[6] - 0x30) * 10) + " seconds");
+                        data.FALL_reserved = (bytes[7] == 0x30 ? "Disabled" : ((bytes[6] - 0x30) * 10) + " min");
+                        break;
+                } //switch
+            } else if (data.length == 11) { // P 1108201365
+                data.RSS_SIMPLE_Start = ((bytes[3] - 0x30) * 100 + (bytes[4] - 0x30) * 10) + " cm";
+                data.RSS_SIMPLE_Length = ((bytes[5] - 0x30) * 100 + (bytes[6] - 0x030) * 10) + " cm";
+                data.RSS_SIMPLE_Threshold = ((bytes[7] - 0x30) * 1000 + (bytes[8] - 0x30) * 100) + " ml";
+                data.RSS_SIMPLE_Gain = ((bytes[9] - 0x30) * 10 + (bytes[10] - 0x30)) + " %";
+            } else if (data.length == 33) { // P 11
+                data.RSS_FULL_Start = ((bytes[3] - 0x30) * 100 + (bytes[4] - 0x30) * 10) + " cm";
+                data.RSS_FULL_Length = ((bytes[5] - 0x30) * 100 + (bytes[6] - 0x30) * 10) + " cm";
+                data.RSS_FULL_Threshold = ((bytes[7] - 0x30) * 1000 + (bytes[8] - 0x30) * 100) + " ml";
+                data.RSS_FULL_Gain = ((bytes[9] - 0x30) * 10 + (bytes[10] - 0x30)) + " %";
+                data.RSS_FULL_Profile = (bytes[11] - 0x30);
+                data.RSS_FULL_Rate_Tracking = ((bytes[12] - 0x30) * 10 + (bytes[13] - 0x30));
+                data.RSS_FULL_Rate_Presence = ((bytes[14] - 0x30) * 10 + (bytes[15] - 0x30));
+                data.RSS_FULL_HWAAS = ((bytes[16] - 0x30) * 10 + (bytes[17] - 0x30));
+                data.RSS_FULL_Num_Removed_PC = (bytes[18] - 0x30);
+                data.RSS_FULL_Inter_Deviation_Time_Const_in_Sec = ((bytes[19] - 0x30) + (bytes[20] - 0x30) * 0.1);
+                data.RSS_FULL_Inter_Fast_Cut_Off = ((bytes[21] - 0x30) * 10 + (bytes[22] - 0x30));
+                data.RSS_FULL_Inter_Slow_Cut_Off = ((bytes[23] - 0x30) * 0.1 + (bytes[24] - 0x30) * 0.001);
+                data.RSS_FULL_Inter_Time_Const_in_Sec = ((bytes[25] - 0x30) * 10 + (bytes[26] - 0x30));
+                data.RSS_FULL_Inter_Weight = ((bytes[27] - 0x30) + (bytes[28] - 0x30) * 0.1);
+                data.RSS_FULL_Output_Time_Const_in_Sec = ((bytes[29] - 0x30) + (bytes[30] - 0x30) * 0.1);
+                data.RSS_FULL_DownSampling_factor = (bytes[31] - 0x30);
+                data.RSS_FULL_Power_Saving_mode = (bytes[32] - 0x30);
+
+
+            }
+        }
+        return { "Yunhorn_SmarToilets_data": data };
+    }
 }
\ No newline at end of file
-- 
2.40.1


From 1a4998a6596ae8c7921bf1e825573693a37d5c88 Mon Sep 17 00:00:00 2001
From: sundp <dp.s@yunhorn.com>
Date: Mon, 7 Oct 2024 20:59:37 +0800
Subject: [PATCH 3/4] wip

---
 STS/Core/Src/yunhorn_sts_process.c | 25 +++++++++++++++++++++++--
 STS/TOF/App/app_tof_peoplecount.c  |  2 +-
 2 files changed, 24 insertions(+), 3 deletions(-)

diff --git a/STS/Core/Src/yunhorn_sts_process.c b/STS/Core/Src/yunhorn_sts_process.c
index 81607ef..871b090 100644
--- a/STS/Core/Src/yunhorn_sts_process.c
+++ b/STS/Core/Src/yunhorn_sts_process.c
@@ -44,9 +44,10 @@
 #ifdef	VL53L0
 #include "X-WL55_WLE5_53L0X.h"
 #endif
-#ifdef STS_P2
+#if	defined(STS_P2)||defined(STS_T6)
 #include "app_tof.h"
 #include "app_tof_peoplecount.h"
+extern volatile uint8_t sts_door_jam_profile;
 #endif
 volatile sts_cfg_nvm_t sts_cfg_nvm = {
 		sts_mtmcode1,
@@ -119,6 +120,9 @@ static void STS_Show_STS_CFG_NVM(uint8_t * nvm_store_value);
 extern volatile int sts_tof_distance_data[MAX_TOF_COUNT];
 volatile sts_tof_range_data_t sts_range_sensor_data={0x0,0x0,0x0};
 #endif
+#if	defined(STS_P2)||defined(STS_T6)
+volatile uint8_t sts_door_jam_profile = 0;
+#endif
 #ifdef STS_R4
 volatile uint8_t sts_soap_level_state=0;
 void STS_R4_sensor_read(sts_r_sensor_data_t *sts_r_sensor_data);
@@ -1702,7 +1706,7 @@ void STS_SENSOR_Function_Test_Process(void)
 	tstbuf[i++] = (uint8_t) sts_hardware_ver;
 	tstbuf[i++] = (uint8_t) (99*GetBatteryLevel()/254)&0xff;
 
-#ifdef STS_P2
+#if	(defined(STS_P2)||defined(STS_T6))
 	STS_SENSOR_MEMS_Get_ID(&sensor_id);
 
 	if (((sensor_id & 0xff)!= 0xCC) && (((sensor_id >>8) & 0xFF)!=0xEA))		// no VL53L1X found
@@ -1716,6 +1720,23 @@ void STS_SENSOR_Function_Test_Process(void)
 		tstbuf[i++] = (uint8_t) (sts_sensor_install_height>>8)&0xff;	// MSB of sensor height
 		tstbuf[i++] = (uint8_t) (sts_sensor_install_height)&0xff;		// LSB of sensor height
 	}
+	/*                                                                                    */
+	/* for STS_P2, set ppc_config -> door_jam_profile and distance threshold accordingly  */
+	/*                                                                                    */
+
+	if ((sts_sensor_install_height >= 1500)&&(sts_sensor_install_height<=4000))
+		{
+		 sts_door_jam_profile = DOOR_JAM_2000;	// DOOR_JAM_2000: assume door_jame less 2000mm
+
+		 if (sts_sensor_install_height > 2000)
+			 sts_door_jam_profile ++;							//DOOR_JAM_2400
+		 if (sts_sensor_install_height > 2400)
+			 sts_door_jam_profile ++;							//DOOR_JAM_3000
+		 if (sts_sensor_install_height > 3000)
+			 sts_door_jam_profile ++;					//DOOR_JAM_3500
+		 if (sts_sensor_install_height > 3500)
+			 sts_door_jam_profile ++;					//DOOR_JAM_4000
+		}
 #endif
 #ifdef YUNHORN_STS_O6_ENABLED
 		tstbuf[i++] = (uint8_t)20; //length of following data
diff --git a/STS/TOF/App/app_tof_peoplecount.c b/STS/TOF/App/app_tof_peoplecount.c
index f6ba0f8..9f3133d 100644
--- a/STS/TOF/App/app_tof_peoplecount.c
+++ b/STS/TOF/App/app_tof_peoplecount.c
@@ -32,7 +32,7 @@ volatile sts_zone_center_by_rows_of_spads_t zone_center[3]={
 		{6, 159, 239},
 		{8, 175, 231},
 };
-volatile uint8_t sts_distance_mode = DOOR_JAM_3000;
+volatile uint8_t sts_distance_mode = sts_door_jam_profile; //DOOR_JAM_3000;
 volatile uint8_t sts_people_count_number_changed = 0;
 static uint32_t cnt_today=0, cnt_week=0;
 static uint8_t last_year=0, this_year=0,last_month=0, this_month=0,last_week=0, this_week=0,last_day=0, this_day=0;
-- 
2.40.1


From 5771ce3d0ab1b633a7c6dceb504fd32a7063cc26 Mon Sep 17 00:00:00 2001
From: YunHorn Technology <dp.s@yunhorn.com>
Date: Tue, 8 Oct 2024 18:50:57 +0800
Subject: [PATCH 4/4] wip good in presence detection

---
 Core/Src/sys_app.c                            |   2 +-
 LoRaWAN/App/lora_app.c                        |   7 +-
 STM32CubeIDE/.settings/language.settings.xml  |   4 +-
 .../Release/Application/User/Core/subdir.mk   |  72 ++---
 .../Application/User/LoRaWAN/App/subdir.mk    |  16 +-
 .../Application/User/LoRaWAN/Target/subdir.mk |   4 +-
 .../Application/User/STS/Core/Src/subdir.mk   |  12 +-
 .../Application/User/STS/TOF/App/subdir.mk    |   8 +-
 .../Application/User/STS/TOF/Target/subdir.mk |   4 +-
 .../User/STS/TOF/vl53l1x_uld/subdir.mk        |  16 +-
 .../Drivers/BSP/STM32WLxx_Nucleo/subdir.mk    |   8 +-
 STM32CubeIDE/Release/Drivers/CMSIS/subdir.mk  |   4 +-
 .../Drivers/STM32WLxx_HAL_Driver/subdir.mk    |  96 +++---
 .../Release/Middlewares/LoRaWAN/subdir.mk     | 132 ++++----
 .../Release/Middlewares/SubGHz_Phy/subdir.mk  |  12 +-
 STM32CubeIDE/Release/Utilities/subdir.mk      |  32 +-
 STM32CubeIDE/Release/makefile                 |   5 +-
 STM32CubeIDE/Release/sources.mk               |   1 -
 STS/Core/Src/yunhorn_sts_process.c            |  10 +-
 STS/TOF/App/app_tof.c                         |  10 +-
 STS/TOF/App/app_tof_peoplecount.c             | 296 ++++++++++++++----
 STS/TOF/App/app_tof_peoplecount.h             |  23 +-
 22 files changed, 482 insertions(+), 292 deletions(-)

diff --git a/Core/Src/sys_app.c b/Core/Src/sys_app.c
index cefc8f5..e566b3a 100644
--- a/Core/Src/sys_app.c
+++ b/Core/Src/sys_app.c
@@ -117,7 +117,7 @@ void SystemApp_Init(void)
 
   /*Initialize the Sensors */
   EnvSensors_Init();
-#ifdef STS_P2
+#if	defined(STS_P2)||defined(STS_T6)
   STS_TOF_VL53LX_PeopleCounting_Process_Init();
 #endif
   /*Init low power manager*/
diff --git a/LoRaWAN/App/lora_app.c b/LoRaWAN/App/lora_app.c
index 9cb3d5c..252e2d3 100644
--- a/LoRaWAN/App/lora_app.c
+++ b/LoRaWAN/App/lora_app.c
@@ -518,7 +518,7 @@ void LoRaWAN_Init(void)
 #endif
 
 
-#ifdef STS_P2
+#if	defined(STS_P2)||defined(STS_T6)
 
   UTIL_SEQ_RegTask((1 << CFG_SEQ_Task_YunhornSTSEventP5), UTIL_SEQ_RFU, STS_YunhornSTSEventP5_Process);
 
@@ -531,7 +531,8 @@ void LoRaWAN_Init(void)
 #ifdef VL53L0
   UTIL_SEQ_RegTask((1 << CFG_SEQ_Task_YunhornSTSEventP4), UTIL_SEQ_RFU, STS_YunhornSTSEventP4_Process);
 #endif
-#ifdef	STS_P2
+
+#if	defined(STS_P2)||defined(STS_T6)
   UTIL_TIMER_Create(&YunhornSTSWakeUpScanTimer, STS_TOFScanPeriod_msec, UTIL_TIMER_PERIODIC, (void*)OnYunhornSTSWakeUpScanTimerEvent, NULL);
   UTIL_TIMER_Start(&YunhornSTSWakeUpScanTimer);
 #endif
@@ -1460,7 +1461,7 @@ void OnYunhornSTSHeartBeatPeriodicityChanged(uint32_t periodicity)
 /* USER CODE BEGIN PrFD_YunhornSTSWakeUpScanTimerEvents */
 static void OnYunhornSTSWakeUpScanTimerEvent(void *context)
 {
-#ifdef	STS_P2
+#if	defined(STS_P2)||defined(STS_T6)
   UTIL_SEQ_SetTask((1 << CFG_SEQ_Task_YunhornSTSEventP5), CFG_SEQ_Prio_0);
 
   UTIL_TIMER_Start(&YunhornSTSWakeUpScanTimer);
diff --git a/STM32CubeIDE/.settings/language.settings.xml b/STM32CubeIDE/.settings/language.settings.xml
index 515be7c..0ec3934 100644
--- a/STM32CubeIDE/.settings/language.settings.xml
+++ b/STM32CubeIDE/.settings/language.settings.xml
@@ -5,7 +5,7 @@
 			<provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/>
 			<provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/>
 			<provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/>
-			<provider class="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" console="false" env-hash="-1137263677548078264" id="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" keep-relative-paths="false" name="MCU ARM GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD &quot;${INPUTS}&quot;" prefer-non-shared="true">
+			<provider class="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" console="false" env-hash="1048471218779752885" id="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" keep-relative-paths="false" name="MCU ARM GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD &quot;${INPUTS}&quot;" prefer-non-shared="true">
 				<language-scope id="org.eclipse.cdt.core.gcc"/>
 				<language-scope id="org.eclipse.cdt.core.g++"/>
 			</provider>
@@ -16,7 +16,7 @@
 			<provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/>
 			<provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/>
 			<provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/>
-			<provider class="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" console="false" env-hash="-1137263677548078264" id="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" keep-relative-paths="false" name="MCU ARM GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD &quot;${INPUTS}&quot;" prefer-non-shared="true">
+			<provider class="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" console="false" env-hash="1048471218779752885" id="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" keep-relative-paths="false" name="MCU ARM GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD &quot;${INPUTS}&quot;" prefer-non-shared="true">
 				<language-scope id="org.eclipse.cdt.core.gcc"/>
 				<language-scope id="org.eclipse.cdt.core.g++"/>
 			</provider>
diff --git a/STM32CubeIDE/Release/Application/User/Core/subdir.mk b/STM32CubeIDE/Release/Application/User/Core/subdir.mk
index e0450bb..a5d5258 100644
--- a/STM32CubeIDE/Release/Application/User/Core/subdir.mk
+++ b/STM32CubeIDE/Release/Application/User/Core/subdir.mk
@@ -5,26 +5,26 @@
 
 # Add inputs and outputs from these tool invocations to the build variables 
 C_SRCS += \
-D:/OneDrive/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/adc.c \
-D:/OneDrive/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/adc_if.c \
-D:/OneDrive/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/dma.c \
-D:/OneDrive/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/flash_if.c \
-D:/OneDrive/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/gpio.c \
-D:/OneDrive/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/i2c.c \
-D:/OneDrive/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/main.c \
-D:/OneDrive/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/rtc.c \
-D:/OneDrive/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/stm32_lpm_if.c \
-D:/OneDrive/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/stm32wlxx_hal_msp.c \
-D:/OneDrive/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/stm32wlxx_it.c \
-D:/OneDrive/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/subghz.c \
-D:/OneDrive/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/sys_app.c \
-D:/OneDrive/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/sys_debug.c \
-D:/OneDrive/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/sys_sensors.c \
+D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/adc.c \
+D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/adc_if.c \
+D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/dma.c \
+D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/flash_if.c \
+D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/gpio.c \
+D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/i2c.c \
+D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/main.c \
+D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/rtc.c \
+D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/stm32_lpm_if.c \
+D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/stm32wlxx_hal_msp.c \
+D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/stm32wlxx_it.c \
+D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/subghz.c \
+D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/sys_app.c \
+D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/sys_debug.c \
+D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/sys_sensors.c \
 ../Application/User/Core/syscalls.c \
 ../Application/User/Core/sysmem.c \
-D:/OneDrive/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/timer_if.c \
-D:/OneDrive/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/usart.c \
-D:/OneDrive/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/usart_if.c 
+D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/timer_if.c \
+D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/usart.c \
+D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/usart_if.c 
 
 OBJS += \
 ./Application/User/Core/adc.o \
@@ -72,43 +72,43 @@ C_DEPS += \
 
 
 # Each subdirectory must supply rules for building sources it contributes
-Application/User/Core/adc.o: D:/OneDrive/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/adc.c Application/User/Core/subdir.mk
+Application/User/Core/adc.o: D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/adc.c Application/User/Core/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Application/User/Core/adc_if.o: D:/OneDrive/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/adc_if.c Application/User/Core/subdir.mk
+Application/User/Core/adc_if.o: D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/adc_if.c Application/User/Core/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Application/User/Core/dma.o: D:/OneDrive/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/dma.c Application/User/Core/subdir.mk
+Application/User/Core/dma.o: D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/dma.c Application/User/Core/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Application/User/Core/flash_if.o: D:/OneDrive/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/flash_if.c Application/User/Core/subdir.mk
+Application/User/Core/flash_if.o: D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/flash_if.c Application/User/Core/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Application/User/Core/gpio.o: D:/OneDrive/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/gpio.c Application/User/Core/subdir.mk
+Application/User/Core/gpio.o: D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/gpio.c Application/User/Core/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Application/User/Core/i2c.o: D:/OneDrive/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/i2c.c Application/User/Core/subdir.mk
+Application/User/Core/i2c.o: D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/i2c.c Application/User/Core/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Application/User/Core/main.o: D:/OneDrive/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/main.c Application/User/Core/subdir.mk
+Application/User/Core/main.o: D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/main.c Application/User/Core/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Application/User/Core/rtc.o: D:/OneDrive/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/rtc.c Application/User/Core/subdir.mk
+Application/User/Core/rtc.o: D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/rtc.c Application/User/Core/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Application/User/Core/stm32_lpm_if.o: D:/OneDrive/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/stm32_lpm_if.c Application/User/Core/subdir.mk
+Application/User/Core/stm32_lpm_if.o: D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/stm32_lpm_if.c Application/User/Core/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Application/User/Core/stm32wlxx_hal_msp.o: D:/OneDrive/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/stm32wlxx_hal_msp.c Application/User/Core/subdir.mk
+Application/User/Core/stm32wlxx_hal_msp.o: D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/stm32wlxx_hal_msp.c Application/User/Core/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Application/User/Core/stm32wlxx_it.o: D:/OneDrive/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/stm32wlxx_it.c Application/User/Core/subdir.mk
+Application/User/Core/stm32wlxx_it.o: D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/stm32wlxx_it.c Application/User/Core/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Application/User/Core/subghz.o: D:/OneDrive/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/subghz.c Application/User/Core/subdir.mk
+Application/User/Core/subghz.o: D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/subghz.c Application/User/Core/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Application/User/Core/sys_app.o: D:/OneDrive/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/sys_app.c Application/User/Core/subdir.mk
+Application/User/Core/sys_app.o: D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/sys_app.c Application/User/Core/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Application/User/Core/sys_debug.o: D:/OneDrive/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/sys_debug.c Application/User/Core/subdir.mk
+Application/User/Core/sys_debug.o: D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/sys_debug.c Application/User/Core/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Application/User/Core/sys_sensors.o: D:/OneDrive/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/sys_sensors.c Application/User/Core/subdir.mk
+Application/User/Core/sys_sensors.o: D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/sys_sensors.c Application/User/Core/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
 Application/User/Core/%.o Application/User/Core/%.su Application/User/Core/%.cyclo: ../Application/User/Core/%.c Application/User/Core/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Application/User/Core/timer_if.o: D:/OneDrive/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/timer_if.c Application/User/Core/subdir.mk
+Application/User/Core/timer_if.o: D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/timer_if.c Application/User/Core/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Application/User/Core/usart.o: D:/OneDrive/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/usart.c Application/User/Core/subdir.mk
+Application/User/Core/usart.o: D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/usart.c Application/User/Core/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Application/User/Core/usart_if.o: D:/OneDrive/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/usart_if.c Application/User/Core/subdir.mk
+Application/User/Core/usart_if.o: D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/usart_if.c Application/User/Core/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
 
 clean: clean-Application-2f-User-2f-Core
diff --git a/STM32CubeIDE/Release/Application/User/LoRaWAN/App/subdir.mk b/STM32CubeIDE/Release/Application/User/LoRaWAN/App/subdir.mk
index 6063bbc..97b1ee8 100644
--- a/STM32CubeIDE/Release/Application/User/LoRaWAN/App/subdir.mk
+++ b/STM32CubeIDE/Release/Application/User/LoRaWAN/App/subdir.mk
@@ -5,10 +5,10 @@
 
 # Add inputs and outputs from these tool invocations to the build variables 
 C_SRCS += \
-D:/OneDrive/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/LoRaWAN/App/CayenneLpp.c \
-D:/OneDrive/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/LoRaWAN/App/app_lorawan.c \
-D:/OneDrive/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/LoRaWAN/App/lora_app.c \
-D:/OneDrive/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/LoRaWAN/App/lora_info.c 
+D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/LoRaWAN/App/CayenneLpp.c \
+D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/LoRaWAN/App/app_lorawan.c \
+D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/LoRaWAN/App/lora_app.c \
+D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/LoRaWAN/App/lora_info.c 
 
 OBJS += \
 ./Application/User/LoRaWAN/App/CayenneLpp.o \
@@ -24,13 +24,13 @@ C_DEPS += \
 
 
 # Each subdirectory must supply rules for building sources it contributes
-Application/User/LoRaWAN/App/CayenneLpp.o: D:/OneDrive/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/LoRaWAN/App/CayenneLpp.c Application/User/LoRaWAN/App/subdir.mk
+Application/User/LoRaWAN/App/CayenneLpp.o: D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/LoRaWAN/App/CayenneLpp.c Application/User/LoRaWAN/App/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Application/User/LoRaWAN/App/app_lorawan.o: D:/OneDrive/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/LoRaWAN/App/app_lorawan.c Application/User/LoRaWAN/App/subdir.mk
+Application/User/LoRaWAN/App/app_lorawan.o: D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/LoRaWAN/App/app_lorawan.c Application/User/LoRaWAN/App/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Application/User/LoRaWAN/App/lora_app.o: D:/OneDrive/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/LoRaWAN/App/lora_app.c Application/User/LoRaWAN/App/subdir.mk
+Application/User/LoRaWAN/App/lora_app.o: D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/LoRaWAN/App/lora_app.c Application/User/LoRaWAN/App/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Application/User/LoRaWAN/App/lora_info.o: D:/OneDrive/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/LoRaWAN/App/lora_info.c Application/User/LoRaWAN/App/subdir.mk
+Application/User/LoRaWAN/App/lora_info.o: D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/LoRaWAN/App/lora_info.c Application/User/LoRaWAN/App/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
 
 clean: clean-Application-2f-User-2f-LoRaWAN-2f-App
diff --git a/STM32CubeIDE/Release/Application/User/LoRaWAN/Target/subdir.mk b/STM32CubeIDE/Release/Application/User/LoRaWAN/Target/subdir.mk
index 58976f4..31957c9 100644
--- a/STM32CubeIDE/Release/Application/User/LoRaWAN/Target/subdir.mk
+++ b/STM32CubeIDE/Release/Application/User/LoRaWAN/Target/subdir.mk
@@ -5,7 +5,7 @@
 
 # Add inputs and outputs from these tool invocations to the build variables 
 C_SRCS += \
-D:/OneDrive/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/LoRaWAN/Target/radio_board_if.c 
+D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/LoRaWAN/Target/radio_board_if.c 
 
 OBJS += \
 ./Application/User/LoRaWAN/Target/radio_board_if.o 
@@ -15,7 +15,7 @@ C_DEPS += \
 
 
 # Each subdirectory must supply rules for building sources it contributes
-Application/User/LoRaWAN/Target/radio_board_if.o: D:/OneDrive/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/LoRaWAN/Target/radio_board_if.c Application/User/LoRaWAN/Target/subdir.mk
+Application/User/LoRaWAN/Target/radio_board_if.o: D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/LoRaWAN/Target/radio_board_if.c Application/User/LoRaWAN/Target/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
 
 clean: clean-Application-2f-User-2f-LoRaWAN-2f-Target
diff --git a/STM32CubeIDE/Release/Application/User/STS/Core/Src/subdir.mk b/STM32CubeIDE/Release/Application/User/STS/Core/Src/subdir.mk
index c07f08d..d24d70d 100644
--- a/STM32CubeIDE/Release/Application/User/STS/Core/Src/subdir.mk
+++ b/STM32CubeIDE/Release/Application/User/STS/Core/Src/subdir.mk
@@ -5,9 +5,9 @@
 
 # Add inputs and outputs from these tool invocations to the build variables 
 C_SRCS += \
-D:/OneDrive/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/STS/Core/Src/cmox_low_level.c \
-D:/OneDrive/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/STS/Core/Src/sts_cmox_hmac_sha.c \
-D:/OneDrive/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/STS/Core/Src/yunhorn_sts_process.c 
+D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/STS/Core/Src/cmox_low_level.c \
+D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/STS/Core/Src/sts_cmox_hmac_sha.c \
+D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/STS/Core/Src/yunhorn_sts_process.c 
 
 OBJS += \
 ./Application/User/STS/Core/Src/cmox_low_level.o \
@@ -21,11 +21,11 @@ C_DEPS += \
 
 
 # Each subdirectory must supply rules for building sources it contributes
-Application/User/STS/Core/Src/cmox_low_level.o: D:/OneDrive/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/STS/Core/Src/cmox_low_level.c Application/User/STS/Core/Src/subdir.mk
+Application/User/STS/Core/Src/cmox_low_level.o: D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/STS/Core/Src/cmox_low_level.c Application/User/STS/Core/Src/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Application/User/STS/Core/Src/sts_cmox_hmac_sha.o: D:/OneDrive/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/STS/Core/Src/sts_cmox_hmac_sha.c Application/User/STS/Core/Src/subdir.mk
+Application/User/STS/Core/Src/sts_cmox_hmac_sha.o: D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/STS/Core/Src/sts_cmox_hmac_sha.c Application/User/STS/Core/Src/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Application/User/STS/Core/Src/yunhorn_sts_process.o: D:/OneDrive/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/STS/Core/Src/yunhorn_sts_process.c Application/User/STS/Core/Src/subdir.mk
+Application/User/STS/Core/Src/yunhorn_sts_process.o: D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/STS/Core/Src/yunhorn_sts_process.c Application/User/STS/Core/Src/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
 
 clean: clean-Application-2f-User-2f-STS-2f-Core-2f-Src
diff --git a/STM32CubeIDE/Release/Application/User/STS/TOF/App/subdir.mk b/STM32CubeIDE/Release/Application/User/STS/TOF/App/subdir.mk
index d06e63c..2c60254 100644
--- a/STM32CubeIDE/Release/Application/User/STS/TOF/App/subdir.mk
+++ b/STM32CubeIDE/Release/Application/User/STS/TOF/App/subdir.mk
@@ -5,8 +5,8 @@
 
 # Add inputs and outputs from these tool invocations to the build variables 
 C_SRCS += \
-D:/OneDrive/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/STS/TOF/App/app_tof.c \
-D:/OneDrive/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/STS/TOF/App/app_tof_peoplecount.c 
+D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/STS/TOF/App/app_tof.c \
+D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/STS/TOF/App/app_tof_peoplecount.c 
 
 OBJS += \
 ./Application/User/STS/TOF/App/app_tof.o \
@@ -18,9 +18,9 @@ C_DEPS += \
 
 
 # Each subdirectory must supply rules for building sources it contributes
-Application/User/STS/TOF/App/app_tof.o: D:/OneDrive/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/STS/TOF/App/app_tof.c Application/User/STS/TOF/App/subdir.mk
+Application/User/STS/TOF/App/app_tof.o: D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/STS/TOF/App/app_tof.c Application/User/STS/TOF/App/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Application/User/STS/TOF/App/app_tof_peoplecount.o: D:/OneDrive/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/STS/TOF/App/app_tof_peoplecount.c Application/User/STS/TOF/App/subdir.mk
+Application/User/STS/TOF/App/app_tof_peoplecount.o: D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/STS/TOF/App/app_tof_peoplecount.c Application/User/STS/TOF/App/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
 
 clean: clean-Application-2f-User-2f-STS-2f-TOF-2f-App
diff --git a/STM32CubeIDE/Release/Application/User/STS/TOF/Target/subdir.mk b/STM32CubeIDE/Release/Application/User/STS/TOF/Target/subdir.mk
index 671c64e..4fe81de 100644
--- a/STM32CubeIDE/Release/Application/User/STS/TOF/Target/subdir.mk
+++ b/STM32CubeIDE/Release/Application/User/STS/TOF/Target/subdir.mk
@@ -5,7 +5,7 @@
 
 # Add inputs and outputs from these tool invocations to the build variables 
 C_SRCS += \
-D:/OneDrive/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/STS/TOF/Target/app_tof_pin_conf.c 
+D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/STS/TOF/Target/app_tof_pin_conf.c 
 
 OBJS += \
 ./Application/User/STS/TOF/Target/app_tof_pin_conf.o 
@@ -15,7 +15,7 @@ C_DEPS += \
 
 
 # Each subdirectory must supply rules for building sources it contributes
-Application/User/STS/TOF/Target/app_tof_pin_conf.o: D:/OneDrive/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/STS/TOF/Target/app_tof_pin_conf.c Application/User/STS/TOF/Target/subdir.mk
+Application/User/STS/TOF/Target/app_tof_pin_conf.o: D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/STS/TOF/Target/app_tof_pin_conf.c Application/User/STS/TOF/Target/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
 
 clean: clean-Application-2f-User-2f-STS-2f-TOF-2f-Target
diff --git a/STM32CubeIDE/Release/Application/User/STS/TOF/vl53l1x_uld/subdir.mk b/STM32CubeIDE/Release/Application/User/STS/TOF/vl53l1x_uld/subdir.mk
index f02d30e..baba620 100644
--- a/STM32CubeIDE/Release/Application/User/STS/TOF/vl53l1x_uld/subdir.mk
+++ b/STM32CubeIDE/Release/Application/User/STS/TOF/vl53l1x_uld/subdir.mk
@@ -5,10 +5,10 @@
 
 # Add inputs and outputs from these tool invocations to the build variables 
 C_SRCS += \
-D:/OneDrive/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/STS/TOF/vl53l1x_uld/VL53L1X_api.c \
-D:/OneDrive/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/STS/TOF/vl53l1x_uld/VL53L1X_calibration.c \
-D:/OneDrive/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/STS/TOF/vl53l1x_uld/X-NUCLEO-53L1A1.c \
-D:/OneDrive/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/STS/TOF/vl53l1x_uld/vl53l1_platform.c 
+D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/STS/TOF/vl53l1x_uld/VL53L1X_api.c \
+D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/STS/TOF/vl53l1x_uld/VL53L1X_calibration.c \
+D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/STS/TOF/vl53l1x_uld/X-NUCLEO-53L1A1.c \
+D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/STS/TOF/vl53l1x_uld/vl53l1_platform.c 
 
 OBJS += \
 ./Application/User/STS/TOF/vl53l1x_uld/VL53L1X_api.o \
@@ -24,13 +24,13 @@ C_DEPS += \
 
 
 # Each subdirectory must supply rules for building sources it contributes
-Application/User/STS/TOF/vl53l1x_uld/VL53L1X_api.o: D:/OneDrive/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/STS/TOF/vl53l1x_uld/VL53L1X_api.c Application/User/STS/TOF/vl53l1x_uld/subdir.mk
+Application/User/STS/TOF/vl53l1x_uld/VL53L1X_api.o: D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/STS/TOF/vl53l1x_uld/VL53L1X_api.c Application/User/STS/TOF/vl53l1x_uld/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Application/User/STS/TOF/vl53l1x_uld/VL53L1X_calibration.o: D:/OneDrive/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/STS/TOF/vl53l1x_uld/VL53L1X_calibration.c Application/User/STS/TOF/vl53l1x_uld/subdir.mk
+Application/User/STS/TOF/vl53l1x_uld/VL53L1X_calibration.o: D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/STS/TOF/vl53l1x_uld/VL53L1X_calibration.c Application/User/STS/TOF/vl53l1x_uld/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Application/User/STS/TOF/vl53l1x_uld/X-NUCLEO-53L1A1.o: D:/OneDrive/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/STS/TOF/vl53l1x_uld/X-NUCLEO-53L1A1.c Application/User/STS/TOF/vl53l1x_uld/subdir.mk
+Application/User/STS/TOF/vl53l1x_uld/X-NUCLEO-53L1A1.o: D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/STS/TOF/vl53l1x_uld/X-NUCLEO-53L1A1.c Application/User/STS/TOF/vl53l1x_uld/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Application/User/STS/TOF/vl53l1x_uld/vl53l1_platform.o: D:/OneDrive/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/STS/TOF/vl53l1x_uld/vl53l1_platform.c Application/User/STS/TOF/vl53l1x_uld/subdir.mk
+Application/User/STS/TOF/vl53l1x_uld/vl53l1_platform.o: D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/STS/TOF/vl53l1x_uld/vl53l1_platform.c Application/User/STS/TOF/vl53l1x_uld/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
 
 clean: clean-Application-2f-User-2f-STS-2f-TOF-2f-vl53l1x_uld
diff --git a/STM32CubeIDE/Release/Drivers/BSP/STM32WLxx_Nucleo/subdir.mk b/STM32CubeIDE/Release/Drivers/BSP/STM32WLxx_Nucleo/subdir.mk
index c53733a..9a73b44 100644
--- a/STM32CubeIDE/Release/Drivers/BSP/STM32WLxx_Nucleo/subdir.mk
+++ b/STM32CubeIDE/Release/Drivers/BSP/STM32WLxx_Nucleo/subdir.mk
@@ -5,8 +5,8 @@
 
 # Add inputs and outputs from these tool invocations to the build variables 
 C_SRCS += \
-D:/OneDrive/STM32WLV13/Drivers/BSP/STM32WLxx_Nucleo/stm32wlxx_nucleo.c \
-D:/OneDrive/STM32WLV13/Drivers/BSP/STM32WLxx_Nucleo/stm32wlxx_nucleo_radio.c 
+D:/ONEDRIVE/STM32WLV13/Drivers/BSP/STM32WLxx_Nucleo/stm32wlxx_nucleo.c \
+D:/ONEDRIVE/STM32WLV13/Drivers/BSP/STM32WLxx_Nucleo/stm32wlxx_nucleo_radio.c 
 
 OBJS += \
 ./Drivers/BSP/STM32WLxx_Nucleo/stm32wlxx_nucleo.o \
@@ -18,9 +18,9 @@ C_DEPS += \
 
 
 # Each subdirectory must supply rules for building sources it contributes
-Drivers/BSP/STM32WLxx_Nucleo/stm32wlxx_nucleo.o: D:/OneDrive/STM32WLV13/Drivers/BSP/STM32WLxx_Nucleo/stm32wlxx_nucleo.c Drivers/BSP/STM32WLxx_Nucleo/subdir.mk
+Drivers/BSP/STM32WLxx_Nucleo/stm32wlxx_nucleo.o: D:/ONEDRIVE/STM32WLV13/Drivers/BSP/STM32WLxx_Nucleo/stm32wlxx_nucleo.c Drivers/BSP/STM32WLxx_Nucleo/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Drivers/BSP/STM32WLxx_Nucleo/stm32wlxx_nucleo_radio.o: D:/OneDrive/STM32WLV13/Drivers/BSP/STM32WLxx_Nucleo/stm32wlxx_nucleo_radio.c Drivers/BSP/STM32WLxx_Nucleo/subdir.mk
+Drivers/BSP/STM32WLxx_Nucleo/stm32wlxx_nucleo_radio.o: D:/ONEDRIVE/STM32WLV13/Drivers/BSP/STM32WLxx_Nucleo/stm32wlxx_nucleo_radio.c Drivers/BSP/STM32WLxx_Nucleo/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
 
 clean: clean-Drivers-2f-BSP-2f-STM32WLxx_Nucleo
diff --git a/STM32CubeIDE/Release/Drivers/CMSIS/subdir.mk b/STM32CubeIDE/Release/Drivers/CMSIS/subdir.mk
index e7ccf34..ea0d16e 100644
--- a/STM32CubeIDE/Release/Drivers/CMSIS/subdir.mk
+++ b/STM32CubeIDE/Release/Drivers/CMSIS/subdir.mk
@@ -5,7 +5,7 @@
 
 # Add inputs and outputs from these tool invocations to the build variables 
 C_SRCS += \
-D:/OneDrive/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/system_stm32wlxx.c 
+D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/system_stm32wlxx.c 
 
 OBJS += \
 ./Drivers/CMSIS/system_stm32wlxx.o 
@@ -15,7 +15,7 @@ C_DEPS += \
 
 
 # Each subdirectory must supply rules for building sources it contributes
-Drivers/CMSIS/system_stm32wlxx.o: D:/OneDrive/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/system_stm32wlxx.c Drivers/CMSIS/subdir.mk
+Drivers/CMSIS/system_stm32wlxx.o: D:/ONEDRIVE/STM32WLV13/Projects/NUCLEO-WL55JC/Applications/LoRaWAN/WLE5CC_NODE_STS/Core/Src/system_stm32wlxx.c Drivers/CMSIS/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
 
 clean: clean-Drivers-2f-CMSIS
diff --git a/STM32CubeIDE/Release/Drivers/STM32WLxx_HAL_Driver/subdir.mk b/STM32CubeIDE/Release/Drivers/STM32WLxx_HAL_Driver/subdir.mk
index 986f368..ca019d3 100644
--- a/STM32CubeIDE/Release/Drivers/STM32WLxx_HAL_Driver/subdir.mk
+++ b/STM32CubeIDE/Release/Drivers/STM32WLxx_HAL_Driver/subdir.mk
@@ -5,30 +5,30 @@
 
 # Add inputs and outputs from these tool invocations to the build variables 
 C_SRCS += \
-D:/OneDrive/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal.c \
-D:/OneDrive/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_adc.c \
-D:/OneDrive/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_adc_ex.c \
-D:/OneDrive/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_cortex.c \
-D:/OneDrive/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_dma.c \
-D:/OneDrive/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_dma_ex.c \
-D:/OneDrive/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_exti.c \
-D:/OneDrive/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_flash.c \
-D:/OneDrive/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_flash_ex.c \
-D:/OneDrive/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_gpio.c \
-D:/OneDrive/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_i2c.c \
-D:/OneDrive/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_i2c_ex.c \
-D:/OneDrive/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_pwr.c \
-D:/OneDrive/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_pwr_ex.c \
-D:/OneDrive/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_rcc.c \
-D:/OneDrive/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_rcc_ex.c \
-D:/OneDrive/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_rtc.c \
-D:/OneDrive/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_rtc_ex.c \
-D:/OneDrive/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_subghz.c \
-D:/OneDrive/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_tim.c \
-D:/OneDrive/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_tim_ex.c \
-D:/OneDrive/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_uart.c \
-D:/OneDrive/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_uart_ex.c \
-D:/OneDrive/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_ll_adc.c 
+D:/ONEDRIVE/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal.c \
+D:/ONEDRIVE/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_adc.c \
+D:/ONEDRIVE/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_adc_ex.c \
+D:/ONEDRIVE/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_cortex.c \
+D:/ONEDRIVE/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_dma.c \
+D:/ONEDRIVE/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_dma_ex.c \
+D:/ONEDRIVE/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_exti.c \
+D:/ONEDRIVE/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_flash.c \
+D:/ONEDRIVE/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_flash_ex.c \
+D:/ONEDRIVE/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_gpio.c \
+D:/ONEDRIVE/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_i2c.c \
+D:/ONEDRIVE/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_i2c_ex.c \
+D:/ONEDRIVE/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_pwr.c \
+D:/ONEDRIVE/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_pwr_ex.c \
+D:/ONEDRIVE/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_rcc.c \
+D:/ONEDRIVE/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_rcc_ex.c \
+D:/ONEDRIVE/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_rtc.c \
+D:/ONEDRIVE/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_rtc_ex.c \
+D:/ONEDRIVE/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_subghz.c \
+D:/ONEDRIVE/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_tim.c \
+D:/ONEDRIVE/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_tim_ex.c \
+D:/ONEDRIVE/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_uart.c \
+D:/ONEDRIVE/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_uart_ex.c \
+D:/ONEDRIVE/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_ll_adc.c 
 
 OBJS += \
 ./Drivers/STM32WLxx_HAL_Driver/stm32wlxx_hal.o \
@@ -84,53 +84,53 @@ C_DEPS += \
 
 
 # Each subdirectory must supply rules for building sources it contributes
-Drivers/STM32WLxx_HAL_Driver/stm32wlxx_hal.o: D:/OneDrive/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal.c Drivers/STM32WLxx_HAL_Driver/subdir.mk
+Drivers/STM32WLxx_HAL_Driver/stm32wlxx_hal.o: D:/ONEDRIVE/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal.c Drivers/STM32WLxx_HAL_Driver/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Drivers/STM32WLxx_HAL_Driver/stm32wlxx_hal_adc.o: D:/OneDrive/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_adc.c Drivers/STM32WLxx_HAL_Driver/subdir.mk
+Drivers/STM32WLxx_HAL_Driver/stm32wlxx_hal_adc.o: D:/ONEDRIVE/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_adc.c Drivers/STM32WLxx_HAL_Driver/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Drivers/STM32WLxx_HAL_Driver/stm32wlxx_hal_adc_ex.o: D:/OneDrive/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_adc_ex.c Drivers/STM32WLxx_HAL_Driver/subdir.mk
+Drivers/STM32WLxx_HAL_Driver/stm32wlxx_hal_adc_ex.o: D:/ONEDRIVE/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_adc_ex.c Drivers/STM32WLxx_HAL_Driver/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Drivers/STM32WLxx_HAL_Driver/stm32wlxx_hal_cortex.o: D:/OneDrive/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_cortex.c Drivers/STM32WLxx_HAL_Driver/subdir.mk
+Drivers/STM32WLxx_HAL_Driver/stm32wlxx_hal_cortex.o: D:/ONEDRIVE/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_cortex.c Drivers/STM32WLxx_HAL_Driver/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Drivers/STM32WLxx_HAL_Driver/stm32wlxx_hal_dma.o: D:/OneDrive/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_dma.c Drivers/STM32WLxx_HAL_Driver/subdir.mk
+Drivers/STM32WLxx_HAL_Driver/stm32wlxx_hal_dma.o: D:/ONEDRIVE/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_dma.c Drivers/STM32WLxx_HAL_Driver/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Drivers/STM32WLxx_HAL_Driver/stm32wlxx_hal_dma_ex.o: D:/OneDrive/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_dma_ex.c Drivers/STM32WLxx_HAL_Driver/subdir.mk
+Drivers/STM32WLxx_HAL_Driver/stm32wlxx_hal_dma_ex.o: D:/ONEDRIVE/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_dma_ex.c Drivers/STM32WLxx_HAL_Driver/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Drivers/STM32WLxx_HAL_Driver/stm32wlxx_hal_exti.o: D:/OneDrive/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_exti.c Drivers/STM32WLxx_HAL_Driver/subdir.mk
+Drivers/STM32WLxx_HAL_Driver/stm32wlxx_hal_exti.o: D:/ONEDRIVE/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_exti.c Drivers/STM32WLxx_HAL_Driver/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Drivers/STM32WLxx_HAL_Driver/stm32wlxx_hal_flash.o: D:/OneDrive/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_flash.c Drivers/STM32WLxx_HAL_Driver/subdir.mk
+Drivers/STM32WLxx_HAL_Driver/stm32wlxx_hal_flash.o: D:/ONEDRIVE/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_flash.c Drivers/STM32WLxx_HAL_Driver/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Drivers/STM32WLxx_HAL_Driver/stm32wlxx_hal_flash_ex.o: D:/OneDrive/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_flash_ex.c Drivers/STM32WLxx_HAL_Driver/subdir.mk
+Drivers/STM32WLxx_HAL_Driver/stm32wlxx_hal_flash_ex.o: D:/ONEDRIVE/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_flash_ex.c Drivers/STM32WLxx_HAL_Driver/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Drivers/STM32WLxx_HAL_Driver/stm32wlxx_hal_gpio.o: D:/OneDrive/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_gpio.c Drivers/STM32WLxx_HAL_Driver/subdir.mk
+Drivers/STM32WLxx_HAL_Driver/stm32wlxx_hal_gpio.o: D:/ONEDRIVE/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_gpio.c Drivers/STM32WLxx_HAL_Driver/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Drivers/STM32WLxx_HAL_Driver/stm32wlxx_hal_i2c.o: D:/OneDrive/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_i2c.c Drivers/STM32WLxx_HAL_Driver/subdir.mk
+Drivers/STM32WLxx_HAL_Driver/stm32wlxx_hal_i2c.o: D:/ONEDRIVE/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_i2c.c Drivers/STM32WLxx_HAL_Driver/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Drivers/STM32WLxx_HAL_Driver/stm32wlxx_hal_i2c_ex.o: D:/OneDrive/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_i2c_ex.c Drivers/STM32WLxx_HAL_Driver/subdir.mk
+Drivers/STM32WLxx_HAL_Driver/stm32wlxx_hal_i2c_ex.o: D:/ONEDRIVE/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_i2c_ex.c Drivers/STM32WLxx_HAL_Driver/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Drivers/STM32WLxx_HAL_Driver/stm32wlxx_hal_pwr.o: D:/OneDrive/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_pwr.c Drivers/STM32WLxx_HAL_Driver/subdir.mk
+Drivers/STM32WLxx_HAL_Driver/stm32wlxx_hal_pwr.o: D:/ONEDRIVE/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_pwr.c Drivers/STM32WLxx_HAL_Driver/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Drivers/STM32WLxx_HAL_Driver/stm32wlxx_hal_pwr_ex.o: D:/OneDrive/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_pwr_ex.c Drivers/STM32WLxx_HAL_Driver/subdir.mk
+Drivers/STM32WLxx_HAL_Driver/stm32wlxx_hal_pwr_ex.o: D:/ONEDRIVE/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_pwr_ex.c Drivers/STM32WLxx_HAL_Driver/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Drivers/STM32WLxx_HAL_Driver/stm32wlxx_hal_rcc.o: D:/OneDrive/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_rcc.c Drivers/STM32WLxx_HAL_Driver/subdir.mk
+Drivers/STM32WLxx_HAL_Driver/stm32wlxx_hal_rcc.o: D:/ONEDRIVE/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_rcc.c Drivers/STM32WLxx_HAL_Driver/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Drivers/STM32WLxx_HAL_Driver/stm32wlxx_hal_rcc_ex.o: D:/OneDrive/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_rcc_ex.c Drivers/STM32WLxx_HAL_Driver/subdir.mk
+Drivers/STM32WLxx_HAL_Driver/stm32wlxx_hal_rcc_ex.o: D:/ONEDRIVE/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_rcc_ex.c Drivers/STM32WLxx_HAL_Driver/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Drivers/STM32WLxx_HAL_Driver/stm32wlxx_hal_rtc.o: D:/OneDrive/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_rtc.c Drivers/STM32WLxx_HAL_Driver/subdir.mk
+Drivers/STM32WLxx_HAL_Driver/stm32wlxx_hal_rtc.o: D:/ONEDRIVE/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_rtc.c Drivers/STM32WLxx_HAL_Driver/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Drivers/STM32WLxx_HAL_Driver/stm32wlxx_hal_rtc_ex.o: D:/OneDrive/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_rtc_ex.c Drivers/STM32WLxx_HAL_Driver/subdir.mk
+Drivers/STM32WLxx_HAL_Driver/stm32wlxx_hal_rtc_ex.o: D:/ONEDRIVE/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_rtc_ex.c Drivers/STM32WLxx_HAL_Driver/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Drivers/STM32WLxx_HAL_Driver/stm32wlxx_hal_subghz.o: D:/OneDrive/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_subghz.c Drivers/STM32WLxx_HAL_Driver/subdir.mk
+Drivers/STM32WLxx_HAL_Driver/stm32wlxx_hal_subghz.o: D:/ONEDRIVE/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_subghz.c Drivers/STM32WLxx_HAL_Driver/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Drivers/STM32WLxx_HAL_Driver/stm32wlxx_hal_tim.o: D:/OneDrive/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_tim.c Drivers/STM32WLxx_HAL_Driver/subdir.mk
+Drivers/STM32WLxx_HAL_Driver/stm32wlxx_hal_tim.o: D:/ONEDRIVE/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_tim.c Drivers/STM32WLxx_HAL_Driver/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Drivers/STM32WLxx_HAL_Driver/stm32wlxx_hal_tim_ex.o: D:/OneDrive/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_tim_ex.c Drivers/STM32WLxx_HAL_Driver/subdir.mk
+Drivers/STM32WLxx_HAL_Driver/stm32wlxx_hal_tim_ex.o: D:/ONEDRIVE/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_tim_ex.c Drivers/STM32WLxx_HAL_Driver/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Drivers/STM32WLxx_HAL_Driver/stm32wlxx_hal_uart.o: D:/OneDrive/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_uart.c Drivers/STM32WLxx_HAL_Driver/subdir.mk
+Drivers/STM32WLxx_HAL_Driver/stm32wlxx_hal_uart.o: D:/ONEDRIVE/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_uart.c Drivers/STM32WLxx_HAL_Driver/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Drivers/STM32WLxx_HAL_Driver/stm32wlxx_hal_uart_ex.o: D:/OneDrive/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_uart_ex.c Drivers/STM32WLxx_HAL_Driver/subdir.mk
+Drivers/STM32WLxx_HAL_Driver/stm32wlxx_hal_uart_ex.o: D:/ONEDRIVE/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_hal_uart_ex.c Drivers/STM32WLxx_HAL_Driver/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Drivers/STM32WLxx_HAL_Driver/stm32wlxx_ll_adc.o: D:/OneDrive/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_ll_adc.c Drivers/STM32WLxx_HAL_Driver/subdir.mk
+Drivers/STM32WLxx_HAL_Driver/stm32wlxx_ll_adc.o: D:/ONEDRIVE/STM32WLV13/Drivers/STM32WLxx_HAL_Driver/Src/stm32wlxx_ll_adc.c Drivers/STM32WLxx_HAL_Driver/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
 
 clean: clean-Drivers-2f-STM32WLxx_HAL_Driver
diff --git a/STM32CubeIDE/Release/Middlewares/LoRaWAN/subdir.mk b/STM32CubeIDE/Release/Middlewares/LoRaWAN/subdir.mk
index bda4cfd..5286078 100644
--- a/STM32CubeIDE/Release/Middlewares/LoRaWAN/subdir.mk
+++ b/STM32CubeIDE/Release/Middlewares/LoRaWAN/subdir.mk
@@ -5,39 +5,39 @@
 
 # Add inputs and outputs from these tool invocations to the build variables 
 C_SRCS += \
-D:/OneDrive/STM32WLV13/Middlewares/Third_Party/LoRaWAN/LmHandler/LmHandler.c \
-D:/OneDrive/STM32WLV13/Middlewares/Third_Party/LoRaWAN/LmHandler/Packages/LmhpCompliance.c \
-D:/OneDrive/STM32WLV13/Middlewares/Third_Party/LoRaWAN/LmHandler/Packages/LmhpPackagesRegistration.c \
-D:/OneDrive/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/LoRaMac.c \
-D:/OneDrive/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/LoRaMacAdr.c \
-D:/OneDrive/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/LoRaMacClassB.c \
-D:/OneDrive/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/LoRaMacCommands.c \
-D:/OneDrive/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/LoRaMacConfirmQueue.c \
-D:/OneDrive/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/LoRaMacCrypto.c \
-D:/OneDrive/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/LoRaMacParser.c \
-D:/OneDrive/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/LoRaMacSerializer.c \
-D:/OneDrive/STM32WLV13/Middlewares/Third_Party/LoRaWAN/LmHandler/NvmDataMgmt.c \
-D:/OneDrive/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/Region.c \
-D:/OneDrive/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/RegionAS923.c \
-D:/OneDrive/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/RegionAU915.c \
-D:/OneDrive/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/RegionBaseUS.c \
-D:/OneDrive/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/RegionCN470.c \
-D:/OneDrive/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/RegionCN470A20.c \
-D:/OneDrive/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/RegionCN470A26.c \
-D:/OneDrive/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/RegionCN470B20.c \
-D:/OneDrive/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/RegionCN470B26.c \
-D:/OneDrive/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/RegionCN779.c \
-D:/OneDrive/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/RegionCommon.c \
-D:/OneDrive/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/RegionEU433.c \
-D:/OneDrive/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/RegionEU868.c \
-D:/OneDrive/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/RegionIN865.c \
-D:/OneDrive/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/RegionKR920.c \
-D:/OneDrive/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/RegionRU864.c \
-D:/OneDrive/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/RegionUS915.c \
-D:/OneDrive/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Crypto/cmac.c \
-D:/OneDrive/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Crypto/lorawan_aes.c \
-D:/OneDrive/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Crypto/soft-se.c \
-D:/OneDrive/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Utilities/utilities.c 
+D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/LmHandler/LmHandler.c \
+D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/LmHandler/Packages/LmhpCompliance.c \
+D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/LmHandler/Packages/LmhpPackagesRegistration.c \
+D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/LoRaMac.c \
+D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/LoRaMacAdr.c \
+D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/LoRaMacClassB.c \
+D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/LoRaMacCommands.c \
+D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/LoRaMacConfirmQueue.c \
+D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/LoRaMacCrypto.c \
+D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/LoRaMacParser.c \
+D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/LoRaMacSerializer.c \
+D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/LmHandler/NvmDataMgmt.c \
+D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/Region.c \
+D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/RegionAS923.c \
+D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/RegionAU915.c \
+D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/RegionBaseUS.c \
+D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/RegionCN470.c \
+D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/RegionCN470A20.c \
+D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/RegionCN470A26.c \
+D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/RegionCN470B20.c \
+D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/RegionCN470B26.c \
+D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/RegionCN779.c \
+D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/RegionCommon.c \
+D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/RegionEU433.c \
+D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/RegionEU868.c \
+D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/RegionIN865.c \
+D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/RegionKR920.c \
+D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/RegionRU864.c \
+D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/RegionUS915.c \
+D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Crypto/cmac.c \
+D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Crypto/lorawan_aes.c \
+D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Crypto/soft-se.c \
+D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Utilities/utilities.c 
 
 OBJS += \
 ./Middlewares/LoRaWAN/LmHandler.o \
@@ -111,71 +111,71 @@ C_DEPS += \
 
 
 # Each subdirectory must supply rules for building sources it contributes
-Middlewares/LoRaWAN/LmHandler.o: D:/OneDrive/STM32WLV13/Middlewares/Third_Party/LoRaWAN/LmHandler/LmHandler.c Middlewares/LoRaWAN/subdir.mk
+Middlewares/LoRaWAN/LmHandler.o: D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/LmHandler/LmHandler.c Middlewares/LoRaWAN/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Middlewares/LoRaWAN/LmhpCompliance.o: D:/OneDrive/STM32WLV13/Middlewares/Third_Party/LoRaWAN/LmHandler/Packages/LmhpCompliance.c Middlewares/LoRaWAN/subdir.mk
+Middlewares/LoRaWAN/LmhpCompliance.o: D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/LmHandler/Packages/LmhpCompliance.c Middlewares/LoRaWAN/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Middlewares/LoRaWAN/LmhpPackagesRegistration.o: D:/OneDrive/STM32WLV13/Middlewares/Third_Party/LoRaWAN/LmHandler/Packages/LmhpPackagesRegistration.c Middlewares/LoRaWAN/subdir.mk
+Middlewares/LoRaWAN/LmhpPackagesRegistration.o: D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/LmHandler/Packages/LmhpPackagesRegistration.c Middlewares/LoRaWAN/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Middlewares/LoRaWAN/LoRaMac.o: D:/OneDrive/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/LoRaMac.c Middlewares/LoRaWAN/subdir.mk
+Middlewares/LoRaWAN/LoRaMac.o: D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/LoRaMac.c Middlewares/LoRaWAN/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Middlewares/LoRaWAN/LoRaMacAdr.o: D:/OneDrive/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/LoRaMacAdr.c Middlewares/LoRaWAN/subdir.mk
+Middlewares/LoRaWAN/LoRaMacAdr.o: D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/LoRaMacAdr.c Middlewares/LoRaWAN/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Middlewares/LoRaWAN/LoRaMacClassB.o: D:/OneDrive/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/LoRaMacClassB.c Middlewares/LoRaWAN/subdir.mk
+Middlewares/LoRaWAN/LoRaMacClassB.o: D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/LoRaMacClassB.c Middlewares/LoRaWAN/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Middlewares/LoRaWAN/LoRaMacCommands.o: D:/OneDrive/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/LoRaMacCommands.c Middlewares/LoRaWAN/subdir.mk
+Middlewares/LoRaWAN/LoRaMacCommands.o: D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/LoRaMacCommands.c Middlewares/LoRaWAN/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Middlewares/LoRaWAN/LoRaMacConfirmQueue.o: D:/OneDrive/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/LoRaMacConfirmQueue.c Middlewares/LoRaWAN/subdir.mk
+Middlewares/LoRaWAN/LoRaMacConfirmQueue.o: D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/LoRaMacConfirmQueue.c Middlewares/LoRaWAN/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Middlewares/LoRaWAN/LoRaMacCrypto.o: D:/OneDrive/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/LoRaMacCrypto.c Middlewares/LoRaWAN/subdir.mk
+Middlewares/LoRaWAN/LoRaMacCrypto.o: D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/LoRaMacCrypto.c Middlewares/LoRaWAN/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Middlewares/LoRaWAN/LoRaMacParser.o: D:/OneDrive/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/LoRaMacParser.c Middlewares/LoRaWAN/subdir.mk
+Middlewares/LoRaWAN/LoRaMacParser.o: D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/LoRaMacParser.c Middlewares/LoRaWAN/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Middlewares/LoRaWAN/LoRaMacSerializer.o: D:/OneDrive/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/LoRaMacSerializer.c Middlewares/LoRaWAN/subdir.mk
+Middlewares/LoRaWAN/LoRaMacSerializer.o: D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/LoRaMacSerializer.c Middlewares/LoRaWAN/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Middlewares/LoRaWAN/NvmDataMgmt.o: D:/OneDrive/STM32WLV13/Middlewares/Third_Party/LoRaWAN/LmHandler/NvmDataMgmt.c Middlewares/LoRaWAN/subdir.mk
+Middlewares/LoRaWAN/NvmDataMgmt.o: D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/LmHandler/NvmDataMgmt.c Middlewares/LoRaWAN/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Middlewares/LoRaWAN/Region.o: D:/OneDrive/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/Region.c Middlewares/LoRaWAN/subdir.mk
+Middlewares/LoRaWAN/Region.o: D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/Region.c Middlewares/LoRaWAN/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Middlewares/LoRaWAN/RegionAS923.o: D:/OneDrive/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/RegionAS923.c Middlewares/LoRaWAN/subdir.mk
+Middlewares/LoRaWAN/RegionAS923.o: D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/RegionAS923.c Middlewares/LoRaWAN/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Middlewares/LoRaWAN/RegionAU915.o: D:/OneDrive/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/RegionAU915.c Middlewares/LoRaWAN/subdir.mk
+Middlewares/LoRaWAN/RegionAU915.o: D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/RegionAU915.c Middlewares/LoRaWAN/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Middlewares/LoRaWAN/RegionBaseUS.o: D:/OneDrive/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/RegionBaseUS.c Middlewares/LoRaWAN/subdir.mk
+Middlewares/LoRaWAN/RegionBaseUS.o: D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/RegionBaseUS.c Middlewares/LoRaWAN/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Middlewares/LoRaWAN/RegionCN470.o: D:/OneDrive/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/RegionCN470.c Middlewares/LoRaWAN/subdir.mk
+Middlewares/LoRaWAN/RegionCN470.o: D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/RegionCN470.c Middlewares/LoRaWAN/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Middlewares/LoRaWAN/RegionCN470A20.o: D:/OneDrive/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/RegionCN470A20.c Middlewares/LoRaWAN/subdir.mk
+Middlewares/LoRaWAN/RegionCN470A20.o: D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/RegionCN470A20.c Middlewares/LoRaWAN/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Middlewares/LoRaWAN/RegionCN470A26.o: D:/OneDrive/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/RegionCN470A26.c Middlewares/LoRaWAN/subdir.mk
+Middlewares/LoRaWAN/RegionCN470A26.o: D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/RegionCN470A26.c Middlewares/LoRaWAN/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Middlewares/LoRaWAN/RegionCN470B20.o: D:/OneDrive/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/RegionCN470B20.c Middlewares/LoRaWAN/subdir.mk
+Middlewares/LoRaWAN/RegionCN470B20.o: D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/RegionCN470B20.c Middlewares/LoRaWAN/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Middlewares/LoRaWAN/RegionCN470B26.o: D:/OneDrive/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/RegionCN470B26.c Middlewares/LoRaWAN/subdir.mk
+Middlewares/LoRaWAN/RegionCN470B26.o: D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/RegionCN470B26.c Middlewares/LoRaWAN/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Middlewares/LoRaWAN/RegionCN779.o: D:/OneDrive/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/RegionCN779.c Middlewares/LoRaWAN/subdir.mk
+Middlewares/LoRaWAN/RegionCN779.o: D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/RegionCN779.c Middlewares/LoRaWAN/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Middlewares/LoRaWAN/RegionCommon.o: D:/OneDrive/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/RegionCommon.c Middlewares/LoRaWAN/subdir.mk
+Middlewares/LoRaWAN/RegionCommon.o: D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/RegionCommon.c Middlewares/LoRaWAN/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Middlewares/LoRaWAN/RegionEU433.o: D:/OneDrive/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/RegionEU433.c Middlewares/LoRaWAN/subdir.mk
+Middlewares/LoRaWAN/RegionEU433.o: D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/RegionEU433.c Middlewares/LoRaWAN/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Middlewares/LoRaWAN/RegionEU868.o: D:/OneDrive/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/RegionEU868.c Middlewares/LoRaWAN/subdir.mk
+Middlewares/LoRaWAN/RegionEU868.o: D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/RegionEU868.c Middlewares/LoRaWAN/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Middlewares/LoRaWAN/RegionIN865.o: D:/OneDrive/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/RegionIN865.c Middlewares/LoRaWAN/subdir.mk
+Middlewares/LoRaWAN/RegionIN865.o: D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/RegionIN865.c Middlewares/LoRaWAN/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Middlewares/LoRaWAN/RegionKR920.o: D:/OneDrive/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/RegionKR920.c Middlewares/LoRaWAN/subdir.mk
+Middlewares/LoRaWAN/RegionKR920.o: D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/RegionKR920.c Middlewares/LoRaWAN/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Middlewares/LoRaWAN/RegionRU864.o: D:/OneDrive/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/RegionRU864.c Middlewares/LoRaWAN/subdir.mk
+Middlewares/LoRaWAN/RegionRU864.o: D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/RegionRU864.c Middlewares/LoRaWAN/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Middlewares/LoRaWAN/RegionUS915.o: D:/OneDrive/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/RegionUS915.c Middlewares/LoRaWAN/subdir.mk
+Middlewares/LoRaWAN/RegionUS915.o: D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Mac/Region/RegionUS915.c Middlewares/LoRaWAN/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Middlewares/LoRaWAN/cmac.o: D:/OneDrive/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Crypto/cmac.c Middlewares/LoRaWAN/subdir.mk
+Middlewares/LoRaWAN/cmac.o: D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Crypto/cmac.c Middlewares/LoRaWAN/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Middlewares/LoRaWAN/lorawan_aes.o: D:/OneDrive/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Crypto/lorawan_aes.c Middlewares/LoRaWAN/subdir.mk
+Middlewares/LoRaWAN/lorawan_aes.o: D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Crypto/lorawan_aes.c Middlewares/LoRaWAN/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Middlewares/LoRaWAN/soft-se.o: D:/OneDrive/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Crypto/soft-se.c Middlewares/LoRaWAN/subdir.mk
+Middlewares/LoRaWAN/soft-se.o: D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Crypto/soft-se.c Middlewares/LoRaWAN/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Middlewares/LoRaWAN/utilities.o: D:/OneDrive/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Utilities/utilities.c Middlewares/LoRaWAN/subdir.mk
+Middlewares/LoRaWAN/utilities.o: D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/LoRaWAN/Utilities/utilities.c Middlewares/LoRaWAN/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
 
 clean: clean-Middlewares-2f-LoRaWAN
diff --git a/STM32CubeIDE/Release/Middlewares/SubGHz_Phy/subdir.mk b/STM32CubeIDE/Release/Middlewares/SubGHz_Phy/subdir.mk
index f909c5b..cfc3fda 100644
--- a/STM32CubeIDE/Release/Middlewares/SubGHz_Phy/subdir.mk
+++ b/STM32CubeIDE/Release/Middlewares/SubGHz_Phy/subdir.mk
@@ -5,9 +5,9 @@
 
 # Add inputs and outputs from these tool invocations to the build variables 
 C_SRCS += \
-D:/OneDrive/STM32WLV13/Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver/radio.c \
-D:/OneDrive/STM32WLV13/Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver/radio_driver.c \
-D:/OneDrive/STM32WLV13/Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver/radio_fw.c 
+D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver/radio.c \
+D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver/radio_driver.c \
+D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver/radio_fw.c 
 
 OBJS += \
 ./Middlewares/SubGHz_Phy/radio.o \
@@ -21,11 +21,11 @@ C_DEPS += \
 
 
 # Each subdirectory must supply rules for building sources it contributes
-Middlewares/SubGHz_Phy/radio.o: D:/OneDrive/STM32WLV13/Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver/radio.c Middlewares/SubGHz_Phy/subdir.mk
+Middlewares/SubGHz_Phy/radio.o: D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver/radio.c Middlewares/SubGHz_Phy/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Middlewares/SubGHz_Phy/radio_driver.o: D:/OneDrive/STM32WLV13/Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver/radio_driver.c Middlewares/SubGHz_Phy/subdir.mk
+Middlewares/SubGHz_Phy/radio_driver.o: D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver/radio_driver.c Middlewares/SubGHz_Phy/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Middlewares/SubGHz_Phy/radio_fw.o: D:/OneDrive/STM32WLV13/Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver/radio_fw.c Middlewares/SubGHz_Phy/subdir.mk
+Middlewares/SubGHz_Phy/radio_fw.o: D:/ONEDRIVE/STM32WLV13/Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver/radio_fw.c Middlewares/SubGHz_Phy/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
 
 clean: clean-Middlewares-2f-SubGHz_Phy
diff --git a/STM32CubeIDE/Release/Utilities/subdir.mk b/STM32CubeIDE/Release/Utilities/subdir.mk
index d5b4557..a4317bb 100644
--- a/STM32CubeIDE/Release/Utilities/subdir.mk
+++ b/STM32CubeIDE/Release/Utilities/subdir.mk
@@ -5,14 +5,14 @@
 
 # Add inputs and outputs from these tool invocations to the build variables 
 C_SRCS += \
-D:/OneDrive/STM32WLV13/Utilities/trace/adv_trace/stm32_adv_trace.c \
-D:/OneDrive/STM32WLV13/Utilities/lpm/tiny_lpm/stm32_lpm.c \
-D:/OneDrive/STM32WLV13/Utilities/misc/stm32_mem.c \
-D:/OneDrive/STM32WLV13/Utilities/sequencer/stm32_seq.c \
-D:/OneDrive/STM32WLV13/Utilities/misc/stm32_systime.c \
-D:/OneDrive/STM32WLV13/Utilities/timer/stm32_timer.c \
-D:/OneDrive/STM32WLV13/Utilities/misc/stm32_tiny_sscanf.c \
-D:/OneDrive/STM32WLV13/Utilities/misc/stm32_tiny_vsnprintf.c 
+D:/ONEDRIVE/STM32WLV13/Utilities/trace/adv_trace/stm32_adv_trace.c \
+D:/ONEDRIVE/STM32WLV13/Utilities/lpm/tiny_lpm/stm32_lpm.c \
+D:/ONEDRIVE/STM32WLV13/Utilities/misc/stm32_mem.c \
+D:/ONEDRIVE/STM32WLV13/Utilities/sequencer/stm32_seq.c \
+D:/ONEDRIVE/STM32WLV13/Utilities/misc/stm32_systime.c \
+D:/ONEDRIVE/STM32WLV13/Utilities/timer/stm32_timer.c \
+D:/ONEDRIVE/STM32WLV13/Utilities/misc/stm32_tiny_sscanf.c \
+D:/ONEDRIVE/STM32WLV13/Utilities/misc/stm32_tiny_vsnprintf.c 
 
 OBJS += \
 ./Utilities/stm32_adv_trace.o \
@@ -36,21 +36,21 @@ C_DEPS += \
 
 
 # Each subdirectory must supply rules for building sources it contributes
-Utilities/stm32_adv_trace.o: D:/OneDrive/STM32WLV13/Utilities/trace/adv_trace/stm32_adv_trace.c Utilities/subdir.mk
+Utilities/stm32_adv_trace.o: D:/ONEDRIVE/STM32WLV13/Utilities/trace/adv_trace/stm32_adv_trace.c Utilities/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Utilities/stm32_lpm.o: D:/OneDrive/STM32WLV13/Utilities/lpm/tiny_lpm/stm32_lpm.c Utilities/subdir.mk
+Utilities/stm32_lpm.o: D:/ONEDRIVE/STM32WLV13/Utilities/lpm/tiny_lpm/stm32_lpm.c Utilities/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Utilities/stm32_mem.o: D:/OneDrive/STM32WLV13/Utilities/misc/stm32_mem.c Utilities/subdir.mk
+Utilities/stm32_mem.o: D:/ONEDRIVE/STM32WLV13/Utilities/misc/stm32_mem.c Utilities/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Utilities/stm32_seq.o: D:/OneDrive/STM32WLV13/Utilities/sequencer/stm32_seq.c Utilities/subdir.mk
+Utilities/stm32_seq.o: D:/ONEDRIVE/STM32WLV13/Utilities/sequencer/stm32_seq.c Utilities/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Utilities/stm32_systime.o: D:/OneDrive/STM32WLV13/Utilities/misc/stm32_systime.c Utilities/subdir.mk
+Utilities/stm32_systime.o: D:/ONEDRIVE/STM32WLV13/Utilities/misc/stm32_systime.c Utilities/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Utilities/stm32_timer.o: D:/OneDrive/STM32WLV13/Utilities/timer/stm32_timer.c Utilities/subdir.mk
+Utilities/stm32_timer.o: D:/ONEDRIVE/STM32WLV13/Utilities/timer/stm32_timer.c Utilities/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Utilities/stm32_tiny_sscanf.o: D:/OneDrive/STM32WLV13/Utilities/misc/stm32_tiny_sscanf.c Utilities/subdir.mk
+Utilities/stm32_tiny_sscanf.o: D:/ONEDRIVE/STM32WLV13/Utilities/misc/stm32_tiny_sscanf.c Utilities/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
-Utilities/stm32_tiny_vsnprintf.o: D:/OneDrive/STM32WLV13/Utilities/misc/stm32_tiny_vsnprintf.c Utilities/subdir.mk
+Utilities/stm32_tiny_vsnprintf.o: D:/ONEDRIVE/STM32WLV13/Utilities/misc/stm32_tiny_vsnprintf.c Utilities/subdir.mk
 	arm-none-eabi-gcc "$<" -mcpu=cortex-m4 -std=gnu11 -DSTS_T6 -DCORE_CM4 -DUSE_HAL_DRIVER -DSTM32WLE5xx -c -I../../Core/Inc -I../../STS/Core/Inc -I../../STS/TOF/App -I../../STS/TOF/Target -I../../STS/TOF/vl53l1x_uld -I../../STS/TOF/vl53l0x -I../../LoRaWAN/App -I../../LoRaWAN/Target -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc -I../../../../../../../Drivers/STM32WLxx_HAL_Driver/Inc/Legacy -I../../../../../../../Utilities/trace/adv_trace -I../../../../../../../Utilities/misc -I../../../../../../../Utilities/sequencer -I../../../../../../../Utilities/timer -I../../../../../../../Utilities/lpm/tiny_lpm -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler/Packages -I../../../../../../../Drivers/CMSIS/Device/ST/STM32WLxx/Include -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Crypto -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac/Region -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Mac -I../../../../../../../Middlewares/Third_Party/LoRaWAN/LmHandler -I../../../../../../../Middlewares/Third_Party/LoRaWAN/Utilities -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy -I../../../../../../../Middlewares/Third_Party/SubGHz_Phy/stm32_radio_driver -I../../../../../../../Middlewares/ST/STM32_Cryptographic/include -I../../../../../../../Drivers/CMSIS/Include -I../../../../../../../Drivers/BSP/STM32WLxx_Nucleo -Os -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@" --specs=nano.specs -mfloat-abi=soft -mthumb -o "$@"
 
 clean: clean-Utilities
diff --git a/STM32CubeIDE/Release/makefile b/STM32CubeIDE/Release/makefile
index 797baa7..148c484 100644
--- a/STM32CubeIDE/Release/makefile
+++ b/STM32CubeIDE/Release/makefile
@@ -17,7 +17,6 @@ RM := rm -rf
 -include Drivers/BSP/STM32WLxx_Nucleo/subdir.mk
 -include Application/User/Startup/subdir.mk
 -include Application/User/STS/TOF/vl53l1x_uld/subdir.mk
--include Application/User/STS/TOF/vl53l0x/subdir.mk
 -include Application/User/STS/TOF/Target/subdir.mk
 -include Application/User/STS/TOF/App/subdir.mk
 -include Application/User/STS/Core/Src/subdir.mk
@@ -72,8 +71,8 @@ all: main-build
 main-build: WLE5CC_NODE_STS.elf secondary-outputs
 
 # Tool invocations
-WLE5CC_NODE_STS.elf WLE5CC_NODE_STS.map: $(OBJS) $(USER_OBJS) D:\OneDrive\STM32WLV13\Projects\NUCLEO-WL55JC\Applications\LoRaWAN\WLE5CC_NODE_STS\STM32CubeIDE\STM32WLE5CCUX_FLASH.ld makefile objects.list $(OPTIONAL_TOOL_DEPS)
-	arm-none-eabi-gcc -o "WLE5CC_NODE_STS.elf" @"objects.list" $(USER_OBJS) $(LIBS) -mcpu=cortex-m4 -T"D:\OneDrive\STM32WLV13\Projects\NUCLEO-WL55JC\Applications\LoRaWAN\WLE5CC_NODE_STS\STM32CubeIDE\STM32WLE5CCUX_FLASH.ld" --specs=nosys.specs -Wl,-Map="WLE5CC_NODE_STS.map" -Wl,--gc-sections -static -L../../../../../../../Middlewares/ST/STM32_Cryptographic/lib -z noexecstack -Wunused-but-set-variable -Wunused-variable -fshort-enums --specs=nano.specs -mfloat-abi=soft -mthumb -Wl,--start-group -lc -lm -Wl,--end-group
+WLE5CC_NODE_STS.elf WLE5CC_NODE_STS.map: $(OBJS) $(USER_OBJS) D:\ONEDRIVE\STM32WLV13\Projects\NUCLEO-WL55JC\Applications\LoRaWAN\WLE5CC_NODE_STS\STM32CubeIDE\STM32WLE5CCUX_FLASH.ld makefile objects.list $(OPTIONAL_TOOL_DEPS)
+	arm-none-eabi-gcc -o "WLE5CC_NODE_STS.elf" @"objects.list" $(USER_OBJS) $(LIBS) -mcpu=cortex-m4 -T"D:\ONEDRIVE\STM32WLV13\Projects\NUCLEO-WL55JC\Applications\LoRaWAN\WLE5CC_NODE_STS\STM32CubeIDE\STM32WLE5CCUX_FLASH.ld" --specs=nosys.specs -Wl,-Map="WLE5CC_NODE_STS.map" -Wl,--gc-sections -static -L../../../../../../../Middlewares/ST/STM32_Cryptographic/lib -z noexecstack -Wunused-but-set-variable -Wunused-variable -fshort-enums --specs=nano.specs -mfloat-abi=soft -mthumb -Wl,--start-group -lc -lm -Wl,--end-group
 	@echo 'Finished building target: $@'
 	@echo ' '
 
diff --git a/STM32CubeIDE/Release/sources.mk b/STM32CubeIDE/Release/sources.mk
index d567a58..126325a 100644
--- a/STM32CubeIDE/Release/sources.mk
+++ b/STM32CubeIDE/Release/sources.mk
@@ -28,7 +28,6 @@ Application/User/LoRaWAN/Target \
 Application/User/STS/Core/Src \
 Application/User/STS/TOF/App \
 Application/User/STS/TOF/Target \
-Application/User/STS/TOF/vl53l0x \
 Application/User/STS/TOF/vl53l1x_uld \
 Application/User/Startup \
 Drivers/BSP/STM32WLxx_Nucleo \
diff --git a/STS/Core/Src/yunhorn_sts_process.c b/STS/Core/Src/yunhorn_sts_process.c
index 871b090..10fa6e8 100644
--- a/STS/Core/Src/yunhorn_sts_process.c
+++ b/STS/Core/Src/yunhorn_sts_process.c
@@ -109,7 +109,7 @@ volatile uint8_t sts_work_mode=4;
 volatile uint32_t rfac_timer=0;
 volatile uint16_t sts_sensor_install_height=3000;
 volatile uint8_t sensor_data_ready=0;
-volatile uint32_t STS_TOFScanPeriod_msec=50, STS_TxPeriod_sec=10, STS_HeartBeatTimerPeriod_sec=60;
+volatile uint32_t STS_TOFScanPeriod_msec=1000, STS_TxPeriod_sec=10, STS_HeartBeatTimerPeriod_sec=60;
 static uint8_t outbuf[128]={0x0};
 extern volatile hmac_result_t hmac_result;
 extern uint16_t sensor_id;
@@ -1728,13 +1728,13 @@ void STS_SENSOR_Function_Test_Process(void)
 		{
 		 sts_door_jam_profile = DOOR_JAM_2000;	// DOOR_JAM_2000: assume door_jame less 2000mm
 
-		 if (sts_sensor_install_height > 2000)
+		 if (sts_sensor_install_height >= 2000)
 			 sts_door_jam_profile ++;							//DOOR_JAM_2400
-		 if (sts_sensor_install_height > 2400)
+		 if (sts_sensor_install_height >= 2400)
 			 sts_door_jam_profile ++;							//DOOR_JAM_3000
-		 if (sts_sensor_install_height > 3000)
+		 if (sts_sensor_install_height >= 3000)
 			 sts_door_jam_profile ++;					//DOOR_JAM_3500
-		 if (sts_sensor_install_height > 3500)
+		 if (sts_sensor_install_height >= 3500)
 			 sts_door_jam_profile ++;					//DOOR_JAM_4000
 		}
 #endif
diff --git a/STS/TOF/App/app_tof.c b/STS/TOF/App/app_tof.c
index 5d3d044..00eed19 100644
--- a/STS/TOF/App/app_tof.c
+++ b/STS/TOF/App/app_tof.c
@@ -82,13 +82,17 @@ void MX_TOF_Init(void)
  * LM background task
  */
 uint16_t MX_TOF_Ranging_Process(void)
-{	uint16_t range_distance=0;
-	uint8_t range_mode = 2; //STS_TOF_LONG_RANGE;
+{
+
 #ifdef	STS_P2
+	uint16_t range_distance=0;
+	uint8_t range_mode = 2; //STS_TOF_LONG_RANGE;
 	STS_TOF_VL53LX_Range_Process(range_mode, &range_distance);
 	APP_LOG(TS_OFF, VLEVEL_M, "\n VL53L1 Range distance =%u mm \n\r", (uint16_t)range_distance);
-#endif
+
 	return (uint16_t) range_distance;
+#endif
+
 }
 void MX_TOF_Process(void)
 {
diff --git a/STS/TOF/App/app_tof_peoplecount.c b/STS/TOF/App/app_tof_peoplecount.c
index 9f3133d..f5a97f0 100644
--- a/STS/TOF/App/app_tof_peoplecount.c
+++ b/STS/TOF/App/app_tof_peoplecount.c
@@ -20,19 +20,26 @@ volatile uint8_t sts_tof_presence_state=0;
 /* TIMING_BUDGET, in ms possible values [15, 20, 50, 100, 200, 500] */
 /* DISTANCE_THRESHOLD = MAX - ASSUME_CHILD_HEIGHT(800mm)            */
 volatile sts_ppc_cfg_type_t ppc_cfg[6] = {
-		{DOOR_JAM_2000,  8, 2000,0, 1200,8, tbms_33,DISTANCE_MODE_LONG,175,247},
+		{DOOR_JAM_2000, 16, 2000,0, 1200,16, tbms_33,DISTANCE_MODE_LONG,199,199},
 		{DOOR_JAM_2400, 10, 2400,0, 1600,8, tbms_50,DISTANCE_MODE_LONG,175,231},
 		{DOOR_JAM_3000, 10, 3000,0, 2200,8,tbms_100,DISTANCE_MODE_LONG,175,231},
 		{DOOR_JAM_3500, 10, 3500,0, 2700,8,tbms_100,DISTANCE_MODE_LONG,175,231},
 		{DOOR_JAM_4000, 10, 4000,0, 3200,8,tbms_200,DISTANCE_MODE_LONG,175,231},
 		{DOOR_SIDE_1600, 8, 1600,0,  300,8, tbms_33,DISTANCE_MODE_SHORT,175,231},
 };
-volatile sts_zone_center_by_rows_of_spads_t zone_center[3]={
+volatile sts_zone_center_by_rows_of_spads_t zone_center[4]={
 		{4, 151, 247},
 		{6, 159, 239},
 		{8, 175, 231},
+		{16, 191,191},
 };
-volatile uint8_t sts_distance_mode = sts_door_jam_profile; //DOOR_JAM_3000;
+#if	(defined(STS_P2)||defined(STS_T6))
+extern volatile uint8_t sts_door_jam_profile;
+volatile uint8_t sts_presence_state=0;
+static int PresenceState=0;
+volatile uint8_t sts_distance_mode = 0; //sts_door_jam_profile; //DOOR_JAM_3000;
+#endif
+
 volatile uint8_t sts_people_count_number_changed = 0;
 static uint32_t cnt_today=0, cnt_week=0;
 static uint8_t last_year=0, this_year=0,last_month=0, this_month=0,last_week=0, this_week=0,last_day=0, this_day=0;
@@ -73,7 +80,164 @@ void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
 }
 #endif
 /* USER CODE END 0 */
+int ProcessPresenceDetectionData(int16_t Distance, uint8_t zone, uint8_t RangeStatus)
+{
+	  uint16_t MinDistance;
+	  uint8_t i;
 
+	#ifdef TRACE_PPC
+	#define TIMES_WITH_NO_EVENT 10// was 40
+	  static uint32_t trace_count = TIMES_WITH_NO_EVENT;  // replace by 0 if you want to trace the first TIMES_WITH_NO_EVENT values
+	#endif
+
+	  int CurrentZoneStatus = NOBODY;
+	  int AllZonesCurrentStatus = 0;
+	  int AnEventHasOccured = 0;
+
+	  // Add just picked distance to the table of the corresponding zone
+	  if (DistancesTableSize[zone] < ppc_cfg[sts_distance_mode].distance_array_size) {
+	    Distances[zone][DistancesTableSize[zone]] = Distance;
+	    DistancesTableSize[zone] ++;
+	  }
+	  else {
+	    for (i=1; i<ppc_cfg[sts_distance_mode].distance_array_size; i++)
+	      Distances[zone][i-1] = Distances[zone][i];
+	    Distances[zone][ppc_cfg[sts_distance_mode].distance_array_size-1] = Distance;
+	  }
+
+	  // pick up the min distance
+	  MinDistance = Distances[zone][0];
+	  if (DistancesTableSize[zone] >= 2) {
+	    for (i=1; i<DistancesTableSize[zone]; i++) {
+	      if (Distances[zone][i] < MinDistance)
+	        MinDistance = Distances[zone][i];
+	    }
+	  }
+
+	  if (MinDistance < ppc_cfg[sts_distance_mode].dist_threshold) {
+	    // Someone is in !
+	    CurrentZoneStatus = SOMEONE;
+	  }
+
+	  //return CurrentZoneStatus;
+#if 1
+	  // left zone
+	  if (zone == LEFT) {
+	    if (CurrentZoneStatus != LeftPreviousStatus) {
+	      // event in left zone has occured
+	      AnEventHasOccured = 1;
+
+	      if (CurrentZoneStatus == SOMEONE) {
+	        AllZonesCurrentStatus += 1;
+	      }
+	      // need to check right zone as well ...
+	      if (RightPreviousStatus == SOMEONE) {
+	        // event in left zone has occured
+	        AllZonesCurrentStatus += 2;
+	      }
+	      // remember for next time
+	      LeftPreviousStatus = CurrentZoneStatus;
+	    }
+	  }
+	  // right zone
+	  else {
+
+	    if (CurrentZoneStatus != RightPreviousStatus) {
+
+	      // event in left zone has occured
+	      AnEventHasOccured = 1;
+	      if (CurrentZoneStatus == SOMEONE) {
+	        AllZonesCurrentStatus += 2;
+	      }
+	      // need to left right zone as well ...
+	      if (LeftPreviousStatus == SOMEONE) {
+	        // event in left zone has occured
+	        AllZonesCurrentStatus += 1;
+	      }
+	      // remember for next time
+	      RightPreviousStatus = CurrentZoneStatus;
+	    }
+	  }
+
+	#ifdef TRACE_PPC
+	  // print debug data only when someone is within the field of view
+	  trace_count++;
+	  if ((CurrentZoneStatus == SOMEONE) || (LeftPreviousStatus == SOMEONE) || (RightPreviousStatus == SOMEONE))
+	    trace_count = 0;
+	#if 1
+	  if (trace_count < TIMES_WITH_NO_EVENT)
+	    printf ("%d,%d,%d,%d,%d\n", zone, Distance, MinDistance, RangeStatus, PeopleCount);
+	#endif
+	#endif
+
+	  // if an event has occured
+	  if (AnEventHasOccured) {
+	    if (PathTrackFillingSize < 4) {
+	      PathTrackFillingSize ++;
+	    }
+
+	    // if nobody anywhere lets check if an exit or entry has happened
+	    if ((LeftPreviousStatus == NOBODY) && (RightPreviousStatus == NOBODY)) {
+
+	      // check exit or entry only if PathTrackFillingSize is 4 (for example 0 1 3 2) and last event is 0 (nobobdy anywhere)
+	      if (PathTrackFillingSize == 4) {
+	        // check exit or entry. no need to check PathTrack[0] == 0 , it is always the case
+
+	        if ((PathTrack[1] == 1)  && (PathTrack[2] == 3) && (PathTrack[3] == 2)) {
+	          // This an entry
+	          PeopleCount ++;
+	          // reset the table filling size in case an entry or exit just found
+	          DistancesTableSize[0] = 0;
+	          DistancesTableSize[1] = 0;
+	          APP_LOG(TS_OFF, VLEVEL_M,"Walk In, People Count=%d\n", PeopleCount);
+	          sts_people_count_sensor_data.Walk_In_People_Count ++;
+	          sts_people_count_number_changed = 1;
+	        } else if ((PathTrack[1] == 2)  && (PathTrack[2] == 3) && (PathTrack[3] == 1)) {
+	          // This an exit
+	          PeopleCount --;
+	          // reset the table filling size in case an entry or exit just found
+	          DistancesTableSize[0] = 0;
+	          DistancesTableSize[1] = 0;
+	          APP_LOG(TS_OFF, VLEVEL_M,"Walk Out, People Count=%d\n", PeopleCount);
+	          sts_people_count_sensor_data.Walk_Out_People_Count ++;
+	          sts_people_count_number_changed = 1;
+	        } else {
+	          // reset the table filling size also in case of unexpected path
+	          DistancesTableSize[0] = 0;
+	          DistancesTableSize[1] = 0;
+	          APP_LOG(TS_OFF, VLEVEL_M,"Walk Around ie. Wrong path\n");
+	          sts_people_count_sensor_data.Walk_Around_People_Count ++;
+	        }
+	      }
+
+	      PathTrackFillingSize = 1;
+	    }
+	    else {
+	      // update PathTrack
+	      // example of PathTrack update
+	      // 0
+	      // 0 1
+	      // 0 1 3
+	      // 0 1 3 1
+	      // 0 1 3 3
+	      // 0 1 3 2 ==> if next is 0 : check if exit
+	      PathTrack[PathTrackFillingSize-1] = AllZonesCurrentStatus;
+	    }
+
+	#if 1
+	#ifdef TRACE_PPC
+	    if (AnEventHasOccured) {
+	      for (int j=0; j<PathTrackFillingSize; j++)
+	        printf ("%d ", PathTrack[j]);
+	    }
+	    printf("\n");
+	#endif
+	#endif
+	  }
+	  // if SOMEONE IN no matter LEFT or RIGHT or MIDDLE
+	  return(AnEventHasOccured);
+#endif
+}
 int ProcessPeopleCountingData(int16_t Distance, uint8_t zone, uint8_t RangeStatus) {
 
   uint16_t MinDistance;
@@ -366,7 +530,7 @@ void STS_people_count_sensor_Read(sts_people_count_sensor_data_t *sts_p2_sensor_
 
 void STS_TOF_VL53LX_PeopleCounting_Process_Init(void)
 {
-	APP_LOG(TS_OFF, VLEVEL_L,"\n\n# YUNHORN STS-P2 PEOPLE COUNTING PROCESS #\r\n");
+	APP_LOG(TS_OFF, VLEVEL_M,"\n\n# YUNHORN STS-P2 PEOPLE COUNTING PROCESS #\r\n");
 	sts_tof_vl53lx_peoplecount_init();
 
 }
@@ -396,65 +560,69 @@ void STS_TOF_VL53LX_PresenceDetection_Process_Start(void)
 }
 int sts_tof_vl53lx_presence_detection_start(void)
 {
-	  uint8_t byteData, sensorState=0;
-	  uint16_t wordData;
+	  //uint8_t byteData, sensorState=0;
+	  uint16_t wordData=0;
+	  uint16_t Distance, Signal;
+	  uint8_t RangeStatus;
+	  uint8_t dataReady;
+	  //char DisplayStr[5];
 
-	  /* MCU Configuration----------------------------------------------------------*/
-	  /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
-	  /* Configure the system clock */
-	  /* Initialize all configured peripherals */
-	  //APP_LOG(TS_OFF, VLEVEL_H,"XNUCLEO53L1A1_Init Start .......... \r\n");
-	  status = XNUCLEO53L1A1_Init();
-	  //APP_LOG(TS_OFF, VLEVEL_H,"XNUCLEO53L1A1_Init Status : %X\n", status);
+	 /* read and display data */
+
+  while (dataReady == 0) {
+    status = VL53L1X_CheckForDataReady(dev, &dataReady);
+    HAL_Delay(1);
+    wordData++;
+    if (wordData > 30) return -1;  // 50 ms timer, so make this 60% to fail back
+  }
+  dataReady = 0;
+  status += VL53L1X_GetRangeStatus(dev, &RangeStatus);
+  status += VL53L1X_GetDistance(dev, &Distance);
+  status += VL53L1X_GetSignalPerSpad(dev, &Signal);
+  status += VL53L1X_ClearInterrupt(dev); /* clear interrupt has to be called to enable next interrupt*/
+  if (status != 0) {
+  	APP_LOG(TS_OFF, VLEVEL_L,"Error in operating the device\n");
+    return (-1);
+  }
+  //HAL_Delay(WAIT_BEFORE_PROGRAMMING_OTHER_ZONE_CENTER);  // 10, 8, 7, 6 tested OK
+
+  status = VL53L1X_SetROICenter(dev, center[Zone]);
+  if (status != 0) {
+  	APP_LOG(TS_OFF, VLEVEL_L,"Error in chaning the center of the ROI\n");
+    return (-1);
+  }
+  // check the status of the ranging. In case of error, lets assume the distance is the max of the use case
+  // Value RangeStatus string Comment
+  // 0 VL53L1_RANGESTATUS_RANGE_VALID Ranging measurement is valid
+  // 1 VL53L1_RANGESTATUS_SIGMA_FAIL Raised if sigma estimator check is above the internal defined threshold
+  // 2 VL53L1_RANGESTATUS_SIGNAL_FAIL Raised if signal value is below the internal defined threshold
+  // 4 VL53L1_RANGESTATUS_OUTOFBOUNDS_ FAIL Raised when phase is out of bounds
+  // 5 VL53L1_RANGESTATUS_HARDWARE_FAIL Raised in case of HW or VCSEL failure
+  // 7 VL53L1_RANGESTATUS_WRAP_TARGET_ FAIL Wrapped target, not matching phases
+  // 8 VL53L1_RANGESTATUS_PROCESSING_ FAIL Internal algorithm underflow or overflow
+  // 14 VL53L1_RANGESTATUS_RANGE_INVALID The reported range is invalid
+  if ((RangeStatus == 0) || (RangeStatus == 4) || (RangeStatus == 7)) {
+    if (Distance <= ppc_cfg[sts_distance_mode].min_distance) //MIN_DISTANCE) // wraparound case see the explanation at the constants definition place
+      Distance = ppc_cfg[sts_distance_mode].max_distance + ppc_cfg[sts_distance_mode].min_distance; //MAX_DISTANCE + MIN_DISTANCE;
+  }
+  else // severe error cases
+    Distance = ppc_cfg[sts_distance_mode].max_distance;  //MAX_DISTANCE;
+  // inject the new ranged distance in the people counting algorithm
 
 
-	  status = XNUCLEO53L1A1_ResetId(XNUCLEO53L1A1_DEV_CENTER, 0); // Reset ToF sensor
-	  HAL_Delay(2);
-	  status = XNUCLEO53L1A1_ResetId(XNUCLEO53L1A1_DEV_CENTER, 1); // Reset ToF sensor
-
-
-	  // Those basic I2C read functions can be used to check your own I2C functions */
-	  status = VL53L1_RdByte(dev, 0x010F, &byteData);
-	  //APP_LOG(TS_OFF, VLEVEL_H,"VL53L1X Model_ID: %X\n", byteData);
-	  status = VL53L1_RdByte(dev, 0x0110, &byteData);
-	  //APP_LOG(TS_OFF, VLEVEL_H,"VL53L1X Module_Type: %X\n", byteData);
-	  status = VL53L1_RdWord(dev, 0x010F, &wordData);
-	  //APP_LOG(TS_OFF, VLEVEL_H,"VL53L1X: %X\n", wordData);
-	  sensor_id = wordData;
-	  wordData = 0;
-	  while (sensorState == 0) {
-	    status = VL53L1X_BootState(dev, &sensorState);
-	    HAL_Delay(2);
-	    wordData ++;
-	    if (wordData > 8000) {
-	    	APP_LOG(TS_OFF, VLEVEL_H,"\n\n ***Failed to boot Chip***\n\n\n");
-	    	return status;
-	    }
-	  }
-	  //APP_LOG(TS_OFF, VLEVEL_H,"\nChip booted\n\n");
-
-	  /* Initialize and configure the device according to people counting need */
-	  status = VL53L1X_SensorInit(dev);
-	  status += VL53L1X_SetDistanceMode(dev, ppc_cfg[sts_distance_mode].distance_mode);  /* 1=short, 2=long, DISTANCE_MODE */
-	  status += VL53L1X_SetTimingBudgetInMs(dev, ppc_cfg[sts_distance_mode].timing_budget);  /* TIMING_BUDGET, in ms possible values [15, 20, 50, 100, 200, 500] */
-	  status += VL53L1X_SetInterMeasurementInMs(dev, ppc_cfg[sts_distance_mode].timing_budget);
-	  status += VL53L1X_SetROI(dev, ppc_cfg[sts_distance_mode].rows_of_SPADS, 16); /* minimum ROI 4,4 */
-	  center[0]=ppc_cfg[sts_distance_mode].front_zone_center;
-	  center[1]=ppc_cfg[sts_distance_mode].back_zone_center;
-	  if (status != 0) {
-		  APP_LOG(TS_OFF, VLEVEL_H,"Initialization or configuration of the device\n");
-	    return (-1);
-	  }
-	  //APP_LOG(TS_OFF, VLEVEL_H,"\n\nStart counting people with profile : %s...\n\n", PROFILE_STRING);
-	  status = VL53L1X_StartRanging(dev);   /* This function has to be called to enable the ranging */
-
-	  if (status != 0) {
-	  	APP_LOG(TS_OFF, VLEVEL_H,"Error in start ranging\n");
-	    return (-1);
-	  }
-	  return 0;
-
+  if (Distance < ppc_cfg[sts_distance_mode].dist_threshold)
+  {
+	  PresenceState = 1;
+  } else {
+	  PresenceState = 0;
+  }
+  //PresenceState = ProcessPresenceDetectionData(Distance, Zone, RangeStatus);
+  printf("\nPresenceState =%d \n\r", PresenceState);
+  APP_LOG(TS_OFF, VLEVEL_M,"%d,%d,%d\n", Zone, Distance, Signal);
+  Zone++;
+  Zone = Zone%2;
 
+  return 0;
 
 }
 int sts_tof_vl53lx_peoplecount_init(void)
@@ -486,11 +654,11 @@ int sts_tof_vl53lx_peoplecount_init(void)
 
   // Those basic I2C read functions can be used to check your own I2C functions */
   status = VL53L1_RdByte(dev, 0x010F, &byteData);
-  //APP_LOG(TS_OFF, VLEVEL_H,"VL53L1X Model_ID: %X\n", byteData);
+  APP_LOG(TS_OFF, VLEVEL_H,"VL53L1X Model_ID: %X\n", byteData);
   status = VL53L1_RdByte(dev, 0x0110, &byteData);
-  //APP_LOG(TS_OFF, VLEVEL_H,"VL53L1X Module_Type: %X\n", byteData);
+  APP_LOG(TS_OFF, VLEVEL_M,"VL53L1X Module_Type: %X\n", byteData);
   status = VL53L1_RdWord(dev, 0x010F, &wordData);
-  //APP_LOG(TS_OFF, VLEVEL_H,"VL53L1X: %X\n", wordData);
+  APP_LOG(TS_OFF, VLEVEL_M,"VL53L1X: %X\n", wordData);
   sensor_id = wordData;
   wordData = 0;
   while (sensorState == 0) {
@@ -498,11 +666,11 @@ int sts_tof_vl53lx_peoplecount_init(void)
     HAL_Delay(2);
     wordData ++;
     if (wordData > 8000) {
-    	APP_LOG(TS_OFF, VLEVEL_H,"\n\n ***Failed to boot Chip***\n\n\n");
+    	APP_LOG(TS_OFF, VLEVEL_M,"\n\n ***Failed to boot Chip***\n\n\n");
     	return status;
     }
   }
-  //APP_LOG(TS_OFF, VLEVEL_H,"\nChip booted\n\n");
+  APP_LOG(TS_OFF, VLEVEL_M,"\nChip booted\n\n");
   
   /* Initialize and configure the device according to people counting need */
   status = VL53L1X_SensorInit(dev);
diff --git a/STS/TOF/App/app_tof_peoplecount.h b/STS/TOF/App/app_tof_peoplecount.h
index df1cf9b..ba69c5a 100644
--- a/STS/TOF/App/app_tof_peoplecount.h
+++ b/STS/TOF/App/app_tof_peoplecount.h
@@ -47,8 +47,8 @@
 
 
  // define here the profile for your case.
- #define PPC_PROFILE 				DOOR_JAM_2400
-
+ //#define PPC_PROFILE 				DOOR_JAM_2400
+ #define PPC_PROFILE				DOOR_JAM_2000
  #define TRACE_PPC				     1
 
 // time budget in ms  20,33,50,100,200,500
@@ -71,6 +71,18 @@
  #define DISTANCE_MODE                                DISTANCE_MODE_LONG
  #endif
 
+ //PPC_PROFILE DOOR_JAM_2000
+  #if PPC_PROFILE == DOOR_JAM_2000
+  #define PROFILE_STRING                               "DOOR_JAM_2000"
+  #define DISTANCES_ARRAY_SIZE                         10   // nb of samples
+  #define MAX_DISTANCE                                 2000 // mm   was 2400
+  #define MIN_DISTANCE                                 0   // mm
+  #define DIST_THRESHOLD                               1600  // mm
+  #define ROWS_OF_SPADS                                16 // 8x16 SPADs ROI
+  #define TIMING_BUDGET                                33   //33  // was 20 ms, I found 33 ms has better succes rate with lower reflectance target
+  #define DISTANCE_MODE                                DISTANCE_MODE_LONG
+  #endif
+
  #if ROWS_OF_SPADS == 4
  #define FRONT_ZONE_CENTER                            151
  #define BACK_ZONE_CENTER                             247
@@ -80,6 +92,9 @@
  #elif ROWS_OF_SPADS == 8
  #define FRONT_ZONE_CENTER                            175 // was 167, see UM2555 on st.com, centre = 175 has better return signal rate for the ROI #1
  #define BACK_ZONE_CENTER                             231
+ #elif ROWS_OF_SPADS == 16
+ #define FRONT_ZONE_CENTER                            199
+ #define BACK_ZONE_CENTER                             199
  #endif
 
 /* Exported functions --------------------------------------------------------*/
@@ -151,9 +166,13 @@
 
 void STS_TOF_VL53LX_PeopleCounting_Process_Init(void);
 void STS_TOF_VL53LX_PeopleCounting_Process_Start(void);
+
 void STS_TOF_VL53LX_PresenceDetection_Process_Start(void);
+int sts_tof_vl53lx_presence_detection_start(void);
+
 int sts_tof_vl53lx_peoplecount_init(void);
 int sts_tof_vl53lx_peoplecount_start(void);
+
 //int sts_tof_vl53lx_peoplecount(void);
 int ProcessPeopleCountingData(int16_t Distance, uint8_t zone, uint8_t RangeStatus);
 void STS_people_count_sensor_Read(sts_people_count_sensor_data_t *sts_p2_sensor_data);
-- 
2.40.1