Fitness Machine Service FTMS with kinomap

I'm trying to implement the FTMS fitness machine service with the Kinomap app, similar to zwift. using as base the code of the ble_app_rscs of the library nRF52 together with the development kit nrf52832QFAA.

this is the first time I use the kit with bluetooth.
The part about advertising the service and publishing I understand, what I'm still having difficulty with is modifying the FTMS service.

Another question is about the power unit of the Kinomap or zwift app, are these values automatically calculated based only on speed?

if anyone can help me i'd appreciate it

Parents
  • this is the first time I use the kit with bluetooth.
    The part about advertising the service and publishing I understand, what I'm still having difficulty with is modifying the FTMS service.

    I suggest you study the BLE guides at https://devzone.nordicsemi.com/guides/short-range-guides/b/bluetooth-low-energy

    Another question is about the power unit of the Kinomap or zwift app, are these values automatically calculated based only on speed?

    Can you elaborate? What is 'speed' in this context?

  • The service it uses is the FTMS (UUID 0x1826) with the following feature Indoor Bike Data (UUID 0x2AD2) to send data to the client (app).


    From the moment I set the speed instance flag bits (km/h) bit 0 and Cadence instance bit 2 followed by the Data, the kinomap application should receive depending on the configured equipment.


    In short, the app works as follows, you first need to choose the type of equipment to be used (bike, treadmill, etc.) and then choose the scenario options you want to train.

    Before choosing the scenario, it is only possible to test the speed and cadence to see if the data is correct, however when the test is done in the chosen scenario the data does not match what was sent.


    First the Km/h is at zero, the only one that corresponds is rpm, if the speed is zero then the athlete does not travel.
    But by adding the power(watt) flag bit bit 6, the km/h values ​​start to vary according to the power values.


    My question, how do I make the speed (Km/h) and power values ​​correspond to the values ​​I'm sending?


    Or does the app according to the power data automatically calculate the speed?

Reply
  • The service it uses is the FTMS (UUID 0x1826) with the following feature Indoor Bike Data (UUID 0x2AD2) to send data to the client (app).


    From the moment I set the speed instance flag bits (km/h) bit 0 and Cadence instance bit 2 followed by the Data, the kinomap application should receive depending on the configured equipment.


    In short, the app works as follows, you first need to choose the type of equipment to be used (bike, treadmill, etc.) and then choose the scenario options you want to train.

    Before choosing the scenario, it is only possible to test the speed and cadence to see if the data is correct, however when the test is done in the chosen scenario the data does not match what was sent.


    First the Km/h is at zero, the only one that corresponds is rpm, if the speed is zero then the athlete does not travel.
    But by adding the power(watt) flag bit bit 6, the km/h values ​​start to vary according to the power values.


    My question, how do I make the speed (Km/h) and power values ​​correspond to the values ​​I'm sending?


    Or does the app according to the power data automatically calculate the speed?

Children
Related