Skip to content

Conversation

sw1tchblade
Copy link

@sw1tchblade sw1tchblade commented Jul 6, 2025

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. 🙌

@bobrippling
Copy link
Collaborator

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

@RKBoss6
Copy link
Contributor

RKBoss6 commented Jul 8, 2025

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...

@gfwilliams
Copy link
Member

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?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants