This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

How to support Ble FTMP profile

Dear Nordic :

I want FTMP (Fitness Machine Profile)  to be supported in my product (A smart trainer uses NRF52832, called Gravat in Ant+ official website).

I find that Fitness Machine Profile is noted to be supported in this page :http://infocenter.nordicsemi.com/index.jsp?topic=%2Fcom.nordic.infocenter.sdk%2Fdita%2Fsdk%2Fnrf5_sdk.html

How can I get the example code for FTMP just like other ble services example codes supplied in SDK ?

Linxi

Parents Reply
  • Hi  Bjorn:
    I can find "Fitness Machine Profile" in Nordic Documentation.

    I can't find any example related to FTMP in the Nordic SDK too.

    Currently,I am developing FTMP profile code refer to CSC profile source code in SDK 13.1,NRF528332. 

    As Nrf_connet doesn't  recognize Fitness Machine . Can you give me some information about products/apps  support Fitness Machine profile? 

Children
  • This link says that "FIT1e and FIT2 modules  are used by  popular brands such as Star Trac and Schwinnin exercise bikes, treadmills, elliptical trainers, rowing machines and more." But I believe the FIT1e and FIT2e modules only support ANT & not BLE and ANT. Do you want to use BLE or ANT in this fitness machine? It seems you want to use BLE since you refer to the FTMP BLE profile, but you also referred to ANT+ in the Gravat product.

  • Thanks for your support

    Gravat is mass-producted now.

    Gravat supports Ant+ FEC、Ant+ Power Only、Ble Bike Power、Ble Noridc Uart、Ble Secure DFU based on Nordic SDK 13.1.

    The source code of Gravat is rather a whole system,and we want add FTMP supported in it. So in the future, we can develop new fitness product easily.

    For now , I have developed FTMP profile  for several days refer to CSC source code.

    Shown below:

    But it's not able to test for Nrf_connect can not recognize FTMP .

    So if you can , give me some help to develop FTMP.

  • You've probably noticed that the three advertised UUIDs in the Cycling Speed & Cadence example are defined in main.c:

    static ble_uuid_t m_adv_uuids[] =                                                   /**< Universally unique service identifiers. */
    {
        {BLE_UUID_CYCLING_SPEED_AND_CADENCE,  BLE_UUID_TYPE_BLE},
        {BLE_UUID_BATTERY_SERVICE,            BLE_UUID_TYPE_BLE},
        {BLE_UUID_DEVICE_INFORMATION_SERVICE, BLE_UUID_TYPE_BLE}
    };

    The UUID values for these three & other services are defined in ble_srv_common.h. For the battery service, you can see that the function BLE_UUID_BLE_ASSIGN() is called in ble_bas.c to add the battery service. Below that function call, sd_ble_gatts_service_add() is called, which adds the service declaration to the attribute table. The same applies for the cycling speed & cadence service & I am guessing the last service too. I am referring to the SDK 14.2 example. Basically, if I were you, I would take a look at how the example defines & adds the characteristics & services to make it appear correctly in nrf connect & essentially just copy the same format, but with your FTMP service instead.

    May I ask why you are using SDK 13.1 & not the latest 14.2 SDK on the nrf52832?

    I have searched to find the UUID value for the FTMP, but I was unfortunately unable to find this (see the defines under UUID_SERVICES Service UUID definitions in the ble_srv_common.h header file). You will need to find the correct UUID value. Once you have that, you should be able to refer to the above to easily make the characteristic become known. Hope that helps!

  • I think i am familiar with the procedure how to add a service and related characteristics.

    UUID 0x1826 is defined for FTMP by SIG, I don't think you can find it in header file because Noridic SDK does't support it currently.If there is no implementation of FTMP profile , how can Nrf_connect to recognize FTMP device ?

    SDK 13.1 is the newest one when we were developing Gravat last year.

    I just want to know whether Nordic will implement FTMP profile int the futhure.

  • The fitness machine service (FTMS) was added in nrf connect version 4.12. If you have not yet updated to nrf connect v 4.12 or later, I would try this & add the FTMS to your example. Does this answer your question?

Related