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;
 }
 
diff --git a/lib/sdk/Libraries/BTLE/cordio-phy.a b/lib/sdk/Libraries/BTLE/cordio-phy.a
index 177273f66c6cf5addcadef8e209e05a03e10f116..8f9f4ab9bb78e988cc25274536c992ca7d59f6d9 100644
Binary files a/lib/sdk/Libraries/BTLE/cordio-phy.a and b/lib/sdk/Libraries/BTLE/cordio-phy.a differ
diff --git a/lib/sdk/Libraries/BTLE/cordio-phy/afe_modulation.o b/lib/sdk/Libraries/BTLE/cordio-phy/afe_modulation.o
new file mode 100644
index 0000000000000000000000000000000000000000..bb6020aa519601252503a527f96a35ec23b66306
Binary files /dev/null and b/lib/sdk/Libraries/BTLE/cordio-phy/afe_modulation.o differ
diff --git a/lib/sdk/Libraries/BTLE/cordio-phy/agc_control.o b/lib/sdk/Libraries/BTLE/cordio-phy/agc_control.o
new file mode 100644
index 0000000000000000000000000000000000000000..5a0699e80d122a26d9f3581e0bf1b5c9d44a2200
Binary files /dev/null and b/lib/sdk/Libraries/BTLE/cordio-phy/agc_control.o differ
diff --git a/lib/sdk/Libraries/BTLE/cordio-phy/bb_ble_api.o b/lib/sdk/Libraries/BTLE/cordio-phy/bb_ble_api.o
new file mode 100644
index 0000000000000000000000000000000000000000..e61c4ea743931ad9e05bee9ec0d5cc597e4ad83b
Binary files /dev/null and b/lib/sdk/Libraries/BTLE/cordio-phy/bb_ble_api.o differ
diff --git a/lib/sdk/Libraries/BTLE/cordio-phy/bb_ble_drv.o b/lib/sdk/Libraries/BTLE/cordio-phy/bb_ble_drv.o
new file mode 100644
index 0000000000000000000000000000000000000000..19f3f7c1fa5460708f8ca1671638855f64d85f01
Binary files /dev/null and b/lib/sdk/Libraries/BTLE/cordio-phy/bb_ble_drv.o differ
diff --git a/lib/sdk/Libraries/BTLE/cordio-phy/bb_drv.o b/lib/sdk/Libraries/BTLE/cordio-phy/bb_drv.o
new file mode 100644
index 0000000000000000000000000000000000000000..a4e372b7d8ca58b3725b3691bd886ba875109e33
Binary files /dev/null and b/lib/sdk/Libraries/BTLE/cordio-phy/bb_drv.o differ
diff --git a/lib/sdk/Libraries/BTLE/cordio-phy/ble_ctrl.o b/lib/sdk/Libraries/BTLE/cordio-phy/ble_ctrl.o
new file mode 100644
index 0000000000000000000000000000000000000000..a39406c0b4ea59b5e13e6a2fe620b91b8eb997f6
Binary files /dev/null and b/lib/sdk/Libraries/BTLE/cordio-phy/ble_ctrl.o differ
diff --git a/lib/sdk/Libraries/BTLE/cordio-phy/ble_prot_init.o b/lib/sdk/Libraries/BTLE/cordio-phy/ble_prot_init.o
new file mode 100644
index 0000000000000000000000000000000000000000..b8b179454fac839542062bcd0b61b74b12fe683d
Binary files /dev/null and b/lib/sdk/Libraries/BTLE/cordio-phy/ble_prot_init.o differ
diff --git a/lib/sdk/Libraries/BTLE/cordio-phy/ble_prot_trx.o b/lib/sdk/Libraries/BTLE/cordio-phy/ble_prot_trx.o
new file mode 100644
index 0000000000000000000000000000000000000000..5cdeff7472b951b990d1aa561f840999058f22cd
Binary files /dev/null and b/lib/sdk/Libraries/BTLE/cordio-phy/ble_prot_trx.o differ
diff --git a/lib/sdk/Libraries/BTLE/cordio-phy/ble_rx_setup.o b/lib/sdk/Libraries/BTLE/cordio-phy/ble_rx_setup.o
new file mode 100644
index 0000000000000000000000000000000000000000..d4625b5b2cf10ba320e068923407d2eeb02feff5
Binary files /dev/null and b/lib/sdk/Libraries/BTLE/cordio-phy/ble_rx_setup.o differ
diff --git a/lib/sdk/Libraries/BTLE/cordio-phy/ble_time_corr.o b/lib/sdk/Libraries/BTLE/cordio-phy/ble_time_corr.o
new file mode 100644
index 0000000000000000000000000000000000000000..a73c047cc9f04cb76e63d387459bbac865d321f8
Binary files /dev/null and b/lib/sdk/Libraries/BTLE/cordio-phy/ble_time_corr.o differ
diff --git a/lib/sdk/Libraries/BTLE/cordio-phy/ble_tx_setup.o b/lib/sdk/Libraries/BTLE/cordio-phy/ble_tx_setup.o
new file mode 100644
index 0000000000000000000000000000000000000000..2a3abd71d9c57a1b178479a0f29b9ed1074c8f30
Binary files /dev/null and b/lib/sdk/Libraries/BTLE/cordio-phy/ble_tx_setup.o differ
diff --git a/lib/sdk/Libraries/BTLE/cordio-phy/board_config.o b/lib/sdk/Libraries/BTLE/cordio-phy/board_config.o
new file mode 100644
index 0000000000000000000000000000000000000000..3f327cb876ce59e88a4b4fe15ba0a9f673f70464
Binary files /dev/null and b/lib/sdk/Libraries/BTLE/cordio-phy/board_config.o differ
diff --git a/lib/sdk/Libraries/BTLE/cordio-phy/dbb_cmu.o b/lib/sdk/Libraries/BTLE/cordio-phy/dbb_cmu.o
new file mode 100644
index 0000000000000000000000000000000000000000..eec3132f3622bcc2b94a167c2344bae81e6819f4
Binary files /dev/null and b/lib/sdk/Libraries/BTLE/cordio-phy/dbb_cmu.o differ
diff --git a/lib/sdk/Libraries/BTLE/cordio-phy/dbb_crypto.o b/lib/sdk/Libraries/BTLE/cordio-phy/dbb_crypto.o
new file mode 100644
index 0000000000000000000000000000000000000000..18161206a90b359ddf3791664e3f7c98dd0d3e8c
Binary files /dev/null and b/lib/sdk/Libraries/BTLE/cordio-phy/dbb_crypto.o differ
diff --git a/lib/sdk/Libraries/BTLE/cordio-phy/dbb_event.o b/lib/sdk/Libraries/BTLE/cordio-phy/dbb_event.o
new file mode 100644
index 0000000000000000000000000000000000000000..6c0f52b1d460f61fbe755d4879b6ef243ccb0082
Binary files /dev/null and b/lib/sdk/Libraries/BTLE/cordio-phy/dbb_event.o differ
diff --git a/lib/sdk/Libraries/BTLE/cordio-phy/dbb_intc.o b/lib/sdk/Libraries/BTLE/cordio-phy/dbb_intc.o
new file mode 100644
index 0000000000000000000000000000000000000000..915d5cd98ea803488cbd3a872822a41e7379ae7f
Binary files /dev/null and b/lib/sdk/Libraries/BTLE/cordio-phy/dbb_intc.o differ
diff --git a/lib/sdk/Libraries/BTLE/cordio-phy/dbb_pmu.o b/lib/sdk/Libraries/BTLE/cordio-phy/dbb_pmu.o
new file mode 100644
index 0000000000000000000000000000000000000000..a6bf33e334957503aa02f969a745cbdab7959638
Binary files /dev/null and b/lib/sdk/Libraries/BTLE/cordio-phy/dbb_pmu.o differ
diff --git a/lib/sdk/Libraries/BTLE/cordio-phy/dbb_spim.o b/lib/sdk/Libraries/BTLE/cordio-phy/dbb_spim.o
new file mode 100644
index 0000000000000000000000000000000000000000..32ba938d8202baa9ba982f295983b744fa90ef92
Binary files /dev/null and b/lib/sdk/Libraries/BTLE/cordio-phy/dbb_spim.o differ
diff --git a/lib/sdk/Libraries/BTLE/cordio-phy/dbb_trx_timers.o b/lib/sdk/Libraries/BTLE/cordio-phy/dbb_trx_timers.o
new file mode 100644
index 0000000000000000000000000000000000000000..f4846c2871f888745ec65c466b4b2c0ad1b29709
Binary files /dev/null and b/lib/sdk/Libraries/BTLE/cordio-phy/dbb_trx_timers.o differ
diff --git a/lib/sdk/Libraries/BTLE/cordio-phy/ll_dbg_pin.o b/lib/sdk/Libraries/BTLE/cordio-phy/ll_dbg_pin.o
new file mode 100644
index 0000000000000000000000000000000000000000..4d30c637fec91d2d07420e761c1208d5e2cef64a
Binary files /dev/null and b/lib/sdk/Libraries/BTLE/cordio-phy/ll_dbg_pin.o differ
diff --git a/lib/sdk/Libraries/BTLE/cordio-phy/ll_debug.o b/lib/sdk/Libraries/BTLE/cordio-phy/ll_debug.o
new file mode 100644
index 0000000000000000000000000000000000000000..4d30c637fec91d2d07420e761c1208d5e2cef64a
Binary files /dev/null and b/lib/sdk/Libraries/BTLE/cordio-phy/ll_debug.o differ
diff --git a/lib/sdk/Libraries/BTLE/cordio-phy/llc_api_ble.o b/lib/sdk/Libraries/BTLE/cordio-phy/llc_api_ble.o
new file mode 100644
index 0000000000000000000000000000000000000000..3f9df66c071a6387322354c0f5c354a28d39dc9f
Binary files /dev/null and b/lib/sdk/Libraries/BTLE/cordio-phy/llc_api_ble.o differ
diff --git a/lib/sdk/Libraries/BTLE/cordio-phy/llc_api_crypto.o b/lib/sdk/Libraries/BTLE/cordio-phy/llc_api_crypto.o
new file mode 100644
index 0000000000000000000000000000000000000000..8579a1dabb62e9cbf79b2b916aa5bf67c01ad5e5
Binary files /dev/null and b/lib/sdk/Libraries/BTLE/cordio-phy/llc_api_crypto.o differ
diff --git a/lib/sdk/Libraries/BTLE/cordio-phy/llc_api_rx.o b/lib/sdk/Libraries/BTLE/cordio-phy/llc_api_rx.o
new file mode 100644
index 0000000000000000000000000000000000000000..47939a6d0056aba0b708fecc7b6641ce4e4346a5
Binary files /dev/null and b/lib/sdk/Libraries/BTLE/cordio-phy/llc_api_rx.o differ
diff --git a/lib/sdk/Libraries/BTLE/cordio-phy/llc_api_setup.o b/lib/sdk/Libraries/BTLE/cordio-phy/llc_api_setup.o
new file mode 100644
index 0000000000000000000000000000000000000000..64a2bed00892dfa0ac02ef04a735e9615326280b
Binary files /dev/null and b/lib/sdk/Libraries/BTLE/cordio-phy/llc_api_setup.o differ
diff --git a/lib/sdk/Libraries/BTLE/cordio-phy/llc_api_timer.o b/lib/sdk/Libraries/BTLE/cordio-phy/llc_api_timer.o
new file mode 100644
index 0000000000000000000000000000000000000000..1a08cfa9e3907921afebca0e341526504bed896b
Binary files /dev/null and b/lib/sdk/Libraries/BTLE/cordio-phy/llc_api_timer.o differ
diff --git a/lib/sdk/Libraries/BTLE/cordio-phy/llc_api_timestamp.o b/lib/sdk/Libraries/BTLE/cordio-phy/llc_api_timestamp.o
new file mode 100644
index 0000000000000000000000000000000000000000..50bc1aeb821377bc1a0085ee51994e8151f028fe
Binary files /dev/null and b/lib/sdk/Libraries/BTLE/cordio-phy/llc_api_timestamp.o differ
diff --git a/lib/sdk/Libraries/BTLE/cordio-phy/llc_api_tx.o b/lib/sdk/Libraries/BTLE/cordio-phy/llc_api_tx.o
new file mode 100644
index 0000000000000000000000000000000000000000..ed0f595fae359128f1661f5c45adf28a66f1d45b
Binary files /dev/null and b/lib/sdk/Libraries/BTLE/cordio-phy/llc_api_tx.o differ
diff --git a/lib/sdk/Libraries/BTLE/cordio-phy/llc_int_handlers.o b/lib/sdk/Libraries/BTLE/cordio-phy/llc_int_handlers.o
new file mode 100644
index 0000000000000000000000000000000000000000..5dc2342a02e89e6cd9183eda3ee2ed5e168b7790
Binary files /dev/null and b/lib/sdk/Libraries/BTLE/cordio-phy/llc_int_handlers.o differ
diff --git a/lib/sdk/Libraries/BTLE/cordio-phy/llc_util.o b/lib/sdk/Libraries/BTLE/cordio-phy/llc_util.o
new file mode 100644
index 0000000000000000000000000000000000000000..eea2e238648005037f381ba57a2be640db958ac9
Binary files /dev/null and b/lib/sdk/Libraries/BTLE/cordio-phy/llc_util.o differ
diff --git a/lib/sdk/Libraries/BTLE/cordio-phy/pan2g_config.o b/lib/sdk/Libraries/BTLE/cordio-phy/pan2g_config.o
new file mode 100644
index 0000000000000000000000000000000000000000..f3e396fd49bf8fdd8a44c914511a20bad966035b
Binary files /dev/null and b/lib/sdk/Libraries/BTLE/cordio-phy/pan2g_config.o differ
diff --git a/lib/sdk/Libraries/BTLE/cordio-phy/rffe_config.o b/lib/sdk/Libraries/BTLE/cordio-phy/rffe_config.o
new file mode 100644
index 0000000000000000000000000000000000000000..f85751ee8404042b32f113a15f6c74d313e918c3
Binary files /dev/null and b/lib/sdk/Libraries/BTLE/cordio-phy/rffe_config.o differ
diff --git a/lib/sdk/Libraries/BTLE/cordio-phy/sequencer_ext.o b/lib/sdk/Libraries/BTLE/cordio-phy/sequencer_ext.o
new file mode 100644
index 0000000000000000000000000000000000000000..4f4bb9f847ecf2c6fe9c91b337ae04f8146b12dc
Binary files /dev/null and b/lib/sdk/Libraries/BTLE/cordio-phy/sequencer_ext.o differ
diff --git a/lib/sdk/Libraries/BTLE/link_layer/controller/sources/ble/lctr/lctr_sm_conn_slave.c b/lib/sdk/Libraries/BTLE/link_layer/controller/sources/ble/lctr/lctr_sm_conn_slave.c
index 55cb910926fee6db1c93233b664882a11cebe5dc..ce3334e782fdacc1ca7c8bc57a72ab49ac2b1539 100644
--- a/lib/sdk/Libraries/BTLE/link_layer/controller/sources/ble/lctr/lctr_sm_conn_slave.c
+++ b/lib/sdk/Libraries/BTLE/link_layer/controller/sources/ble/lctr/lctr_sm_conn_slave.c
@@ -217,6 +217,15 @@ void lctrConnStatelessEventHandler(lctrConnCtx_t *pCtx, uint8_t event)
   {
     case LCTR_CONN_TERMINATED:
       LL_TRACE_INFO2("lctrConnStatelessEventHandler: handle=%u, state=%u, event=TERMINATED", LCTR_GET_CONN_HANDLE(pCtx), pCtx->state);
+
+	  /* card10 HACK:
+	   * After an encrypted connection is closed, the stack does not instruct the radio to turn off encryption again.
+	   * There is no direct interface to this either. lctrCalcSessionKey() does transfer the flag though. */
+      lctrDisableTxDataEnc(pCtx);
+      lctrDisableRxDataEnc(pCtx);
+      lctrCalcSessionKey(pCtx);
+	  /*END card10 HACK */
+
       lctrNotifyHostDisconnectInd(pCtx);
       lctrFreeConnCtx(pCtx);
       break;