Using bangle.js with gloves?

Posted on
  • I've been looking into smartwatches and so far bangle.js seems to be the only reasonable option. All the other options either don't have a GPS sensor independent from my phone or rely on some sort of online account or synchronization feature that I really don't want. There's only one thing that's missing, and that's buttons. I live in a climate where I have to wear thick gloves for a big part of the year, and I can't use any capacitive touchscreen with them. Some watches have multiple physical buttons and allow you to navigate at least a fraction of the menus and answer calls without taking off a glove, which is a huge advantage for me. When it comes to bangle.js 2, it doesn't have any buttons other than the lock/unlock one, but I saw some references to "taps" where you tap the side of your watch and that registers as an event. I have a couple questions about that:

    1. How do these taps work, I mean physically? Is there a dedicated sensor in each side? If so, is it capacitive? Or are these events generated by the accelerometer? If so, how reliable is it?
    2. Could I write an app that runs in the background and translates these taps into touch/swipe events, transparently to other apps? Or would I have to fork other apps to make them natively support tap events?
    3. Are there any other ways to use bangle.js with gloves that I'm missing? Please don't suggest "touchscreen gloves", those are the cheap thin knit gloves that don't provide much warmth, I wear either really thick multi-layer knit gloves or leather gloves with fur lining.
  • Hi! Yes, the lack of buttons on the Bangle is a bit frustrating if you're wearing gloves. It's something I'd like to try and fix in a later version of the watch.

    How do these taps work, I mean physically?

    There's one accelerometer in the watch, and it measures the movement of the watch in either direction. left/right/top/bottom/front are all checked and forwarded to your code as events when single, or double-tapped.

    Reliability is ok but it can be triggered by the watch getting bumped. Double-tap is more reliable but there's a specific 'frequency' of double-tap you have to learn for it to register

    But bear in mind if you're wearing thick gloves that will cushion the tap on the Bangle which might affect how well it responds - but all the thresholds for detection are configurable.

    Could I write an app that runs in the background and translates these taps into touch/swipe events, transparently to other apps?

    Yes, you can generate touch/swipe events that would then be passed on to any apps. You can also override the built-in 'scroller' used in menus (as well as dialogs) to make it work better with taps.

    There's also a 'Layout' module which some apps use and that supports multiple buttons with cycling though them to focus one - you could tweak that to make it work with the taps too.

    I imagine some apps would need modification though - for example some of the clocks use 'clockinfos' which while they work with swipes, expect to be tapped on to activate them (so you'd need a specific X/Y to make them work).

    I'm not entirely sure what you're planning on using the watch for, but I'd imagine you might want to make your own clock face or modify another (which is very easy) and to then fit as much functionality in to that using taps as possible.

  • Thanks, this sounds like it's customizable enough for me to hack something together. I think for now just answering phone calls (as a remote control for my phone) and reading/dismissing notifications would be enough, but I might think of other use cases as I start using it. I've never had a real smart watch before, so I'm not exactly sure what I'd use it for. I was interested in GPS recording and step counting for hiking, but I tend to do that more in summer so it's not as important to have a glove-friendly interface for that.

  • u/Plus-Dust over at the r/Banglejs subreddit has one solution they call Speeddial which listens for how many button clicks are made in quick succession to trigger different actions. Maybe we could ask him for the script or if he could turn it into an app: https://www.reddit.com/r/Banglejs/s/kFb8tqzSWc

  • Oh yeah, if the power button can be reprogrammed, I could make that work too. I have a flashlight that has all sorts of advanced features accessed through up to 13 clicks on the same button, you can navigate entire multi-level menus with that... the problem is I always forget how many times I have to click it, but it would still work well for just a few actions like answering/rejecting a call or dismissing a notification.

  • Maybe we could ask him for the script or if he could turn it into an app:

    That would be awesome - it's pretty easy to contribute apps and then anyone could use it!

    For messages/answering calls the messages app uses swipes, so you could make something to convert taps to a swipe message in a few lines of code and have that working really quickly.

    so

    Bangle.on("tap", e => {
      if (dir=="left") Bangle.emit("swipe",1,0);
      if (dir=="right") Bangle.emit("swipe",-1,0);
    });
    
  • Post a reply
    • Bold
    • Italics
    • Link
    • Image
    • List
    • Quote
    • code
    • Preview
About

Using bangle.js with gloves?

Posted by Avatar for pauliunas @pauliunas

Actions