Giter Club home page Giter Club logo

hangman's Introduction

hangman ⚖️

Assembled prototype P1.0 unit

Hangman is a Bluetooth-enabled crane scale. It's intended use is as a climbing training and rehab tool, but it can be used anywhere that requires measuring force or weight.

The hardware retrofits a cheap (~$23) 150kg crane scale from Amazon with a custom PCB based around a Nordic nRF52 microcontroller and a differential ADC. The firmware uses Embassy, an embedded async framework written in Rust, as well as Nordic's SoftDevice Bluetooth stack.

Why?

Crane scales have become popular in the climbing community as a means to train and rehab fingers. This is a fun project to learn and practice various concepts I was unfamiliar or rusty with: BLE 101, async Rust on embedded, nRF52 development, SMT soldering and PCB design, etc. Maybe it'll even help my fingers get stronger.

Status

The scale is feature-complete. Weight measurement works great with the Progressor API and compatible tools. Battery life is guesstimated to be in the range of several months to a couple of years depending on usage.

There are still a few more software updates planned. See the Issues section for the major ones.

Hardware revisions

P1.0

See title picture. A custom PCB based on a Fanstel BT832 nRF52832-based module and a Texas Instruments ADS1230 ADC. Thanks to a better ADC and PCB layout, noise performance should be improved over previous revisions and most importantly, it's much prettier.

P0.0

A custom PCB based on a nRF52840 USB dongle and an HX711 ADC, the same differential ADC used on the Tindeq.

Assembled prototype P0.0 unit

Shoutouts

  • The Embassy project for bringing asynchronous Rust to the embedded world. and creating an easy to use wrapper around the Nordic SoftDevice Bluetooth stack.
  • Bumble for BLE testing and prototyping.
  • Texas Instruments for their excellent reference materials on load cell circuit design and PCB layout.
  • Tindeq for making an amazing product and app and opening their BLE API to third-party developers. Go buy one!

Disclaimer

This is not an officially supported Google product. Wouldn't that be funny though?

This has no affiliation with Tindeq.

hangman's People

Contributors

kesyog avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

hangman's Issues

Calibration

Ideas

  • Create a separate binary for the purpose of calibration, read measurements over USB or RTT, calculate calibration constants off-device, and then hard-code calibration values
  • Run-time calibration via USB console commands

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.