• Bangle.js 2: How do I use it as delivered? Is there any user documentation? I would like to get familiar with it before making changes to it.


  • Hi.
    First to do is read the doc here to know what it is all about, what is inside and what can be done with: http://www.espruino.com/Bangle.js2

    Then, you can connect your Bangle.js 2 and customize it with the apps you want: https://banglejs.com/apps/

    As is, it already provides a lot of possibilities, but remember, it is meant to run you own apps. To know how to do that, you can follow this very good example:

  • Hi Robs,

    https://banglejs.com/start2 is the getting started guide and links to other documentation.

    The App Loader isn't for creating apps, it's for loading/deleting apps on the Bangle, as well as for getting information from them.

    You'll find that in the App Loader, many apps have a 'Read More' link next to them which gives you more documentation about that app.

    There's also the Wiki which I hope we'll be able to build out with more information as time goes on, but it's still early days - I'm still working full-time trying to ship the rest of the Bangles

  • Hi Jean-Philippe_Ray & Gordon,

    Thanks for your quick responses. I did read the Bangle.js2 page but it had so much info that isn't what I was looking for, I missed the two lines that opened my eyes as to how the interface on the watch works. The first thing I want to do is set the date and time; it's a watch after all. :)

    *NOTE: I'm really impressed with what is being done here and I'd like to contribute some help, perhaps with suggestions about documentation.*

    I know its really cool that we can write and upload apps to the watch but my experience (45 years developing embedded controller systems, programming, testing, writing docs, etc.) tells me to get familiar with the existing system before you try to modify it. Don't get me wrong, I've been retired for 7 years and am quite rusty and not up-to-date on everything that's going on. I do want to get back into this kid of stuff as a hobby instead of a job.

    Perhaps I can be of service writing a beginner's manual. This is an ideal time because I'm totally ignorant of how this all works and will find the things beginners run into. I'll give you a few examples from my confusion today on the http://www.espruino.com/Bangle.js2 page.

    This is pre-release hardware
    Is my Bangaljs2 not the released version of the hardware? I got it as a result of backing the project. I'm guessing it is not pre-release, but things like this make me wonder and question other things on the page.

    Quick Usage Notes
    There are a few things to know that'll really help you get started quickly:

    1. Long-pressing the one button will take you back to the default clock app
    2. The touchscreen is only active when the lock symbol isn't displayed in the top left hand corner.
    3. Unlocking can be configured in several ways but the easiest is just to press the button.
    4. In the default launcher, drag the screen to scroll, and tap the icon you want to launch
    5. In text menus, you don't need to tap on the text line to select it. Instead, drag your finger up and down to change the selected entry, and then tap anywhere to select.
      #1: This was very helpful. How long is the "long press"?
      #2: I did figure this out on my own. What I didn't know was that if the log icon is present then I can't select anything from the menu.
      #3: At this point I only need to know that short-pressing the button will turn the back light on and unlock the menu. In my opinion, configuring the unlock is not something a beginner needs, IMHO.
      #4: What is a "launcher"? I'm guessing that is the thing that runs the user interface. It's helpful to define your terms for beginners.
      #5: The bold parts are what started me on the path to understanding this interface. I still haven't figured out how to set the date and time but at least I can sometimes navigate to other menus.

    I hope I can be helpful while learning how to work my new watch.

    Peace, Love, Laughter,


  • I just set the date and time on my new watch. It was wicked hard to figure out how to move up and down in the menus. There should be a paragraph or two describing how it works. I think its brilliant for the small screen but I have never run into an interface that works this way. I kept trying to use what works on my phone. It just doesn't work that way.

    I think much of the confusion I encountered was because there are some terms used in this project that have different meaning in other systems I've worked on. This page about apps ( https://banglejs.com/apps/ ) did help me to realized that the "Launcher" (I think) loads the various menus and ultimately launches an "app" based on which selection you activated. Many of the terms in this project use the same words I'm used to but do not have the same meaning I thought they did.

    I didn't find https://banglejs.com/start2 useful because it talked about (I think) loading new apps onto the watch. What I want to do is learn what "apps" are on the watch and how to use them. (Am I wrong about that?) But the page it took me to, https://banglejs.com/apps/, seems to be a system to download and install new apps onto the watch. That would have been useful to have a paragraph about that. But I do not want to download any apps yet. Not until I can navigate around what is on the watch now.

    Thanks all. I think I'm catching on now.

  • I agree that the way the docs are structure are a bit idiosyncratic - Personally I am solving it with having a bookmark folder with all the bits I saved for later. Finding stuff 3 links deep is not easy otherwise. For a project with this little resources its quite quite good really. Stuff is documented even if you cannot find it right away :).

    Realistically compared with say the Pebble the UI is "horrible but serviceable". I can live with it but well I don't have to. its all just a bunch of Javascript files really they are super easy to modify. Hence why I would not worry whats "on the watch" out of the box.

    Most important are probably these 3 links for me:
    https://www.espruino.com/ide/# the IDE allows you to both test stuff really quick and more crucially explore whats on the watch currently. You can explore and download these apps and modify them directly.

    https://github.com/espruino/BangleApps contains all the apps source code in the apps directory. Look at how others did stuff.

    https://www.espruino.com/Reference#softw­are I use the API reference a lot. ctrl-f is your friend here.

  • Hi Rob,

    Thanks for this - this kind of feedback is amazingly helpful. I'm updating the https://www.espruino.com/Bangle.js2 page now and have added a glossary to the Wiki: https://github.com/espruino/BangleApps/w­iki#glossary

    I note that @Andrewmk has already added notes about the menu to the FAQ - thanks!

    But yes, the menu in particular is a bit odd to get used to at first, and isn't well documented in the right places.

    Understood about https://banglejs.com/start2 and https://banglejs.com/apps/ - the latter is a good way to set the time, find installed apps and get info on them though. I'll try and tweak the getting started page to make that clearer.

    If you come across anything you think might be helpful/useful for new users, please can you add it to https://github.com/espruino/BangleApps/w­iki ? At some point we'll probably move things around a bit to make them easier to find, but at least it'll written down somewhere for now.

    The documentation is definitely a bit lacking right now, but I do want to make it better. The issue is rather than saying I'd ship the Bangles next year when I'd have time to write everything up I'm shipping them 1 month after the KickStarter, and that means that some things (especially docs) aren't done yet!

  • Realistically compared with say the Pebble the UI is "horrible but serviceable"

    This is true - the text menu especially, but that is something high up my list to work on so it should change soon :)

    Some people may find installing https://banglejs.com/apps/#menusmall makes things nicer. Personally it's my preference right now, but it's not too friendly on the eyes!

  • Forgive my ancient senility, but I'll be buggered if I can connect to my super nice Bangle2 - usb keeps coming back as device not recognised.

    Does it need a device driver installing to recognise the bangle when it's plugged in?

    Am I stupid or missing something fundamental here?

  • I love the changes you've made and so quickly. I'm wearing the watch night and day now. I also know what app I want to write, if there isn't one like it already. Here's the bare bones spec:

    I want an app that will buzz me every hour, on the hour, from 0900 to 1800. (I like to get up out of my chair each hour and do a five minute workout.) Of course those start and end times should be configurable. Are their any apps like this now or one that is close enough that reading the code would help me write my own version?

    I'm impressed and happy at how well this project is running. As we say in Texas, "This ain't your first rodeo now is it."


  • QUESTION: In your new glossary has this statement:
    The Launcher is the menu that lets you choose which app to 'launch'. It's usually accessible from the Clock by short-pressing the button.

    1. Can you be more specific about what the short-press? (Approximate time perhaps?)
    2. Is there a long-press? (Approximate time perhaps?)
    3. Are there any other forms of pressing the button.

    It's usually accessible from the Clock

    1. What do you mean by the Clock? As far as I know, we only have the button and the touch screen with which we can manipulate the operation of the watch. (I guess there are other methods such as the accelerometers, Bluetooth and the other sensors, but I don't think the Clock is one of those.)

    2. Is there a comprehensive list of all the hardware capabilities of
      the Bangle.js 2?

    3. Is there an official library for developers to use to access all the
      hardware capabilities of the Bangle.js 2?

  • I saw one that sorta does that - its a old bangle 1 app tho - "hour chime". What you want can be done super easily. The core function would be just a couple of lines of code:

    let chime = setInterval(function(){
      let d = new Date();
      if((d.getMinute() == 0) && (d.getHour()>8 && d.getHour() < 22)){
    }, 60 * 1000);

    that's it basically. You could just put that into a widget and be done. the easiest to mod is probably https://github.com/espruino/BangleApps/t­ree/master/apps/widver. just replace everything between line 1 and 9 ;).

  • Hey blkhawk,

    Thanks for the info. I thought it might not be very hard but I'm surprised at how easy it looks. I haven't written any JavaScript in many years, but I can read the code you included and it makes sense.

    I gather that setInterval takes two values: an anonymous function and a number that tells it how often to call it. (Is 60 * 1000 one minute or one hour? Those are the kind of questions I'm going to have to learn how to answer myself.)

    Looks like I'm on my way to fun adventures that will live on my wrist. Thanks for pointing me in the right direction.


  • The setInterval function doesn't need to be anonymous:

    function doChime() { ... }
    let chime = setInterval(doChime, 60 * 1000);

    The interval is in milliseconds, so the example is 1 minute intervals. See http://www.espruino.com/Reference#l__glo­bal_setInterval

  • @CliveBagley maybe start a new thread if you're still having issues? But despite having a USB charge cable, Bangle.js 2 is not a USB device. Take a look on the getting started guide at https://banglejs.com/start2

  • Post a reply
    • Bold
    • Italics
    • Link
    • Image
    • List
    • Quote
    • code
    • Preview

Bangle.js 2: How do I use it as delivered? Is there any user documentation?

Posted by Avatar for RobS @RobS