InfiniTime 1.11 "Red Nectarine" introduces the support for external resources!
Until now, all images and fonts had to be built in the main firmware which uses a lot of space in the main program memory. This new feature allows us to store those heavy data into the external flash memory. This will obviously bring a bit of fresh air to InfiniTime: we’ll be able to move some of the current pictures and fonts to the external memory and also add new apps and watch faces.
InfiniTime 1.11 also introduces 2 new watch faces that leverage the external resources feature: Infineat and G7710. Infineat is a stylish and colorful watch face that displays the time, date, BLE status, step count and also the battery level using an animated Pine64 logo. The G7710 watch face is inspired by a well known LCD watch. The memory usage of those contributions was the only reason why we couldn’t integrate them in InfiniTime sooner, and I’m really happy we are finally able to!
As always, this new version comes with many additions, improvements and bugfixes. You’ll find a detailed list in the bottom of this release note!
How to upgrade to InfiniTime 1.11 and install the external resources
You can update to InfiniTime 1.11 as you’ve always done: download the DFU ZIP file and use the companion app of your choice to update the firmware over the air.
This simple operation will bring all the additions and improvements we’ve done in InfiniTime 1.11 except… the new watch faces: they are grayed out in the settings:
To enable those new watch faces, you’ll need to install the new resource package. This package contains all the fonts and pictures needed by the watch faces and must be installed separately from the firmware. The installation procedure of the resources package is very similar to the update procedure of the firmware. But, as this is a very new feature, not all companion apps support it.
ITD integrated support for external resources in version 0.0.8.
It's also merged in Amazfish, and a new version with those changes should be published very soon.
Other companion apps will hopefully add support for this new feature soon ! Let's give the companion app developers time to integrate and release this new feature ;-)
You’ll find more details about the installation procedure in the documentation.
Once the installation is done, Infineat and G7710 should be available in the settings:
Enjoy!
InfiniSim and External Resources
Shiny new watch faces using external resources want to be created. InfiniSim provides a safe way to hack on apps and watch faces, but we need a way to provide those resources to InfiniSim.
Welcome littlefs-do
to the InfiniSim repository!
This new little command line program helps us work on the SPI-raw file used to simulate the external memory of the PineTime. It can list files inside the SPI-raw file using the ls
command, copy files into and out using cp
, create and remove directories with mkdir
and rmdir
and much more.
Making working with external resources a breeze littlefs-do can load a resource.zip
into the SPI-raw file using the command ./littlefs-do res load resource.zip
.
For more information on all the helpful commands of littlefs-do see the littlefs-do section of the documentation.
But where does one get this resource .zip file? Download it from GitHub or build the InfiniTime firmware? Both are valid options, but for development with InfiniSim, it would be cumbersome to constantly leave the InfiniSim repository. To solve that the resource file is created when compiling InfiniSim and can be found in the build directory under build/resources/infinitime-resources-1.11.0.zip
.
Additions
- Created a document to better communicate the vision of InfiniTime project to users, developers and everyone else
- Compatibility with LFCLK calibration and reduced the power consumption of Nimble
- Limit backlight brightness when flashlight is off
- Watch face inspired by the G7710, with day of year and week number info (+ battery level %)
- Infineat watch face + its external resources
- Added pink color for PinetimeStyle watch face
- PineTimeStyle watch face : make step count display configurable (full gauge for step count, half gauge with seconds and numerical display of the step count).
Improvements
- SystemInfo: Display target build variant
- Use Counter widget in SettingSetTime
- Reset timer by long pressing on the button
- Reorganized documentation
- Date formats: Use ISO 8601 to avoid confusion
- Bunch of code cleanup
- Add status icons widget
- Use Counter widget in Alarm
- More timeout options
- Notification swap text colors
- P8: Mirror the display for P8b variant
- Improved checkbox visibility
- Add sleep mode
- Package resources + a metadata file into a single .zip file
- Improve status icon visibility
Bug Fixes
- motorController: Fix infinite vibration on RunForDuration(0)
- Build automation workflow fixes and improvements
- Brightness is always restored on app switch
Thanks
- @Riksu9000, @StarGate01, @JF002, @earboxer, @dmlls, @minacode, @NeroBurner, @mashuptwice @Akselmo, @ITCactus, @ght, @FintasticMan @kieranc and everyone else who contributed!
Contribute?
Everyone is very welcome to report any new bugs they encounter, features they miss, send InfiniTime some code or to simply donate.
Full list of changes: 1.10.0...1.11.0