We haven't released a new version of InfiniTime for almost a year, so we are very happy to release InfiniTime 1.15.0 today! The list of changes is quite impressive! I would like to thank everyone who took part one way or another in this new milestone for the InfiniTime project!
Always-on display is a highly requested feature for a long time. Even if the hardware of the PineTime is not designed for such feature, @KaffeinatedKat and @mark9064 managed to make it possible by doing a lot of power and code optimizations. When enabled, the AOD feature will dim the brightness to the lowest level and put the display in a low-power mode to save as much battery power as possible while still allowing the user to read the time. According to our measurements and testing, the PineTime should last around 2-3 days in this mode.
You can enable the AOD in the "Display" settings
InfiniTime 1.15 also adds a new weather forecast application that displays the forecast for the next 5 days. Thanks to @vkareh for this nice addition!
A new dice rolling app (by @yusufmte) was also added in this new release of InfiniTime. This new app will come in handy for tabletop players, for example.
The alarm is now saved in the settings file in the SPI NOR flash. This will ensure that the alarm is restored whenever the watch reboots (after an upgrade, for example). Thanks @NeroBurner !
InfiniTime 1.15 also brings many other improvements to the firmware, the CI and the documentation, along with bug fixes and code improvements!
Another small but notable change is that the watch's default year is now set at compile time, so you don't need to increase the year counter since 1970 when you want to manually set the time! Thanks to @FintasticMan for this nice quality of life improvement!
I would also like to take the opportunity to welcome @mark9064 in the @InfiniTimeOrg/core-developers Team! @mark9064 contributed to many high quality additions and improvements to InfiniTime, and I'm really happy he accepted to join our team!
What's Changed
- Update pre-commit hook by @FintasticMan in #1511
- WatchFacePineTimeStyle: Fix conditional in weather display by @vkareh in #1965
- Split declaration and implementation of GetSymbol by @ljahn in #1969
- lv_img_conv: support other modes like 'P' by @NeroBurner in #1989
- New dice-rolling app: InfiniDice! by @yusufmte in #1326
- Fix motion service not updating when sleeping by @FintasticMan in #1970
- WatchFaceDigital: Add weather display by @vkareh in #1856
- Missing character for navigation font by @kieranc in #2005
- SimpleWeatherService: Add forecast operator overrides by @vkareh in #2011
- Remove GFX (and unused GFX dependencies) by @mark9064 in #2010
- WatchFaceDigital: Move weather widget away from status icons by @vkareh in #1998
- Change Acceleration Values to milli-g units rather than Raw Counts by @jones139 in #1950
- Alarm: Replace clock icon with bell by @vkareh in #1996
- Fix OOB flash write when DFU interrupted by @mark9064 in #2020
- README: Make hex and UTF-8 code consistent for the chosen example by @timteichmann in #1993
- weather: Add new app with forecast by @vkareh in #1995
- README: Fix broken URLs by @vkareh in #2025
- Fix chimes by @mark9064 in #2019
- Simplify ISR task wake checks by @mark9064 in #2018
- lowersleep: Improve algorithm by checking wrist angle by @FintasticMan in #2014
- ApplicationList: Reset app menu screen when loading watch face by @vkareh in #2009
- Fix conflicts of min and max from stl_algo.h included from stdatomic by @PwnVerse in #2026
- Fix and update documentation by @idealemu in #2036
- chrono: Resolve TODOs related to C++20 chrono feats by @FintasticMan in #2016
- Fix bluetooth setting : emit the radio toggle message only if the value of the setting changed by @JF002 in #2037
- WatchFaceDigital: Remove unused variables by @vkareh in #2039
- Unify docker devcontainer with dockerfile used for CI by @BloodStainedCrow in #1587
- Heartrate app displays --- instead of 000 by @KaffeinatedKat in #1887
- SPI transaction hooks by @mark9064 in #2046
- LCD delay improvements by @mark9064 in #2043
- Fix erratum 58 workaround by @mark9064 in #2042
- Fix MotorController::Init call order by @pipe01 in #2070
- Remove unnecessary BMA421 reads by @pipe01 in #2064
- Continuous time updates by @mark9064 in #2041
- README: Change links from Pine wiki to new documentation by @1Maxnet1 in #2076
- Batch display command arguments by @mark9064 in #2059
- Always on display by @KaffeinatedKat in #1869
- Display the SPI flash JEDEC IDs in SystemInformation. by @JF002 in #2097
- Upload standalone ELF build as artifact by @pipe01 in #2083
- Remove space before colon by @everypizza1 in #2090
- Advertise HR service by @mark9064 in #2088
- Documentation improvements by @everypizza1 in #2091
- DisplayApp: Go to clock on wakeup if no app loaded by @vkareh in #1980
- Size optimise NRF SDK build by @mark9064 in #2102
- Use DirtyValue for timer by @mark9064 in #2103
- Clean unused DisplayApp messages by @mark9064 in #2104
- Restrict debugging monitor to debug builds by @mark9064 in #2105
- notifications: Dismiss to watchface when empty by @eliedrian in #1716
- SystemTask state refactor by @mark9064 in #2109
- Refactor doNotGoToSleep to a wakelock counter by @mark9064 in #2107
- Atomic HRS reads by @mark9064 in #1845
- Hrs3300: fix includes for std::begin/std::end by @NeroBurner in #2128
- Alarm persist to flash by @NeroBurner in #1367
- Remove unused pointer to DisplayApp member variables by @NeroBurner in #2125
- MusicService: add missing includes for TickType_t and xTaskGetTickCount by @NeroBurner in #2130
- Remove unused submodule QCBOR by @NeroBurner in #2138
- README: Header redesign by @liamcharger in #2032
- AOD fixup by @mark9064 in #2106
- datetime: Set the default year to the year during compile by @FintasticMan in #2133
- SimpleWeatherService #include by @lmamane in #2148
- Clear ongoing taps when going to sleep by @mark9064 in #2108
- Update Date&Time settings label for "Date & Time" by @ajira86 in #1782
- weather: Add function for converting to units by @FintasticMan in #2015
- Weather: fix min and max temperature being switched by @lmamane in #2168
- Update Amazfish details in README.md by @jmlich in #2167
- ci: Normalise slash-containing
github.head_ref
values by @shymega in #2166 - Fix git hash calculation with Docker build by @febrezo in #1935
- Ignore old GoToRunning messages by @mark9064 in #2165
- cmake: fix python path with use multi-version python by @xz-dev in #2143
- Janitorial changes by @lmamane in #2163
New Contributors
- @vkareh made their first contribution in #1965
- @ljahn made their first contribution in #1969
- @yusufmte made their first contribution in #1326
- @jones139 made their first contribution in #1950
- @timteichmann made their first contribution in #1993
- @PwnVerse made their first contribution in #2026
- @idealemu made their first contribution in #2036
- @KaffeinatedKat made their first contribution in #1887
- @pipe01 made their first contribution in #2070
- @1Maxnet1 made their first contribution in #2076
- @eliedrian made their first contribution in #1716
- @lmamane made their first contribution in #2148
- @ajira86 made their first contribution in #1782
- @jmlich made their first contribution in #2167
- @shymega made their first contribution in #2166
- @febrezo made their first contribution in #1935
- @xz-dev made their first contribution in #2143
Full Changelog: 1.14.1...1.15.0