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 IndexAttributeSizeExample Value
0, 1Company ID2 Byte02 01
2Version Major1 Byte01
3Version Minor1 Byte05
4Data Type1 Byte00
5Equipment ID1 Byte38
6, 7Cadence2 Byte38 03
8, 9Heart Rate2 Byte46 05
10, 11Power2 Byte73 00
12, 13Caloric Burn2 Byte0D 00
14Duration Minutes1 Byte04
15Duration Seconds1 Byte27
16Gear1 Byte0A
17, 18Metabolic Equivalent2 Byte20 03
17, 18Step Count2 Byte36 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
DataAttributeParsed Value
02 01Prefix BitsIgnore this data
01Version Major0x01 = 1
05Version Minor0x05 = 5
00Data Type0x00 = 0 (Real Time Data)
38Equipment Id0x38 = 56
38 03Cadence0x0338 = 824 (82.4 RPM)
46 05Heart Rate0x0546 = 1350 (135.0 BPM)
73 00Power0x0073 = 115 (115 watts)
0D 00Caloric Burn0x000D = 13 (13 kilocalories)
04Duration Minutes0x04 = 4
27Duration Seconds0x27 = 39
0AGear0x0A = 10
20 03Metabolic Equivalent0x0320 = 800 (8.00 MET)
36 01Step Count0x0136 = 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

VersionsChanges
1.00 - 1.04Pre-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.