diff --git a/sdcl-firmware/Core/Src/main.c b/sdcl-firmware/Core/Src/main.c
index 6f461d2..cf04a6b 100644
--- a/sdcl-firmware/Core/Src/main.c
+++ b/sdcl-firmware/Core/Src/main.c
@@ -141,6 +141,8 @@ const mission_t mission2next[] = {M_MANUAL , M_SKIDPAD , M_AUTOX , M_EBSTEST
mission_t mission = M_NONE;
+bool setup_done = false;
+
#ifdef WATCHDOG_STM
bool pHeartbeat = false;
bool WD_OK = false;
@@ -268,11 +270,17 @@ int main(void)
}
}
- MX_IWDG_Init();
- WD_initialized = true;
+ setup_done = true;
+
+ // TEMP: Only enable WD if in autonomous mode because EMI currently messes it up during R2D
+ if (HAL_GPIO_ReadPin(ASMS_GPIO_Port, ASMS_Pin) == GPIO_PIN_RESET) {
+ MX_IWDG_Init();
+ WD_initialized = true;
+ }
while (true) {
+ // Compare with RESET for signals obtained via inverting buffer
bool TS_activate_MUXed = HAL_GPIO_ReadPin(TS_activate_MUXed_GPIO_Port, TS_activate_MUXed_Pin) == GPIO_PIN_RESET;
bool ASMS = HAL_GPIO_ReadPin(ASMS_GPIO_Port, ASMS_Pin) == GPIO_PIN_RESET;
#ifdef WATCHDOG_UCC
@@ -513,7 +521,7 @@ void HAL_CAN_RxFifo0MsgPendingCallback(CAN_HandleTypeDef *hcan) {
}
pHeartbeat = rxData.signals.heartbeat;
- bool close_sdc = WD_initialized && rxData.signals.as_close_sdc;
+ bool close_sdc = setup_done && rxData.signals.as_close_sdc;
#endif
diff --git a/sdcl-firmware/sdcl-firmware Debug.launch b/sdcl-firmware/sdcl-firmware Debug.launch
index f665c1d..a7a2042 100644
--- a/sdcl-firmware/sdcl-firmware Debug.launch
+++ b/sdcl-firmware/sdcl-firmware Debug.launch
@@ -38,7 +38,7 @@
-
+