diff --git a/epicardium/ble/ble.c b/epicardium/ble/ble.c
index 51c01d34e8c7fa20a2028d48aaca58464f877355..a7f10ea50aa207903bf09dce56e91e117afddd59 100644
--- a/epicardium/ble/ble.c
+++ b/epicardium/ble/ble.c
@@ -161,12 +161,17 @@ void WsfTimerNotify(void)
 	//printf("WsfTimerNotify\n");
 	// TODO: Can we do this without waking up the task?
 	// xTimerChangePeriodFromISR exists
-	notify();
+	NVIC->STIR = RSV11_IRQn;
 }
 /*************************************************************************************************/
 void wsf_ble_signal_event(void)
 {
 	//printf("wsf_ble_signal_event\n");
+	NVIC->STIR = RSV11_IRQn;
+}
+/*************************************************************************************************/
+void RSV11_IRQHandler(void)
+{
 	notify();
 }
 /*************************************************************************************************/
@@ -243,6 +248,12 @@ void vBleTask(void *pvParameters)
 	 */
 	vTaskDelay(pdMS_TO_TICKS(500));
 
+	/* We are going to execute FreeRTOS functions from callbacks
+	 * coming from this interrupt. Its priority needs to be
+	 * reduced to allow this. */
+	NVIC_SetPriority(RSV11_IRQn, 2);
+	NVIC_EnableIRQ(RSV11_IRQn);
+
 	WsfInit();
 	taskENTER_CRITICAL();
 	/* Critical section to prevent a loop in iq_capture2 / meas_freq in
@@ -253,12 +264,6 @@ void vBleTask(void *pvParameters)
 	BbBleDrvSetTxPower(0);
 	setAddress();
 
-	/* We are going to execute FreeRTOS functions from callbacks
-	 * coming from these interrupts. Their priority needs to be
-	 * reduced to allow this. */
-	NVIC_SetPriority(BTLE_SFD_TO_IRQn, 2);
-	NVIC_SetPriority(BTLE_TX_DONE_IRQn, 2);
-	NVIC_SetPriority(BTLE_RX_RCVD_IRQn, 2);
 	AppInit();
 	BleStart();
 	AttsDynInit();
diff --git a/epicardium/modules/hardware.c b/epicardium/modules/hardware.c
index aeb77c3a9f423b7ee54f62b8228b70d575b2ad32..800cb9c65d0334939a319f66af82af895512dd01 100644
--- a/epicardium/modules/hardware.c
+++ b/epicardium/modules/hardware.c
@@ -194,6 +194,9 @@ int hardware_early_init(void)
 	 */
 	max30001_mutex_init();
 
+	/* Allow user space to trigger interrupts.
+	 * Used for BLE, not sure if needed. */
+	SCB->CCR |= SCB_CCR_USERSETMPEND_Msk;
 	return 0;
 }