Watchface: MoDiSuMo

Former Member
Former Member
EDIT: 03.08.2015
Version: 1.00
- added seconds marker in high power mode
- resolved bug: display error because of rounding (e.g. showing 09h60m instead of 10h00m)
- submitted first version to app store



Hey guys! First post here on the forum, allthough I've been lurking round here quite a lot lately extensively using the search function. Great work all around here. I've been working on a watchface myself and it's working pretty well for me. I thought maybe some of you might find it nice and usable as well.

So I thought I put a trial version on here so you can test it. If something doesn't work out right, feel free to tell me. If you dont like it, feel free to to tell me. If you do like it, tell me as well and I will put a hopefully bugless version on the store.

Because some ppl on the forum had bad experiences with no feedback on trial versions this one will expire on the 31st of july.

Enough talk, let's tell something about the watchface:




MoDiSuMo - standing for ModernDigitsSun&Moon


real pictures:



Monochrome design when in "low power mode" (except battery < 20%)

Colored design and additional info in "high power mode" (when looking at watch)


Features:


  • 12/24 hour clock
  • weekday and date
  • seconds mark on edge of watchface (only high power mode)
  • bluetooth indicator
  • continuous battery indicator (with percentage in high power mode)
  • alarm indicator (not working yet since not yet supported by connect iq sdk)



sun and moon:
  • circle representing 24 hours of a day (noon on top, midnight on bottom)
  • indicator rotating clockwise representing time
  • bright part of circle -> daylight
  • dark part of circle -> no daylight

yellow:

  • left of circle: sunrise time
  • right of circle: sunset time
  • top of circle: remaining light time / remaining time to sunset


  • blue: left of circle: remaining time to full moon / new moon
  • in bottom half of circle: symbol for what moon looks like now
  • white: elevation in meters or feet above sea level
  • on the right: number of steps and a green movebar filling up to the step goal


A few things about expected accuracy:
For sunrise and sunset calculations I implemented the algorithm here: http://lexikon.astronomie.info/zeitgleichung/
So accuracy will not be perfect but in the range of about +/- 2 min which is totally okay for me.
For moon phase calculations I adapted some of the algorithms from here: http://www.astrotreff-deep-sky.de/ATDS_postst3232_Formel-zum-Berechnen-der-Mondphase.aspx
Accuracy here will be in the range of about +/- 2 hours for example for the time of the full moon. This is really sufficient for me as well since the moon looks exactly the same to my eyes even more than 2 hours before or after exact full moon.
The picture for the moon phase consists of 16 different states. It's not like a moon calendar where the half moon symbol depicts the exact start of the half moon. I tried to programm it in a way that the picture reflects what the moon more or less looks like at the moment. So the half moon picture will show up a little before the moon will actually be half full. So this behaviour is not an error but intended this way.

Of course you could get more accuracy but it would result in much higher battery drain which is a total killer for a watchface in my opinion. Considering battery life it performed pretty well for me. Up until now it didn't seem to use a lot more energy than the standard watchface, but certainly a little. I try to calculate all the stuff periodically or in power mode and not all the time.

If your watchface looks like this when you start it up first...

... you want to long press "UP" and then go to "save position" to aquire a new GPS position. It will then be used to calculate the sun data.


You can download it here: http://infinit.io/_/bU5evsa
Just grab and copy to your watch:\GARMIN\APPS



Have fun!
Cheers SwiSSpeedY
  • curLoc instance of ?

    Hi dezent, what do you mean by GPS calculation? There's really not much to calculate. I just use two lines to get the last GPS coordinates:
    long = curLoc.toDegrees()[1];
    lat= curLoc.toDegrees()[0];


    Of course you have to check if there actually is something stored in curLoc or you'll run into exceptions.

    Cheers SwiSSpeedY


    what permission you use (Positioning is not allowed on watchface) and what instance is curLoc of ?

    ps: and what is so secret on your watchface that you can not make the code public - also a more general question to every developer - i.e. put on github. it would serve people to better understand garmin sdk programming - which in turn would mean more watchfaces to choose from - and help in fixing any bugs the code may have.
  • Former Member
    Former Member over 9 years ago
    Hey guy, further to the above, i wonder, is there any reason we can't have more elements staying active even in the low power screen?

    For example, the FRINGE watch face keeps almost all data on screen even in low power mode (and doesnt chew power).

    Things like the sunrise and sunset, they dont use telemetry in the watch, so keeping them active shouldnt drian power?

    Likewise with step counter and such?

    I understand the altitude may not as it actively uses telemetry?
  • Former Member
    Former Member over 9 years ago
    Power mode

    Hello.

    For some reason, when i select this watch face it starts in high power mode, but always switches back to low power mode even when my batter is 100% full. Any way we can keep it in high power mode?

    Thanks.

    C.
  • The low power mode thing is not something that the watch app can control, and it has nothing to do with how much battery remains. The framework that Garmin provides will update the display every second when not in low power mode, and then it will automatically transition to low power mode. Once in low power mode it will only update once a minute until you do something to cause it to leave low power mode. This is all done to reduce battery drain.

    That said, the app developer can decide what they want to display when in or out of low power mode. This is up to them.

    Travis