Garmin Index Blood Pressure Cuff – Soon?

FTC: Affiliate Disclosure Links may pay commission

UA-851ANT
My UA-851ANT works over ANT+

Garmin Index Blood Pressure Measurement Cuff – Soon?

 

via: @JohnW, thank you

 

It looks like Garmin is about to release an upper arm (bicep) cuff called Garmin Index BPM and it will take your blood pressure readings and store them on your Garmin app.

Systolic and diastolic measurements will be shown on a digital display and the cuff will operate like many other competitors ie with an inflatable cuff.

Probable Features

  • Links and syncs to Garmin Connect Mobile (GCM)
  • Also syncs over WiFi (like the Index S2 SmartScale)
  • Reading shown in GCM, report available to show 3rd parties (eg doctor)
  • Stores BP trends
  • Possibly supports multiple, named users with a guest mode.
  • Manually entered readings allowed
  • Might support averaging over 3 consecutive readings.

That’s it.

Thoughts

Garmin is probably due to refresh the Index Smart Scale as the S2 model that I have was always in need of some love even though it was only released just over 2 years ago. So it was a bit of a surprise to see that instead, Garmin could be entering Blood Pressure measurements for the first time. Whilst this product is linked to fitness, the biggest number of buyers by far will be in the general wellness space.

Good luck to them.

 

A&D UA-851ANT And SportTracks Blood Pressure Plugin Monitor

 

 

 

 

Reader-Powered Content

This content is not sponsored. It’s mostly me behind the labour of love which is this site and I appreciate everyone who follows, subscribes or Buys Me A Coffee ❤️ Alternatively please buy the reviewed product from my partners at their regular price. Thank you! FTC: Affiliate Disclosure: Links may pay commission. As an Amazon Associate, I earn from qualifying purchases.

