Bangle.js 2 button stuck

Posted on
Page
of 3
Prev
/ 3
Next
  • Thanks @Gordon but that isn't necessary, I managed to open the watch (in the end used hot air as my heated bed wasn't doing the job and I didn't want to push the printer any higher) and although the button PCB didn't look out of place I pulled it out and put it back in and all seems to be well again. I just need to find a suitable adhesive for closing the screen back up. (attached photo taken before I removed the button PCB)

    I wonder if you might put a page on the bangle.js website with instructions on disassembly, I struggled to find any advice on a few attempts to find it then I struck gold with some posts here, namely https://forum.espruino.com/conversations/372404/.


    1 Attachment

    • 2023-06-15 22.43.56.jpg
  • I wonder if you might put a page on the bangle.js website with instructions on disassembly

    Thanks - just done! It's processing now. https://espruino.com/Bangle.js2+Disassembly

  • Nice, very useful. Was this the first opening of this particular watch? If so I need to get me a hotplate :) Mine fought back A LOT more using hot air.

  • Was this the first opening of this particular watch?

    It was! It actually surprised me how easily that one came apart.

    I had a bit of bad luck and it took a few attempts before that took a whole lot more work to get the front off - the camera got low battery, the SD card ran out of space, someone came to the door - and it just happened that that particular video made it to the end (although I forgot to mention using a 3D printer heated bed!).

    Some of them did require me to use the scalpel to get between the glass and the plastic and lever slightly, but I did manage to do that without any obvious damage to the watch. I think something like a stanley knife blade probably would be too thick though.

  • H I Gordon, we have 2 kickstarter Bangle Js2 watches, form one of these, the most used blue version the button stops working. I only see the text "Hold button to reload.
    The watch does not reply on anything, I can connect to the watch with bluetooth and add Apps or update the firmware. However that is it.
    Is there a way you can replace the watch ? I do not like to open the display and fiddle with the electronics.

  • I'm afraid I can't replace the watch for free - it's now over 18 months old, and while I have been replacing them up to a year (even though it seems most companies only do 6 months) I just can't afford to keep doing it past then, especially on something like the KickStarter where the profit margins aren't very good in the first place.

    What I have been saying though is if someone bought a watch and it broke, regardless of how old it is I can give you a code for the shop to buy a new one half price which is pretty much at cost for me.

    Although it is possible that by pushing the button gently and moving your finger around in circles you can bring it back to life, or you can connect with the Web IDE and type load() on the left-hand side to reload the Bangle's watch face without a button, so even without the button it could still be used as a temperature/pressure sensor or display of some kind - however unfortunately if it runs out of power or is turned off, there won't be a way to get it working again.

  • Thanks Gordon,

    I will order a new watch in the shop

    Best regards,

    Oscar

  • This problem hit me today, my Bangle2 is in a bootloop now as well. I was wearing it in the morning, than it set on my desk. When I returned in the afternoon it was doing the bootloop.
    For some reason I could break the cycle when putting it on the charger. I did a reflash of 2v19, but I did not work. I also could do a factory reset quickly, but didn't help either.

    The button does not feel physically stuck and is still clicking. The watch never saw any water except maybe a raindrop today.

    I also could quickly perform a

    >(new Pin(BTN1)).read();
    

    which returned true.

    Not sure what is going on, but this is now the 3rd watch (original + 2 replacements) that died for me for some reason or another. I'm not being mad at anyone, just a bit frustrated. :-(

    I will let it run down the battery and see if this cures itself.


    1 Attachment

  • Hi - sorry to hear that - it does seem you've been very unlucky with these! To be fair we did replace both free of charge as far as I can tell? and I think you got the original watch around 2 years ago now?

    It's a very odd failure if the button is still clicking - normally I'd put that down to a bit of water getting in around the button and subsequent corrosion, but as you say it's not been near any water recently. I guess it might not be one big event but just a bunch of small times that added up - it may well be that just putting it somewhere warm for a few days will dry up inside if it had got very slightly humid in there and it might start working again.

    It's a frustrating issue as probably the button is still fine. BTN1.write(0);BTN1.read() will likely return false - it's just the resistance of the button has decreased slightly and the internal pulldown in the chip can't counteract it any more - but I don't believe there's any way for us to counteract that in software.

  • To be fair we did replace both free of charge as far as I can tell? and I think you got the original watch around 2 years ago now?

    Yes indeed and I am very grateful for you to be so fourthcoming!

    What's strange indeed is that the looping will stop eventually, than I can connect to the watch via BT normally. I did the BTN1.write(0);BTN1.read() as you suggested and it returns false.
    But as soon as you start working with it it will start the loop again eventually.
    When I then do the BTN1.write(0);BTN1.read() in the brief 3 seconds before it reloads again it will return true.

    I'll let it sit for while, lets see.

    Lets suppose I would try to open it, how or what could I check and/or repair inside?

  • Ok, yes, the lowered resistance sounds like it then :(

    Lets suppose I would try to open it, how or what could I check and/or repair inside?

    There's a little button on a flex PCB - and either you could just give it a clean under distilled water, or I do have a handful of new ones here and I could send you one of those.

    edit: Just to say that it is possible to stop the button resetting the watch (https://www.espruino.com/Bangle.js+Button+Reset) so even if the button stayed stuck down sometimes, you could almost certainly still use the Bangle for something even if not having the button available made it not that good as a watch.

  • Just to say that it is possible to stop the button resetting the watch

    I just was about to ask. I'll give this a try.

  • Sorry if I reopen an "old" post, but I have the exact same problem:
    clock in bootloop because it detects the pressure of the BTN1.
    since the button "seemed" stuck, I already opened the watch; only that even if you physically remove the button, the board detects it as pressed.
    I then tested the button with a tester and it works fine.
    what could I do?

  • That's a pain - does the board look corroded in any way? It could be that some moisture got in and has caused a lower resistance between some pins.

    I'd maybe consider going over it with a brush and distilled water or isopropyl alcohol and see if that helps at all - especially near the connector and up around the main microcontroller chip.

  • does the board look corroded in any way?
    nope, I'm attaching an image even if my smartphone sucks a bit...
    I also disassembled the rear part and there are no signs of humidity or corrosion.

    the last time it worked, I used it in a cold environment but considering that it was always worn and under the jacket, I don't think it ever went below 10°C.

    I only noticed one thing, in the part "circled" in red, there seems to be 2 soldering points but there is no component.
    is it missing or is it correct like this?


    1 Attachment

    • IMG_20231218_140725 (1)2.jpg
  • I just checked a board here and that missing component is expected. The board looks pretty good as you say, no signs of issues - although just where the button PCB plug is, at the top edge of it (by the IFXI text) the pads on the PCB look a big dull (although that could just be lighting) - I guess you could try a clean.

    How old is the watch?

    The button itself shorts the wire to ground, with it being pulled up to 3.3v via an internal pullup in the chip itself (the value of which can't be changed). If it were possible to add an external pullup resistor with a stronger value that'd likely fix it, but I'm afraid I can't see any easy way to attach one as I can't find a testpoint for the button

    There is a vanishingly small chance that the unpopulated component you found could be an optional pullup resistor, but I doubt it - and i'm afraid I don't have a PCB schematic so I can't check

  • I should add that as in the post above, you can effectively disable the button in software so assuming you can upload the code fast enough after boot up you can make the watch semi-usable, and then it would be possible to make the accelerometer 'tap' call the handlers for when the button is pressed.

  • the pads on the PCB look a big dull (although that could just be lighting)

    from another angle/light it is actually clean. I'll try to clean it anyway.

    How old is the watch?

    1 year

    being pulled up to 3.3v via an internal pullup

    this is the strange thing, reading the value between GND and the button pin with a tester I detect a voltage of only 0.09V (no it's not a typo)

    There is a vanishingly small chance that the unpopulated component you found could be an optional pullup resistor

    I look at this here: https://www.espruino.com/Bangle.js2+Technical, it seems that the component is also missing.
    and in any case given the proximity it should be a component of the compass.

    you can effectively disable the button

    yes, I've already tried, it works but I'm trying to understand if I can get it to work again without using the "tap" trick

  • this is the strange thing, reading the value between GND and the button pin with a tester I detect a voltage of only 0.09V (no it's not a typo)

    Ok, well that's interesting then - it almost sounds like a short.

    What happens if you connect by Bluetooth and then do BTN.reset() - this will force the button's pin to be an output (it's inverted in software so actually should try and push out 3.3v) and then see what voltage you can measure?

  • always 0.09V
    with pinMode(BTN, 'output'); it jumps to 2.7V
    pinMode(BTN, 'input_pullup'); -> 0V
    pinMode(BTN, 'input_pulldown'); -> 0.09V

  • -

  • -

  • Ok, thanks! very interesting! Well, 2.7v isn't the 3.3v I think the chip is powered from, so there must still be quite a serious resistance across the pin.

    Even if you were to counteract that with a big resistor, it'd kill your battery life so you'd really have to find out what was causing it. I guess it could be a short against a nearby pin, but even so it's hard to see how that could have just started

  • I cleaned the whole board but nothing, same problem.
    doing some calculations and tests I found that a 150 ohm resistor between the button pin and 3.3v solves the problem (it means that the pin is "short" to gnd with around 400 ohm); the problem is that it consumes about 6/7 mAh... too much...
    I'll try cleaning the board again and maybe reflowing the chip with a hot air gun...

  • Hey Rarder44,

    Is there any update to your quest? I'm suffering from both, lost bluetooth and now bootloop aswell and wanted to check if there is a magic cure to this.

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

Bangle.js 2 button stuck

Posted by Avatar for rigrig @rigrig

Actions