BangleApps icon indicating copy to clipboard operation
BangleApps copied to clipboard

SmartRep: Modular Rep Counter

Open sw1tchblade opened this issue 6 months ago • 3 comments

SmartRep: Modular Rep Counter for Bangle.js 1

This pull request adds the SmartRep application to the Bangle.js App Loader.

SmartRep is a modular, user-friendly fitness app that detects and counts repetitions for common gym exercises using Bangle.js 1's built-in accelerometer. Each exercise uses lightweight detection logic tailored to real movements.

✅ Features:

  • 8 Supported Exercises:
    • Bench Press
    • Bicep Curls
    • Cable Rows
    • Lateral Raise
    • Pushup
    • Shoulder Press
    • Triceps Pushdown
    • Squats
  • Touch-free interface with button-based navigation
  • Target rep setting before session
  • Circular animated rep indicator
  • Visual and haptic feedback
  • Custom app icon and full UI branding
  • Modular detection logic files per exercise (logic/ folder)

🧠 Internals:

  • Main UI: smartrep.app.js
  • Exercise logic: logic/*.js
  • Metadata: metadata.json
  • Icon: smartrep-icon.png

The application has been tested on real Bangle.js 1 hardware. All code is safely sandboxed within its directory and follows the BangleApps structure.

Ready for review and merge. 🙌

sw1tchblade avatar Jul 06 '25 23:07 sw1tchblade

Looks good - unfortunately I don't have a Bangle1 to test on, does anyone else?

bobrippling avatar Jul 07 '25 06:07 bobrippling

Hey! This app looks like something I would use! Unfortunately, I don't have a Bangle.js 1. What makes this app incompatible with the JS 2? Perhaps we could design a workaround...

RKBoss6 avatar Jul 08 '25 01:07 RKBoss6

Hi - are you really sure this works? Because I can see quite a few issues - some are listed in the pre-merge tests: https://github.com/espruino/BangleApps/actions/runs/16104483721/job/45451159898?pr=3927

  • Bangle.js doesn't support folders, so trying to put stuff in logic/* doesn't make that much sense (and no URL has been supplied for the files in the metadata anyway)
  • the icon uploaded is a large png file, not the 48px JS format
  • looking at the app.js I can't see where it loads any of the logic files like tricepspushdown.js mentioned in metadata (which doesn't match triceps_pushdown.js)

It looks like a great idea, but I'm not really sure I see how it's meant to work? as far as I can tell even when running right now it'll display the UI but doesn't really use any of the sport style JS files?

gfwilliams avatar Sep 02 '25 09:09 gfwilliams