Avatar for d3nd3-o0


Member since Jun 2020 • Last active Jun 2024
  • 45 conversations

Most recent activity

  • in Bangle.js
    Avatar for d3nd3-o0

    Some notes from a.i response and web-search:

    The DC internal resistance of a lithium-ion battery increases with the
    increase of the depth of discharge (DOD). Within the discharge range
    of 10% to 80%, the internal resistance remains relatively constant.
    The internal resistance increases significantly at deeper discharge

    Cold temperature increases the internal resistance on all batteries

    Chemical Processes: The chemical processes within the battery become less efficient as it discharges. This inefficiency leads to a more rapid decline in voltage as the battery approaches depletion.

    Increased Internal Resistance: Batteries also have internal
    resistance, which impedes the flow of current. This resistance
    typically increases as the voltage falls. With higher resistance, more
    energy is wasted as heat, further reducing the available power to your
    device and accelerating the voltage drop.

    As the battery discharges, the movement of lithium ions within the cell decreases, leading to higher resistance.

    I think as to whether the graph is normal or not, depends highly on what apps you have installed. And as to whether that is normal gadgetbridge type usage/behaviour. The curve on the left where you had it sitting does look pretty. But also it could be that usage means that the Display is turning on/off , so power draw would fluctuate a lot with that type of usage, or other peripherals like gps eg. Other obvious thing is ensuring wake on tap is not active, known to wake too often.

    I think your graph on right just represents typical usage of a device. But you'd have to do more digging to be sure, there are some apps on the appstore that monitor power usage/current by seeing which peripherals are active.

    And a best test scenario would be with as little as possible installed as Gordon mentioned, a clean base.

  • in Bangle.js
    Avatar for d3nd3-o0

    Programming/testing other Bluetooth devices using things like the 'Espruino Programmer' device

    Can you elaborate what this is?

  • in Bangle.js
    Avatar for d3nd3-o0

    Reinstall bootloader from appstore, it uses .boot0 file.

    Now make your app use .boot1 instead of .boot0

    The info file is only for making a normal app that is listed by the app loader app. You might need your app as a clock, and also as a .boot1 file. An app being a clock just means that it is loaded by the bootloader(.boot0 AND .bootcde) App, by default.

    Depending on how your device is reset/loaded, it won't always execute the .bootcde which is the clockLoader. But sometime it will. That is why I suggest a .boot1 and a normal app clock which are identical code. This could be a workaround for you. Ofc there can be other ways to solve this too.

    But this method might cause your code to load twice, in the normal case. So we have to think about it a bit more. Probably you would delete the file : .bootcde if you are relying on .boot1 file as a clock loader instead.

    EDIT: I just realized there is a .bootrst file that overrides .bootcde behaviour, AND runs upon reset too. So instead of deleting .bootcde, and instead of writing to .boot1, you could try writing to .bootrst. Then when you want to revert back to normal behaviour , delete the .bootrst file. Now the Bootloader app's .boot0 will load and then .bootrst (Your App) will load.

    Conslusion: Write your app to .bootrst, the bootloader app(.boot0) should not try to load a clock now. Bear in mind as above has said, all this tinkering can be risky for bricking the device (If you lose access to DFU screen). If you do still have access to DFU screen, you should be fine.

  • in Bangle.js
    Avatar for d3nd3-o0

    Have you thought about increasing the duration required to enter the bootloader? Are they going to be likely to hold the button for 10 seconds eg.?

  • in JavaScript
    Avatar for d3nd3-o0

    I did try that recursion, I couldn't seem to get much results.

  • in JavaScript
    Avatar for d3nd3-o0

    I noticed that the auto-completion tab in IDE is able to output more fields than a call to eg.:

    Specifically, some object-like fields:
    Bangle.removeListener etc

    Similarly for a Promise object, I do not see the .then function as child object. How can I get full listing via javascript?

    The auto-complete is able to show all of these fields from a promise instance:

    constructor         apply
    bind                call
    replaceWith         catch
    then                clone
    emit                hasOwnProperty
    length              on
    removeAllListeners  removeListener
    toString            valueOf

    How do I get these items into a javascript list?

  • in Bangle.js
    Avatar for d3nd3-o0

    Great news, I'm really happy for you and that our efforts paid off. Hopefully this will help many other Bangle.js GrapheneOS users.

    Good job.

  • in Bangle.js
    Avatar for d3nd3-o0

    Seems like there is a permission setting you might have missed? On normal android, background running options are under battery category. Unfortunately I do not know graphene well enough.

    Settings > Apps & notifications > Advanced > Special app access > Battery optimization >

  • in Bangle.js
    Avatar for d3nd3-o0


    This thread mentions using, the debug page in GadgetBridge menu, after Debug, scroll down, press orange button "Add test device manually", Choose bangle.js and enter correct MAC address.