diff --git a/epicardium/ble/ble_main.c b/epicardium/ble/ble_main.c
index 98db125d36b6d91c60f60ba31818246ca358d68e..36f832ba6a68e430a2646146b515d782b7fc01be 100644
--- a/epicardium/ble/ble_main.c
+++ b/epicardium/ble/ble_main.c
@@ -231,6 +231,7 @@ static const attsCccSet_t bleCccSet[BLE_NUM_CCC_IDX] =
   {BATT_LVL_CH_CCC_HDL,   ATT_CLIENT_CFG_NOTIFY,    DM_SEC_LEVEL_NONE},   /* BLE_BATT_LVL_CCC_IDX */
   {ESS_TEMP_CH_CCC_HDL,   ATT_CLIENT_CFG_NOTIFY,    DM_SEC_LEVEL_NONE},   /* BLE_ESS_TEMP_CCC_IDX */
   {ESS_HUMI_CH_CCC_HDL,   ATT_CLIENT_CFG_NOTIFY,    DM_SEC_LEVEL_NONE},   /* BLE_ESS_HUMI_CCC_IDX */
+  {ESS_PRES_CH_CCC_HDL,   ATT_CLIENT_CFG_NOTIFY,    DM_SEC_LEVEL_NONE},   /* BLE_ESS_PRES_CCC_IDX */
 };
 
 /**************************************************************************************************
diff --git a/epicardium/ble/cccd.h b/epicardium/ble/cccd.h
index 4ec4e57022c301b068b53cb66e1b9649602728b5..2715f6ebb6252e4995b73bb7980795b4c0354083 100644
--- a/epicardium/ble/cccd.h
+++ b/epicardium/ble/cccd.h
@@ -6,6 +6,7 @@ enum
   BLE_BATT_LVL_CCC_IDX,                   /*! Battery service, battery level characteristic */
   BLE_ESS_TEMP_CCC_IDX,                   /*! Environmental sensing service, temperature characteristic */
   BLE_ESS_HUMI_CCC_IDX,                   /*! Environmental sensing service, humidity characteristic */
+  BLE_ESS_PRES_CCC_IDX,                   /*! Environmental sensing service, pressure characteristic */
   BLE_NUM_CCC_IDX
 };
 
diff --git a/epicardium/ble/ess.c b/epicardium/ble/ess.c
index 3d3ba3d096c11d8adbfbc5e42ae9aa4a70087bfc..5395503561e4a98b691db61da37713e759a9bfc8 100644
--- a/epicardium/ble/ess.c
+++ b/epicardium/ble/ess.c
@@ -34,6 +34,13 @@ static const uint8_t UUID_char_humidity[] = {
 	UINT16_TO_BYTES(ATT_UUID_HUMIDITY)
 };
 
+/* BLE UUID for pressure */
+static const uint8_t UUID_char_pressure[] = {
+	ATT_PROP_READ | ATT_PROP_NOTIFY,
+	UINT16_TO_BYTES(ESS_PRESSURE_VAL_HDL),
+	UINT16_TO_BYTES(ATT_UUID_PRESSURE)
+};
+
 static const uint16_t UUID_char_len = sizeof(UUID_char_temperature);
 
 static uint8_t initTemperatureValue[] = { UINT16_TO_BYTES(0) };
@@ -42,6 +49,9 @@ static uint16_t initTemperatureLen = sizeof(initTemperatureValue);
 static uint8_t initHumidityValue[] = { UINT16_TO_BYTES(0) };
 static uint16_t initHumidityLen = sizeof(initHumidityValue);
 
+static uint8_t initPressureValue[] = { UINT32_TO_BYTES(0) };
+static uint16_t initPressureLen = sizeof(initPressureValue);
+
 /* Temperature client characteristic configuration */
 static uint8_t essValTempChCcc[] = {UINT16_TO_BYTES(0x0000)};
 static const uint16_t essLenTempChCcc = sizeof(essValTempChCcc);
@@ -50,6 +60,10 @@ static const uint16_t essLenTempChCcc = sizeof(essValTempChCcc);
 static uint8_t essValHumidityChCcc[] = {UINT16_TO_BYTES(0x0000)};
 static const uint16_t essLenHumidityChCcc = sizeof(essValHumidityChCcc);
 
+/* Pressure client characteristic configuration */
+static uint8_t essValPressureChCcc[] = {UINT16_TO_BYTES(0x0000)};
+static const uint16_t essLenPressureChCcc = sizeof(essValPressureChCcc);
+
 /* clang-format on */
 
 /*
@@ -122,6 +136,34 @@ static const attsAttr_t ESSSvcAttrList[] = {
 			 ATTS_PERMIT_WRITE) // How about security?
 	},
 
+	// Pressure
+	{
+		.pUuid       = attChUuid,
+		.pValue      = (uint8_t *)UUID_char_pressure,
+		.pLen        = (uint16_t *)&UUID_char_len,
+		.maxLen      = sizeof(UUID_char_pressure),
+		.permissions = ATTS_PERMIT_READ,
+	},
+	{
+		.pUuid       = attPressureChUuid,
+		.pValue      = initPressureValue,
+		.pLen        = &initPressureLen,
+		.maxLen      = sizeof(initPressureValue),
+		.permissions = ATTS_PERMIT_READ | ATTS_PERMIT_READ_ENC |
+			       ATTS_PERMIT_READ_AUTH,
+	},
+	/* Characteristic CCC descriptor */
+	{
+		.pUuid    = attCliChCfgUuid,
+		.pValue   = essValPressureChCcc,
+		.pLen     = (uint16_t *)&essLenPressureChCcc,
+		.maxLen   = sizeof(essValPressureChCcc),
+		.settings = ATTS_SET_CCC,
+		.permissions =
+			(ATTS_PERMIT_READ |
+			 ATTS_PERMIT_WRITE) // How about security?
+	},
+
 };
 
 // validating that the service really has all charateristics
