M7i Direct Communication
Overview
This development documentation supplements the M Series Direct by providing details for communicating with the M7i. The manufacturer specific data structure is where the M7i differs from other M Series products and will be the primary focus of this document. The transmission parameters are identical to those for the other M Series products, so please reference the M Series Direct documentation for details about Transmission and Broadcast Data Structure.
Version Note
This documentation applies to M7i consoles with version 1.05 and above.
Advertising Data Structure
Within the advertising data section are several sections of structured and unstructured data. Some APIs will process the structured data portions while others will require manual parsing of this section.
The local name
portion for the M7i advertising data packet will be M7
(as opposed to the M3
value used for all other M Series equipment).
Manufacturer Specific Data Structure
The manufacturer specific data portion uses Keiser’s proprietary data structure. This section will require a custom parser to extract the data as data sizes vary, and some bitwise operations are required.
The manufacturer specific data section contains this data structure as a concatenated byte stream with a two-byte company identifier prefix. The two-byte prefix, along with the local name can be used to ensure the packets are coming from a Keiser M Series product. All attributes are unsigned integers unless otherwise noted. All two-byte values are little-endian (LSB first, MSB second).
Data Stream
02 01 01 05 00 38 38 03 46 05 73 00 0D 00 04 27 0A 20 03 36 01
Byte Index | Attribute | Size | Example Value |
---|---|---|---|
0, 1 | Company ID | 2 Byte | 02 01 |
2 | Version Major | 1 Byte | 01 |
3 | Version Minor | 1 Byte | 05 |
4 | Data Type | 1 Byte | 00 |
5 | Equipment ID | 1 Byte | 38 |
6, 7 | Cadence | 2 Byte | 38 03 |
8, 9 | Heart Rate | 2 Byte | 46 05 |
10, 11 | Power | 2 Byte | 73 00 |
12, 13 | Caloric Burn | 2 Byte | 0D 00 |
14 | Duration Minutes | 1 Byte | 04 |
15 | Duration Seconds | 1 Byte | 27 |
16 | Gear | 1 Byte | 0A |
17, 18 | Metabolic Equivalent | 2 Byte | 20 03 |
17, 18 | Step Count | 2 Byte | 36 01 |
Data Attributes
Equipment Version (Major & Minor)
The equipment version is a Semantic Versioning value composed by the major and minor version segments. This value is useful in determining the machines capabilities for parsing. Both values are transmitted as decimal representations and must to converted back to decimal upon parsing. The example segment values of 01
and 05
converts to equipment version 1.05
. (See Revision History)
Data Type
The data type integer contains information regarding whether data transmitted is real time (real time mode) or review values (review mode). A data type value of 0
indicates that the data being received is real time. A data type value 255
indicates the data being received are review values.
ID Collision Note
The M7i uses a different broadcast identifier from other M Series equipment so it can contain the same ordinal value as other non-M7i equipment without collision.
Equipment ID
The equipment ID contains the ordinal integer assigned to the equipment. This integer is only unique within the collision domain of the equipment (typically a room or facility). This integer will always be between 0
and 200
and is the primary method of identifying the equipment.
Cadence
The cadence value corresponds to the equipment's cadence in steps per minute with decimal precision transmitted as one order of magnitude larger (x10
). In review mode this value will correspond to the average cadence for the session.
Heart Rate
The heart rate value contains the heart rate detected by the equipment's 5kHz receiver when the user is wearing a compatible heart rate monitoring device. The value corresponds to the measured heart rate in beats per minute with decimal precision transmitted as one order of magnitude larger (x10
). If no heart rate monitor is detected, a 0
value will be transmitted. In review mode this value will correspond to the average heart rate for the session.
Power
The power value corresponds to the equipment's power value in watts with integer precision. In review mode this value will correspond to the average power for the session.
Caloric Burn
The caloric burn value corresponds to the approximated caloric burn value determined using the measured energy output of the user assuming an average caloric burn efficiency plus an average basil metabolic rate. This method is independent of age or weight. This value is an accumulated value for the session and is the same for real time and review modes.
Duration (Minutes & Seconds)
The duration value is the duration of the session represented in minutes and seconds. The example segment values of 04
and 27
convert to a duration value of 4 Minute, 39 Seconds
. This value is an accumulated value for the session and is the same for real time and review modes.
Gear
The gear value is an integer corresponding to the current gear as displayed on the equipment console, ranging from 1
to 24
. This value will continue transmitting 24
during braking while the equipment console will show 88
. This value is non-representative during the review mode and should be ignored.
Metabolic Equivalent
The Metabolic Equivalent value corresponds to the work performed during the session in MET with decimal precision transmitted as two orders of magnitude larger (x100
). This value is an accumulated value for the session and is the same for real time and review mode.
Step Count
The step count value corresponds to the accumulated step cycles (or rotations) for the session. A step cycle is equal to two steps. The example segment values of 01
and 36
covert to a step cycle count of 310 step cycles
and 620 steps
. This value is an accumulated value for the session and is the same for real time and review mode.
Data Parse Example
02 01 01 05 00 38 38 03 46 05 73 00 0D 00 04 27 0A 20 03 36 01
Data | Attribute | Parsed Value |
---|---|---|
02 01 | Prefix Bits | Ignore this data |
01 | Version Major | 0x01 = 1 |
05 | Version Minor | 0x05 = 5 |
00 | Data Type | 0x00 = 0 (Real Time Data) |
38 | Equipment Id | 0x38 = 56 |
38 03 | Cadence | 0x0338 = 824 (82.4 RPM) |
46 05 | Heart Rate | 0x0546 = 1350 (135.0 BPM) |
73 00 | Power | 0x0073 = 115 (115 watts) |
0D 00 | Caloric Burn | 0x000D = 13 (13 kilocalories) |
04 | Duration Minutes | 0x04 = 4 |
27 | Duration Seconds | 0x27 = 39 |
0A | Gear | 0x0A = 10 |
20 03 | Metabolic Equivalent | 0x0320 = 800 (8.00 MET) |
36 01 | Step Count | 0x0136 = 310 (620 steps) |
Bug Notice
There is a known bug in M7i version 1.05
in which the review data mode cycles between review data and real time data while the machine is at rest. To determine if values are review or real time, compare the cadence value. A non-zero value indicates the values in that broadcast are review. A zero value indicates the values in that broadcast are real time.
Revision History
Versions | Changes |
---|---|
1.00 - 1.04 | Pre-Production - Incompatible Structure |
1.05+ | Production Release - Finalized Structure |
Agreements and Guidelines
Using any of the APIs outlined in these documents make you subject to the following agreements. Please read all documents in their entirety as they govern your use of the APIs.