15 thoughts on “Garmin Index Blood Pressure Cuff – Soon?

  1. for a while there is also a widget on connect iq store to find the best time to do a Blood Pressure Measurment:

    Rest Status Check Before Measuring Blood Pressure

    Per ASH guidelines*, patients should avoid intense exercise within 30 minutes before their blood pressure measurement and rest for 5 minutes before taking a reading.With the Garmin BP Rest Check Widget, users can judge if they are in a sufficient rest condition from the heart rate history feature on their Garmin smartwatch. You can also determine if you need to rest and relax more or if your rest condition is enough for your next measurement.

    Please note that this is a Garmin CIQ Widget to help users judge their rest condition before taking their blood pressure. It is not a medical product. The readings are only for reference and should not be used to diagnose, treat, alleviate or prevent any disease or symptom. Users should evaluate their personal health condition before use and seek the professional advice of their physician.

    https://apps.garmin.com/de-DE/apps/07805acd-fbb2-4eec-8db1-a8afab2c5b82#0

    1. Interesting find, that widget.
      If they release a upper arm cuff and advice to use the widget, the quality of the data should be quite high.
      Compared to most readings people do at home, it should be gold class.

      1. i use the widget a while now, before i measure with my Withings BPM Connect, sometimes the widget tells me i have to calm for 10 or 25 minutes or so before doing a measurement

  2. Off topic but this could be a hint of a near future new Garmin Varia vision( or glasses). Activelook 2.0

    https://www.endurancesportswire.com/microoled-achieves-development-milestone-releases-activelook-2-0-enables-display-customization-via-garmin-data-fields-in-sports-eyewear/
    About the Garmin index BPM I think it could integrate more features to differentiate from all the current products(Withings, Omron..). I’m one of those who have been using the ciq before measuring my BP. Simple but effective.

    1. This are third party displays wich are already available. You install a ConnectIQ Datafield on your watch/edge and this submits the data to the display. It has nothing to do with Varia, it doesn’t even support Extended Display Profile wich wouldn’t block 1 of the 2 IQ datafields you can run at the same time on the watches.

      1. Yes, but this is v2.0 improved that included those garmin datafields and connection.
        Julbo evad-1 glasses, for example, are activelook v1.0 ones.

  3. I was inclined to think this is an unfounded rumour when I first read the post, only to have Apple Health prompt me on the next morning about: do you want to give GCN mobile permissions to write blood pressure data? Pretty much confirmed, I think 🙂

    PS: commenting doesn’t work on the Safari browser.

    1. Ye of little faith!
      The source of the info on this one is a good one. it could be wrong but its trustworthy. INDEX BPM is specifically mentioned. as one of the other comments says, there was a garmin connect mobile PERMISSIONS thing that popped up a day or two after this article was published. so something is definitely happening.
      Sorry about Safari. I have probs with the comments pluginS. whichever i choose causes a problem somewhere.

  4. in the official Garmin FitSDKRelease_21.84.00 you can find following sources:

    com\garmin\fit\BloodPressureMesg.java
    com\garmin\fit\BloodPressureMesgListener.java

    ///////////////////////////////////////////////////////////////////////////////////
    // The following FIT Protocol software provided may be used with FIT protocol
    // devices only and remains the copyrighted property of Garmin International, Inc.
    // The software is being provided on an “as-is” basis and as an accommodation,
    // and therefore all warranties, representations, or guarantees of any kind
    // (whether express, implied or statutory) including, without limitation,
    // warranties of merchantability, non-infringement, or fitness for a particular
    // purpose, are specifically disclaimed.
    //
    // Copyright 2022 Garmin International, Inc.
    ///////////////////////////////////////////////////////////////////////////////////
    // ****WARNING**** This file is auto-generated! Do NOT edit this file.
    // Profile Version = 21.84Release
    // Tag = production/akw/21.84.00-0-g894a113c
    ///////////////////////////////////////////////////////////////////////////////////

    package com.garmin.fit;

    public class BloodPressureMesg extends Mesg  {

       
      public static final int TimestampFieldNum = 253;
       
      public static final int SystolicPressureFieldNum = 0;
       
      public static final int DiastolicPressureFieldNum = 1;
       
      public static final int MeanArterialPressureFieldNum = 2;
       
      public static final int Map3SampleMeanFieldNum = 3;
       
      public static final int MapMorningValuesFieldNum = 4;
       
      public static final int MapEveningValuesFieldNum = 5;
       
      public static final int HeartRateFieldNum = 6;
       
      public static final int HeartRateTypeFieldNum = 7;
       
      public static final int StatusFieldNum = 8;
       
      public static final int UserProfileIndexFieldNum = 9;
       

      protected static final Mesg bloodPressureMesg;
      static {
        // blood_pressure
        bloodPressureMesg = new Mesg(“blood_pressure”, MesgNum.BLOOD_PRESSURE);
        bloodPressureMesg.addField(new Field(“timestamp”, TimestampFieldNum, 134, 1, 0, “s”, false, Profile.Type.DATE_TIME));
         
        bloodPressureMesg.addField(new Field(“systolic_pressure”, SystolicPressureFieldNum, 132, 1, 0, “mmHg”, false, Profile.Type.UINT16));
         
        bloodPressureMesg.addField(new Field(“diastolic_pressure”, DiastolicPressureFieldNum, 132, 1, 0, “mmHg”, false, Profile.Type.UINT16));
         
        bloodPressureMesg.addField(new Field(“mean_arterial_pressure”, MeanArterialPressureFieldNum, 132, 1, 0, “mmHg”, false, Profile.Type.UINT16));
         
        bloodPressureMesg.addField(new Field(“map_3_sample_mean”, Map3SampleMeanFieldNum, 132, 1, 0, “mmHg”, false, Profile.Type.UINT16));
         
        bloodPressureMesg.addField(new Field(“map_morning_values”, MapMorningValuesFieldNum, 132, 1, 0, “mmHg”, false, Profile.Type.UINT16));
         
        bloodPressureMesg.addField(new Field(“map_evening_values”, MapEveningValuesFieldNum, 132, 1, 0, “mmHg”, false, Profile.Type.UINT16));
         
        bloodPressureMesg.addField(new Field(“heart_rate”, HeartRateFieldNum, 2, 1, 0, “bpm”, false, Profile.Type.UINT8));
         
        bloodPressureMesg.addField(new Field(“heart_rate_type”, HeartRateTypeFieldNum, 0, 1, 0, “”, false, Profile.Type.HR_TYPE));
         
        bloodPressureMesg.addField(new Field(“status”, StatusFieldNum, 0, 1, 0, “”, false, Profile.Type.BP_STATUS));
         
        bloodPressureMesg.addField(new Field(“user_profile_index”, UserProfileIndexFieldNum, 132, 1, 0, “”, false, Profile.Type.MESSAGE_INDEX));
         
      }

      public BloodPressureMesg() {
        super(Factory.createMesg(MesgNum.BLOOD_PRESSURE));
      }

      public BloodPressureMesg(final Mesg mesg) {
        super(mesg);
      }

      /**
       * Get timestamp field
       * Units: s
       *
       * @return timestamp
       */
      public DateTime getTimestamp() {
        return timestampToDateTime(getFieldLongValue(253, 0, Fit.SUBFIELD_INDEX_MAIN_FIELD));
      }

      /**
       * Set timestamp field
       * Units: s
       *
       * @param timestamp
       */
      public void setTimestamp(DateTime timestamp) {
        setFieldValue(253, 0, timestamp.getTimestamp(), Fit.SUBFIELD_INDEX_MAIN_FIELD);
      }

      /**
       * Get systolic_pressure field
       * Units: mmHg
       *
       * @return systolic_pressure
       */
      public Integer getSystolicPressure() {
        return getFieldIntegerValue(0, 0, Fit.SUBFIELD_INDEX_MAIN_FIELD);
      }

      /**
       * Set systolic_pressure field
       * Units: mmHg
       *
       * @param systolicPressure
       */
      public void setSystolicPressure(Integer systolicPressure) {
        setFieldValue(0, 0, systolicPressure, Fit.SUBFIELD_INDEX_MAIN_FIELD);
      }

      /**
       * Get diastolic_pressure field
       * Units: mmHg
       *
       * @return diastolic_pressure
       */
      public Integer getDiastolicPressure() {
        return getFieldIntegerValue(1, 0, Fit.SUBFIELD_INDEX_MAIN_FIELD);
      }

      /**
       * Set diastolic_pressure field
       * Units: mmHg
       *
       * @param diastolicPressure
       */
      public void setDiastolicPressure(Integer diastolicPressure) {
        setFieldValue(1, 0, diastolicPressure, Fit.SUBFIELD_INDEX_MAIN_FIELD);
      }

      /**
       * Get mean_arterial_pressure field
       * Units: mmHg
       *
       * @return mean_arterial_pressure
       */
      public Integer getMeanArterialPressure() {
        return getFieldIntegerValue(2, 0, Fit.SUBFIELD_INDEX_MAIN_FIELD);
      }

      /**
       * Set mean_arterial_pressure field
       * Units: mmHg
       *
       * @param meanArterialPressure
       */
      public void setMeanArterialPressure(Integer meanArterialPressure) {
        setFieldValue(2, 0, meanArterialPressure, Fit.SUBFIELD_INDEX_MAIN_FIELD);
      }

      /**
       * Get map_3_sample_mean field
       * Units: mmHg
       *
       * @return map_3_sample_mean
       */
      public Integer getMap3SampleMean() {
        return getFieldIntegerValue(3, 0, Fit.SUBFIELD_INDEX_MAIN_FIELD);
      }

      /**
       * Set map_3_sample_mean field
       * Units: mmHg
       *
       * @param map3SampleMean
       */
      public void setMap3SampleMean(Integer map3SampleMean) {
        setFieldValue(3, 0, map3SampleMean, Fit.SUBFIELD_INDEX_MAIN_FIELD);
      }

      /**
       * Get map_morning_values field
       * Units: mmHg
       *
       * @return map_morning_values
       */
      public Integer getMapMorningValues() {
        return getFieldIntegerValue(4, 0, Fit.SUBFIELD_INDEX_MAIN_FIELD);
      }

      /**
       * Set map_morning_values field
       * Units: mmHg
       *
       * @param mapMorningValues
       */
      public void setMapMorningValues(Integer mapMorningValues) {
        setFieldValue(4, 0, mapMorningValues, Fit.SUBFIELD_INDEX_MAIN_FIELD);
      }

      /**
       * Get map_evening_values field
       * Units: mmHg
       *
       * @return map_evening_values
       */
      public Integer getMapEveningValues() {
        return getFieldIntegerValue(5, 0, Fit.SUBFIELD_INDEX_MAIN_FIELD);
      }

      /**
       * Set map_evening_values field
       * Units: mmHg
       *
       * @param mapEveningValues
       */
      public void setMapEveningValues(Integer mapEveningValues) {
        setFieldValue(5, 0, mapEveningValues, Fit.SUBFIELD_INDEX_MAIN_FIELD);
      }

      /**
       * Get heart_rate field
       * Units: bpm
       *
       * @return heart_rate
       */
      public Short getHeartRate() {
        return getFieldShortValue(6, 0, Fit.SUBFIELD_INDEX_MAIN_FIELD);
      }

      /**
       * Set heart_rate field
       * Units: bpm
       *
       * @param heartRate
       */
      public void setHeartRate(Short heartRate) {
        setFieldValue(6, 0, heartRate, Fit.SUBFIELD_INDEX_MAIN_FIELD);
      }

      /**
       * Get heart_rate_type field
       *
       * @return heart_rate_type
       */
      public HrType getHeartRateType() {
        Short value = getFieldShortValue(7, 0, Fit.SUBFIELD_INDEX_MAIN_FIELD);
        if (value == null) {
          return null;
        }
        return HrType.getByValue(value);
      }

      /**
       * Set heart_rate_type field
       *
       * @param heartRateType
       */
      public void setHeartRateType(HrType heartRateType) {
        setFieldValue(7, 0, heartRateType.value, Fit.SUBFIELD_INDEX_MAIN_FIELD);
      }

      /**
       * Get status field
       *
       * @return status
       */
      public BpStatus getStatus() {
        Short value = getFieldShortValue(8, 0, Fit.SUBFIELD_INDEX_MAIN_FIELD);
        if (value == null) {
          return null;
        }
        return BpStatus.getByValue(value);
      }

      /**
       * Set status field
       *
       * @param status
       */
      public void setStatus(BpStatus status) {
        setFieldValue(8, 0, status.value, Fit.SUBFIELD_INDEX_MAIN_FIELD);
      }

      /**
       * Get user_profile_index field
       * Comment: Associates this blood pressure message to a user. This corresponds to the index of the user profile message in the blood pressure file.
       *
       * @return user_profile_index
       */
      public Integer getUserProfileIndex() {
        return getFieldIntegerValue(9, 0, Fit.SUBFIELD_INDEX_MAIN_FIELD);
      }

      /**
       * Set user_profile_index field
       * Comment: Associates this blood pressure message to a user. This corresponds to the index of the user profile message in the blood pressure file.
       *
       * @param userProfileIndex
       */
      public void setUserProfileIndex(Integer userProfileIndex) {
        setFieldValue(9, 0, userProfileIndex, Fit.SUBFIELD_INDEX_MAIN_FIELD);
      }

    }

    1. nah, we’re both making it up. This product doesn’t exist until Garmin announces it 😉

      seriously though, although that file is auto-generated would you say this represents an advanced state of development? the window for release of such a product would likely be September and early to mid October from a marketing perspective.

      1. hmmm, so the definitions are ready to use Blood Pressure in a FIT File, so dinner is served

  5. Garmin INDEX BPM – I am getting 20-25 points higher on the systolic and 12-15 points higher on the diastolic, consistently. Compared with two OMRON devices: One upper arm cuff and one wrist cuff, and manual reading. Customer service was no help, and their product complaint department would rather lose you as a loyal customer than fix the issue. I filed an official FDA medical device complaint instead of going through the less-than-satisfactory standard operating procedure of Garmin. I requested a full refund from Garmin and will be making sure no one else makes the same mistake I made. Amazon is not allowing for product reviews unless you are a verified purchase. This means that Amazon has been flooded with complaints.

Leave a Reply

Your email address will not be published. Required fields are marked *