diff --git a/prj.conf b/prj.conf
index 8a15a2a..d18da87 100644
--- a/prj.conf
+++ b/prj.conf
@@ -23,3 +23,10 @@ CONFIG_BT_DIS_PNP_PID=0xEEF1
 CONFIG_BT_DIS_PNP_VER=0x0100
 
 CONFIG_DK_LIBRARY=y
+CONFIG_PM_DEVICE=y
+
+# Disable UART serial driver to reduce system ON idle current
+#CONFIG_SERIAL=n
+
+# Change RADIO TX Power. Default: 0 dBm
+CONFIG_BT_CTLR_TX_PWR_PLUS_5=y
\ No newline at end of file
diff --git a/src/main.c b/src/main.c
index dbecdf6..4d36143 100644
--- a/src/main.c
+++ b/src/main.c
@@ -11,35 +11,24 @@
 #include <zephyr/bluetooth/conn.h>
 #include <zephyr/bluetooth/uuid.h>
 #include <zephyr/bluetooth/hci.h>
+#include <zephyr/pm/device.h>
+#include <zephyr/device.h>
 
 #include <zephyr/settings/settings.h>
 
 #include <dk_buttons_and_leds.h>
 
 #define NON_CONNECTABLE_ADV_IDX 0
-#define CONNECTABLE_ADV_IDX     1
-
-#define RUN_STATUS_LED          DK_LED1
-#define CON_STATUS_LED          DK_LED2
-#define RUN_LED_BLINK_INTERVAL  1000
 
 #define NON_CONNECTABLE_DEVICE_NAME "Nordic Beacon"
 
-static void advertising_work_handle(struct k_work *work);
-
-static K_WORK_DEFINE(advertising_work, advertising_work_handle);
+static struct device const *uart_dev = DEVICE_DT_GET(DT_CHOSEN(zephyr_console));
 
 static struct bt_le_ext_adv *ext_adv[CONFIG_BT_EXT_ADV_MAX_ADV_SET];
 static const struct bt_le_adv_param *non_connectable_adv_param =
 	BT_LE_ADV_PARAM(BT_LE_ADV_OPT_SCANNABLE,
-			0x140, /* 200 ms */
-			0x190, /* 250 ms */
-			NULL);
-
-static const struct bt_le_adv_param *connectable_adv_param =
-	BT_LE_ADV_PARAM(BT_LE_ADV_OPT_CONNECTABLE,
-			BT_GAP_ADV_FAST_INT_MIN_2, /* 100 ms */
-			BT_GAP_ADV_FAST_INT_MAX_2, /* 150 ms */
+			1600, /* 1000 ms */
+			1600, /* 1000 ms */
 			NULL);
 
 static const struct bt_data non_connectable_ad_data[] = {
@@ -56,75 +45,6 @@ static const struct bt_data non_connectable_sd_data[] = {
 		sizeof(NON_CONNECTABLE_DEVICE_NAME) - 1),
 };
 
