Giter VIP home page Giter VIP logo

keiser2garmin's Introduction

Garmin Keiser M Series BLE

This only records and displays data. It will not be analyzed by Garmin Connect (ex. distance, duration, effort and many more) due to limitations imposed by the vendor.

The way makes Garmin Connect to analyze the data: Keiser2ANT

Usage Tips

Install: Garmin Connect IQ Store Link

Change the bike ID: a Settings button can be clicked in the Connect IQ Store app on the phone (iOS or Android) after installation. It has to be set before opening any workout referencing this data field.

Monitor the if the data is captured.

After workout, full FIT data is can be downloaded from Garmin Connect (CIQ).

Try the offical mSeries app from Keiser to see if BLE data can be received by phone if the data is not shown on watch.

Technical Details

This implements a Garmin Connect IQ software to capture Keiser M series bikes Bluetooth LE (Bluetooth Smart, BLE) data according to their published specs.

Since Keiser only broadcasts the data (GAP), so no connection logic (GATT) is required. The program simply scans/receives and read the device with name "M3".

Only power values are shown as a Data Field. However, all other data such as cadence, distance, duration are also captured and recorded in FIT.

About How to Use and Display the Data

Best effort has been made to align those fields (nativeNum) with the record number defined in protocol.xlsx from the FIT SDK. However, CIQ web service does not honor this information since it is user supplied. This is because when using the SDK to record the data, they are put into customDefined data structure in the FIT file, and the nativeNum is just annotation only, which is disregarded by the Garmin. This behavior is reflected both in their SDK document and the unresponsiveness when users requested this feature in their forum.

When uploading the resulting data into Strava, only power field is analyzed. One can convert FIT into TCX or write them into FIT by using Global Profile definition to fix this.

There is no hope by using connect IQ to override native Garmin cadence/power/distance values. One may want to use a BLE to ANT+ converter and use Keiser2ANT if such thing is desired.

For a complete portable solution, I only know that NRF52840 can be a good starting point, but this is going to be a huge undertake to set up the SDK especially the soft-device. NRF24AP1 is hard to find these days, otherwise simple serial programming on ESP32 would suffice.

keiser2garmin's People

Contributors

tao-j avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar

Forkers

zjt2015

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.