FTMP v1.0
FTMP v1.0
FTMP v1.0
▪ Revision: v1.0
▪ Revision Date: 2017-Feb-14
▪ Group Prepared By: Sports and Fitness Working Group
▪ Feedback Email: sf-main@bluetooth.org
Abstract:
This Bluetooth profile enables a Collector device to connect and interact with a Fitness Machine intended for
sports/fitness applications.
Revision History
D05r01 2015-10-01 Accepted all changes. Empty sections have been completed and
UDS interaction has also been clarified.
D05r02 2015-12-08 Accepted all changes. Comments from the team have been
addressed and sections related to the User Data Service have
also been clarified. Added new Control Point procedures in order
to enable the indoor bike simulation feature. Comments from the
team have also been addressed in this revision.
D05r03 2016-02-24 Accepted all changes. Comments from the team have been
addressed. Data Record reference and Collector requirements
have been added.
D05r04 2016-03-10 Accepted all changes. Comments from the team have been
addressed and references have also been updated.
D05r05 2016-03-23 Accepted all changes. Comments from the team have been
addresses and updates discussed during the F2F have also been
made.
UDS Sections have been updated. Support for more than one
user is permitted and recommendations for private or public
Fitness Machine are included.
New Control Point procedures have been added (Request Control
and Spin Down Control).
D05r07 2016-04-12 Accepted all changes. Comments from TE have been addressed.
Document resubmitted to TE for approval.
D05r08 2016-04-13 Accepted all changes. Minor updates from TE. Document ready
for BARB review.
D05r09 2016-05-03 Accepted all changes. Comments from the BARB have been
addressed. Clarifications and improvements made to the UDS
related sections.
D09r01 2016-07-18 Accepted all changes. Removed reference to the Preferred Unit
System characteristic which has not yet been added to the list of
UDS Characteristics. If it is added before formal IOP of the Fitness
Machine Specification, it will be added. Set Targeted Cadence
procedure has also been added to the list of Fitness Machine
Control Point Procedure.
D10r00 2016-10-18 Minor edits following IOP and contributors list has been updated.
Contributors
Name Company
Use of this specification is your acknowledgement that you agree to and will comply with the following notices and
disclaimers. You are advised to seek appropriate legal, engineering, and other professional advice regarding the use,
interpretation, and effect of this specification.
Use of Bluetooth specifications by members of Bluetooth SIG is governed by the membership and other related
agreements between Bluetooth SIG and its members, including those agreements posted on Bluetooth SIG’s website
located at www.bluetooth.com. Any use of this specification by a member that is not in compliance with the applicable
membership and other related agreements is prohibited and, among other things, may result in (i) termination of the
applicable agreements and (ii) liability for infringement of the intellectual property rights of Bluetooth SIG and its
members.
Use of this specification by anyone who is not a member of Bluetooth SIG is prohibited and is an infringement of the
intellectual property rights of Bluetooth SIG and its members. The furnishing of this specification does not grant any
license to any intellectual property of Bluetooth SIG or its members. THIS SPECIFICATION IS PROVIDED “AS IS” AND
BLUETOOTH SIG, ITS MEMBERS AND THEIR AFFILIATES MAKE NO REPRESENTATIONS OR WARRANTIES AND
DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING ANY WARRANTIES OF MERCHANTABILITY, TITLE,
NON-INFRINGEMENT, FITNESS FOR ANY PARTICULAR PURPOSE, OR THAT THE CONTENT OF THIS SPECIFICATION IS
FREE OF ERRORS. For the avoidance of doubt, Bluetooth SIG has not made any search or investigation as to third parties
that may claim rights in or to any specifications or any intellectual property that may be required to implement any
specifications and it disclaims any obligation or duty to do so.
TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, BLUETOOTH SIG, ITS MEMBERS AND THEIR AFFILIATES
DISCLAIM ALL LIABILITY ARISING OUT OF OR RELATING TO USE OF THIS SPECIFICATION AND ANY INFORMATION
CONTAINED IN THIS SPECIFICATION, INCLUDING LOST REVENUE, PROFITS, DATA OR PROGRAMS, OR BUSINESS
INTERRUPTION, OR FOR SPECIAL, INDIRECT, CONSEQUENTIAL, INCIDENTAL OR PUNITIVE DAMAGES, HOWEVER
CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY, AND EVEN IF BLUETOOTH SIG, ITS MEMBERS OR THEIR
AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF THE DAMAGES.
If this specification is a prototyping specification, it is solely for the purpose of developing and using prototypes to verify
the prototyping specifications at Bluetooth SIG sponsored IOP events. Prototyping Specifications cannot be used to
develop products for sale or distribution and prototypes cannot be qualified for distribution.
Products equipped with Bluetooth wireless technology ("Bluetooth Products") and their combination, operation, use,
implementation, and distribution may be subject to regulatory controls under the laws and regulations of numerous
countries that regulate products that use wireless non-licensed spectrum. Examples include airline regulations,
telecommunications regulations, technology transfer controls and health and safety regulations. You are solely
responsible for complying with all applicable laws and regulations and for obtaining any and all required authorizations,
permits, or licenses in connection with your use of this specification and development, manufacture, and distribution of
Bluetooth Products. Nothing in this specification provides any information or assistance in connection with complying
with applicable laws or regulations or obtaining required authorizations, permits, or licenses.
Bluetooth SIG is not required to adopt any specification or portion thereof. If this specification is not the final version
adopted by Bluetooth SIG’s Board of Directors, it may not be adopted. Any specification adopted by Bluetooth SIG’s
Board of Directors may be withdrawn, replaced, or modified at any time. Bluetooth SIG reserves the right to change or
alter final specifications in accordance with its membership and operating agreements.
Copyright © 2015–2017 by Bluetooth SIG, Inc. The Bluetooth word mark and logos are owned by Bluetooth SIG, Inc. All
copyrights in the Bluetooth Specifications themselves are owned by Apple Inc., Ericsson AB, Intel Corporation, Lenovo
(Singapore) Pte. Ltd., Microsoft Corporation, Nokia Corporation, and Toshiba Corporation. Other third-party brands and
names are the property of their respective owners.
Contents
1 Introduction ........................................................................................................................................... 8
1.1 Profile Dependencies .................................................................................................................... 8
1.2 Conformance ................................................................................................................................ 8
1.3 Bluetooth Specification Release Compatibility ............................................................................. 8
2 Configuration ........................................................................................................................................ 9
2.1 Roles ............................................................................................................................................. 9
2.2 Profile – Service Relationship ....................................................................................................... 9
2.3 Concurrency Limitations/Restrictions ........................................................................................... 9
2.4 Topology Limitations/Restrictions ................................................................................................. 9
2.4.1 Topology Limitations/Restrictions for Low Energy ..................................................................................9
2.4.2 Topology Limitations/Restrictions for BR/EDR ...................................................................................... 10
2.5 Transport Dependencies ............................................................................................................ 10
3 Fitness Machine Role Requirements ................................................................................................ 11
3.1 Incremental Fitness Machine Service Requirements ................................................................. 11
3.1.1 Additional Requirements for the Low Energy Transport ........................................................................ 11
3.2 Incremental User Data Service Requirements ........................................................................... 12
3.3 Incremental Device Information Service Requirements ............................................................. 13
4 Collector Role Requirements ............................................................................................................ 14
4.1 GATT Sub-Procedure Requirements.......................................................................................... 14
4.2 Service Discovery ....................................................................................................................... 15
4.3 Characteristic Discovery ............................................................................................................. 15
4.3.1 Fitness Machine Characteristic Discovery ............................................................................................ 15
4.3.2 User Data Characteristic Discovery ...................................................................................................... 16
4.3.3 Device Information Characteristic Discovery ........................................................................................ 17
4.4 Fitness Machine Service Characteristics .................................................................................... 17
4.4.1 Fitness Machine Feature ...................................................................................................................... 17
4.4.2 Treadmill Data ...................................................................................................................................... 17
4.4.3 Cross Trainer Data................................................................................................................................ 18
4.4.4 Step Climber Data................................................................................................................................. 19
4.4.5 Stair Climber Data................................................................................................................................. 19
4.4.6 Rower Data ........................................................................................................................................... 20
4.4.7 Indoor Bike Data ................................................................................................................................... 20
4.4.8 Training Status ...................................................................................................................................... 21
4.4.9 Supported Speed Range ...................................................................................................................... 21
4.4.10 Supported Inclination Range................................................................................................................. 21
4.4.11 Supported Resistance Level Range...................................................................................................... 22
4.4.12 Supported Power Range....................................................................................................................... 22
4.4.13 Supported Heart Rate Range ............................................................................................................... 22
4.4.14 Fitness Machine Control Point .............................................................................................................. 22
4.4.15 Fitness Machine Status......................................................................................................................... 28
4.5 User Data Service Characteristics .............................................................................................. 28
4.5.1 Database Change Increment ................................................................................................................ 28
4.5.2 User Control Point Characteristic .......................................................................................................... 29
Document Terminology
The Bluetooth SIG has adopted portions of the IEEE Standards Style Manual, which dictates use of the
words “shall’’, “must”, “will”, “should’’, “may’’, and “can’’ in the development of documentation, as
follows:
• The word “shall” is used to indicate mandatory requirements strictly to be followed in order to
conform to the standard and from which no deviation is permitted (shall equals is required to).
• The use of the word “must” is deprecated and shall not be used when stating mandatory
requirements; must is used only to describe unavoidable situations.
• The use of the word “will” is deprecated and shall not be used when stating mandatory
requirements; will is only used in statements of fact.
• The word “should” is used to indicate that among several possibilities one is recommended as
particularly suitable, without mentioning or excluding others; or that a certain course of action is
preferred but not necessarily required; or that (in the negative form) a certain course of action is
deprecated but not prohibited (should equals is recommended that).
• The word “may” is used to indicate a course of action permissible within the limits of the standard
(may equals is permitted).
• The word “can” is used for statements of possibility and capability, whether material, physical, or
causal (can equals is able to).
1 Introduction
The Fitness Machine Profile is used to enable a data collection device to obtain data from a Fitness
Machine that exposes the Fitness Machine Service. The Fitness Machine Profile may also be used to
control a Fitness Machine (e.g., set the targeted speed or set the targeted expended energy for a training
session).
1. Treadmill
2. Cross Trainer
3. Step Climber
4. Stair Climber
5. Rower
6. Indoor Bike
The Fitness Machine Profile also provides recommendations for Fitness Machines that are designed for
use in a private environment (e.g., a home) and for Fitness Machines that are designed for use in public
environments (e.g., a gym).
1.2 Conformance
If conformance to this Profile is claimed, all capabilities indicated as mandatory for this Profile shall be
supported in the specified manner (process-mandatory). This also applies for all optional and conditional
capabilities for which support is indicated. All mandatory capabilities, and optional and conditional
capabilities for which support is indicated, are subject to verification as part of the Bluetooth qualification
program.
• Bluetooth Core Specification v4.0 [2] with the Bluetooth Core Specification Supplement v5 or later [3]
2 Configuration
2.1 Roles
The profile defines two roles: Fitness Machine and Collector.
The Fitness Machine is the device that reports training-related data to a Collector. The Collector is the
device (e.g., a mobile phone) that receives the training-related data from a Fitness Machine. If supported
by the Fitness Machine, the Collector may also control the Fitness Machine (e.g., set the targeted speed
or set the targeted expended energy for a training session).
Figure 2.1: Relationships between services and profile roles for the Fitness Machine profile
Note: Profile roles are represented by blue boxes and the services are represented by gray boxes.
A Fitness Machine instantiates the Fitness Machine Service [1] and may also expose the User Data
Service [8] and the Device Information Service [9].
Where the term BR/EDR is used in this document, it also includes the optional use of AMP.
The User Data Service [8], if supported, shall be instantiated as a «Primary Service». See additional
requirements in Section 3.2.
The Fitness Machine may instantiate the Device Information Service [9]. See additional requirements in
Section 3.3.
In addition to the Fitness Machine requirements in this section, refer to Sections 5.1 and 6.1 for additional
Fitness Machine requirements for the low energy transport and to Sections 5.3 and 6.3 for additional
Fitness Machine requirements the BR/EDR transport.
When the Fitness Machine is using Connectable Undirected Advertising, it should include the Service
Data AD Type in its Advertising Data to reduce unwanted connection requests by unintended Collectors.
The Service Data payload (defined in [1]) includes a Flags field and a Fitness Machine Type field.
A Fitness Machine should expose the UDS characteristics defined in Table 3.2.
First Name O
Weight O
Gender O
Height O
Age O
Date of Birth O
VO2 Max O
Language O
If the Date of Birth characteristic exists in the User Data Service, a value of 0 for Year shall not be used,
but a value of 0 for Month and Day may be used for privacy reasons.
A Fitness Machine designed for use in a private environment (e.g. a home) should support the User Data
Retention feature defined in [1], and therefore, the support for multiple users should also be supported. In
this case, the Fitness Machine shall store the user data for each supported user for a later use, as
defined in [8].
A Fitness Machine designed for use in a public environment (e.g. a gym) should not support the User
Data Retention feature defined in [1]. This recommendation is applicable in any situation where privacy
issues require that the user’s data not be stored in the equipment after the user has completed the
training session.
For both types of Fitness Machine, when the user data is deleted (e.g. either with the Delete User Data
procedure defined in Section 4.5.2.2.3 or after a disconnection), the UDS characteristics exposed by the
Fitness Machine shall be set to their default values, and the User Index characteristic shall be set to
0xFF.
If two or more Collectors are connected to the same Fitness Machine, refer to [8], Section 1.5.1, for
requirements on how to handle this situation.
If a user has configured the Fitness Machine with their user data (for example, via the UI of the Fitness
Machine) before a connection is established, and if a Collector initiates a connection and attempts to
access the user data (see Section 4.8), the user should be prompted (via the UI of the Fitness Machine)
to select the source of the user data for the Fitness Machine to use.
In order to allow the Collector to log the type of equipment used in a training session, the Fitness Machine
should instantiate the Device Information Service characteristics defined in Table 3.3.
The Collector should support the User Data Service [8] as well as Device Information Service [9].
The table below summarizes additional GATT sub-procedure requirements beyond those required by all
GATT Clients.
C.1: Mandatory to support at least one of these Service Discovery sub-procedures when using the LE
transport. Excluded when using the BR/EDR transport, because the Service Discovery Protocol
(SDP) must be used in this case.
C.2: Mandatory to support at least one of these Characteristic Discovery sub-procedures.
C.3: Mandatory if the writing of UDS characteristics or the GAP Device Name characteristic is supported
(see Section 3.1.1.3).
C.4: Mandatory if the Collector writes UDS characteristics, over the low energy feature of Bluetooth that
are UTF8 strings; otherwise Optional.
The Collector shall discover the Fitness Machine Service and may also attempt to discover the User Data
Service and the Device Information Service.
When using the BR/EDR transport, the Collector shall initiate service discovery by retrieving the SDP
record of the Fitness Machine Service as defined in [1].
Where a characteristic is discovered that can be indicated or notified, the Collector shall also discover the
associated Client Characteristic Configuration descriptor.
The Collector shall use the GATT Discover All Characteristic Descriptors sub-procedure to discover the
characteristic descriptors.
The discovery requirements for the Collector are shown in Table 4.3.
Treadmill Data O
Rower Data O
Training Status M
In order for the Collector to discover the characteristics of the User Data Service, it shall use either the
GATT Discover All Characteristics of a Service sub-procedure or the GATT Discover Characteristics by
UUID sub-procedure to discover all characteristics of this service.
If the Collector supports the User Data Service, the requirements for the Collector are shown in Table 4.4.
User Index M
First Name O
Weight O
Gender O
Height O
Age O
Date of Birth O
VO2 Max O
Language O
Table 4.4: Discovery Requirements for a Collector That Supports the User Data Service
Table 4.4 includes some common optional User Data Service characteristics in the context of the Fitness
Machine Profile, but other User Data Service characteristics, not listed here, may also be used.
In order for the Collector to discover the characteristics of the Device Information Service, it shall use
either the GATT Discover All Characteristics of a Service sub-procedure or the GATT Discover
Characteristics by UUID sub-procedure to discover all characteristics of this service.
In many cases, this will allow the Collector to adapt to the supported features of the Fitness Machine (for
example, unsupported features will not be shown on the UI of the Collector) as defined in [1]. If one of the
features bit is set to 1 (meaning this feature is supported), the Collector shall assume that the related bits
of the Flags fields are used by the Fitness Machine and the associated value might be shown on the UI of
the Collector. Otherwise, it is unnecessary for the Collector to expect a value related to an unsupported
feature.
If the Collector reads a Fitness Machine Feature characteristic with Reserved for Future Use (RFU) bits
that are non-zero, the Collector shall ignore those bits and continue to process the Fitness Machine
Feature characteristic in the same way as if all the RFU bits had been zero. This is to enable compatibility
with future Fitness Machine Service updates.
The Collector shall be able to receive multiple notifications of the Treadmill Data characteristic from a
Fitness Machine for the case where the Fitness Machine has training-related data to send (typically
during a training session).
The Collector shall determine the contents of the Treadmill Data characteristic based on the contents of
the Flags field. This allows the Collector to determine whether or not the optional fields are present.
For low energy devices, and as defined in [1], a Data Record may be split and transmitted in multiple
notifications if the payload exceeds the ATT_MTU size; therefore, the Collector shall be able to handle
Data Records that are sent in one or more notifications. This requirement does not affect BR/EDR
devices.
If the Collector receives a Treadmill Data characteristic with Reserved for Future Use (RFU) bits of the
Flags field that are non-zero, the Collector shall ignore those bits and any additional data that the packet
contains and continue to process the Treadmill Data characteristic in the same way as if all the RFU bits
had been zero.
If the Collector receives a Treadmill Data characteristic with additional unrecognized octets, the Collector
shall ignore the unrecognized octets. This is to enable compatibility with future service updates for the
case where available octets in the characteristic are specified for optional use.
The Collector shall be tolerant and behave appropriately (i.e., the Collector shall be able to continue to
process commands and/or receive data normally) if receiving the special values for optional fields
meaning “Data Not Available”, as defined in the Fitness Machine Service [1].
The Collector shall be able to receive multiple notifications of the Cross Trainer Data characteristic from a
Fitness Machine for the case where the Fitness Machine has training-related data to send (typically
during a training session).
The Collector shall determine the contents of the Cross Trainer Data characteristic based on the contents
of the Flags field. This allows the Collector to determine whether or not the optional fields are present.
For low energy devices, and as defined in [1], a Data Record may be split and transmitted in multiple
notifications if the payload exceeds the ATT_MTU size; therefore, the Collector shall be able to handle
Data Records that are sent in one or more notifications. This requirement does not affect BR/EDR
devices.
If the Collector receives a Cross Trainer Data characteristic with Reserved for Future Use (RFU) bits of
the Flags field that are non-zero, it shall ignore those bits and any additional data that the packet contains
and continue to process the Cross Trainer Data characteristic in the same way as if all the RFU bits are
zero.
If the Collector receives a Cross Trainer Data characteristic with additional unrecognized octets, the
Collector shall ignore the unrecognized octets. This is to enable compatibility with future service updates
for the case where available octets in the characteristic are specified for optional use.
The Collector shall be tolerant and behave appropriately (that is, the Collector shall be able to continue to
process commands and/or receive data normally) if receiving the special values for optional fields
meaning “Data Not Available”, as defined in the Fitness Machine Service [1].
The Collector shall be able to receive multiple notifications of the Step Climber Data characteristic from a
Fitness Machine for the case where the Fitness Machine has training-related data to send (typically
during a training session).
The Collector shall determine the contents of the Step Climber Data characteristic based on the contents
of the Flags field. This allows the Collector to determine whether or not the optional fields are present.
For low energy devices, and as defined in [1], a Data Record may be split and transmitted in multiple
notifications if the payload exceeds the ATT_MTU size; therefore, the Collector shall be able to handle
Data Records that are sent in one or more notifications. This requirement does not affect BR/EDR
devices.
If the Collector receives a Step Climber Data characteristic with Reserved for Future Use (RFU) bits of the
Flags field that are non-zero, the Collector shall ignore those bits and any additional data that the packet
contains and continue to process the Step Climber Data characteristic in the same way as if all the RFU
bits had been zero.
If the Collector receives a Step Climber Data characteristic with additional unrecognized octets, the
Collector shall ignore the unrecognized octets. This is to enable compatibility with future service updates
for the case where available octets in the characteristic are specified for optional use.
The Collector shall be tolerant and behave appropriately (that is, the Collector shall be able to continue to
process commands and/or receive data normally) if receiving the special values for optional fields
meaning ”Data Not Available”, as defined in the Fitness Machine Service [1].
The Collector shall be able to receive multiple notifications of the Stair Climber Data characteristic from a
Fitness Machine for the case where the Fitness Machine has training-related data to send (typically
during a training session).
The Collector shall determine the contents of the Stair Climber Data characteristic based on the contents
of the Flags field. This allows the Collector to determine whether or not the optional fields are present.
For low energy devices, and as defined in [1], a Data Record may be split and transmitted in multiple
notifications if the payload exceeds the ATT_MTU size; therefore, the Collector shall be able to handle
data records that are sent in one or more notifications. This requirement does not affect BR/EDR devices.
If the Collector receives a Stair Climber Data characteristic with Reserved for Future Use (RFU) bits of the
Flags field that are non-zero, the Collector shall ignore those bits and any additional data that the packet
contains and continue to process the Stair Climber Data characteristic in the same way as if all the RFU
bits had been zero.
If the Collector receives a Stair Climber Data characteristic with additional unrecognized octets, the
Collector shall ignore the unrecognized octets. This is to enable compatibility with future service updates
for the case where available octets in the characteristic are specified for optional use.
The Collector shall be tolerant and behave appropriately (that is, the Collector shall be able to continue to
process commands and/or receive data normally) if receiving the special values for optional fields
meaning “Data Not Available”, as defined in the Fitness Machine Service [1].
The Collector shall be able to receive multiple notifications of the Rower Data characteristic from a
Fitness Machine for the case where the Fitness Machine has training-related data to send (typically
during a training session).
The Collector shall determine the contents of the Rower Data characteristic based on the contents of the
Flags field. This allows the Collector to determine whether or not the optional fields are present.
For low energy devices, and as defined in [1], a Data Record may be split and transmitted in multiple
notifications if the payload exceeds the ATT_MTU size; therefore, the Collector shall be able to handle
Data Records that are sent in one or more notifications. This requirement does not affect BR/EDR
devices.
If the Collector receives a Rower Data characteristic with Reserved for Future Use (RFU) bits of the Flags
field that are non-zero, it shall ignore those bits and any additional data that the packet contains and
continue to process the Rower Data characteristic in the same way as if all the RFU bits had been zero.
If the Collector receives a Rower Data characteristic with additional unrecognized octets, the Collector
shall ignore the unrecognized octets. This is to enable compatibility with future service updates for the
case where available octets in the characteristic are specified for optional use.
The Collector shall be tolerant and behave appropriately (that is, the Collector shall be able to continue to
process commands and/or receive data normally) if receiving the special values for optional fields
meaning “Data Not Available”, as defined in the Fitness Machine Service [1].
The Collector shall be able to receive multiple notifications of the Indoor Bike Data characteristic from a
Fitness Machine for the case where the Fitness Machine has training-related data to send (typically
during a training session).
The Collector shall determine the contents of the Indoor Bike Data characteristic based on the contents of
the Flags field. This allows the Collector to determine whether or not the optional fields are present.
For low energy devices, and as defined in [1], a Data Record may be split and transmitted in multiple
notifications if the payload exceeds the ATT_MTU size; therefore, the Collector shall be able to handle
data records that are sent in one or more notifications. This requirement does not affect BR/EDR devices.
If the Collector receives an Indoor Bike Data characteristic with Reserved for Future Use (RFU) bits of the
Flags field that are non-zero, the Collector shall ignore those bits and any additional data that the packet
contains and continue to process the Indoor Bike Data characteristic in the same way as if all the RFU
bits had been zero.
If the Collector receives an Indoor Bike Data characteristic with additional unrecognized octets, the
Collector shall ignore the unrecognized octets. This is to enable compatibility with future service updates
for the case where available octets in the characteristic are specified for optional use.
The Collector shall be tolerant and behave appropriately (i.e. the Collector shall be able to continue to
process commands and/or receive data normally) if receiving the special values for optional fields
meaning “Data Not Available”, as defined in the Fitness Machine Service [1].
The Collector shall be able to receive multiple notifications of the Training Status characteristic from a
Fitness Machine for the case where the Fitness Machine has training status-related data to send (e.g.
typically during a training session).
The Collector shall determine the contents of the Training Status characteristic based on the contents of
the Flags field. This allows the Collector to determine whether or not the optional fields are present.
If the Extended String bit of the Flags field is set to 1, meaning that the Training Status String exceeds the
maximum size that can be transmitted in a notification, the Collector should use the GATT Read Long
procedure to retrieve the remaining octets of this characteristic.
If the Collector receives a Training Status characteristic with Reserved for Future Use (RFU) bits of the
Flags field that are non-zero, it shall ignore those bits and any additional data that the packet contains
and continue to process the Training Status characteristic in the same way as if all the RFU bits had been
zero.
If the Collector receives a Training Status characteristic with additional unrecognized octets, the Collector
shall ignore the unrecognized octets. This is to enable compatibility with future service updates for the
case where available octets in the characteristic are specified for optional use.
Machine (i.e., using the Set Target Inclination of the Fitness Machine Control Point defined in
Section 4.4.14.2.4).
In order to perform any of the supported control procedures, the Collector shall request the control of the
Fitness Machine by using the Request Control procedure defined in Section 4.4.14.2.1.
If the Request Control procedure succeeds, the Collector may perform a write to the Fitness Machine
Control Point to request a desired procedure. A procedure begins when the Collector writes a particular
Op Code to the Fitness Machine Control Point to perform some desired action, and the procedure ends
when the Collector sends a confirmation to acknowledge the Fitness Machine Control Point indication
sent by the Fitness Machine at the end of the procedure. This indication includes: the Response Code,
the Requested Op Code, and the Response Value as defined in [1]. Otherwise, the control is not
permitted, and the Fitness Machine will respond to any requests from the Collector with the appropriate
error response.
Request Control M
Reset M
Start or Resume O
Stop or Pause O
Table 4.5: Fitness Machine Control Point Procedure Requirements for the Collector
The Collector shall wait for the Fitness Machine Control Point Indication with the Response Value set to
Success, indicating successful operation, an error response value as described in Section 4.7, or the
procedure to time out according to the procedure time-out operation described in Section 4.4.14.3.
Note that the control is permitted after the Request Control procedure succeeds until a disconnection
occurs or until the Fitness Machine Status characteristic is notified by the Fitness Machine with the Op
Code value set to Control Permission Lost (0xFF).
The Collector shall wait for the Fitness Machine Control Point Indication with the Response Value set to
Success, indicating successful operation, an error response value as described in Section 4.7, or the
procedure to time out according to the procedure time-out operation described in Section 4.4.14.3.
The Collector shall wait for the Fitness Machine Control Point Indication with the Response Value set to
Success, indicating successful operation, an error response value as described in Section 4.7, or the
procedure to time out according to the procedure time-out operation described in Section 4.4.14.3.
The Collector shall wait for the Fitness Machine Control Point Indication with the Response Value set to
Success, indicating successful operation, an error response value as described in Section 4.7, or the
procedure to time out according to the procedure time-out operation described in Section 4.4.14.3.
The Collector shall wait for the Fitness Machine Control Point Indication with the Response Value set to
Success, indicating successful operation, an error response value as described in Section 4.7, or the
procedure to time out according to the procedure time-out operation described in Section 4.4.14.3.
The Collector shall wait for the Fitness Machine Control Point Indication with the Response Value set to
Success, indicating successful operation, an error response value as described in Section 4.7, or the
procedure to time out according to the procedure time-out operation described in Section 4.4.14.3.
The Collector shall wait for the Fitness Machine Control Point Indication with the Response Value set to
Success, indicating successful operation, an error response value as described in Section 4.7, or the
procedure to time out according to the procedure time-out operation described in Section 4.4.14.3.
The Collector shall wait for the Fitness Machine Control Point Indication with the Response Value set to
Success, indicating successful operation, an error response value as described in Section 4.7, or the
procedure to time out according to the procedure time-out operation described in Section 4.4.14.3.
The Collector shall wait for the Fitness Machine Control Point Indication with the Response Value set to
Success, indicating successful operation, an error response value as described in Section 4.7, or the
procedure to time out according to the procedure time-out operation described in Section 4.4.14.3.
The Collector shall wait for the Fitness Machine Control Point Indication with the Response Value set to
Success, indicating successful operation, an error response value as described in Section 4.7, or the
procedure to time out according to the procedure time-out operation described in Section 4.4.14.3.
The Collector shall wait for the Fitness Machine Control Point Indication with the Response Value set to
Success, indicating successful operation, an error response value as described in Section 4.7, or the
procedure to time out according to the procedure time-out operation described in Section 4.4.14.3.
The Collector shall wait for the Fitness Machine Control Point Indication with the Response Value set to
Success, indicating successful operation, an error response value as described in Section 4.7, or the
procedure to time out according to the procedure time-out operation described in Section 4.4.14.3.
The Collector shall wait for the Fitness Machine Control Point Indication with the Response Value set to
Success, indicating successful operation, an error response value as described in Section 4.7, or the
procedure to time out according to the procedure time-out operation described in Section 4.5.2.3.
The Collector shall wait for the Fitness Machine Control Point Indication with the Response Value set to
Success, indicating successful operation, an error response value as described in Section 4.7, or the
procedure to time out according to the procedure time-out operation described in Section 4.4.14.3.
The Collector shall wait for the Fitness Machine Control Point Indication with the Response Value set to
Success, indicating successful operation, an error response value as described in Section 4.7, or the
procedure to time out according to the procedure time-out operation described in Section 4.4.14.3.
The Collector shall wait for the Fitness Machine Control Point Indication with the Response Value set to
Success, indicating successful operation, an error response value as described in Section 4.7, or the
procedure to time out according to the procedure time-out operation described in Section 4.4.14.3.
The Collector shall wait for the Fitness Machine Control Point Indication with the Response Value set to
Success, indicating successful operation, an error response value as described in Section 4.7, or the
procedure to time out according to the procedure time-out operation described in Section 4.4.14.3.
The Collector shall wait for the Fitness Machine Control Point Indication with the Response Value set to
Success, indicating successful operation, an error response value as described in Section 4.7, or the
procedure to time out according to the procedure time-out operation described in Section 4.4.14.3.
The Collector shall wait for the Fitness Machine Control Point Indication with the Response Value set to
Success, indicating successful operation, an error response value as described in Section 4.7, or the
procedure to time out according to the procedure time-out operation described in Section 4.5.2.3.
The Collector shall wait for the Fitness Machine Control Point Indication with the Response Value set to
Success, indicating successful operation, an error response value as described in Section 4.7, or the
procedure to time out according to the procedure time-out operation described in Section 4.5.2.3.
If the Spin Down Control procedure succeeds with the Control Parameter value set to Start, the Collector
should use the parameters received along with the success response in order to provide guidance to the
user for the spin down procedure.
If the Collector receives a spin down request from the Fitness Machine (a Fitness Machine Status
notification with the Op Code 0x13 followed by the Spin Down Status value set to 0x01), the Collector
may either ignore the request or initiate the spin down procedure, as defined in [1].
The Collector shall wait for the Fitness Machine Control Point Indication with the Response Value set to
Success, indicating successful operation, an error response value as described in Section 4.7, or the
procedure to time out according to the procedure time-out operation described in Section 4.5.2.3.
In the context of the Fitness Machine Control Point characteristic, a procedure is not considered started
and not queued in the Fitness Machine when a write to the Fitness Machine Control Point results in an
ATT Error Response.
A procedure is considered to have timed out if a Fitness Machine Control Point indication is not received
within the ATT transaction timeout, defined as 30 seconds in [2] Volume 2, Part F, Section 3.3.3, from the
start of the procedure.
If the link is lost while a Fitness Machine Control Point procedure is in progress, then the procedure shall
be considered to have timed out.
Thus, a Collector shall start a timer with the value set to the ATT transaction timeout after the write
response is received from the Fitness Machine. The timer shall be stopped when a Fitness Machine
Control Point indication is received and the Op Code is set to Response Code. If the timer expires, then
the procedure shall be considered to have failed.
If a Fitness Machine Control Point procedure times out, then no new Fitness Machine Control Point
procedure shall be started by the Collector until a new link is established with the Fitness Machine. To
ensure a good user experience, if a Fitness Machine Control Point procedure times out, the Collector
should disconnect and then reconnect.
The Collector shall be able to receive multiple notifications of the Fitness Machine Status characteristic
from a Fitness Machine for the case where the Fitness Machine has status-related data to send (typically
during a training session).
The Collector shall be able to decode the Parameter field of the Fitness Machine Status, if present, as
defined in [1].
If the Fitness Machine does not support the User Data Retention feature, the Collector shall use the
Register New User procedure defined in Section 4.5.2.2.1, along with a Consent Code defined by the
user (or automatically generated by the Collector) in order to write the User Data characteristics each time
a connection is established.
If the Fitness Machine supports the User Data Retention feature, when the Collector initiates a connection
to a known Fitness Machine, the Collector should use the Consent procedure defined in Section
4.5.2.2.2, along with the Consent Code defined during the registration procedure, in order to read or write
the User Data characteristics.
Refer to Section 4.8 for more information about the user data access methods.
If supported by the Fitness Machine, the Collector shall configure notifications of the Database Change
Increment characteristic (i.e., via the Client Characteristic Configuration descriptor) in order to enable the
User Data Synchronization procedure defined in Section 4.5.4.
If the Collector receives a notification of the Database Change Increment characteristic, this is designed
to alert the Collector that a change to at least one of the values has occurred and the Collector should
read the UDS characteristic values that it supports.
After the Collector has completed writing to UDS characteristics, the Collector shall write an incremented
value to the Database Change Increment characteristic (i.e., the Collector shall increment the current
value by 1).
The Collector may read the Database Change Increment characteristic to determine whether or not the
value cached in the Collector is equal to, greater than, or less than the value in the Fitness Machine.
A rollover of the value of the Database Change Increment characteristic is extremely unlikely over the life
of the device, but if a rollover occurs, this can be handled in an implementation specific way (e.g., the
implementation can ask the user to confirm the values via the UI).
Refer to Section 4.8 for more information on the user data access methods.
The Collector may perform a write to the User Control Point to request a desired procedure. A procedure
begins when the Collector writes a particular Op Code to the User Control Point to perform some desired
action, and it ends when the Collector sends a confirmation to acknowledge the User Control Point
indication sent by the Fitness Machine at the end of the procedure. This indication includes: the
Response Code, the Requested Op Code, and the Response Value and may also include a Response
Parameter as defined in [8].
Refer to Section 4.8 for more information on the User Data access methods.
Consent M
Collectors should not cache the Consent Code nor the User ID for later use, since the user data will be
deleted by the Fitness Machine when the connection is terminated.
The Collector shall wait for the Response Code User Control Point indication with the Response Value
set to Success, indicating successful operation, with a Response Parameter value that represents the
User Index assigned by the Fitness Machine for the new user, or for the procedure to time out according
to the procedure time-out operation described in Section 4.5.2.3. When the procedure is successful, the
Fitness Machine will return a Response Code containing the User Index.
The Collector shall wait for the Response Code User Control Point indication with the Response Value
set to Success, indicating a successful operation, with a Response Parameter value that represents the
User Index assigned by the Fitness Machine for the new user, or the procedure to time out according to
the procedure time out operation described in Section 4.5.2.3. When the procedure is successful, the
Fitness Machine will return a Response Code containing the User Index.
The Collector shall wait for the Response Code User Control Point indication with the Response Value
set to Success, indicating successful operation, or for the procedure to time out according to the
procedure time-out operation described in Section 4.5.2.3.
In the context of the User Control Point characteristic, a procedure is not considered started and is not
queued in the Fitness Machine when a write to the User Control Point results in an ATT Error Response.
A procedure is considered to have timed out if a User Control Point indication is not received within the
ATT transaction timeout, defined as 30 seconds in [2] Volume 2, Part F, Section 3.3.3, from the start of
the procedure.
If the link is lost while a User Control Point procedure is in progress, then the procedure shall be
considered to have timed out.
Thus, a Collector shall start a timer with the value set to the ATT transaction timeout after the write
response is received from the Fitness Machine. The timer shall be stopped when a User Control Point
indication is received and the Op Code is set to Response Code. If the timer expires, then the procedure
shall be considered to have failed.
If a User Control Point procedure times out, then no new User Control Point procedure shall be started by
the Collector until a new link is established with the Fitness Machine. To help ensure a good user
experience, if a User Control Point procedure times out, the Collector should disconnect and then
reconnect.
When a connection is established to a Fitness Machine supporting the User Data Retention feature, with
a previously registered user, and the Consent procedure has succeeded, the Collector shall read the
Database Change Increment characteristic value and compare it to its local (cached) value. Based on the
comparison between these two values, the Collector shall perform the appropriate action defined in Table
4.7. After the synchronization procedure is completed, the Collector and the Fitness Machine will have the
same UDS characteristic and Database Change Increment values.
Database Change Increment values are equal in The databases are synchronized and do not
both the Collector and the Fitness Machine. require any action by the Collector.
The Database Change Increment value in the The Collector shall read and cache all the UDS
Fitness Machine is greater than the value in the characteristics supported by the Collector. The
Collector (i.e., the user data at the Fitness Collector shall also cache the Database Change
Machine is more recent). Increment value for future use.
The Database Change Increment value in the The Collector shall write updated UDS
Fitness Machine is less than the value in the characteristics to the Fitness Machine. After the
Collector (i.e., the user data at the Collector is user data is updated, the Collector shall also write
more recent). its local Database Change Increment value to the
Fitness Machine in order to complete the
synchronization procedure.
Table 4.7: User Data Synchronization Procedure Action Requirements
If notifications of the Database Change Increment characteristic are supported by the Fitness Machine,
the Collector shall configure it for notifications.
When the Collector updates the cached UDS characteristics while not in a connection (e.g., through its
UI), it shall increment by 1 the value of the cached Database Change Increment characteristic. This is to
synchronize the UDS characteristics values with the Fitness Machine at the next connection.
When a Collector that supports the update of UDS characteristics (e.g., through its UI) is connected to a
Fitness Machine, and when the Collector updates one or more UDS Characteristics values exposed by
the Fitness Machine, the Collector shall increment its local Database Change Increment value by 1 and
write the incremented value of the Database Change Increment characteristic to the Fitness Machine.
• Invalid Parameter
• Operation Failed
The Fitness Machine does not support the User The Collector shall use the Register New User
Data Retention feature. procedure defined in Section 4.5.2.2.1 each time
a new connection is established, followed by the
Consent procedure defined in Section 4.5.2.2.2,
in order to access the user data of the Fitness
Machine.
The Fitness Machine supports the User Data The Collector shall use the Register New User
Retention feature, and the user has not been procedure defined in Section 4.5.2.2.1, followed
registered. by the Consent procedure defined in
Section 4.5.2.2.2, in order to access the user data
of the Fitness Machine.
The Collector shall use the Consent procedure
The Fitness Machine supports the User Data
defined in Section 4.5.2.2.2 in order to access the
Retention feature, and the user is registered
user data of the Fitness Machine.
If the Consent procedure succeeds, the Collector
should initiate the User Data Synchronization
procedure defined in Section 4.5.4.
If the Consent procedure fails, the Collector shall
assume that the user data no longer exists on the
Fitness Machine (for example, the data has been
deleted via the UI of the Fitness Machine) and
should reinitiate the Register procedure defined in
in Section 4.5.2.2.1.
After the Consent procedure has succeeded, the Collector should write the user data to the Fitness
Machine.
For privacy reasons, the Collector should use the Delete User procedure defined in Section 4.5.2.2.3
before terminating the connection with a Fitness Machine that does not support the User Data Retention
feature (e.g., a Fitness Machine designed for use in a public environment).
If the connection is terminated because of a link loss, the Collector should attempt to reinitiate the
connection. If the connection is reestablished within a short period of time (typically five seconds), the
Collector should use the Consent procedure defined in Section 4.5.2.2.2 to access the user data.
• Section 5.1.1 describes the connection procedure that is used when the Fitness Machine does not
support bonding, or if the Fitness Machine supports bonding but is not bonded with any Collectors.
• Section 5.1.2 describes the connection procedure that is used when the Fitness Machine is bonded
with one or more Collectors.
• Section 5.1.3 describes the connection procedure that is used when the established connection is
broken after a link loss and a reconnection is required.
• Section 5.1.4 describes the connection procedure that is used when the advertisement packet
includes the Service Data AD Type.
A Fitness Machine that is designed for use in a public environment should not request the bonding
procedure with the Collector.
A Fitness Machine that is designed for use in a private environment may request the bonding procedure
with the Collector.
When a bond is created, refer to recommendations in Section 5.1.2.
When the Fitness Machine no longer requires a connection, it should perform the GAP Terminate
Connection procedure.
If the Fitness Machine has no data to transfer or a training session is terminated, and the connection is
idle, the Fitness Machine should wait at least longer than the maximum connection interval (e.g., 5
seconds) before performing the GAP Terminate Connection procedure. This allows the Collector to
perform any additional required actions (e.g., set new targeted value, read and write to UDS
characteristics, or delete the user data). For devices that support man-in-the-middle (MITM) protection, a
longer duration may be needed to allow the pairing sequence to complete.
If a Fitness Machine requires a connection to a Collector that did not use a resolvable private address
during bonding, the Fitness Machine may use Low Duty Cycle Directed Advertisements in order to
advertise to only the Collector for which it has data. When a Collector used a resolvable private address
during bonding, and the Fitness Machine requires a connection to that Collector, the Fitness Machine
should use the Undirected Connectable Mode along with the Service Data AD Type described in
Section 3.1.1.5 to reduce unwanted connection requests.
If a connection is not established within T GAP(adv_fast_period), the Fitness Machine may either continue
sending background advertising to reduce power consumption for as long as it chooses, or stop
advertising.
The advertising interval and the time to perform advertising are implementation specific and should be
configured with consideration for user expectations of connection establishment time using the GAP
timers defined in [2] Volume 3, Part C, Section 9.3.11.
If a connection is not established within a time limit defined by the Fitness Machine, the Fitness Machine
may exit the GAP Connectable Mode.
When the Fitness Machine is disconnected and the Fitness Machine is ready for reconnection (e.g., when
commanded by the user), the Fitness Machine should reinitiate the connection procedure (e.g., start
advertising).
If the Fitness Machine has no data to transfer or a training session is terminated, and the connection is
idle, the Fitness Machine should wait 5 seconds (the idle connection timeout interval) before performing
the GAP Terminate Connection procedure. This allows the Collector to perform any additional required
actions (e.g., read and write to UDS characteristics). For devices that support man-in-the-middle (MITM)
protection, a longer duration may be needed to allow completion of the pairing sequence.
If a connection is not established within T GAP(scan_fast_period), the Collector may either continue
background scanning to reduce power consumption or stop scanning.
The connection interval, scan interval, scan window, and time to perform scanning are implementation
specific and should be configured with consideration for user expectations of connection establishment
time using the GAP timers defined in [2] Volume 3, Part C, Section 9.3.11.
If a connection is not established within a time limit defined by the Collector, the Collector may exit the
connection establishment procedure.
When the connection is established, the Collector may bond with the Fitness Machine, if requested by the
Fitness Machine.
Upon initial connection, the Collector may initiate the Register New User procedure defined in
Section 4.5.2.2.1 and may configure the new user data by writing to UDS characteristics.
The Collector should terminate the connection when the measurement session is terminated at the
Collector by the user.
When the Collector is disconnected, the Collector may continue scanning for advertisements from the
Fitness Machine and may initiate a new connection.
• User interaction confirms that the user wants to pair with the remote device again,
• Service discovery has been performed. (If the local device had previously determined that the remote
device did not have the «Service Changed» characteristic, then service discovery may be skipped
because the service is not allowed to change per the Core Specification.)
When the Fitness Machine no longer has data to send, it may disconnect the link, depending on the use
cases of the devices and other profiles connected on either device.
The Collector should terminate the connection when the measurement session is terminated at the
Collector by the user.
When the Fitness Machine is disconnected and it is ready for reconnection (e.g., when commanded by
the user), the Fitness Machine should initiate a connection with the Collector.
If the Fitness Machine has no data to transfer (or no further data to transfer) and the connection is idle,
the Fitness Machine should wait 5 seconds (the idle connection timeout interval) before performing the
GAP Terminate Connection procedure. This allows the Collector to perform any additional required
actions (e.g., read and write to UDS characteristics). For devices that support man-in-the-middle (MITM)
protection, a longer duration may be needed to allow completion of the pairing sequence.
6 Security Considerations
This section describes the security considerations for a Fitness Machine and Collector.
• All supported characteristics specified by the Fitness Machine Service except the Fitness Machine
Control Point shall be set to LE Security Mode 1 and Security Level 1 or higher.
• The Fitness Machine Control Point shall be set to LE Security Mode 1 and Security Level 2 or higher.
• If used, all characteristics exposed by the User Data Service for use by this profile should be set to
the same security mode and level as the Fitness Machine Control Point characteristic.
• If present and writable, the Device Name descriptor should support authentication.
• A Fitness Machine that is designed for use in a public environment should not request bonding.
• A Fitness Machine that is designed for use in a private environment may request bonding.
• If the Fitness Machine has a UI or any other mechanisms enabling a higher security level (e.g., Out of
Band using NFC), the Fitness Machine may request MITM protection (Security Mode 1, Level 3).
• The Collector shall support bonding in case it is requested by the Fitness Machine.
• The Collector shall accept any request by the Fitness Machine for LE Security Mode 1 and Security
Level 2 or higher.
• The Fitness Machine may initiate Dedicated Bonding with the Collector. However, if the Fitness
Machine supports multiple users, then it shall initiate Dedicated Bonding and shall support as many
bonds as the number of supported users.
• The Collector shall support bonding in case it is requested by the Fitness Machine.
• If the Fitness Machine has a UI or any other mechanisms enabling a higher security level, the Fitness
Machine may request MITM protection.
7.1 Modes
The Mode procedures as defined in GAP describe requirements for both Fitness Machines and
Collectors. This profile further refines the requirements.
Bondable Mode O O
General Bonding O O
9 References
[1] Fitness Machine Service
[2] Bluetooth Core Specification, v4.0 or later
[3] Bluetooth Core Specification Supplement, v5 or later
[4] Service UUIDs, Characteristic and Descriptor descriptions accessible via the Bluetooth SIG
Assigned Numbers
[5] Document Naming Procedure, Bluetooth SIG (BARB Approved)
[6] Bluetooth Documentation Review Guidelines, V10r04, 20 January 2004
[7] ITU-T Recommendation Z.120, Message Sequence Chart (MSC)
[8] User Data Service
[9] Device Information Service