Avatar for Mark_M


Member since Oct 2021 • Last active Jul 2022
  • 10 conversations

Most recent activity

  • in Bangle.js
    Avatar for Mark_M

    I've got it. Some connection was there already. I had to reboot B2. Now it connects!

  • in Bangle.js
    Avatar for Mark_M

    Hi all,
    I am trying to connect to Android phone (there is GATT server) while debugging in Chrome IDE.
    Getting ERR 0x12 (CONN_COUNT).

    var gatt;
    NRF.requestDevice({ filters: [{ name:'Pixel 4a' }] }).then(function(device) {
      console.log("found device");
      return device.gatt.connect();
    }).then(function(g) {
      gatt = g;
      return gatt.startBonding();
    }).then(function() {
      console.log("bonded", gatt.getSecurityStatus());
    }).catch(function(e) {
    =Promise: {  }
    found device

    If "one central and one peripheral connection", what is a central and peripheral in my case?
    My understanding B2 acts as service, so it should be peripheral. Am I correct? Then why it does not allow to connect to Android service as central?

  • in Bangle.js
    Avatar for Mark_M

    It looks like something is wrong with my Chrome in Linux. It cannot load modules for Emulator too.
    Chrome in Windows works well.

    It appears that in windows it does not work same way when I put http://www.espruino.com/modules/ into Settings. It works with HTTPS.

    I've put https://www.espruino.com/modules/ that in Linux Chrome. And it works!

  • in Bangle.js
    Avatar for Mark_M

    Font not found after upgrade to firmware 2v14.
    current firmware version is 2v14 and bootloader is 2v12.

    >Uncaught Error: Module Font8x16 not found
     at line 1 col 19

    Settings/Communications Module URL is set to http://www.espruino.com/modules/

    Please advise.

  • in Bangle.js
    Avatar for Mark_M

    Accuracy also depends on an antenna, and even on a ground plate.
    The 2.5m accuracy stated in a chip's docs usually presumes a good (active) antenna, good ground plate and good weather and sky conditions.
    The antenna in the watch is very little, passive, and there is no ground plate.
    So, we should not expect, the accuracy will always be high.
    I am working on speedometer app, it uses Doppler velocity from GPS fixes (rather then calculates speed from coordinates). Though it can detect correct speed (compared to car speed), very often time lag can be up to minute. Like, I am driving already 40 km/h, but the watch still shows 10 km/h, then after ~40 sec, it finally shows 40 km/h.
    This is kind of frustrating, but I understand why it cannot be precise enough.
    I am thinking about to use a separate GPS unit with bigger antenna, and use the watch as a display only, sending data via Bluetooth.

  • in Bangle.js
    Avatar for Mark_M

    Ok. I see. I thought the scrolling is done as a whole bitmap shifting.
    Thanks for the example.

  • in Bangle.js
    Avatar for Mark_M


    not totally different. Currently I just want to draw a color box on top of an "Color" item.
    That shows a current color, and calls a submenu that allows user to select a color from list.

    If a rectangle x1,y1,x2,y2 of the item will be passed into the callback it should not break.
    The alternate menu system has to be compatible with the standard one anyway. It also should support this callback, same way as it should support format() callback.

  • in Bangle.js
    Avatar for Mark_M

    I have Ubuntu 18.04.6 LTS. No problems at all.

  • in Bangle.js
    Avatar for Mark_M

    @Mark_M no, I haven't had time for that. Sorry, but I forget why this was needed in the end? Since you can feed images back from the format function you can display a bunch of stuff through that pretty easily and cleanly.

    The need was to allow to draw custom vector graphic on top of the item. Like frames, colored bars, or circles, or whatever.
    I do not disagree that it is possible to use format, but it does not look convenient for dynamic vector graphics. Does it mean I need to create a bitmap, draw into that, then pass it to format() as a string? It looks quite tricky.

  • in Bangle.js
    Avatar for Mark_M

    Hi Gordon, did you have a chance to add a callback after the item is rendered?
    Something like
    afterdraw : function(idx, item, rect)

    not sure if menu needs to be passed. In previous system there was a selected item stored in header item[0]. If something will be stored in item[0], the whole menu or just this item[0] should be passed as well.
    afterdraw : function(idx, item, rect, menu)