Building with a TARGET_DEVICE set to any of the P8 variants' names
caused the build to fail, because they contained hyphens.
The build defines a macro `TARGET_DEVICE_$VARIANT`, which fails if
`$VARIANT` contains a hyphen.
Create a minimal python port of the node.js module `lv_img_conv`. Only
the currently in use color formats `CF_INDEXED_1_BIT` and
`CF_TRUE_COLOR_ALPHA` are implemented.
Output only as binary with format `ARGB8565_RBSWAP`.
This is enough to create the `resources-1.13.0.zip`.
Python3 implements "propper" "banker's rounding" by rounding to the nearest
even number. Javascript rounds to the nearest integer.
To have the same output as the original JavaScript implementation add a custom
rounding function, which does "school" rounding (to the nearest integer)
Update CMake file in `resources` folder to call `lv_img_conf.py` instead of
node module.
For docker-files install `python3-pil` package for `lv_img_conv.py` script.
And remove the `lv_img_conv` node installation.
---
gen_img: special handling for python lv_img_conv script
Not needed on Linux systems, as the shebang of the python script is read
and used. But just to be sure use the python interpreter found by CMake.
Also helps if tried to run on Windows host.
---
doc: buildAndProgram: remove node script lv_img_conv mention
Remove node script `lv_img_conv` mention and replace it for
runtime-depency `python3-pil` of python script `lv_img_conv.py`.
The TTF font used by the navigation app is ~20KB and is stored in internal flash memory.
To free this space, the TTF font is now converted in 2 "atlas pictures" (pictures that contain multiple concatenated images) stored in the external flash memory. The navigation app now accesses one of those 2 files and apply an offset to display the desired picture.
The corresponding documentation has also been updated.
Add comments about the layout of the pictures that contain the icon and about the indexing of those icons.
In documentation (buildAndProgram.md), edit the section about the debug compilation mode. Remove the part about removing the Navigation app to free some memory (since it's not relevant anymore) and explain how to selectively build parts of the firmware in Debug mode.
The script `tools/mcuboot/imgtool/main.py` imports the python packages
`click` and `cryptography` to create the target `pinetime-mcuboot-app`.
Add it tothe build instructions, as it was not installed on my system.
6f9f0e8b0e/tools/mcuboot/imgtool/main.py (L19)6f9f0e8b0e/tools/mcuboot/imgtool/keys/__init__.py (L19)
Also add the commands to install the python requirements into a python
venv virtual environment.
I had issues building InfiniTime for the first time because the instructions never mentioned needing these Python modules. Including them in the build documentation will help people not be confused like I was.
I recommend adding all needed modules to this list. I only added the ones I knew I was missing.