hangtime-grip-connect icon indicating copy to clipboard operation
hangtime-grip-connect copied to clipboard

Griptonite Motherboard, Tindeq Progressor, PitchSix Force Board, Weiheng WH-C06, Entralpi, Climbro, mySmartBoard, KilterBoard: Web Bluetooth API Force-Sensing strength analysis for climbers

Grip Connect

Force-Sensing Climbing Training

The objective of this project is to create a Web Bluetooth API client that can establish connections with various Force-Sensing Hangboards / Dynamometers / Plates / LED system boards used by climbers. Examples of such tools include the Griptonite Motherboard, Climbro, mySmartBoard, Entralpi, Tindeq Progressor or Weiheng WH-C06 also sold as MAT Muscle Meter.

And LED system boards from Aurora Climbing like the Kilter Board, Tension Board, Grasshopper Board, Decoy Board, Touchstone Board and So iLL Board.

Learn more: Docs - Browser Support

This project is provided "as-is" without any express or implied warranties. By using this software, you assume all risks associated with its use, including but not limited to hardware damage, data loss, or any other issues that may arise. The developers and contributors are not responsible for any harm or loss incurred. Use this software at your own discretion and responsibility.

Try it out

Chart - Flappy Bird - Kilter Board

Install

This project can be found in the NPM package registry.

$ npm install @hangtime/grip-connect

Example usage (with a Motherboard)

Simply importing the utilities you need from @hangtime/grip-connect.

<button id="motherboard" type="button">Connect Motherboard</button>
import { Motherboard, battery, connect, disconnect, info, notify, stream } from "@hangtime/grip-connect"

const motherboardButton = document.querySelector("#motherboard")

motherboardButton.addEventListener("click", () => {
  connect(Motherboard, async () => {
    // Listen for stream notifications
    notify((data) => {
      // { massTotal: "0", massMax: "0", massAverage: "0", massLeft: "0", massCenter: "0", massRight: "0" }
      console.log(data)
    })

    // Read battery + device info
    await battery(Motherboard)
    await info(Motherboard)

    // Start weight streaming (for a minute) remove parameter for a continues stream
    await stream(Motherboard, 60000)

    // Manualy tare the device when the stream is running
    // await tare(5000)

    // Manually call stop method if stream is continues
    // await stop(Motherboard)

    // Download data to CSV: format => timestamp, frame, battery, samples, masses
    // download()

    // Disconnect from device after we are done
    disconnect(Motherboard)
  })
})

Roadmap

Help wanted: Do you own any of these devices? Use Google Chrome's Bluetooth Internals chrome://bluetooth-internals/#devices and press Start Scan to look for your device, click on Inspect and share all available services with us.

Device support

  • ✅ Griptonite Motherboard
  • ✅ Tindeq Progressor
  • ⏳ Entralpi (not verified)
  • ⏳ Kilterboard (see example)
  • ⏳ Weiheng WH-C06 / MAT Muscle Meter
    • Enable: chrome://flags#enable-experimental-web-platform-features
  • ➡️ Climbro
  • ➡️ mySmartBoard

Features

  • ✅ Connect / Disconnect
  • ✅ Start / Stop data stream
  • ✅ Battery status
  • ✅ Read calibration
  • ✅ Device info: firmware / serial etc.
  • ✅ Check if device is connected
  • ✅ Peak / Average load
  • ✅️ Tare / unladen weight
  • ✅️ Download data to CVS
  • ➡️ Endurance
  • ➡️ Rate of Force Development: RFD
  • ➡️ Critical Force

Development

git clone https://github.com/Stevie-Ray/hangtime-grip-connect
cd hangtime-grip-connect
npm install

Credits

A special thank you to:

Disclaimer

THIS SOFTWARE IS NOT OFFICIALLY SUPPORTED, SUPPLIED OR MAINTAINED BY THE DEVICE MANUFACTURER. BY USING THE SOFTWARE YOU ARE ACKNOWLEDGING THIS AND UNDERSTAND THAT USING THIS SOFTWARE WILL INVALIDATE THE MANUFACTURERS WARRANTY.

License

BSD 2-Clause © Stevie-Ray Hartog