diff --git a/Documentation/bluetooth/card10.rst b/Documentation/bluetooth/card10.rst
index 3dc40d981450b5b55c82370c5222ebeb07627112..f38bb9195441a97730e04f00afe459773b74bb03 100644
--- a/Documentation/bluetooth/card10.rst
+++ b/Documentation/bluetooth/card10.rst
@@ -50,6 +50,16 @@ The current draft uses following service specification:
   UUID: ``42230214-2342-2342-2342-234223422342``
   write
 
+- LEDS dim bottom characteristic:
+
+  UUID: ``42230215-2342-2342-2342-234223422342``
+  write
+
+- LEDs dim top characteristic:
+
+  UUID: ``42230216-2342-2342-2342-234223422342``
+  write
+
 - LEDs above characteristic:
 
   UUID: ``42230220-2342-2342-2342-234223422342``
@@ -99,7 +109,7 @@ Rocket0 Rocket1 Rocket2
 Background LED <Position> characteristic
 ---------------------------------
 
-The Rockets characteristic makes it possible to address every three rockets.
+The Background LEDs <Position> characteristic makes it possible to address the bottom LEDs by position.
 Just write there three ``uint8`` for the rgb color.
 
 Dataformat:
@@ -113,6 +123,12 @@ Dataformat:
 - set led blue: ``0x0000ff``
 - disabled:  ``0x000000``
 
+LEDs dim <Position> characteristic
+---------------------------------
+
+The LEDs dim <Position> characteristic makes it possible to dim LEDs by position.
+Just write a ``uint8`` between ``1`` and ``8``.
+
 LEDs above characteristic
 ---------------------------------
 This characteristic set every 11 leds on the top module at once.
diff --git a/epicardium/ble/card10.c b/epicardium/ble/card10.c
index 8cccbc7039bf5f10db50fdb79f3e9f56e8851b8d..df726fc3e78e9a833c3dfbd8eb29a687e572ccfa 100644
--- a/epicardium/ble/card10.c
+++ b/epicardium/ble/card10.c
@@ -59,6 +59,12 @@ enum {
 	/*!< \brief led for background on top left characteristic */
 	CARD10_LED_BG_TOP_LEFT_CH_HDL,
 	CARD10_LED_BG_TOP_LEFT_VAL_HDL,
+	/*!< \brief dim leds on bottom characteristic */
+	CARD10_LEDS_BOTTOM_DIM_CH_HDL,
+	CARD10_LEDS_BOTTOM_DIM_VAL_HDL,
+	/*!< \brief dim leds on top characteristic */
+	CARD10_LEDS_TOP_DIM_CH_HDL,
+	CARD10_LEDS_TOP_DIM_VAL_HDL,
 	/*!< \brief leds above characteristic */
 	CARD10_LEDS_ABOVE_CH_HDL,
 	CARD10_LEDS_ABOVE_VAL_HDL,
@@ -160,6 +166,28 @@ static const uint8_t UUID_attChar_led_bg_top_left[] = {
 	CARD10_UUID_SUFFIX, 0x14, CARD10_UUID_PREFIX
 };
 
+/* BLE UUID for card10 dim leds on bottom */
+static const uint8_t UUID_char_leds_bottom_dim[] = {
+	ATT_PROP_WRITE_NO_RSP,
+	UINT16_TO_BYTES(CARD10_LEDS_BOTTOM_DIM_VAL_HDL),
+	CARD10_UUID_SUFFIX, 0x15, CARD10_UUID_PREFIX
+};
+
+static const uint8_t UUID_attChar_leds_bottom_dim[] = {
+	CARD10_UUID_SUFFIX, 0x15, CARD10_UUID_PREFIX
+};
+
+/* BLE UUID for card10 dim leds on top */
+static const uint8_t UUID_char_leds_top_dim[] = {
+	ATT_PROP_WRITE_NO_RSP,
+	UINT16_TO_BYTES(CARD10_LEDS_TOP_DIM_VAL_HDL),
+	CARD10_UUID_SUFFIX, 0x16, CARD10_UUID_PREFIX
+};
+
+static const uint8_t UUID_attChar_leds_top_dim[] = {
+	CARD10_UUID_SUFFIX, 0x16, CARD10_UUID_PREFIX
+};
+
 /* BLE UUID for card10 above leds */
 static const uint8_t UUID_char_leds_above[] = {
 	ATT_PROP_WRITE_NO_RSP,
@@ -363,6 +391,48 @@ static void *addCard10GroupDyn(void)
 			ATTS_PERMIT_WRITE
 		);
 
+		// Dim bottom module
+
+		AttsDynAddAttrConst(
+			pSHdl,
+			attChUuid,
+			UUID_char_leds_bottom_dim,
+			sizeof(UUID_char_leds_bottom_dim),
+			0,
+			ATTS_PERMIT_READ
+		);
+
+		AttsDynAddAttr(
+			pSHdl,
+			UUID_attChar_leds_bottom_dim,
+			NULL,
+			0,
+			sizeof(uint8_t),
+			ATTS_SET_WRITE_CBACK,
+			ATTS_PERMIT_WRITE
+		);
+
+		// Dim top module
+
+		AttsDynAddAttrConst(
+			pSHdl,
+			attChUuid,
+			UUID_char_leds_top_dim,
+			sizeof(UUID_char_leds_top_dim),
+			0,
+			ATTS_PERMIT_READ
+		);
+
+		AttsDynAddAttr(
+			pSHdl,
+			UUID_attChar_leds_top_dim,
+			NULL,
+			0,
+			sizeof(uint8_t),
+			ATTS_SET_WRITE_CBACK,
+			ATTS_PERMIT_WRITE
+		);
+
 		// ABOVE LEDS
 
 		AttsDynAddAttrConst(
@@ -526,8 +596,16 @@ static uint8_t writeCard10CB(
 			pValue[2]
 		);
 		return ATT_SUCCESS;
+	case CARD10_LEDS_BOTTOM_DIM_VAL_HDL:
+		epic_leds_dim_bottom(pValue[0]);
+		APP_TRACE_INFO1("dim bottom to: %d\n", pValue[0]);
+		return ATT_SUCCESS;
+	case CARD10_LEDS_TOP_DIM_VAL_HDL:
+		epic_leds_dim_top(pValue[0]);
+		APP_TRACE_INFO1("dim top to: %d\n", pValue[0]);
+		return ATT_SUCCESS;
 	case CARD10_LEDS_ABOVE_VAL_HDL:
-		for( ui16 = 0; ui16 < 11; ui16++) {
+		for (ui16 = 0; ui16 < 11; ui16++) {
 			epic_leds_set(
 				ui16,
 				pValue[ui16 * 3],