Bangle.js Beta Feedback

Posted on
Page
of 2
Prev
/ 2
  • Hi!

    Regarding the wildcard

    Ahh. Maybe it was due to doing require("Storage").erase("myfile\0") rather than using StorageFile?

    Not sure if this is actually easier but you can do wildcards using .filter on arrays:

    require("Storage").list().filter(x=>/^foo.*/.test(x)).forEach(x=>require("Storage").erase(x))
    // or maybe just
    require("Storage").list().filter(x=>x.startsWith("foo")).forEach(x=>require("Storage").erase(x))
    

    look for a more offline solution.

    Interesting - at least for development you could just host BangleApps locally (which is what I do) but I guess even though we could use serviceworkers to make it work offline (like espruino.com/ide does) there may be little point in that as most stuff requires an internet connection.

    How are you storing the data NEMA sentences or JSON ?

    I just store CSV with time,lat,lon,altitude. It's now live at https://banglejs.com/apps - if you install GPS Recorder then you can run the app and start recording - and it'll keep running even when you exit and have a watch face up.

    In https://banglejs.com/apps, when you're connected you'll get a Download icon next to GPS Recorder - click it and you can then download the data as GPX or KML.

    I currently only display the lat/lon of the first coordinate on the map for speed, so if there was a way to add a button that would download and view the entire track on some service (Google Maps/Mapbox/Openstreetmap) it'd be great!

    minification

    I think whatever we did in general would have to work even if someone edited files on GitHub itself, since realistically installing Git & Node and using the CLI is a pretty big hurdle if you're not a Node developer :)

    However I'm sure at some point someone will want to use multiple files, and maybe typescript - so a dev folder might be a good plan in that case? Maybe it should just be inside apps/myapp/dev?

    Also, right now you can't use modules since there's nothing there to load them in. Maybe the smartest option is to pull in the Web IDE code and then do it all dynamically.

    is there a way to introduce a user selectable GPS polling rate?

    Ish. You can communicate straight with the GPS and tell it to enter different modes, but it's not something I have a nice API for.

    I just uploaded my test code to https://github.com/espruino/BangleApps/blob/master/testing/GPS-comms.js so feel free to have a play. As I understood it, the UBX_CFG_PMS message enabled automatic power saving, which basically tried to do what it could to lower power consumption.

  • Re: battery gauge: yes, seems like it's some linearity problem, or something is off, or there is some parts variance, because now the reported battery status is ~ 3pixels less than full, and the watch has been running for about 1.5 day.

  • Ok, something is weird: Maybe the battery widget isn't refreshing?
    The battery display stayed at the same almost full state till now. Connected via BLE, called E.getBattery(), and the response was 57 (that's 57%, right?). Disconnected, back to normal watch-face, and now the battery widget shows ~57%.
    A minute earlier the battery widget showed almost full battery!

    VERSION: "2v04.76",
    GIT_COMMIT: "624d6f2",
    
  • Ahh - just looked at this and the battery widget only updates when you charge/discharge and is reliant on the watch face to refresh it when the LCD turns on. Some faces do, some don't. I've just fixed it so the battery widget redraws itself when the LCD powers on, or once a minute while the LCD has power.

  • Noticed that the battery widget is pretty big... could it not be a bit less wide and still communicate the expected information?

    There is way to show even more information AND shorten it more: instead of 'vertical lines going fully thru the filling (green bar)' use side alternating notches or 'misalignments'. I chose a single pixel (vertical) line for 10% of battery capacity each, starting and ending with a complete vertical line... but leaving one or both full lines out works as well and simplifies implementation.

    Attached 'shopped' pics hint implementation options... from elaborate to simple, with last shot being to pixel scale (EDIT: Added charging arrow after @MaBe made the point in next post #31).


    4 Attachments

    • BatteryIndicator1.jpg
    • BatteryIndicator2.jpg
    • BatteryIndicator3.jpg
    • BatteryIndicator4.jpg
  • Well, it changes when charging.


    1 Attachment

    • A565A610-857A-4A13-AC25-B7428FAE9E58.jpeg
  • Well... in deed!


    1 Attachment

    • BatteryIndicator5.jpg
  • just opened a new conversation Battery widget - how should it look like?

  • As you noted it's long because some space was needed to show the charge indicator, but it could easily be tweaked. One option might be to change the solid bar to an animation of some kind when charging (since at that point power usage is not a huge concern).

    Of course if you want to do something totally different then go for it - it'd be nice to have some different options so everyone can install what they want to.

  • @Gordon One thing I think about is the size of the font used.

    The app selector contains 3 lines of apps where the icons are decent size but the text is quite small. The Settings app has got like 10 lines and I find that to be the reason it is not too convenient to use.

    I would say using a font that would read nicely in 4-5 lines on full screen would be of great benefit to the overall usability of the whole Bangle.js platform.

  • Following up on posts #15, #18, and #19, the updated firmware does seem to reduce accidental menu selections!

    I had some travel days this past week, though, and in moving luggage around, getting through the airport, etc., I still caught it in the menu or settings screens a few times, so it hasn't completely eliminated them.

    I'll follow up if I try swapping the bands and wearing it upside-down.

  • One more thing: The GPS status icon that's shown when the GPS recoder is active is kind of hard to see in sunglight. Red on black is not the best I think :)

  • Interesting... Can you not even make out the blinking?

    While I'm making a bunch of big breaking changes I've got an issue open for allowing widgets to have a dynamic length. While I'm doing that I might change the way the icons for the GPS recorder work so the widget is invisible while off, and I guess I could use some kind of animated satellite icon.

    If you cope up with some icon set you'd rather have then I can include that. I'm paid up with https://icons8.com/icons/set/satellite-signal so if you found one of those it's no problem to pull it in. I guess we'd need two icons for the animation when it has a lock, and another one for when it's searching

  • I think it's the red color and the small text of "No GPS signal" that makes it hard to see. Looking at it I see that is pulsing slightly.
    Right now it's cloudy, but even now it's hard to see. I'm inside, so no GPS signal right now, but IIRC event the red blinking is hard to see. Like "if you know where and what to look for you will probably notice" hard.

  • Thanks - I wonder whether a lot of that is down to the contrast issues on the Beta watches LCD screen: https://github.com/espruino/Espruino/issues/1758

  • The new contrast / gamma looks better, thanks!
    The "Torch"'s four click to activate fires in settings as well. Making it hard to use the settings :)

  • Erm, I think I have done something wrong, updated firmware to 2v04.384 (previous one was a 2v04.377), and now I can't connect to it via BLE. The morphing clock does
    Tried re-flashing, shutdown & restart, but no luck. Kind-of bricked now.

    "Resetting without loading any code" doesn't really work:
    The screen does show the bangle logo, version, and after that there is a -> null.
    nRF connect on my phone does catch the Bangle for a moment, but usually just for a moment. Managed to connect to it once, but NUS doesn's seem to be working. No reply from the watch at all.

    Even stranger: When I try to boot without any code, long-pressing BTN3 erases the screen. But if I let display turn off, and raise, so the motion sensor turns the screen on, the morphing clock shows up. But seconds are not ticking, battery and bluetooth widgets not shown.
    But displays the right time with right time zone.
    Even stranger lvl2: as I have written, seconds not ticking normally. But if the minute changes, the clock starts morphing, and while it's morphing the seconds are ticking as well. And after the morphing stops, seconds stop as well.

    (The previous comment was with an F18, not a proper Bangle Beta. Updated from a much older version, that one is working just fine. But did clear storage before updating)

  • Flashed back to 377, erased storage, flashed to 384, and seems to be working again!

  • Thanks - probably related to https://github.com/espruino/Espruino/issues/1766 which I'll try and get sorted soon

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

Bangle.js Beta Feedback

Posted by Avatar for Gordon @Gordon

Actions