diff --git a/Core/Inc/main.h b/Core/Inc/main.h
index 5d8ee64..d52a238 100644
--- a/Core/Inc/main.h
+++ b/Core/Inc/main.h
@@ -300,9 +300,17 @@ void Error_Handler(void);
#define SOAP_DATA HAL_GPIO_ReadPin(SOAP_STATUS_GPIO_Port,SOAP_STATUS_Pin)
#endif
+
+// STS_M1, WATER LEAKAGE PA1 READ DATA, PA1
+#ifdef STS_M1
+#define WATER_DETECT_Pin GPIO_PIN_1
+#define WATER_DETECT_Port GPIOA
+#define WATER_DETECT_STATE HAL_GPIO_ReadPin(WATER_DETECT_Port, WATER_DETECT_Pin)
+#endif
+
#if defined(STS_M1)
-/* Water leakage MEMS_IF_3, PA10 */
-#define WATER_LEAKAGE_STATUS_Pin GPIO_PIN_10
+/* Water leakage MEMS_IF_1, PA1 */
+#define WATER_LEAKAGE_STATUS_Pin GPIO_PIN_1
#define WATER_LEAKAGE_STATUS_GPIO_Port GPIOA
/* Water leakageON_OFF, MEMS_IF_1, PB5 */
diff --git a/Core/Src/stm32wlxx_it.c b/Core/Src/stm32wlxx_it.c
index 290f19e..8aa30e7 100644
--- a/Core/Src/stm32wlxx_it.c
+++ b/Core/Src/stm32wlxx_it.c
@@ -227,7 +227,9 @@ void EXTI0_IRQHandler(void)
/* USER CODE BEGIN EXTI0_IRQn 0 */
/* USER CODE END EXTI0_IRQn 0 */
+#if defined(STS_O5)
HAL_GPIO_EXTI_IRQHandler(HALL1_Pin);
+#endif
/* USER CODE BEGIN EXTI0_IRQn 1 */
/* USER CODE END EXTI0_IRQn 1 */
@@ -241,7 +243,11 @@ void EXTI1_IRQHandler(void)
/* USER CODE BEGIN EXTI1_IRQn 0 */
/* USER CODE END EXTI1_IRQn 0 */
+#if defined(STS_M1)
+ HAL_GPIO_EXTI_IRQHandler(WATER_LEAKAGE_STATUS_Pin);
+#else
HAL_GPIO_EXTI_IRQHandler(BUT2_Pin);
+#endif
/* USER CODE BEGIN EXTI1_IRQn 1 */
/* USER CODE END EXTI1_IRQn 1 */
diff --git a/LoRaWAN/App/lora_app.c b/LoRaWAN/App/lora_app.c
index 975f3cb..99f2170 100644
--- a/LoRaWAN/App/lora_app.c
+++ b/LoRaWAN/App/lora_app.c
@@ -586,6 +586,10 @@ void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
UTIL_SEQ_SetTask((1 << CFG_SEQ_Task_LoRaSendOnTxTimerOrButtonEvent), CFG_SEQ_Prio_0);
break;
+#elif defined(STS_M1)
+ case WATER_LEAKAGE_STATUS_Pin:
+ UTIL_SEQ_SetTask((1 << CFG_SEQ_Task_LoRaSendOnTxTimerOrButtonEvent), CFG_SEQ_Prio_0);
+ break;
#else
case BUT1_Pin:
/* Note: when "EventType == TX_ON_TIMER" this GPIO is not initialized */
@@ -594,12 +598,14 @@ void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
UTIL_SEQ_SetTask((1 << CFG_SEQ_Task_LoRaSendOnTxTimerOrButtonEvent), CFG_SEQ_Prio_0);
}
break;
-#endif
+
+
#ifndef STS_R4
case BUT2_Pin:
UTIL_SEQ_SetTask((1 << CFG_SEQ_Task_LoRaStopJoinEvent), CFG_SEQ_Prio_0);
break;
#endif
+#endif
#ifdef STM32WL55xx
case BUT3_Pin:
UTIL_SEQ_SetTask((1 << CFG_SEQ_Task_LoRaStoreContextEvent), CFG_SEQ_Prio_0);
@@ -826,16 +832,11 @@ static void SendTxData(void)
#ifdef STS_O5
STS_O5_SENSOR_Read(&oo_data);
-#endif
-
-#ifdef STS_R4
+#elif defined(STS_R4)
//UTIL_SEQ_SetTask((1 << CFG_SEQ_Task_YunhornSTSEventP6), CFG_SEQ_Prio_0);
//STS_YunhornSTSEventP6_Process();
STS_R4_sensor_read(&sts_r4_sensor_data);
-#endif
-
-#ifdef STS_M1
-
+#elif defined(STS_M1)
STS_M1_sensor_read(&sts_m1_sensor_data);
#endif
@@ -868,11 +869,11 @@ static void SendTxData(void)
#ifdef STS_R4 //SOAP/SANITIZER LEVEL
AppData.Port = YUNHORN_STS_R4_LORA_APP_DATA_PORT; /* STS-R4 Data Port */
-#endif
-#ifdef STS_M1 // WATER LEAKAGE SENSOR
+
+#elif defined(STS_M1) // WATER LEAKAGE SENSOR
AppData.Port = YUNHORN_STS_M1_LORA_APP_DATA_PORT; /* STS-M1 Data Port */
-#endif
-#ifdef STS_O5
+
+#elif defined(STS_O5)
AppData.Port = YUNHORN_STS_O5_LORA_APP_DATA_PORT; /* STS-O5 Data Port */
#endif
@@ -1499,6 +1500,8 @@ static void OnYunhornSTSHeartBeatTimerEvent(void *context)
appHeartBeatDataPort = YUNHORN_STS_T6_LORA_APP_HTBT_PORT;
#elif defined(STS_O5)
appHeartBeatDataPort = YUNHORN_STS_O5_LORA_APP_HTBT_PORT;
+#elif defined(STS_M1)
+ appHeartBeatDataPort = YUNHORN_STS_M1_LORA_APP_HTBT_PORT;
#endif
appHeartBeatBufferSize = 2;
diff --git a/STM32CubeIDE/.cproject b/STM32CubeIDE/.cproject
index 5bf6f2e..7992632 100644
--- a/STM32CubeIDE/.cproject
+++ b/STM32CubeIDE/.cproject
@@ -133,7 +133,7 @@