• Sat 2019.12.28

    App Manager

    ref: http://forum.espruino.com/comments/15038­677/
    From which I learned about the index to the Bangle Apps source code


    Anyone know the location of the source? I would like to splice into the 'Settings' menu source, which doesn't seem to currently do, in order to launch other uploaded apps

    . . . . or, . . .

    Anyone have documentation on how the App Manager works?

  • The whole thing is in the same repo. The browser side / App Manager's source is in the root. Check out index.html and the *.js files there.

  • Sun 2019.12.29

    While I review the index.html and *.js files, (as the AppManager is on the 'apps' page, I expected the source to reside there with the other ex:clock app source too) I wanted to get this posted first, as I realize my question was too specific.

    The instructions there are to add a newly created user app to the running list.

    When uploading an app, the file appears as code and it's internal functions may be observed using dump() so we know it is in memory.

    The 'Settings' menu has an option, 'Select Clock.'

    I made the assumption, that as the AppManager is loaded the same way as other apps, it functioned the same way. (may learn that as I review the files at the repo)

    The main issue is, 'How do I load an app?'

    As the 'Settings' menu allows the selection of a clock app, my first guess was that I need to modify that menu in order to specify the desired app.

    But, then I discovered an app called the AppManager, but downloading it doesn't have it appear, so it's functionality is unknown.

    Maybe it is as simple as modifying the .json meta data, but it's not clear how those files get picked up. Also not sure of the index.html reference. Is the intent that an app function inside that calling page, and the watch screen mimics a browser at that point?

  • Sat 2020.01.04

    Keeping this thread alive. Still am unable to see how the AppManager comes into view in order to launch any app. The only option the 'Settings' menu shows is 'Select Clock' Any ideas on what else must be uploaded to continue?

  • First things first: did you manage to update to the latest FW?

    There are three things, and feels like some confusion:

    • Bootloader in the "boot" folder - Does almost all the things you want "This is needed by Bangle.js to automatically load the clock, menu, widgets and settings". Press the middle button to launch it. Shows a graphical list of installed apps, and it's here where you can launch the apps. Including "Settings" and "App manager". It's the setWatch starting at line #9 that does launch the app menu.
      If you are inside the app menu, at line 80 there is even a comment // run that sets watch on button 2 to launch the current app.
    • Settings in the "setting" folder - Launch from the bootloader's app list. Make your watch connectable, set time and timezone, choose clock, LCD timeout, beep & vibrate, HID...
    • App manager in the "files" folder - You can erase apps and compact storage. That's it.
  • Sun 2020.01.05

    Good Morning and thank you @AkosLukacs for the detailed instructions. I know it takes a considerable amount of time to detail accurately, and that is surely appreciated. My hope is that others will benefit, and/or someone has had the same experience that might be able to provide a solution.

    'First things first: did you manage to update to the latest FW?'

    We briefly discussed that in post:


    ver 2v04.218

    Only a cutting edge build, 2v04.84 would be more recent:


    I'm holding off on that, as with my last fiasco(s) with OTA updates, leaving me without hardware until a resolution was found, forces me into a position not to flash new firmware without a fully functioning backup device. Need to Code  As I finally have a menu displayed on this Beta unit, and felt having that to provide support was more of a priority than getting a cutting edge build, am holding off until my release Bangle arrives in March.

    'and feels like some confusion'

    Yes, there is a disconnect. I believe your unit is not one from the KS campaign. I now have a working Beta KS unit that was used with the EU workshop, and I'm going back over that:


    My presumption is that as they had functionality then and as 80 Beta KS units were sent out, that the installed firmware would behave the same way. The confusion is that I don't appear to see the same output, as what the tutroials and the workshop content show. I also realize most, if not all is under constant updating, so some issues might result.

    'Shows a graphical list of installed apps, and it's here where you can launch the apps. Including "Settings" and "App manager". '

    By 'graphical list, do you mean linear text list as ordered below? 'Graphical' to me means shapes, which I don't believe is the concept attempted to be conveyed. e.g. displayed on a LCD screen, not the WebIDE console

    'it's here where you can launch the apps'

    Not for me.

    As mentioned in the other thread, I have installed the latest bootloader and AppManger.
    Pressing BTN2 after boot with the Espruino logo displayed, brings up the following:

    My device shows:

    • BLE
    • Programmable
    • LCD Timeout
    • Beep
    • Vibration
    • Select Clock
    • Time Zone
    • HID
    • HID Gestures
    • Debug
    • Set Time
    • Make Connectable
    • Reset
    • Turn Off
    • < Back


    The only away from menu selection that works is 'Back' which does take me to the installed clock, but then the watch is stuck. Only a BTN1+BTN2 reset works at this point.

    While I am able to install a different clock, there isn't an option to launch an app. Therefore in the continuing confusion, the need to start this thread.

  • My Beta Bangle arrived just this friday, but almost immediatellly updated the firmware. What you experience sounds strange. What about connecting to it with the app-loader, and hit clean all + reinstall the apps? Maybe even connect with the web-ide, and reset('Purge the evil spirits!') it?

    Here is what I see: https://drive.google.com/file/d/1IL5zAAR­YWwBgYIOZ_TDqA_4bC2KJlnDv/view (try download, playing back in the browser didn't work for me. Maybe some pre-processing by google...)

  • Sun 2019.01.05

    A video is worth a 1000 bytes of typing! , . . . or somethng of the sort ;-)

    Did both the items in #7 pp.1 yet again today. Waited till this evening and your response above arrived. Timely.

    Thank you for uploading that video as it proves out the difference. Missing from mine is the intermediate layer/level that has the three icons and the visible AppManager. With either the Espruino logo or a watch showing, BTN2 goes right to the 'Settings' menu.

    Now I'm wondering how the EU conf guys got by loading apps without that.

    So the real question now becomes, as the current download 2v04.218 is what apparently is on my device, how does one get that intermediate layer to show? Yet another app perhaps?
    Could it be that the 'bootloader' d/l from the app-loader page isn't truly overwriting the bootloader in place?

    'updated the firmware'

    Did you use the cutting edge build?

  • Argh, obviously we are stareing the solution: In your other thread the error message Bangle.setLCDOffset(0) not found means the bootloader is not executing properly. That's why it's not working properly.

    Most likely timeline:

    1. Everything works at nodeconf
    2. Stuff added...
    3. Watches with still the nodeconf firmware are "semi bricked" because of missing APIs

    Update the watch firmware.
    Or downgrade the "apps". You would have to manually grab a version of the apps that still works.

    'updated the firmware'

    Did you use the cutting edge build?


  • Yep - new firmware needed :)

    Right now I'm considering this stuff still Beta - so things may get added that break stuff. It means that in the long term we end up with more efficient JS code that's not full of if (x) x() type stuff

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

Source code for Bangle.js App Manager and How To Use documentation needed - How to Launch Apps?

Posted by Avatar for Robin @Robin