Bangle.js: the missing manual?

Posted on
  • Is there a wiki or similar which would help us who don't follow the code figure out our watches?

    I would get more use out of the watch if I could better understand the way the apps function or how to troubleshoot it when its not working as expected. I've gone through numerous starts of using my watch but inevitably the config becomes unstable/unpredictable and I give up until the next firmware is released.

    If I better understood why the system was so unstable for me I would be more inclined to submit bugs, but there's not much documentation beyond getting the initial watch running. I realize there is a troubleshooting area, but I think a general faq or wiki regarding the software with working scenarios would be helpful. Also to give tips on how to use some of the apps or allow authors to submit more elaborate documentation.

    To give you an idea of the types of questions I'm thinking of:
    Does loading more apps on the watch affect the memory errors in running apps?
    Can I remove apps to help avoid memory errors?
    Which apps are always running opposite those which load when you start them?
    What base apps are needed for various functionality (e.g. its still unclear to me what role gps/pedometer widgets/apps play in watch face functionality)?
    What is quiet mode?
    If my watch crashes on startup is there anything I can besides resetting it?

    Related to http://forum.espruino.com/conversations/364674/ I am disappointed that the only way I've found the watch to work consistently is with the default apps which have hardly any functionality. I would really like to see something like the Kitchen Combo be the default face if that can be made stable.

  • Is there a wiki or similar which would help us who don't follow the code figure out our watches?

    This is a good start.
    https://www.espruino.com/Troubleshooting+Bangle.js

    The docs are mainly aimed at people who want to develop Apps. Ideally every App should have its own README file which you can access through the App Loader but not every developer does this. There are some good Apps that dont have README files that really need them.

    I've gone through numerous starts of using my watch but inevitably the config becomes >>unstable/unpredictable

    Start with the basic minimal set of Apps. If your watch is not stable at that point them reach out for help in this forum. Then install the Apps that you want to use one by one and check that your watch continues to work.

    Which Apps are you consistantly getting trouble with ?

    Does loading more apps on the watch affect the memory errors in running apps?

    First you need to understand how the watch works.
    The code for the apps is stored in Flash storage.
    When an App is loaded through the Loader it is loaded into the memory which I think (after the firmware has loaded) is about 40K of RAM which is not a great deal but enough for quite complex apps -like multiclock or Kitchen Combo. In general only 1 App runs at a time unless you have widgets running as well. When you go back to the App Launcher you are effectively just running an App that allows you to select an App to run next. At that point the App loader is no longer running. Most Apps will ue BTN2 to return you to the App Launcher.

    Can I remove apps to help avoid memory errors?

    You can remove Apps through the App Loader, using the App Manager or you can simply delete the files that form the App through the IDE which gives access to the Flash storage file system. The safest way to remove an App is through the App Loader. If you are not sure what you are doing deleting files through the IDE could leave you stuck.

    Which apps are always running opposite those which load when you start them?

    When you get your basic watch only 1 App will be running at a time.
    If you install widgets then these run at the same time as the one App that you have currently running.

    What base apps are needed for various functionality (e.g. its still unclear to me what role
    gps/pedometer widgets/apps play in watch face functionality)?

    So gps and pedometer is a little confusing. There are a lot of GPS apps that only do one basic thing, like get the time, display your lat/lon etc. The GPS recorder app uses a widget in the background to do the logger and the GPS recorder App allows you change the settings and turn the GPS recorder on or off.

    Pedometer is confusing as well as the Bangle firmware does not count steps; it gives an App that is listening an event to say 'I detected a step'. As far as I can tell originally someone wrote the pedometer widget to count the step events. However the step counter in the firmware is not very accurate so someone else produced ActivePedometer which was an attempt to get further accuracy. You should only use either the Pedomintor Widget OR the ActivePedometer widget - both will give you different step count depending on the settings you configure in the ActivePedometer App.

    What is quiet mode?

    As I understand it is is an attempt to be able to mute Apps from buzzing at inconvenient times. There is a way of setting a quiet period. I personally dont like the way this works as every app has to be modified to obey it but thats the way its been done.

    If my watch crashes on startup is there anything I can besides resetting it?

    It depends exactly what you mean by crash and start up.

    If you are having start up problems my advice would be make sure you have the current firmware (2v09) then reset the watch to the default Apps. The establish that your watch is stable. If it is not stable then shout out to this forum and anyone that can help will respond. @Gordon is oncredibly supportive.

    I would really like to see something like the Kitchen Combo be the default face if that can be made stable.

    Just read your last line. I'm the creater of Kitchen Combo - glad you like it ?

    What problems are you having with it ? Are you using the latest version which is v0.12 which you can tell when you run the App Loader website. Have you read the README file for Kitchen Combo ? https://github.com/espruino/BangleApps/blob/master/apps/kitchen/README.md. I would value your feedback so I can improve it. There is a section on error codes and if you see any of those codes you should follow the instructions to fix. Let me know if the instructions are clear enough.

    Older versions of Kitchen Combo did have LOW MEMORY issues as I was trying to squeeze in too much functionality and wanted to use a screen buffer to make certain screens smoother. I recoded parts of the app so that it would use less memory and I sacrificed to a bit more flicker - but I wanted a reliable App. I run kitchen combo as my default clock App every day. It gets a lot of testing and use by me. So if you are having issues with it let me know what they are and I will try and help. Please note that I will be on holiday for a few days next week so I might not respond after Tuesday PM until the following week.

    Kitchen Combo is actually one App but there are different (semi seperate modules) to allow you to seemlessly switch from one mini-app to another. Eg I wanted to see my OS grid reference in one face and then switch to the waypointer App and point to a waypoint (eg where's the car). The heart rate app for Kicthen combo does not really work and I have not bothered much to make it work as there are other / better heart rate apps in the apps library.

    In time I plan to write a Settings App for Kitchen combo so you can select the Apps that you want to enable / disable. Just have not done it yet as I have been experimenting with seeing if I can work out how to get a more reliable step counter algorithm.

  • Hi! There is no Wiki yet but I'm very happy to set one up. This is the first time anyone asked, but it makes a lot of sense. I guess the question is: If I set one up, is anyone here willing to contribute?

    Right now it's really pretty easy for anyone to submit changes to the documentation (there's a link down the bottom of each page on the Espruino website which links to GitHub where you can suggest edits - for example https://github.com/espruino/EspruinoDocs/blob/master/info/Troubleshooting%20Bangle.js.md) - it's just that it's actually pretty rare that anyone does.

    A page of suggested apps/setups for the Bangle sounds like a good plan. Anyone willing to provide some?

    Just to quickly answer some of your questions though:

    Does loading more apps on the watch affect the memory errors in running apps?

    No - apps are separate. However installing more widgets does affect memory usage.

    Installing lots of apps can make the Bangle run a little slower though as it can slow down file reads.

    Which apps are always running opposite those which load when you start them?

    It's pretty much any app that's got 'widget' in the name that always uses memory. I'm struggling to think of any apps that run all the time.

    If my watch crashes on startup is there anything I can besides resetting it?

    The best bet is to start the IDE at https://www.espruino.com/ide/, connect to your Bangle, and then force a restart by long-pressing Button 3. Hopefully it should write an error message in the IDE, and at that point maybe just copy/paste it into a forum post here and I'll try and figure out what's wrong.

    I really want to ensure that Bangle.js is stable for everyone, so if there's a repeatable way of getting it to crash (eg. 'Clear memory, install X,Y,Z') then I'll usually try and get it fixed pretty quick.

  • I'd be happy to update a wiki. Its a lot quicker than managing updates through GIT.
    I think with a wiki you get the tools to roll back changes if someone creates havoc.

    Might be better a good idea to have a few people updating the wiki to start with, ie limit to a set of usernames rather than a free for all. IE if you put your hand up and contribute you get an account.

    A page of suggested apps/setups for the Bangle sounds like a good plan. Anyone willing to provide some?

    I will write up my setup when I get a moment.

    Maybe write a quick app to 'report_my_config' which will list all apps widgets, launchers, firmware installed in a short list. I know you can get this from the App Loader but it takes up a lot of space.

  • @HughB First of all thanks for the replies and definitely for writing the kitchen combo as it has been the first time I've really felt I was getting the full functionality out of the watch!

    In terms of the apps that have given me trouble, I used to use multi-clock, but periodically I would end up with no watch face and I was never able to figure out why. Historically I have only used watch faces and gadgetbridge as my applications.
    I have had good luck with kitchen combo, but something happened over the past two weeks where the watch would hang and wouldn't boot completely. It would get to the bangle logo screen and the only output would be a prompt which said "bluetooth>" at the bottom when it was connected, but I ultimately had to reset it. Kitchen Combo has been working pretty well overall, but it does occasionally give me memory errors. This on 2.09, but I only see 0.11 of Kitchen Combo available at https://banglejs.com/apps/# is there some other channel?

    This is the type of behavior which always has me reset as I can't figure out where the problem is. My thinking was that we all have the same watch so it must be some combination of the apps I'm running. I will have to try the ide method @Gordon described above in the future.

    So is correct that you would need a monolithic app like Kitchen Combo to get all the functionality at once in a watch face? This is something that has confused me since there are apps which say they run in the background (GPS Recorder) I was unclear when you have clock faces which read other items like Vertical watch face (steps/heart rate) and Mario Clock(temperature?!?!) rely on some basic apps being installed to function correctly. Kitchen Combo does say it need a pedometer (pedominter?) widget installed, so I'm assuming the widget provides some functionality.

    Thanks for offering to help with this and I do think it will improve the ecosystem and have more active users. I would be more willing to try new apps if I thought it wouldn't mess up my watch.

  • kitchen combo as it has been the first time I've really felt I was getting the full functionality out of the watch!

    Interesting! I've actually been working on some changes that should make this kind of thing possible with more watch faces (allowing you to move between apps just using buttons/swipes). So hopefully this will improve soon.

    It would get to the bangle logo screen and the only output would be a prompt which said "bluetooth>" at the bottom when it was connected

    That's odd. Have you been using the Web IDE to play around at all? That's usually what happens when you follow these steps to load in a fail-safe mode: https://www.espruino.com/Bangle.js#resetting-without-loading-any-code

    But it can be what happens if you leave the Web IDE set to upload to 'Flash' and then upload code (you overwrite the main watch's code with your own code). All you need to do to fix it is reinstall the 'bootloader' app.

    So is correct that you would need a monolithic app like Kitchen Combo to get all the functionality at once in a watch face?

    The idea was that you'd have a basic clock app, but then the widgets would add other functionality like step counting. However, the widgets have to fit into a small bar at the top/bottom of the screen, so several of the watch faces choose to implement bigger versions of what the widgets display themselves.

    For Kitchen combo/step counting, the step counter widget provides some functionality like keeping track of how many steps there have been during the day - so rather than reimplementing that, Kitchen combo just uses the widget's step counter.

  • That's odd. Have you been using the Web IDE to play around at all?

    This was just during normal operation. I didn't knowingly do anything different than load apps and maybe not even that. It stopped after I reset the watch, if it happens again I will look in the Web IDE now that I know how to do that.

  • if you leave the Web IDE set to upload to 'Flash'

    Its easy to get that wrong and accidently set to Flash when you mean Ram etc.

    I have often wondered if it would be better to have seperate RAM / FLASH buttons in the IDE. When you want to upload to storage use the STORAGE button, when you want to upload to RAM use the RAM button, both of which are dafe. Then to upload to FLASH you can have a warning / are you sure dialogue.

  • to upload to FLASH you can have a warning

    I think this is really what we want. I've been trying to avoid adding special cases for specific devices to the IDE but in the case of the Bangle it'd really help (even a special-case for uploading widgets would be neat too)

  • I have the situation again where the watch won't boot and gets stuck on the logo screen. I can connect to the Web IDE is there a command which will show any active errors?

  • Well, it seems I got the same issue as reported by @Sander. I'm 100% positive I did not touch the Web IDE. See here for the full details.
    In this state, using the Bangle.js app loader reports 0 installed apps, which is very wired.
    Using the Web IDE to try to figure out what is going on, I tried to look at the device storage, and things got even stranger. My apps seem to effectively be gone, and all I have left are some active pedometer files and some files with strange names (I have attached a screenshot, and a zip file with the contents).
    I don't think further information can be taken from here, so I will now reinstall all apps so I can continue using my Bangle.js.
    I hope this helps find a solution!


    2 Attachments

  • @Stunts thanks for this, and for that zip of contents - that's really helpful!

    I'll continue the discussion on your issue in http://forum.espruino.com/conversations/365784/#comment16107134 so we don't bring this one too off-topic.

  • There is no Wiki yet but I'm very happy to set one up. This is the first time anyone asked, but it
    makes a lot of sense. I guess the question is: If I set one up, is anyone here willing to contribute?

    @Gordon - think now would be a good time for the Wiki. I have never done a docs update and the lifecycle of maintaining a git repo and doing pulls /merge / push etc is too much overhead for what could be done in minutes on a wiki. I think write access would have to be granted on the basis of those you trust to do updates etc AND anyone could request write access if they want to contribute.

  • Honestly, updating the Github docs is not hard at all:

    I wonder whether the issue really is that the process isn't described anywhere?

    But maybe the Wiki saves you a click or two. Who here would be interested in writing to a Wiki?

  • Since I bought myself a Bangle.js 2, I am very sure I will spend a bit of time with it, so I might as well write this experience into a wiki. I would be down to help.

  • Great - thanks! I just added a Wiki page here:

    https://github.com/espruino/BangleApps/wiki

    Very basic right now but feel free to add to it!

  • Is the wiki supposed to be directly editable if you're logged in to github? Because I can't see any edit button or equivalent.

  • It is not editable

  • Please can you try now? Seems the default is to make it editable to collaborators only.

    Info on using it here: https://docs.github.com/en/communities/documenting-your-project-with-wikis/adding-or-editing-wiki-pages

  • Yes now it works.

  • Works for me too. Thanks.

  • Does anyone want to add anything? :)

  • Ah I looked on the wrong repo for this a couple of days ago. Can I suggest a page rather than adding it? It would be good to have a summary page of the state of functionality. A lot of info is buried here in the forum. E.g. the state of the pedometer (although I thoroughly enjoyed reading the thread from start to end). I think such a page should include functionality (current or possible), state in firmware, state in relevant apps, link to relevant thread for people who want to get involved.

  • Ok, just added - feel free to put more in there if there's something specific ;)

    https://github.com/espruino/BangleApps/wiki/Bangle.js-2-Status

  • Thanks - I'll see what I can add at some point. I am far too excited about this considering I haven't even ordered one yet :D.

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

Bangle.js: the missing manual?

Posted by Avatar for Sander @Sander

Actions