-static const struct bt_data connectable_data[] = {
-	BT_DATA_BYTES(BT_DATA_FLAGS, BT_LE_AD_GENERAL | BT_LE_AD_NO_BREDR),
-	BT_DATA_BYTES(BT_DATA_UUID16_ALL, BT_UUID_16_ENCODE(BT_UUID_DIS_VAL)),
-	BT_DATA(BT_DATA_NAME_COMPLETE, CONFIG_BT_DEVICE_NAME, sizeof(CONFIG_BT_DEVICE_NAME) - 1),
-};
-
-static void adv_connected_cb(struct bt_le_ext_adv *adv,
-			     struct bt_le_ext_adv_connected_info *info)
-{
-	printk("Advertiser[%d] %p connected conn %p\n", bt_le_ext_adv_get_index(adv),
-		adv, info->conn);
-}
-
-static const struct bt_le_ext_adv_cb adv_cb = {
-	.connected = adv_connected_cb
-};
-
-static void connectable_adv_start(void)
-{
-	int err;
-
-	err = bt_le_ext_adv_start(ext_adv[CONNECTABLE_ADV_IDX], BT_LE_EXT_ADV_START_DEFAULT);
-	if (err) {
-		printk("Failed to start connectable advertising (err %d)\n", err);
-	}
-}
-
-static void advertising_work_handle(struct k_work *work)
-{
-	connectable_adv_start();
-}
-
-static void connected(struct bt_conn *conn, uint8_t err)
-{
-	char addr[BT_ADDR_LE_STR_LEN];
-
-	if (err) {
-		printk("Connection failed, err 0x%02x %s\n", err, bt_hci_err_to_str(err));
-		return;
-	}
-
-	bt_addr_le_to_str(bt_conn_get_dst(conn), addr, sizeof(addr));
-
-	dk_set_led_on(CON_STATUS_LED);
-
-	printk("Connected %s\n", addr);
-}
-
-static void disconnected(struct bt_conn *conn, uint8_t reason)
-{
-	char addr[BT_ADDR_LE_STR_LEN];
-
-	bt_addr_le_to_str(bt_conn_get_dst(conn), addr, sizeof(addr));
-
-	dk_set_led_off(CON_STATUS_LED);
-
-	printk("Disconnected: %s, reason 0x%02x %s\n", addr, reason, bt_hci_err_to_str(reason));
-
-	/* Process the disconnect logic in the workqueue so that
-	 * the BLE stack is finished with the connection bookkeeping
-	 * logic and advertising is possible.
-	 */
-	k_work_submit(&advertising_work);
-}
-
-BT_CONN_CB_DEFINE(conn_callbacks) = {
-	.connected = connected,
-	.disconnected = disconnected,
-};
 
 static int advertising_set_create(struct bt_le_ext_adv **adv,
 				  const struct bt_le_adv_param *param,
@@ -134,7 +54,7 @@ static int advertising_set_create(struct bt_le_ext_adv **adv,
 	int err;
 	struct bt_le_ext_adv *adv_set;
 
-	err = bt_le_ext_adv_create(param, &adv_cb,
+	err = bt_le_ext_adv_create(param, NULL,
 				   adv);
 	if (err) {
 		return err;
@@ -167,24 +87,14 @@ static int non_connectable_adv_create(void)
 	return err;
 }
 
-static int connectable_adv_create(void)
-{
-	int err;
-
-	err = advertising_set_create(&ext_adv[CONNECTABLE_ADV_IDX], connectable_adv_param,
-				     connectable_data, ARRAY_SIZE(connectable_data),
-				     NULL, 0);
-	if (err) {
-		printk("Failed to create a connectable advertising set (err %d)\n", err);
-	}
-
-	return err;
-}
-
 int main(void)
 {
 	int err;
-	int blink_status = 0;
+
+#if IS_ENABLED(CONFIG_BOARD_NRF54L15DK)
+	/* Allow RRAMC to go into poweroff mode during System on idle for lower power consumption at a penalty of 9us extra RRAM ready time */
+	NRF_RRAMC->POWER.LOWPOWERCONFIG = (RRAMC_POWER_LOWPOWERCONFIG_MODE_PowerOff << RRAMC_POWER_LOWPOWERCONFIG_MODE_Pos);
+#endif
 
 	printk("Starting Bluetooth multiple advertising sets example\n");
 
@@ -209,15 +119,12 @@ int main(void)
 
 	printk("Non-connectable advertising started\n");
 
-	err = connectable_adv_create();
+	k_msleep(100);
+	/* Disable UART to reduce System ON idle current */
+	err = pm_device_action_run(uart_dev, PM_DEVICE_ACTION_SUSPEND);
 	if (err) {
-		return 0;
+		printk("UART suspend failed. (err %d)\n", err);
+		return 1;
 	}
 
-	printk("Connectable advertising started\n");
-
-	for (;;) {
-		dk_set_led(RUN_STATUS_LED, (++blink_status) % 2);
-		k_sleep(K_MSEC(RUN_LED_BLINK_INTERVAL));
-	}
 }
