diff --git a/doc/ble.md b/doc/ble.md
index 9a7c59a8..fdf1a5b6 100644
--- a/doc/ble.md
+++ b/doc/ble.md
@@ -15,6 +15,29 @@ If **CTS** is detected, it'll request the current time to the companion applicat
 
 ![BLE connection sequence diagram](ble/connection_sequence.png "BLE connection sequence diagram")
 
+## BLE UUIDs
+When possible, InfiniTime tries to implement BLE services defined by the BLE specification. 
+
+When the service does not exist in the BLE specification, InfiniTime implement custom services. As all BLE services, custom services are identified by a UUID. Here is how to define the UUID of custom services in InfiniTime:
+
+```
+ - Base UUID :           xxxxxxxx-78fc-48fe-8e23-433b3a1942d0
+ - Service UUID :        SSSS0000-78fc-48fe-8e23-433b3a1942d0 where SSSS is the service ID
+ - Characteristic UUID : SSSSCCCC-78fc-48fe-8e23-433b3a1942d0 where CCCC is the characteristic ID for the service SSSS and is different than 0
+```
+
+The following custom services are implemented in InfiniTime:
+
+ - Since InfiniTime 0.8:
+   ```
+    * Music Service :             00000000-78fc-48fe-8e23-433b3a1942d0
+   ```
+   
+ - Since InfiniTime 0.11:
+   ```
+     * Navigation Service :        00010000-78fc-48fe-8e23-433b3a1942d0
+   ```
+
 ## BLE services
 [List of standard BLE services](https://www.bluetooth.com/specifications/gatt/services/)
 
diff --git a/src/components/ble/MusicService.cpp b/src/components/ble/MusicService.cpp
index fdecb6b3..bd6e27fb 100644
--- a/src/components/ble/MusicService.cpp
+++ b/src/components/ble/MusicService.cpp
@@ -24,32 +24,68 @@ int MSCallback(uint16_t conn_handle, uint16_t attr_handle, struct ble_gatt_acces
 }
 
 Pinetime::Controllers::MusicService::MusicService(Pinetime::System::SystemTask &system) : m_system(system) {
-  msUuid.value[11] = msId[0];
-  msUuid.value[12] = msId[1];
-  msEventCharUuid.value[11] = msEventCharId[0];
-  msEventCharUuid.value[12] = msEventCharId[1];
-  msStatusCharUuid.value[11] = msStatusCharId[0];
-  msStatusCharUuid.value[12] = msStatusCharId[1];
-  msTrackCharUuid.value[11] = msTrackCharId[0];
-  msTrackCharUuid.value[12] = msTrackCharId[1];
-  msArtistCharUuid.value[11] = msArtistCharId[0];
-  msArtistCharUuid.value[12] = msArtistCharId[1];
-  msAlbumCharUuid.value[11] = msAlbumCharId[0];
-  msAlbumCharUuid.value[12] = msAlbumCharId[1];
-  msPositionCharUuid.value[11] = msPositionCharId[0];
-  msPositionCharUuid.value[12] = msPositionCharId[1];
-  msTotalLengthCharUuid.value[11] = msTotalLengthCharId[0];
-  msTotalLengthCharUuid.value[12] = msTotalLengthCharId[1];
-  msTrackNumberCharUuid.value[11] = msTrackNumberCharId[0];
-  msTrackNumberCharUuid.value[12] = msTrackNumberCharId[1];
-  msTrackTotalCharUuid.value[11] = msTrackTotalCharId[0];
-  msTrackTotalCharUuid.value[12] = msTrackTotalCharId[1];
-  msPlaybackSpeedCharUuid.value[11] = msPlaybackSpeedCharId[0];
-  msPlaybackSpeedCharUuid.value[12] = msPlaybackSpeedCharId[1];
-  msRepeatCharUuid.value[11] = msRepeatCharId[0];
-  msRepeatCharUuid.value[12] = msRepeatCharId[1];
-  msShuffleCharUuid.value[11] = msShuffleCharId[0];
-  msShuffleCharUuid.value[12] = msShuffleCharId[1];
+  msUuid.value[14] = msId[0];
+  msUuid.value[15] = msId[1];
+
+  msEventCharUuid.value[12] = msEventCharId[0];
+  msEventCharUuid.value[13] = msEventCharId[1];
+  msEventCharUuid.value[14] = msId[0];
+  msEventCharUuid.value[15] = msId[1];
+
+  msStatusCharUuid.value[12] = msStatusCharId[0];
+  msStatusCharUuid.value[13] = msStatusCharId[1];
+  msStatusCharUuid.value[14] = msId[0];
+  msStatusCharUuid.value[15] = msId[1];
+
+  msTrackCharUuid.value[12] = msTrackCharId[0];
+  msTrackCharUuid.value[13] = msTrackCharId[1];
+  msTrackCharUuid.value[14] = msId[0];
+  msTrackCharUuid.value[15] = msId[1];
+
+  msArtistCharUuid.value[12] = msArtistCharId[0];
+  msArtistCharUuid.value[13] = msArtistCharId[1];
+  msArtistCharUuid.value[14] = msId[0];
+  msArtistCharUuid.value[15] = msId[1];
+
+  msAlbumCharUuid.value[12] = msAlbumCharId[0];
+  msAlbumCharUuid.value[13] = msAlbumCharId[1];
+  msAlbumCharUuid.value[14] = msId[0];
+  msAlbumCharUuid.value[15] = msId[1];
+
+  msPositionCharUuid.value[12] = msPositionCharId[0];
+  msPositionCharUuid.value[13] = msPositionCharId[1];
+  msPositionCharUuid.value[14] = msId[0];
+  msPositionCharUuid.value[15] = msId[1];
+
+  msTotalLengthCharUuid.value[12] = msTotalLengthCharId[0];
+  msTotalLengthCharUuid.value[13] = msTotalLengthCharId[1];
+  msTotalLengthCharUuid.value[14] = msId[0];
+  msTotalLengthCharUuid.value[15] = msId[1];
+
+  msTrackNumberCharUuid.value[12] = msTrackNumberCharId[0];
+  msTrackNumberCharUuid.value[13] = msTrackNumberCharId[1];
+  msTrackNumberCharUuid.value[14] = msId[0];
+  msTrackNumberCharUuid.value[15] = msId[1];
+
+  msTrackTotalCharUuid.value[12] = msTrackTotalCharId[0];
+  msTrackTotalCharUuid.value[13] = msTrackTotalCharId[1];
+  msTrackTotalCharUuid.value[14] = msId[0];
+  msTrackTotalCharUuid.value[15] = msId[1];
+
+  msPlaybackSpeedCharUuid.value[12] = msPlaybackSpeedCharId[0];
+  msPlaybackSpeedCharUuid.value[13] = msPlaybackSpeedCharId[1];
+  msPlaybackSpeedCharUuid.value[14] = msId[0];
+  msPlaybackSpeedCharUuid.value[15] = msId[1];
+
+  msRepeatCharUuid.value[12] = msRepeatCharId[0];
+  msRepeatCharUuid.value[13] = msRepeatCharId[1];
+  msRepeatCharUuid.value[14] = msId[0];
+  msRepeatCharUuid.value[15] = msId[1];
+
+  msShuffleCharUuid.value[12] = msShuffleCharId[0];
+  msShuffleCharUuid.value[13] = msShuffleCharId[1];
+  msShuffleCharUuid.value[14] = msId[0];
+  msShuffleCharUuid.value[15] = msId[1];
   
   characteristicDefinition[0] = {.uuid = (ble_uuid_t *) (&msEventCharUuid),
       .access_cb = MSCallback,
diff --git a/src/components/ble/MusicService.h b/src/components/ble/MusicService.h
index ab8dc2b1..172ab61c 100644
--- a/src/components/ble/MusicService.h
+++ b/src/components/ble/MusicService.h
@@ -26,8 +26,8 @@
 #undef max
 #undef min
 
-//c7e50000-78fc-48fe-8e23-433b3a1942d0
-#define MUSIC_SERVICE_UUID_BASE {0xd0, 0x42, 0x19, 0x3a, 0x3b, 0x43, 0x23, 0x8e, 0xfe, 0x48, 0xfc, 0x78, 0x00, 0x00, 0xe5, 0xc7}
+//00000000-78fc-48fe-8e23-433b3a1942d0
+#define MUSIC_SERVICE_UUID_BASE {0xd0, 0x42, 0x19, 0x3a, 0x3b, 0x43, 0x23, 0x8e, 0xfe, 0x48, 0xfc, 0x78, 0x00, 0x00, 0x00, 0x00}
 
 namespace Pinetime {
   namespace System {
@@ -73,19 +73,19 @@ namespace Pinetime {
         Playing = 0x01
       };
     private:
-      static constexpr uint8_t msId[2] = {0x00, 0x01};
-      static constexpr uint8_t msEventCharId[2] = {0x00, 0x02};
-      static constexpr uint8_t msStatusCharId[2] = {0x00, 0x03};
-      static constexpr uint8_t msArtistCharId[2] = {0x00, 0x04};
-      static constexpr uint8_t msTrackCharId[2] = {0x00, 0x05};
-      static constexpr uint8_t msAlbumCharId[2] = {0x00, 0x06};
-      static constexpr uint8_t msPositionCharId[2] = {0x00, 0x07};
-      static constexpr uint8_t msTotalLengthCharId[2] = {0x00, 0x08};
-      static constexpr uint8_t msTrackNumberCharId[2] = {0x00, 0x09};
-      static constexpr uint8_t msTrackTotalCharId[2] = {0x00, 0x0a};
-      static constexpr uint8_t msPlaybackSpeedCharId[2] = {0x00, 0x0b};
-      static constexpr uint8_t msRepeatCharId[2] = {0x00, 0x0c};
-      static constexpr uint8_t msShuffleCharId[2] = {0x00, 0x0d};
+      static constexpr uint8_t msId[2] = {0x00, 0x00};
+      static constexpr uint8_t msEventCharId[2] = {0x01, 0x00};
+      static constexpr uint8_t msStatusCharId[2] = {0x02, 0x00};
+      static constexpr uint8_t msArtistCharId[2] = {0x03, 0x00};
+      static constexpr uint8_t msTrackCharId[2] = {0x04, 0x00};
+      static constexpr uint8_t msAlbumCharId[2] = {0x05, 0x00};
+      static constexpr uint8_t msPositionCharId[2] = {0x06, 0x00};
+      static constexpr uint8_t msTotalLengthCharId[2] = {0x07, 0x00};
+      static constexpr uint8_t msTrackNumberCharId[2] = {0x08, 0x00};
+      static constexpr uint8_t msTrackTotalCharId[2] = {0x09, 0x00};
+      static constexpr uint8_t msPlaybackSpeedCharId[2] = {0x0a, 0x00};
+      static constexpr uint8_t msRepeatCharId[2] = {0x0b, 0x00};
+      static constexpr uint8_t msShuffleCharId[2] = {0x0c, 0x00};
       
       ble_uuid128_t msUuid{
           .u = {.type = BLE_UUID_TYPE_128},