@@ -181,6 +223,11 @@ void bleESS_update(void)
 		ESS_HUMIDITY_VAL_HDL, sizeof(humidity), (uint8_t *)&humidity
 	);
 
+	uint32_t pressure = 0;
+	AttsSetAttr(
+		ESS_PRESSURE_VAL_HDL, sizeof(pressure), (uint8_t *)&pressure
+	);
+
 	dmConnId_t connId = AppConnIsOpen();
 	if (connId != DM_CONN_ID_NONE) {
 		if (AttsCccEnabled(connId, BLE_ESS_TEMP_CCC_IDX)) {
@@ -199,6 +246,14 @@ void bleESS_update(void)
 				(uint8_t *)&humidity
 			);
 		}
+		if (AttsCccEnabled(connId, BLE_ESS_PRES_CCC_IDX)) {
+			AttsHandleValueNtf(
+				connId,
+				ESS_PRESSURE_VAL_HDL,
+				sizeof(pressure),
+				(uint8_t *)&pressure
+			);
+		}
 	}
 }
 
diff --git a/epicardium/ble/ess.h b/epicardium/ble/ess.h
index 3bd5cf9741dc84b29ade6a0de2a40b492e0330e8..2e0d993aac0858cc56bf317574cb49ca7d9d927c 100644
--- a/epicardium/ble/ess.h
+++ b/epicardium/ble/ess.h
@@ -16,6 +16,11 @@ enum {
 	ESS_HUMIDITY_CH_HDL,
 	ESS_HUMIDITY_VAL_HDL,
 	ESS_HUMI_CH_CCC_HDL,                  /*!< Humidity CCCD */
+	/*!< \brief pressure characteristic */
+	ESS_PRESSURE_CH_HDL,
+	ESS_PRESSURE_VAL_HDL,
+	ESS_PRES_CH_CCC_HDL,                  /*!< Pressure CCCD */
+
 
 	/*!< \brief Maximum handle. */
 	ESS_MAX_HDL
diff --git a/lib/sdk/Libraries/BTLE/stack/ble-host/include/att_uuid.h b/lib/sdk/Libraries/BTLE/stack/ble-host/include/att_uuid.h
index ee28d104ac5a3c4e00ec7de6c204db55a2618c88..a630a14911a880c6690187fe91ecb2dedefdbbaf 100644
--- a/lib/sdk/Libraries/BTLE/stack/ble-host/include/att_uuid.h
+++ b/lib/sdk/Libraries/BTLE/stack/ble-host/include/att_uuid.h
@@ -214,6 +214,7 @@ extern "C" {
 #define ATT_UUID_CTE_TX_DURATION            0x7F83    /*!< \brief Constant Tone Extension transmit duration */
 #define ATT_UUID_CTE_INTERVAL               0x7F84    /*!< \brief Constant Tone Extension interval */
 #define ATT_UUID_CTE_PHY                    0x7F85    /*!< \brief Constant Tone Extension PHY */
+#define ATT_UUID_PRESSURE                   0x2A6D
 #define ATT_UUID_TEMPERATURE                0x2A6E
 #define ATT_UUID_HUMIDITY                   0x2A6F
 /**@}*/
@@ -536,6 +537,7 @@ extern const uint8_t attCteIntChUuid[ATT_16_UUID_LEN];   /*!< \brief Constant To
 extern const uint8_t attCtePhyChUuid[ATT_16_UUID_LEN];   /*!< \brief Constant Tone Extension PHY */
 extern const uint8_t attTemperatureChUuid[ATT_16_UUID_LEN];
 extern const uint8_t attHumidityChUuid[ATT_16_UUID_LEN];
+extern const uint8_t attPressureChUuid[ATT_16_UUID_LEN];
 /**@}*/
 
 /*! \} */    /* STACK_ATT_API */
diff --git a/lib/sdk/Libraries/BTLE/stack/ble-host/sources/stack/att/att_uuid.c b/lib/sdk/Libraries/BTLE/stack/ble-host/sources/stack/att/att_uuid.c
index 5efcfc7507a6a4829a3014715d51a69a6efb9bf8..53296d0b5c5a8be9a69449b0a1730bfd4f0a3734 100644
--- a/lib/sdk/Libraries/BTLE/stack/ble-host/sources/stack/att/att_uuid.c
+++ b/lib/sdk/Libraries/BTLE/stack/ble-host/sources/stack/att/att_uuid.c
@@ -188,3 +188,4 @@ const uint8_t attCteIntChUuid[ATT_16_UUID_LEN] =   {UINT16_TO_BYTES(ATT_UUID_CTE
 const uint8_t attCtePhyChUuid[ATT_16_UUID_LEN] =   {UINT16_TO_BYTES(ATT_UUID_CTE_PHY)};
 const uint8_t attTemperatureChUuid[ATT_16_UUID_LEN] = {UINT16_TO_BYTES(ATT_UUID_TEMPERATURE)};
 const uint8_t attHumidityChUuid[ATT_16_UUID_LEN] = {UINT16_TO_BYTES(ATT_UUID_HUMIDITY)};
+const uint8_t attPressureChUuid[ATT_16_UUID_LEN] = {UINT16_TO_BYTES(ATT_UUID_PRESSURE)};