Avatar for Raik

Raik

Member since Dec 2019 • Last active Jun 2024
  • 13 conversations
  • 168 comments

Most recent activity

  • in Bangle.js
    Avatar for Raik

    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.

  • in Bangle.js
    Avatar for Raik

    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?

  • in Bangle.js
    Avatar for Raik

    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.

  • in Bangle.js
    Avatar for Raik

    However I accidentally ran the GPS until the the device died and now it won't even last 24 hours.

    That could be a contributing factor. @Gordon Can we determine at what voltage the circuitry cuts out?

  • in Bangle.js
    Avatar for Raik

    Nah, different guy. sorry for the confusion, I just commandeered this thread. In my case it was for Bangle2. But now it works again, might have been a glitch in the DFU app.

  • in Bangle.js
    Avatar for Raik

    Also firmware update related: the update using the nRF firmware update app is no longer working for. The app reports that the zip file cannot be read. This worked fine before, any suggestions? Is there another app to be used?

  • in General
    Avatar for Raik

    Hey guys,

    I'm trying to improve the handling of the GraphicsBuffer for my 3-color (white/black/red) ePaper display.

    So the display expects all pixels for black and all pixels for red to be send with a separate command. So the way it is now setup is, that I have created 2 separate GraphicBuffers of 1bpp each, e.g.

    var g_red=Graphics.createArrayBuffer(264, 176, 1, {msb: true});
    var g_black=Graphics.createArrayBuffer(264, 176, 1, {msb: true});
    

    Then I write both buffers to the ePaper using different commands:

    //write red
    writeCommand(CMD.DATA_START_TRANSMISSION_1);
    for (let i=1;i<g_red.buffer.length;i++) writeData(g_red.buffer[i]);
    
    //write black
    writeCommand(CMD.DATA_START_TRANSMISSION_2);
    for (let i=1;i<g_black.buffer.length;i++) writeData(g_black.buffer[i]);
    

    While this is working fine it bothers me, that I have 2 separate buffers to draw to. If I want to draw something in red, I have to use g_red.drawString(...) and for black g_black.drawString(...)

    What I was hoping for was to use a 2bpp buffer and then be able to use setColor do something like this:

    var g_both=Graphics.createArrayBuffer(264, 176, 2, {msb: true});
    
    //draw in red
    var g_both.setColor(red).drawString(...);
    
    //draw in black
    var g_both.setColor(black).drawString(...);
    

    But now, how do I transfer this to the ePaper. It is not as easy is sending every other byte of the buffer using one of the above commands right?

    When I try this, I get weird interlaced results:

    writeCommand(CMD.DATA_START_TRANSMISSION_1);
    for (let i=0;i<g_both.buffer.length;i+=2) writeData(g_both.buffer[i]);
    
    writeCommand(CMD.DATA_START_TRANSMISSION_2);
    for (let i=1;i<g_both.buffer.length;i+=2) writeData(g_both.buffer[i]);
    

    So if I understand this correctly: lets assume I want to only set the first 8 pixels of the display. When I want to set the first 2 pixels and the last 2 pixels to black, I would have to send the bit value 11000011 or 99 in decimal to the black buffer.

    Now if I want pixels 3-6 to be red, I would need to send bit value 00111100 or 60 to the red buffer.

    I cannot wrap my head around how this would work with a 2bpp graphics buffer though.

    Hope the above is not too confusing.

  • in Bangle.js
    Avatar for Raik

    Did you ever force the charger onto the pins the wrong way round?

    No, I have a charging cradle and the watch only goes in one way. I did not touch that when switching from the old Bangle to the replaced one. I am really sorry for bothering you again with this. Maybe third time's the charm... :-/

Actions