Enable Watchdog (500ms)
diff --git a/firmware/apps/cardem/main.c b/firmware/apps/cardem/main.c
index 8b6be49..7660294 100644
--- a/firmware/apps/cardem/main.c
+++ b/firmware/apps/cardem/main.c
@@ -125,8 +125,9 @@
 	LED_Configure(LED_NUM_GREEN);
 	LED_Set(LED_NUM_RED);
 
-	/* Disable watchdog */
-	WDT_Disable(WDT);
+	/* Enable watchdog for 500ms, with no window */
+	WDT_Enable(WDT, WDT_MR_WDRSTEN | WDT_MR_WDDBGHLT | WDT_MR_WDIDLEHLT |
+		   (WDT_GetPeriod(500) << 16) | WDT_GetPeriod(500));
 
 	req_ctx_init();
 
@@ -149,6 +150,7 @@
 	SIMtrace_USB_Initialize();
 
 	while (USBD_GetState() < USBD_STATE_CONFIGURED) {
+		WDT_Restart(WDT);
 		check_exec_dbg_cmd();
 #if 0
 		if (i >= MAX_USB_ITER * 3) {
@@ -174,6 +176,7 @@
 
 	TRACE_INFO("entering main loop...\n\r");
 	while (1) {
+		WDT_Restart(WDT);
 #if TRACE_LEVEL >= TRACE_LEVEL_DEBUG
 		const char rotor[] = { '-', '\\', '|', '/' };
 		putchar('\b');