• EDIT:
    Sat 2019.12.28 - Partial solution step list in post #9



    Thr 2019.12.26

    While assisting Alex with a charging issue: forum post Charging found a bit of time to play with this Beta prototype. (pledge backer 258)

    Read over the following pages:

    Started with: Just got your Bangle.js? Here's how to get started

    ref https://www.espruino.com/Bangle.js+Getti­ng+Started

    Am able to power on BTN1 and power off BTN2
    Am able to reset holding both buttons

    Loaded the following:

    ref https://banglejs.com/apps/

    Bootloader
    Settings
    Battery Level Widget
    Bluetooth Widget
    Mixed Clock

    Pressing BTN3 after disconnect does reboot and a clock face, BLE icon and Battery status indicator are visible

    ref https://www.espruino.com/Bangle.js+Getti­ng+Started
    Bullet 2 'BTN2 : ‘Select’ in menus, or bring up menu when in Clock'

    However, pressing BTN2 does absolutely nothing, no menu. Bewildering.

    Q: What does 'When in Clock' really mean? Is there a specific clock that must first be loaded?

    First and second line here, pressing the middle button does not bring up a menu either

    https://github.com/gfwilliams/workshop-n­odeconfeu2019/blob/master/step1.md

    nor is there any type of scrolling. The clock face remains static. (minutes do update)


    From WebIDE >> Settings >> Console

    FIRMWARE: Current 2v04.218, Available 2v04.218
    
    >E.getBattery()
    =63
    

    Connecting using the WebIDE reveals this error:

    Uncaught Error: Function "setLCDOffset" not found!
     at line 1 col 8
    Bangle.setLCDOffset(0);Bangle.setLCDMode­("direct");g.clear()...
           ^
    in function called from system
    

    I'll keep reading / trying . . . .

  • . . . . cont

    Reset Bangle by following instructions beneath heading 'Resetting without loading any code'

    ref https://www.espruino.com/Bangle.js+Getti­ng+Started

    'You can now go to http://banglejs.com/apps , connect, then go to ‘About -> Remove All Apps’, re-install ‘Bootloader’ and a ‘Clock’ and you’re good to go.'

    Nope. Not good to go here. BTN2 still doesn't open a menu.

    Niether does E.showMenu().


    Reading over

    https://www.espruino.com/Bangle.js+Devel­opment

    Entering BTN2.read(); does in fact return true when the middle button is depressed and false otherwise.

    >BTN2.read()
    =false
    >BTN2.read()
    =true
    

    Entering

    setWatch(() => {
      E.showMessage("You\npressed\nthe middle\nbutton!");
      setTimeout(()=>g.clear(), 1000);
    }, BTN2);
    

    produces the following error:

    >E.getBattery()
    =100
    >setWatch(() => {
    :  E.showMessage("You\npressed\nthe middle\nbutton!");
    :  setTimeout(()=>g.clear(), 1000);
    :}, BTN2);
    =1
    Uncaught Error: Function "setLCDOffset" not found!
     at line 1 col 8
    Bangle.setLCDOffset(0);Bangle.setLCDMode­("direct");g.clear()...
           ^
    in function called from system
    
  • . . . . cont

    ref http://www.espruino.com/Bangle.js

    It is possible to block the error by 'call Bangle.setLCDMode() to return to normal, unbuffered mode'

    It is also possible to override the 'built-in menu library' by block copying the menu snippet and uploading it. However, that solution only copies/interlaces the menu into the existing clock, so readability is near zero.

    Fiddling with g.clear() may be a potential fix.

    EDIT: Nope. Pressing BTN3 to reload, brings up both the menu interlaced with the clock, just as before and unreadable.

  • Fri 2019.12.27

    Further checking reveals this suggestion for a 'Settings' menu:

    https://www.espruino.com/Bangle.js+Devel­opment
    https://github.com/gfwilliams/workshop-n­odeconfeu2019
    NodeConf EU badge docs
    https://nodewatch.dev/getting-started#pr­e-installed-applications

    'In order to upload the Apps you first have to make your device connectable over Bluetooth in the Settings menu on your device and check what the Bluetooth address is'

    Under heading 'Pre-installed applications' the 'Settings' widget is considered pre-installed. I have even done the extra step of installing the 'Settings' widget from:

    https://banglejs.com/apps/



    Beneath the 'Troubleshooting' heading

    https://www.espruino.com/Bangle.js#troub­leshooting

    'Go to 'Settings' in Bangle.js and ensure that BLE and Programmable are set to on. Failing that, see Resetting without loading any code above.'

    Have tried the above suggested reset. Also powering off if completely broken. Have removed all apps and just loaded the 'Bootloader' and 'Settings' app. Still no 'Settings' menu.

  • I think you should update the firmware, altho it says FIRMWARE: Current 2v04.218, Available 2v04.218, but I think it's lying :)
    If you go to https://www.espruino.com/json/ the "Last modified" of the BANGLE.JS file is 11.07. But the latest commit and Travis build is 2v04.84 (look for the build number on the bottom of the build log. Built on 12.17.
    What git commit process.env says? Should be 65efbe2.

  • Sat 2019.12.28

    Thank you for the reply @AkosLukacs and I had considered that.

    But isn't 2v04.218 current release and 2v04.84 the cutting edge build?

    What got me thinking against the firmware update was the fact these were the Beta prototype left overs from the NodeConf EU held in November, links in post #4 and the tutorials there are extensive. So, it seems likely that version of Espruino Bangle most likely could do all the tasks in the tutorials. I would think that accessing the settings menu was a basic task needed in order to select which app to launch, and to turn the darn thing off. Holding off for now. (and don't have immediate access to a smart phone to perform that task) My 0.02 worth.



    Inconsistencies, I agree. With the device now fully charged:

    >process.env
    ={
      VERSION: "2v04.218",
      GIT_COMMIT: "5439331a",
      BOARD: "BANGLEJS",
      FLASH: 524288, RAM: 65536,
      SERIAL: "330b0ad8-0c11713d",
      CONSOLE: "Bluetooth",
      MODULES: "Flash,Storage,hea" ... "ow,graphical_menu",
      EXPTR: 536883676 }
    > 
    



    EDIT:
    I just noticed in the Charging thread your statement 'Mine charges at a fairly constant ~230mA. What do you see?'

    Do you have one of the Beta Bangles also? If so, once the watch turns on, and a clock face renders, what sequence then brings up the settings menu?

  • Hi, afaik, there is no "release" for the bangle, it's still beta :) There are several fixes in the current cutting edge build compared to the Nodeconf firmware (about month time difference). Also the apps themselves were updated since Nodeconf. For example Apps versioning wasn't in that version. But done entirely in the "apps". No firmware changes, just JS changes.

    The bootloader
    and settings are "apps" themselves, if you clean all JS code, the remaining functionality is like an MDBT42 breakout board: It can do lots of things, if you write your own code :)

    Middle button -> app list, and go to the "Settings" app to bring up the settings. If the bootloader and settings are installed!

  • Sat 2019.12.28

    re: 'Middle button -> app list, and go to the "Settings" app'

    Middle button appears dead when the clock face is visible. No change. No app list.

    re: 2nd pp #7 post, that confirms my basic mental model. Have done that with the online 'apps' but with your links to the source, I'll create a new project environment and attempt another complete reset. Back in a half hour . . . .

  • Sat 2019.12.28

    Partial Success!! (okay took an hour instead)

    The following is for the Beta prototype. It may/might apply for the final release product to be shipped in March.

    The key to this solution was the insight provided in #7 post by @AkosLukacs. Although I had attempted a clean boot and removal of all apps and re-install using the web app library page, I had no success.

    • Create a new project on your PC
    • Point the WebIDE to that project - WebIDE >> Settings >> Project
    • Using the links in post #7 open a 'Raw' view in the browser and save to the 'projects' folder just created above
    • Follow the steps 'Resetting without loading any code' from link in #2 post
    • Open the WebIDE and connect
    • Upload 'bootloader.js'
    • Upload 'settings.js'
    • Ignore the error(s) 'No Clock Found'
    • Over step the rookie mistake I made and remember to type save() before dis-connecting or do the above sequence twice ;-)
    • Press BTN3 on the watch



    Ignore these errors

    >
     ____                 _
    |  __|___ ___ ___ _ _|_|___ ___
    |  __|_ -| . |  _| | | |   | . |
    |____|___|  _|_| |___|_|_|_|___|
             |_| espruino.com
     2v04.218 (c) 2019 G.Williams
    >
    >E.getBattery()
    =50
    >
     ____                 _
    |  __|___ ___ ___ _ _|_|___ ___
    |  __|_ -| . |  _| | | |   | . |
    |____|___|  _|_| |___|_|_|_|___|
             |_| espruino.com
     2v04.218 (c) 2019 G.Williams
    >
    Uncaught Error: Function "setLCDOffset" not found!
     at line 1 col 8
    Bangle.setLCDOffset(0);Bangle.setLCDMode­("direct");g.clear()...
           ^
    in function called from system
    >
    

    and on second pass

    >
     ____                 _
    |  __|___ ___ ___ _ _|_|___ ___
    |  __|_ -| . |  _| | | |   | . |
    |____|___|  _|_| |___|_|_|_|___|
             |_| espruino.com
     2v04.218 (c) 2019 G.Williams
    >Uncaught Error: Cannot read property 'clock' of undefined
     at line 116 col 26
      var clockApp = settings.clock;
                             ^
    >
     ____                 _
    |  __|___ ___ ___ _ _|_|___ ___
    |  __|_ -| . |  _| | | |   | . |
    |____|___|  _|_| |___|_|_|_|___|
             |_| espruino.com
     2v04.218 (c) 2019 G.Williams
    >Uncaught ReferenceError: "setLCDTimeout" is not defined
     at line 20 col 99
    ...estures:false,debug:false,clock:null}­;setLCDTimeout(settings.timeout);u...
                                             ^
    in function "resetSettings" called from line 39 col 30
    if (!settings) resetSettings();
    >
    



    Now, I can see what all the fuss was about!! The 'Settings' menu appears!! Now on to see if I am able to get a watch app installed!



    EDIT:
    Still an issue with software compatability. I am able to load any of the clocks, and am able to set the default with the 'Settings' menu. However, the 'Back' option just renders a blank screen, forcing a reboot. Interestingly, now loading the 'Bootloader' from the 'apps' page does allow the default clock to load first, but now back to where the 'Settings' menu won't render with BTN2.

  • Update to the latest cutting-edge, as soon as you can, for example setLCDOffset used by the bootloader was introduced after that build. [You can browse the diff since your version on github].(https://github.com/espruino/Espruino/com­pare/5439331ac8f0e5dee87bf8319af08738c67­18df9...master)

  • Hi Robin, I shipped your Beta unit earlier than the others because you'd placed a order for a bunch of parts at the same time - that means it had substantially earlier firmware than the other beta units.

    I'd definitely update firmware. Any findings you make with the old firmware are likely to be very dubious as an awful lot changed right before shipping the beta units out.

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

BTN2 doesn't enable Settings Menu with Bangle.js KS Beta Unit [Solved - Partial Recovery Solution Steps]

Posted by Avatar for Robin @Robin

Actions