Difference between revisions of "PineTime Custom Watchface Tutorial"
Electr0lyte (talk | contribs) m |
Electr0lyte (talk | contribs) m |
||
Line 1: | Line 1: | ||
=PineTime Custom Watchface Tutorial= | |||
This is a tutorial to help new users create custom watchfaces based on the InfiniTime Firmware for Pinetime made by user JF002, thanks to him for its development... | |||
We will explain some of the things I went through while creating some custom Watchfaces, so consider this as a log of sorts.. | |||
So stay tuned to it as it will be dynamically updated... | |||
The entire building process will be done | ==What you need to start== | ||
The entire building process will be done by GitHub, so all you need is a device which can give you a Github Web Client, a PC or tablet to give you enough screen space to review your code and a steady internet connection. | |||
Since the compiling and file management is done by Github online, you have nothing else to worry about other than working with the files that display the watch face. | |||
So with those things settled, let's start with the basics of a watchface. | |||
Please remember that this is a wiki, so you can make an account and help us improve this page. | |||
Please make sure not to unilaterally remove info though, but offer an alternative. If it is indeed a better way, in time your alternative will grow into the main text, and the latter info will be pruned. | |||
== | ==Overview== | ||
The Firmware (also called InfiniTime) we will be working with is made with a programming language named '''C++''':[https://en.wikipedia.org/wiki/C%2B%2B] | |||
Basic knowledge of C/C++ is required to to understand the advanced watch faces as that requires more complex code, but you can still do a some cool things without much knowledge of C++ programming, just some small edits to existing programs. | |||
InfiniTime uses the '''LVGL''':[https://lvgl.io] graphics library to provide users with a simple and clean UI without overpowering the Nordic '''nRF52832''':[http://files.pine64.org/doc/datasheet/pinetime/nRF52832%20product%20brief.pdf] microcontroller which is the brain of the watch. | |||
To get the watchface to work there are these basic steps. We will go over each step separately, so don't be daunted, all will become clear soon. | |||
For now we will, modify the the existing watchface, change the positioning of the text labels, add an icon to an existing watchface, and later on we will do a full watchface. | |||
==Labels== | |||
===Label positioning=== | |||
==Choosing the image to be included== | |||
===Image size considerations=== | |||
==Preparing the image for inclusion== | |||
===RGB565 image format=== | |||
===Flipping the bits=== | |||
===RAM vs ROM=== | |||
=Using git to work on the firmware= | |||
===Cloning the repository=== | |||
===Changing the code to add the image=== | |||
===Compiling the firmware=== | |||
==Testing the firmware== | |||
===Installing the new firmware=== | |||
===Activating the firmware=== | |||
===How to troubleshoot=== | |||
==Conclusions== | |||
==Next steps== | |||
==More in-depth documentation== | |||
==Thanks for the help== |
Revision as of 09:14, 10 August 2020
PineTime Custom Watchface Tutorial
This is a tutorial to help new users create custom watchfaces based on the InfiniTime Firmware for Pinetime made by user JF002, thanks to him for its development...
We will explain some of the things I went through while creating some custom Watchfaces, so consider this as a log of sorts..
So stay tuned to it as it will be dynamically updated...
What you need to start
The entire building process will be done by GitHub, so all you need is a device which can give you a Github Web Client, a PC or tablet to give you enough screen space to review your code and a steady internet connection.
Since the compiling and file management is done by Github online, you have nothing else to worry about other than working with the files that display the watch face.
So with those things settled, let's start with the basics of a watchface.
Please remember that this is a wiki, so you can make an account and help us improve this page.
Please make sure not to unilaterally remove info though, but offer an alternative. If it is indeed a better way, in time your alternative will grow into the main text, and the latter info will be pruned.
Overview
The Firmware (also called InfiniTime) we will be working with is made with a programming language named C++:[1]
Basic knowledge of C/C++ is required to to understand the advanced watch faces as that requires more complex code, but you can still do a some cool things without much knowledge of C++ programming, just some small edits to existing programs.
InfiniTime uses the LVGL:[2] graphics library to provide users with a simple and clean UI without overpowering the Nordic nRF52832:[3] microcontroller which is the brain of the watch.
To get the watchface to work there are these basic steps. We will go over each step separately, so don't be daunted, all will become clear soon.
For now we will, modify the the existing watchface, change the positioning of the text labels, add an icon to an existing watchface, and later on we will do a full watchface.