Rotate Display 180 Degrees

Posted on
  • Hi All,

    It would be really nice to be able to rotate the display 180 degrees so that the Bangle.js can be worn on the right wrist with the buttons correctly oriented and easy to access. At present it is a real pain for left handers having the buttons facing up your forearm. When wearing long sleeves and, in particular, wet weather and sailing gear they become inaccessible.

    Is this feasible? If so, how?

    Thanks
    Mike

  • wow as a leI realize so often how I have adapted to the other side because I must.

  • @user127305 Yes, you do adapt to most things but I did have to buy myself a left handed hammer before I could keep the nails straight.

  • Hi! So to make this work well, you'd need to flip the buttons as well I guess?

    I don't think this is something you could do that easily in JavaScript (with an installable app), although you could hack something up with a few lines that'd work in most cases.

    However I think it should actually be pretty straightforward to make a custom firmware for the watch for left-handed users which flipped the screen and buttons if you were interested?

  • @Gordon I guess custom firmware would be the ideal approach. I can appreciate that this would incur ongoing maintenance effort on your part.

    As a first step I don't see the button order as being an issue. It is easy enough to learn and adapt to which button is which. The core thing to start with is to rotate the screen. Is that possible with Javascript?

  • Is that possible with Javascript?

    Yes, check setRotation and https://banglejs.com/apps/#tool and search for Custom Boot Code app as a first approach.

  • Great, thanks. Really helpful starting point tip.

    A quick play has revealed :

    • Screen is flipped as expected.
    • Screen/graphics refreshes in apps seem rather slow. Refreshes line by line from the top ( as flipped ).
    • Gesture to turn on clock from power saving no longer works. Presumably rotation of wrist is now opposite to what is programmed.

    It is sort of usable.

    Cheers
    M

  • Cool, next step will be to test a firmware that includes a lefty Bangle screen driver initialization.
    Maybe Gordon can come up with something smart like a setting option that is read only once after reset to handle rotation by the driver. This will speed redraw up again - afaik.

    ps: I am a lefty too.

  • You can use setRotation, but as you noticed it can be slow (there are some 'fast paths' that don't activate when rotated). However the screen itself can rotate, which will be the fastest.

    If you paste the following into the IDE:

    require("Storage").write(".boot1",`
    Bangle.lcdWr(0x36,0xC0);Bangle.lcdWr(0x37,[0,80]);
    g.clear();
    var _ = BTN1;
    global.BTN1=BTN3; global.BTN3=_;
    _=BTN4;global.BTN4=BTN5;global.BTN5=_;
    delete _;
    `);
    

    Then long-press BTN3 to reload, you should now get a flipped screen and replaced left/right swipe areas. swipe direction will still be wrong though, and vertical scrolling or double-buffering will break things.

    Still, for most apps it's surprisingly usable

  • Great thanks.I'll try that tomorrow.

    Before I do.... How do I back that out if I need to?

    M

  • require("Storage").erase(".boot1") should do it :)

  • @Gordon Brilliant. You are a magician.

    That certainly seems to make it usable for me. Last touch is to turn around the watch strap. I only use the default clock and the GPS Adv Sports app at this stage.

    Just some comments to consider.

    • It doesn't look like BTN4 and BTN5 are swapped. Not an immediate problem for me.
    • Now 'BTN3' (standard BTN1 )to turn on and initial boot screen is 'upside down'. To be expected.
    • Original standard BTN3 long press to exit app back to watch has not changed. I guess that is something deeper in the OS and not affected by the javscript BTN swap code.
    • Swipe is not something I use.
    • A full 'lefty' firmware version would be great! I would be happy to help if I could. Having said that I am not expecting you to spend time on something that only 10% of the population might use.
    • I can activate the screen by rolling my wrist away from me. A little odd and inconvenient but doable for hands free turn on from power save mode. Absolutely essential while sailing as seldom have the other hand free to touch a button.

    In short I think I have enough to use it in lefty mode but there are some things that could be polished.

    I really appreciate the help so far.

    Regards
    Mike

  • ... just noticed that the gesture that wakes the screen keeps the display constantly on when doing activities that involve raising and lowering your arms and hands. Working on stuff on a bench and general activity around the house seems to keep the screen on. Even typing this on the keyboard keeps enabling the screen.

    Not generally noticed this happening in right way up mode.
    M

  • Actually, if you go to Settings -> LCD -> Twist ... there are some numbers there, and I believe you can just negate those in order to make it work on a left hand :)

    Also, worst case you can disable the wake on twist functionality there as well

  • Thanks. That looks promising.

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

Rotate Display 180 Degrees

Posted by Avatar for user125066 @user125066

Actions